1 |
pamelats |
1.2 |
//***************************************************** |
2 |
|
|
//24-feb-2009: introduced "beta_in" and "Set_Beta": |
3 |
|
|
// beta_in is set to 100 by default. If it is not overwritten |
4 |
|
|
// by "Set_Beta" (ToFNuclei.h), the code is used as before. |
5 |
|
|
// If beta_in was set by the user using "Set_Beta", this beta |
6 |
|
|
// is taken for the calculations. |
7 |
pamelats |
1.3 |
//26-feb-2009: Inserted S115B calibrations from Lucia |
8 |
pamelats |
1.2 |
// |
9 |
pamelats |
1.3 |
//02-apr-2009: bug found in some "if" statemnts for the |
10 |
|
|
// "Layercharge" definition, but only important if ADC=4095 |
11 |
|
|
// |
12 |
pamelats |
1.2 |
//***************************************************** |
13 |
pamela |
1.1 |
#include <ToFNuclei.h> |
14 |
|
|
|
15 |
|
|
//-------------------------------------- |
16 |
|
|
/** |
17 |
|
|
* Default constructor |
18 |
|
|
*/ |
19 |
|
|
ToFNuclei::ToFNuclei(){ |
20 |
|
|
Clear(); |
21 |
|
|
}; |
22 |
|
|
|
23 |
|
|
ToFNuclei::ToFNuclei(PamLevel2 *l2p){ |
24 |
|
|
// |
25 |
|
|
Clear(); |
26 |
|
|
// |
27 |
|
|
L2 = l2p; |
28 |
|
|
// |
29 |
pamelats |
1.2 |
beta_in = 100.; |
30 |
|
|
// |
31 |
pamela |
1.1 |
if ( !L2->IsORB() ) printf(" WARNING: OrbitalInfo Tree is needed, the plugin could not work properly without it \n"); |
32 |
|
|
// |
33 |
|
|
OBT = 0; |
34 |
|
|
PKT = 0; |
35 |
|
|
atime = 0; |
36 |
|
|
// |
37 |
|
|
sntr = 0; |
38 |
|
|
debug = false; |
39 |
|
|
// |
40 |
|
|
}; |
41 |
|
|
|
42 |
|
|
void ToFNuclei::Clear(){ |
43 |
|
|
// |
44 |
|
|
ncount_trk = 0.; |
45 |
|
|
charge_trk = 0.; |
46 |
|
|
memset (charge_layer_trk,0,6*sizeof(Float_t)); // |
47 |
pamelats |
1.2 |
memset (charge_PMT_trk,0,48*sizeof(Float_t)); // |
48 |
pamela |
1.1 |
memset (layerinfo_trk,0,6*sizeof(Int_t)); // |
49 |
|
|
ncount_std = 0.; |
50 |
|
|
charge_std = 0.; |
51 |
|
|
memset (charge_layer_std,0,6*sizeof(Float_t)); // |
52 |
pamelats |
1.2 |
memset (charge_PMT_std,0,48*sizeof(Float_t)); // |
53 |
pamela |
1.1 |
memset (layerinfo_std,0,6*sizeof(Int_t)); // |
54 |
|
|
}; |
55 |
|
|
|
56 |
|
|
void ToFNuclei::Print(){ |
57 |
|
|
// |
58 |
|
|
Process(); |
59 |
|
|
// |
60 |
|
|
printf("========================================================================\n"); |
61 |
|
|
printf(" OBT: %u PKT: %u ATIME: %u Track %i \n",OBT,PKT,atime,tr); |
62 |
|
|
printf(" std : charge %f ncount %d layers %f %f %f %f %f %f \n",charge_std,ncount_std,charge_layer_std[0],charge_layer_std[1],charge_layer_std[2],charge_layer_std[3],charge_layer_std[4],charge_layer_std[5]); |
63 |
|
|
printf(" std : layerinfo %d %d %d %d %d %d \n",layerinfo_std[0],layerinfo_std[1],layerinfo_std[2],layerinfo_std[3],layerinfo_std[4],layerinfo_std[5]); |
64 |
|
|
|
65 |
|
|
printf(" trk : charge %f ncount %d layers %f %f %f %f %f %f \n",charge_trk,ncount_trk,charge_layer_trk[0],charge_layer_trk[1],charge_layer_trk[2],charge_layer_trk[3],charge_layer_trk[4],charge_layer_trk[5]); |
66 |
|
|
printf(" trk : layerinfo %d %d %d %d %d %d \n",layerinfo_trk[0],layerinfo_trk[1],layerinfo_trk[2],layerinfo_trk[3],layerinfo_trk[4],layerinfo_trk[5]); |
67 |
|
|
printf("========================================================================\n"); |
68 |
|
|
// |
69 |
|
|
}; |
70 |
|
|
|
71 |
|
|
void ToFNuclei::Delete(){ |
72 |
|
|
Clear(); |
73 |
|
|
}; |
74 |
|
|
|
75 |
|
|
|
76 |
|
|
void ToFNuclei::Process(){ |
77 |
|
|
Process(0); |
78 |
|
|
}; |
79 |
|
|
|
80 |
|
|
void ToFNuclei::Process(Int_t ntr){ |
81 |
|
|
// |
82 |
|
|
if ( !L2 ){ |
83 |
|
|
printf(" ERROR: cannot find PamLevel2 object, use the correct constructor or check your program!\n"); |
84 |
|
|
printf(" ERROR: CaloExample variables not filled \n"); |
85 |
|
|
return; |
86 |
|
|
}; |
87 |
|
|
// |
88 |
|
|
Bool_t newentry = false; |
89 |
|
|
// |
90 |
|
|
if ( L2->IsORB() ){ |
91 |
|
|
if ( L2->GetOrbitalInfo()->pkt_num != PKT || L2->GetOrbitalInfo()->OBT != OBT || L2->GetOrbitalInfo()->absTime != atime || ntr != sntr ){ |
92 |
|
|
newentry = true; |
93 |
|
|
OBT = L2->GetOrbitalInfo()->OBT; |
94 |
|
|
PKT = L2->GetOrbitalInfo()->pkt_num; |
95 |
|
|
atime = L2->GetOrbitalInfo()->absTime; |
96 |
|
|
sntr = ntr; |
97 |
|
|
}; |
98 |
|
|
} else { |
99 |
|
|
newentry = true; |
100 |
|
|
}; |
101 |
|
|
// |
102 |
pamelats |
1.2 |
if ( !newentry ) { |
103 |
|
|
return; |
104 |
|
|
} |
105 |
pamela |
1.1 |
// |
106 |
|
|
tr = ntr; |
107 |
|
|
// |
108 |
|
|
if ( debug ) printf(" Processing event at OBT %u PKT %u time %u \n",OBT,PKT,atime); |
109 |
|
|
// |
110 |
|
|
// charge_trk = 0.; |
111 |
|
|
// memset (charge_layer_trk,0,6*sizeof(Float_t)); // |
112 |
|
|
// charge_std = 0.; |
113 |
|
|
// memset (charge_layer_std,0,6*sizeof(Float_t)); // |
114 |
|
|
|
115 |
|
|
Clear(); |
116 |
|
|
|
117 |
pamelats |
1.2 |
// cout<<"beta_in = "<<beta_in<<endl; |
118 |
|
|
|
119 |
pamela |
1.1 |
|
120 |
|
|
Double_t time = L2->GetOrbitalInfo()->absTime; |
121 |
|
|
|
122 |
|
|
//======================================================================= |
123 |
|
|
//============== Siegen version 1 ==================== |
124 |
|
|
//============== track dependent dEdx and beta ==================== |
125 |
|
|
//======================================================================= |
126 |
|
|
|
127 |
|
|
//if (L2->GetTrkLevel2()->GetNTracks()!=1) return; |
128 |
|
|
if (L2->GetTrkLevel2()->GetNTracks()==1) { |
129 |
|
|
|
130 |
pamelats |
1.2 |
/* |
131 |
pamela |
1.1 |
Float_t PMTsat[48] = { |
132 |
|
|
3162.14, 3165.48, 3153.85, 3085.73, 3089.65, 3107.64, 3097.52, 3078.37, 3130.05, 3087.07, 3112.22, |
133 |
|
|
3102.92, 3080.58, 3092.55, 3087.94, 3125.03, 3094.09, 3143.16, |
134 |
|
|
3125.51, 3181.27, 3092.09, 3124.98, 3069.3, 3095.53, 3097.11, 3133.53, 3114.73, 3113.01, 3091.19, |
135 |
|
|
3097.99, 3033.84, 3134.98, 3081.37, 3111.04, 3066.77, 3108.17, |
136 |
|
|
3133, 3111.06, 3052.52, 3140.66, 3106.33, 3094.85, 3150.85, 3118.8, 3096.24, 3118.47,3111.36, 3117.11 |
137 |
pamelats |
1.2 |
}; |
138 |
|
|
*/ |
139 |
|
|
|
140 |
|
|
// new values from Napoli dec 2008 |
141 |
|
|
Float_t PMTsat[48] = { |
142 |
|
|
3176.35,3178.19,3167.38,3099.73,3117.00,3126.29,3111.44,3092.27, |
143 |
|
|
3146.48,3094.41,3132.13,3115.37,3099.32,3110.97,3111.80,3143.14, |
144 |
|
|
3106.72,3153.44,3136.00,3188.96,3104.73,3140.45,3073.18,3106.62, |
145 |
|
|
3112.48,3146.92,3127.24,3136.52,3109.59,3112.89,3045.15,3147.26, |
146 |
|
|
3095.92,3121.05,3083.25,3123.62,3150.92,3125.30,3067.60,3160.18, |
147 |
|
|
3119.36,3108.92,3164.77,3133.64,3111.47,3131.98,3128.87,3135.56 }; |
148 |
|
|
|
149 |
|
|
for (Int_t i=0; i<48;i++) PMTsat[i] = PMTsat[i] - 5.; // safety margin |
150 |
|
|
|
151 |
pamela |
1.1 |
|
152 |
pamelats |
1.2 |
Float_t C0t[48][9] = { |
153 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
154 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
155 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
156 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
157 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
158 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
159 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
160 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
161 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
162 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
163 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
164 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
165 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
166 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
167 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
168 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
169 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
170 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
171 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
172 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
173 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
174 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
175 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
176 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
177 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
178 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
179 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
180 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
181 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
182 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
183 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
184 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
185 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
186 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
187 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
188 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
189 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
190 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
191 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
192 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
193 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
194 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
195 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
196 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
197 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
198 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
199 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, |
200 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92} ; |
201 |
pamela |
1.1 |
|
202 |
|
|
|
203 |
|
|
Float_t A0t[48][9] = { |
204 |
pamelats |
1.2 |
0, 0.90472, 5.19581, 7.99982, 11, 13, 16, 18, 2000, |
205 |
|
|
0, 0.7774, 5.15121, 7.99976, 11, 13, 16, 18, 2000, |
206 |
|
|
0, 1.18414, 5.1952, 8, 11, 13, 16, 17.9999, 2000, |
207 |
|
|
0, 1.0189, 5.61869, 8, 11, 13.0006, 15.9998, 18.0014, 2000, |
208 |
|
|
0, 1.08725, 4.4728, 7.99979, 11, 13.0002, 16, 18, 2000, |
209 |
|
|
0, 0.946462, 4.69554, 7.99994, 11, 13.0001, 16, 18, 2000, |
210 |
|
|
0, 1.13176, 4.57483, 7.99999, 11, 13.0002, 15.9999, 18.0002, 2000, |
211 |
|
|
0, 1.00872, 4.99316, 8, 11, 13, 16, 18, 2000, |
212 |
|
|
0, 1.19891, 5.01355, 8, 11, 13.0003, 16, 18, 2000, |
213 |
|
|
0, 0.5, 2.284, 3.12, 8.795, 6.257, 7.841, 6.1743, 2000, |
214 |
|
|
0, 1.16961, 4.59028, 8, 11, 13.0001, 16, 18, 2000, |
215 |
|
|
0, 0.989643, 5.21958, 7.99998, 11, 13, 16, 17.9999, 2000, |
216 |
|
|
0, 0.952029, 5.19598, 7.99998, 11, 13.0005, 16.0005, 18, 2000, |
217 |
|
|
0, 0.736833, 4.95596, 8, 11, 13, 16, 18, 2000, |
218 |
|
|
0, 1.34007, 3.74275, 8, 11, 13, 16, 18, 2000, |
219 |
|
|
0, 1.47101, 4.31154, 8, 11, 13, 16, 18, 2000, |
220 |
|
|
0, 1.3754, 4.83141, 8.00002, 11, 13, 16, 18, 2000, |
221 |
|
|
0, 1.47712, 5.79783, 8, 11, 13, 16, 18, 2000, |
222 |
|
|
0, 1.19127, 5.35796, 7.99996, 11, 13, 16, 18, 2000, |
223 |
|
|
0, 1.25745, 5.98391, 8, 11, 13.0004, 16.0001, 18.0001, 2000, |
224 |
|
|
0, 1.18024, 5.40107, 7.99999, 11, 13, 16, 18.0001, 2000, |
225 |
|
|
0, 0.961883, 5.10846, 7.99999, 11, 13, 16, 18, 2000, |
226 |
|
|
0, 1.23192, 6.21098, 8, 11, 13.0005, 16, 18.0003, 2000, |
227 |
|
|
0, 1.15846, 5.23573, 7.99995, 11, 13, 16, 18.0002, 2000, |
228 |
|
|
0, 1.26163, 5.5425, 8.00001, 11, 13.0002, 16.0006, 18, 2000, |
229 |
|
|
0, 1.12754, 5.57064, 7.99999, 11, 13, 16, 18.0002, 2000, |
230 |
|
|
0, 1.22768, 6.06283, 8, 11, 13.0002, 16, 18, 2000, |
231 |
|
|
0, 1.83569, 5.87584, 8.00006, 11, 13.0005, 16, 18, 2000, |
232 |
|
|
0, 1.61434, 5.56634, 7, 7.99999, 8.99999, 14.999, 16, 2000, |
233 |
|
|
0, 1.61287, 5.46416, 7.99989, 10, 12, 14.9997, 16, 2000, |
234 |
|
|
0, 1.49053, 6.21581, 9.00001, 12, 14, 16, 22, 2000, |
235 |
|
|
0, 1.64579, 5.08498, 7.99989, 10, 12, 15, 16, 2000, |
236 |
|
|
0, 1.83474, 6.29746, 9.00001, 12, 14.0001, 16.0001, 22, 2000, |
237 |
|
|
0, 1.80066, 6.19725, 9, 12, 14, 16, 22, 2000, |
238 |
|
|
0, 1.9025, 5.83736, 8, 10, 12, 14.9999, 16, 2000, |
239 |
|
|
0, 1.90163, 5.62801, 7.99999, 10, 12, 15, 16, 2000, |
240 |
|
|
0, 2.5518, 5.97325, 9.00012, 12, 15, 18, 22, 2000, |
241 |
|
|
0, 2.53476, 5.75312, 9.00007, 12, 15, 18, 22, 2000, |
242 |
|
|
0, 2.67784, 6.9232, 9.00005, 12, 15, 18, 22, 2000, |
243 |
|
|
0, 2.62769, 7.22552, 9.00003, 12.0001, 15, 18, 22, 2000, |
244 |
|
|
0, 2.58088, 6.30413, 9.0001, 12, 15, 18, 22, 2000, |
245 |
|
|
0, 2.48219, 7.06085, 9.00005, 12, 15, 18, 22, 2000, |
246 |
|
|
0, 3.23157, 5.20668, 9.00007, 12, 15, 18, 22, 2000, |
247 |
|
|
0, 3.38244, 6.45172, 9.00006, 12.0001, 15, 18.0001, 22, 2000, |
248 |
|
|
0, 3.14595, 5.29036, 9.00008, 12, 15, 18, 22.0001, 2000, |
249 |
|
|
0, 3.34692, 6.17283, 9.00041, 12, 15, 18.0001, 22, 2000, |
250 |
|
|
0, 3.16915, 4.25973, 9.00015, 12, 15, 18, 22, 2000, |
251 |
|
|
0, 3.25809, 5.58971, 9.00068, 12, 15, 18, 22.0001, 2000} ; |
252 |
|
|
|
253 |
pamela |
1.1 |
|
254 |
|
|
Float_t A1t[48][9] = { |
255 |
pamelats |
1.2 |
0, -0.148721, -3.39495, -4.31459, -0.929148, 3.54132, -0.781274, 1.31968, 0, |
256 |
|
|
0, 0.300986, -2.80331, -4.23227, 0.298916, 4.10416, -5.18516, 7.03041, 0, |
257 |
|
|
0, -0.590177, -3.12529, -0.44614, 0.620419, 5.19609, 9.88925, 14.9819, 0, |
258 |
|
|
0, -0.173358, -3.98938, -0.616916, 0.405404, 6.25045, 10.5087, 24.7055, 0, |
259 |
|
|
0, -0.32707, -1.1686, -3.46701, -0.284242, 4.09514, -0.561233, -0.166844, 0, |
260 |
|
|
0, 0.0440221, -1.5147, -2.67239, -1.08848, 5.05632, 3.92546, -0.0525454, 0, |
261 |
|
|
0, -0.331836, -1.25371, -1.59317, 0.654738, 4.41673, 5.99879, 14.9057, 0, |
262 |
|
|
0, 0.00587183, -2.17841, -1.48496, 0.477997, 6.24062, 6.19841, 11.4798, 0, |
263 |
|
|
0, -0.515989, -2.1195, -1.44376, 0.145546, 5.41926, 5.03587, 10.7126, 0, |
264 |
|
|
0, 0, 0.0682, 3.2814, -6.1989, 8.05589, 9.75967, 23.797, 0, |
265 |
|
|
0, -0.554732, -1.6306, -1.54677, 0.687092, 3.97612, 4.05449, 3.44324, 0, |
266 |
|
|
0, -0.0314164, -2.83515, -1.29946, 2.31597, 7.15645, 6.95353, 12.8573, 0, |
267 |
|
|
0, -0.218413, -3.04095, -1.50327, 0.291698, 5.27119, 9.06051, 18.4417, 0, |
268 |
|
|
0, 0.410005, -2.45452, -0.851601, 0.206665, 6.44906, 7.53132, 10.5636, 0, |
269 |
|
|
0, -1.29063, 0.463767, -0.720394, 1.27269, 3.66394, 4.52102, 7.33444, 0, |
270 |
|
|
0, -1.54073, -1.60146, -1.91721, -0.640132, 3.58881, 0.561348, 7.33444, 0, |
271 |
|
|
0, -0.558527, -2.43481, -1.64492, 1.51694, 6.05449, 4.67951, 5.40004, 0, |
272 |
|
|
0, -1.44736, -5.265, -1.28878, -0.238869, 4.13668, 4.58264, 3.28758, 0, |
273 |
|
|
0, -0.596315, -3.35555, -2.03624, -0.148223, 6.16332, 4.71164, 15.6531, 0, |
274 |
|
|
0, -0.740826, -4.79843, 0.345734, -0.210722, 6.32702, 9.76698, 19.9151, 0, |
275 |
|
|
0, -0.541817, -3.30557, -1.76057, -0.216039, 5.79923, 8.00931, 16.4061, 0, |
276 |
|
|
0, -0.0503124, -2.66635, -1.70196, -1.07446, 3.46058, 1.45824, -2.21932, 0, |
277 |
|
|
0, -0.495955, -5.78012, -0.174017, 0.675206, 6.30264, 8.30058, 20.3899, 0, |
278 |
|
|
0, -0.315843, -2.8796, -3.04323, -0.681945, 5.49248, 7.42757, 17.1667, 0, |
279 |
|
|
0, -0.643179, -3.5364, -0.245549, 0.694213, 5.79727, 10.2911, 9.61651, 0, |
280 |
|
|
0, -0.315433, -3.56856, -1.25894, 2.05501, 6.85829, 8.74895, 14.9955, 0, |
281 |
|
|
0, -0.478207, -4.82517, 0.688668, 1.40183, 6.78743, 8.02806, 2.65821, 0, |
282 |
|
|
0, -1.63072, -5.05269, -0.582789, 1.22014, 6.80023, 8.8931, 5.15517, 0, |
283 |
|
|
0, -1.50826, -3.68958, 0.420744, 3.25124, 4.28046, -16.9712, -12, 0, |
284 |
|
|
0, -1.52021, -3.37459, -2.41086, 0.547517, -0.56013, -8.59935, -3, 0, |
285 |
|
|
0, -0.998702, -4.7187, -2.33974, -0.0974348, 3.10138, 2.3293, -5.71135, 0, |
286 |
|
|
0, -1.66188, -2.39145, -2.55052, 0.29005, -0.16697, -3.97018, -1.5, 0, |
287 |
|
|
0, -2.04431, -4.95214, -1.51889, 1.92081, 5.92476, 8.94417, -0.172422, 0, |
288 |
|
|
0, -1.94155, -4.95644, -2.47063, 0.0233995, 2.57015, 4.84173, -0.555407, 0, |
289 |
|
|
0, -2.22045, -4.21875, -1.23892, 0.911188, -0.705415, -11.5648, -7, 0, |
290 |
|
|
0, -2.25418, -3.71067, -1.87307, 0.560423, 0.206679, -4.27293, -3, 0, |
291 |
|
|
0, -3.90179, -5.14354, -4.08454, -3.13545, -3.57868, -5.13198, -1.0019, 0, |
292 |
|
|
0, -3.78789, -4.50313, -5.24307, -3.24931, -0.319336, -1.407, -3.77821, 0, |
293 |
|
|
0, -4.16337, -7.12861, -2.29639, -0.786276, 2.58494, 4.16162, 7.22747, 0, |
294 |
|
|
0, -4.04189, -7.82707, -1.34893, -1.05519, 4.33166, 4.87264, 12.3328, 0, |
295 |
|
|
0, -3.85946, -5.71064, -4.43564, -1.53025, 1.42505, -0.0695653, 4.33418, 0, |
296 |
|
|
0, -3.65794, -8.19828, -3.32738, -1.25785, -1.13124, -6.79745, -8.37113, 0, |
297 |
|
|
0, -5.571, -2.49596, -2.8623, -2.74219, -1.43215, -0.359863, 0.25062, 0, |
298 |
|
|
0, -6.00932, -5.60393, -2.33967, -1.53792, 3.67721, 5.49137, 8.34507, 0, |
299 |
|
|
0, -5.36442, -3.19657, -2.9975, -1.73078, 0.0558693, -0.179221, 9.45231, 0, |
300 |
|
|
0, -5.91858, -5.04606, -2.88549, -0.953526, 1.17816, 5.43427, 0.871257, 0, |
301 |
|
|
0, -5.53832, -0.498886, -3.85789, -2.61557, -2.45863, -1.44554, -7.21927, 0, |
302 |
|
|
0, -5.70059, -3.94476, -3.23927, 0.15573, 1.85295, 3.96162, 8.70362, 0 }; |
303 |
|
|
|
304 |
pamela |
1.1 |
|
305 |
|
|
Float_t A2t[48][9] = { |
306 |
pamelats |
1.2 |
0, 0.447567, 2.19777, 4.56362, 2.7416, 2.05411, 10.11, 19.0312, 0, |
307 |
|
|
0, 0.11417, 1.62292, 5.00684, 3, 3.00006, 17.3401, 17.8502, 0, |
308 |
|
|
0, 0.613665, 1.84729, 0.717669, 3, 2.53701, 1.23897, 10.2529, 0, |
309 |
|
|
0, 0.318447, 2.30647, 0.936633, 3, 3, 2.95973, 3, 0, |
310 |
|
|
0, 0.398201, 0.701095, 3.91236, 3, 3, 11.5693, 17.9749, 0, |
311 |
|
|
0, 0.202853, 0.806934, 3.11779, 3.57657, 1.59933, 6.71492, 23.6721, 0, |
312 |
|
|
0, 0.378081, 0.60131, 1.91722, 1.97014, 3, 5.08036, 9.64776, 0, |
313 |
|
|
0, 0.185602, 1.13243, 1.95726, 2.25608, 1.31382, 6.06097, 15.9104, 0, |
314 |
|
|
0, 0.519026, 1.16139, 1.92471, 3, 3, 6.24901, 15.0465, 0, |
315 |
|
|
0, 0, 0, -1.972, 4.7828, -3.1154, -2.11319, -4.7497, 0, |
316 |
|
|
0, 0.584808, 1.01299, 1.55521, 1.3038, 3, 7.23646, 20.977, 0, |
317 |
|
|
0, 0.252569, 1.60163, 1.83587, 0.630466, 0.777058, 6.0142, 15.4738, 0, |
318 |
|
|
0, 0.434331, 1.84922, 1.83168, 3, 3, 3, 6.44375, 0, |
319 |
|
|
0, 0.0330463, 1.50249, 1.15961, 3, 0.810556, 4.20175, 16.0172, 0, |
320 |
|
|
0, 1.15272, -0.461141, 0.6358, 0.566375, 3.20343, 5.26698, 14.6336, 0, |
321 |
|
|
0, 1.24677, 1.12736, 1.76074, 3, 3.77723, 10.7814, 14.6336, 0, |
322 |
|
|
0, 0.551726, 1.59633, 1.18411, 0.119382, 0.843864, 6.67491, 20.4289, 0, |
323 |
|
|
0, 1.17008, 3.53223, 1.7298, 3, 3.51043, 7.10543, 22.3253, 0, |
324 |
|
|
0, 0.612142, 1.96606, 2.64693, 3.25016, 1.25888, 7.04821, 11.7283, 0, |
325 |
|
|
0, 0.69148, 2.84536, 0.249509, 4.29848, 3, 3.58229, 9.01681, 0, |
326 |
|
|
0, 0.565678, 1.96366, 2.32387, 3.15843, 1.66386, 3.07223, 7.67847, 0, |
327 |
|
|
0, 0.286252, 1.61749, 2.08437, 3.96745, 3.46972, 9.29207, 23.9444, 0, |
328 |
|
|
0, 0.427677, 3.58328, 0.303785, 3, 3, 4.66547, 6.77271, 0, |
329 |
|
|
0, 0.367136, 1.62323, 3.53394, 3.22174, 1.19152, 2.67962, 7.37085, 0, |
330 |
|
|
0, 0.571177, 2.03267, 0.714761, 2.31548, 3, 3, 23.2035, 0, |
331 |
|
|
0, 0.410871, 2.02075, 2.01824, 1.2684, 1.18522, 3.21976, 12.8378, 0, |
332 |
|
|
0, 0.463877, 2.86112, 0.170916, 3, 3, 5.97413, 28.4085, 0, |
333 |
|
|
0, 1.30088, 3.26557, 2, 3, 3, 4.77584, 22.8794, 0, |
334 |
|
|
0, 1.02941, 2.12558, 0.872765, 2.23727, 4.7981, 24.6338, 24.6338, 0, |
335 |
|
|
0, 1.05783, 1.89525, 2.85289, 3.0898, 7.83407, 17.8466, 20, 0, |
336 |
|
|
0, 0.87851, 2.49044, 1.91387, 2.41541, 3.8418, 9.41288, 24.0375, 0, |
337 |
|
|
0, 1.18188, 1.273, 2.9275, 3.06704, 7.12642, 12.7629, 15, 0, |
338 |
|
|
0, 1.53682, 2.57011, 1.06205, 0.506326, 1.68314, 3.58498, 23.1595, 0, |
339 |
|
|
0, 1.46302, 2.68515, 1.99381, 2.17816, 4.41356, 6.53634, 20.7136, 0, |
340 |
|
|
0, 1.4731, 2.3654, 1.53025, 2.96327, 8.70277, 21.6253, 25, 0, |
341 |
|
|
0, 1.53808, 2.07089, 2.22662, 3.14766, 7.57131, 14.2471, 20, 0, |
342 |
|
|
0, 2.54185, 2.94079, 2.66362, 3.52374, 6.80629, 11.3325, 14.5186, 0, |
343 |
|
|
0, 2.43664, 2.49436, 4.17446, 3.77162, 3.31898, 7.43896, 18.2548, 0, |
344 |
|
|
0, 2.66465, 3.9858, 1.0855, 1.91916, 1.82719, 3.62289, 11.3872, 0, |
345 |
|
|
0, 2.59071, 4.39003, 0.0757547, 3, 0.158868, 3.55454, 5.71387, 0, |
346 |
|
|
0, 2.48014, 3.16071, 3.1975, 1.7259, 1.53532, 6.33812, 11.2325, 0, |
347 |
|
|
0, 2.35236, 4.94998, 1.78836, 1.9115, 4.74233, 13.6973, 21.965, 0, |
348 |
|
|
0, 3.52215, 0.812087, 1.1768, 2.95239, 4.3202, 6.04614, 13.6556, 0, |
349 |
|
|
0, 3.79446, 2.80606, 0.88371, 3, 0.614106, 2.52782, 12.4441, 0, |
350 |
|
|
0, 3.41363, 1.57296, 1.59021, 2.47593, 3.41146, 6.76304, 5.59471, 0, |
351 |
|
|
0, 3.72529, 2.50889, 2, 3, 4.06815, 2.78676, 19.6427, 0, |
352 |
|
|
0, 3.54713, -0.296079, 2.10851, 2.42037, 5.37573, 6.78065, 22.298, 0, |
353 |
|
|
0, 3.61517, 1.96909, 2, 0.249865, 2.46639, 3.42483, 8.1652, 0} ; |
354 |
|
|
|
355 |
pamela |
1.1 |
|
356 |
|
|
// S115B failure: 1158700000 // 2006-09-19 21:06:40 UTC |
357 |
|
|
|
358 |
pamelats |
1.2 |
if (time < 1158700000.) { // first workaround: just use calibration of PMT S115A |
359 |
pamela |
1.1 |
for ( Int_t jj=0; jj<9; jj++ ){ |
360 |
|
|
A0t[9][jj] = A0t[8][jj] ; |
361 |
|
|
A1t[9][jj] = A1t[8][jj] ; |
362 |
|
|
A2t[9][jj] = A2t[8][jj] ; |
363 |
|
|
} |
364 |
|
|
} // if time... |
365 |
|
|
|
366 |
|
|
//============================================================================ |
367 |
|
|
|
368 |
|
|
// 2nd-order correction |
369 |
|
|
Float_t corr_a[6][4] = { 0.977261, 0.353729, -0.83314, 0.452883, 1.27649, 3.53459, |
370 |
|
|
-5.41948, 2.67854, 2.21926, 4.32797, -7.24001, 3.77247, 2.4202, 7.99552, |
371 |
|
|
-12.4371, 6.08982, 2.04984, 13.3375, -19.178, 8.86101, 2.63322, 14.8072, -20.911, |
372 |
|
|
9.57905 }; |
373 |
|
|
|
374 |
|
|
//--------------------------------------------------------------------- |
375 |
|
|
|
376 |
|
|
Float_t xv[6],yv[6]; |
377 |
|
|
Int_t iz; |
378 |
|
|
Float_t x1[9],y1[9]; |
379 |
|
|
Int_t n1 = 9; |
380 |
pamelats |
1.2 |
|
381 |
|
|
Float_t Layercharge[6] = {1005., 1005., 1005., 1005., 1005., 1005. }; |
382 |
pamela |
1.1 |
|
383 |
|
|
Int_t Layerinfo[6] = {0, 0, 0, 0, 0, 0 }; |
384 |
|
|
|
385 |
pamelats |
1.2 |
Float_t adc[48],adc_c[48],PMTcharge_arr[48]; |
386 |
|
|
|
387 |
pamela |
1.1 |
//------------------------------------------------------------------ |
388 |
|
|
|
389 |
|
|
PamTrack *track = L2->GetTrack(0); |
390 |
|
|
|
391 |
|
|
Float_t beta_mean = fabs(track->GetToFTrack()->beta[12]); |
392 |
pamelats |
1.2 |
|
393 |
|
|
// New!! If "beta_in" != 100. then overwrite beta_mean with beta_in |
394 |
|
|
if (beta_in != 100.) beta_mean=beta_in; |
395 |
|
|
|
396 |
pamela |
1.1 |
Float_t def = track->GetTrkTrack()->al[4]; |
397 |
|
|
Float_t rig = 1./def; |
398 |
|
|
|
399 |
|
|
Int_t ncount=0; |
400 |
|
|
Float_t charge_chi=1000.; |
401 |
|
|
|
402 |
|
|
//------------------------------------------------------------- |
403 |
|
|
//------------------ ToF Charge ------------------------------ |
404 |
|
|
//------------------------------------------------------------- |
405 |
|
|
|
406 |
|
|
// fill adc and tdc |
407 |
|
|
|
408 |
|
|
Int_t ich,jj,kk; |
409 |
|
|
|
410 |
|
|
for (ich=0; ich<48; ich++) adc[ich] = 4095.; |
411 |
|
|
for (ich=0; ich<48; ich++) adc_c[ich] = 1000.; |
412 |
|
|
for (ich=0; ich<48; ich++) PMTcharge_arr[ich] = 1000.; |
413 |
|
|
|
414 |
pamelats |
1.2 |
|
415 |
|
|
|
416 |
|
|
if ((beta_mean < 0.05) || (beta_mean > 2.0)) { |
417 |
|
|
for (Int_t jj=0; jj<48;jj++) charge_PMT_trk[jj] = 1001.; |
418 |
|
|
for (Int_t jj=0; jj<6;jj++) charge_layer_trk[jj] = 1001.; |
419 |
|
|
for (Int_t jj=0; jj<6;jj++) layerinfo_trk[jj] = 1001.; |
420 |
|
|
charge_trk = 1001.; |
421 |
|
|
ncount_trk = 0; |
422 |
|
|
} |
423 |
|
|
|
424 |
|
|
|
425 |
|
|
if ((beta_mean > 0.05) && (beta_mean < 2.0)) { |
426 |
|
|
|
427 |
pamela |
1.1 |
Float_t betahelp = pow(beta_mean, 1.2); |
428 |
|
|
|
429 |
|
|
//======================================================================= |
430 |
|
|
|
431 |
|
|
for (Int_t ipmt=0; ipmt<L2->GetToFLevel2()->npmt() ; ipmt++){ |
432 |
|
|
ToFPMT *tofpmt = L2->GetToFLevel2()->GetToFPMT(ipmt); |
433 |
|
|
Int_t pmt_id = tofpmt->pmt_id; |
434 |
|
|
adc[pmt_id] = tofpmt->adc ; |
435 |
|
|
} |
436 |
|
|
|
437 |
|
|
//======================================================================= |
438 |
|
|
Float_t yl, yh, ym, m, b, chelp, charge; |
439 |
|
|
|
440 |
|
|
for (Int_t ipmt=0; ipmt<track->GetToFTrack()->npmtadc; ipmt++){ |
441 |
|
|
Float_t dEdx = track->GetToFTrack()->dedx[ipmt]; |
442 |
|
|
ym = dEdx*betahelp; |
443 |
|
|
Int_t pmtadc = track->GetToFTrack()->pmtadc[ipmt]; |
444 |
|
|
Int_t adcflag = track->GetToFTrack()->adcflag[ipmt]; |
445 |
|
|
L2->GetToFLevel2()->GetPMTIndex(pmtadc,jj,kk); |
446 |
|
|
if (adcflag==0) adc_c[pmtadc] = dEdx; |
447 |
|
|
|
448 |
|
|
|
449 |
pamelats |
1.2 |
if (adc[pmtadc] == 4095) adc_c[pmtadc] = 0.; |
450 |
|
|
if (adc[pmtadc] == 4095) PMTcharge_arr[pmtadc] = 0.; |
451 |
|
|
|
452 |
|
|
if ((adc[pmtadc]>PMTsat[pmtadc]) && (adc[pmtadc]<4095)) adc_c[pmtadc] = 1000.; |
453 |
pamela |
1.1 |
|
454 |
|
|
if (adc[pmtadc] < PMTsat[pmtadc]) { |
455 |
|
|
//---------------------------------------------------------------------------------------- |
456 |
|
|
if ((pmtadc!=1) && (pmtadc!=9) || (pmtadc!=28) || (pmtadc!=29) || (pmtadc!=34)) { |
457 |
|
|
|
458 |
|
|
for ( Int_t jj=0; jj<9; jj++ ){ |
459 |
|
|
x1[jj] = A0t[pmtadc][jj]+A1t[pmtadc][jj]*beta_mean+A2t[pmtadc][jj]*beta_mean*beta_mean; |
460 |
|
|
y1[jj] = C0t[pmtadc][jj]*C0t[pmtadc][jj] ; |
461 |
|
|
} |
462 |
|
|
|
463 |
|
|
TGraph *gr2 = new TGraph(n1,x1,y1); |
464 |
|
|
TSpline3 *spl2 = new TSpline3("grs",gr2); // use a cubic spline |
465 |
|
|
chelp = spl2->Eval(ym); |
466 |
pamelats |
1.3 |
if (chelp<0.) chelp=0.0001; //WM new |
467 |
pamela |
1.1 |
charge = TMath::Sqrt(chelp); |
468 |
|
|
gr2->Delete(); |
469 |
|
|
spl2->Delete(); |
470 |
|
|
PMTcharge_arr[pmtadc] = charge; |
471 |
|
|
} // pmtadc != ... |
472 |
pamelats |
1.2 |
|
473 |
pamela |
1.1 |
//---------------------------------------------------------------------------------------- |
474 |
pamelats |
1.2 |
|
475 |
pamela |
1.1 |
if ((pmtadc==1) || (pmtadc==9) || (pmtadc==28) || (pmtadc==29) || (pmtadc==34)) { |
476 |
|
|
for ( Int_t jj=0; jj<8; jj++ ){ |
477 |
|
|
yl = A0t[pmtadc][jj]+A1t[pmtadc][jj]*beta_mean+A2t[pmtadc][jj]*beta_mean*beta_mean; |
478 |
|
|
yh = A0t[pmtadc][jj+1]+A1t[pmtadc][jj+1]*beta_mean+A2t[pmtadc][jj+1]*beta_mean*beta_mean; |
479 |
|
|
if ((yl<ym)&&(ym<yh)){ |
480 |
|
|
m = (C0t[pmtadc][jj+1]*C0t[pmtadc][jj+1] - C0t[pmtadc][jj]*C0t[pmtadc][jj]) / (yh - yl); |
481 |
|
|
b = (C0t[pmtadc][jj]*C0t[pmtadc][jj]) - m*yl; |
482 |
|
|
chelp = m*ym + b; |
483 |
pamelats |
1.3 |
if (chelp<0.) chelp=0.0001; //WM new |
484 |
pamela |
1.1 |
charge= TMath::Sqrt(chelp); |
485 |
|
|
PMTcharge_arr[pmtadc] = charge; |
486 |
|
|
} |
487 |
|
|
} // jj=0..8 |
488 |
|
|
} // if pmtadc ==.... |
489 |
|
|
//---------------------------------------------------------------------------------------- |
490 |
|
|
} // adc < sat |
491 |
pamelats |
1.2 |
|
492 |
pamela |
1.1 |
} // ipmt... |
493 |
|
|
|
494 |
|
|
//==================================================================== |
495 |
|
|
//================ Find out the hitted ToF paddles =============== |
496 |
|
|
//==================================================================== |
497 |
|
|
|
498 |
|
|
for (Int_t jj=0; jj<6; jj++){ |
499 |
|
|
xv[jj]=track->GetToFTrack()->xtr_tof[jj]; |
500 |
|
|
yv[jj]=track->GetToFTrack()->ytr_tof[jj]; |
501 |
|
|
} |
502 |
|
|
|
503 |
|
|
Int_t PaddleIdOfTrack[6]; |
504 |
|
|
|
505 |
|
|
PaddleIdOfTrack[0] = L2->GetToFLevel2()->GetPaddleIdOfTrack(xv[0], yv[0], 0, 0.) ; |
506 |
|
|
PaddleIdOfTrack[1] = L2->GetToFLevel2()->GetPaddleIdOfTrack(xv[1], yv[1], 1, 0.) ; |
507 |
|
|
PaddleIdOfTrack[2] = L2->GetToFLevel2()->GetPaddleIdOfTrack(xv[2], yv[2], 2, 0.) ; |
508 |
|
|
PaddleIdOfTrack[3] = L2->GetToFLevel2()->GetPaddleIdOfTrack(xv[3], yv[3], 3, 0.) ; |
509 |
|
|
PaddleIdOfTrack[4] = L2->GetToFLevel2()->GetPaddleIdOfTrack(xv[4], yv[4], 4, 0.) ; |
510 |
|
|
PaddleIdOfTrack[5] = L2->GetToFLevel2()->GetPaddleIdOfTrack(xv[5], yv[5], 5, 0.) ; |
511 |
|
|
|
512 |
|
|
//============================================================== |
513 |
|
|
|
514 |
|
|
|
515 |
|
|
Int_t ihelp_a[6] = {0,16,28,32,36,42}; |
516 |
|
|
|
517 |
|
|
for (Int_t ilay=0; ilay<6; ilay ++) { |
518 |
|
|
Int_t jj = PaddleIdOfTrack[ilay] ; |
519 |
pamelats |
1.2 |
//Float_t xhelp = 1000.; |
520 |
|
|
Float_t xhelp = 1005.; |
521 |
pamela |
1.1 |
|
522 |
|
|
if (jj == -1) Layerinfo[ilay] = -1; |
523 |
|
|
|
524 |
|
|
if (jj != -1) { |
525 |
|
|
Int_t ih = ihelp_a[ilay] + 2*jj; |
526 |
pamelats |
1.3 |
|
527 |
|
|
// New WM |
528 |
|
|
Int_t igood1=0; |
529 |
|
|
Int_t igood2=0; |
530 |
|
|
if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih] > 0.)) igood1=1; |
531 |
|
|
if ((PMTcharge_arr[ih+1] < 1000.) && (PMTcharge_arr[ih+1] > 0.)) igood2=1; |
532 |
|
|
|
533 |
|
|
if ((PMTcharge_arr[ih]==0.) && (PMTcharge_arr[ih+1]==0.)) xhelp = 0.; |
534 |
|
|
if ((igood1==1)&&(igood2==1)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ; |
535 |
|
|
if ((igood1==1)&&(igood2==0)) xhelp = PMTcharge_arr[ih]; |
536 |
|
|
if ((igood2==1)&&(igood1==0)) xhelp = PMTcharge_arr[ih+1]; |
537 |
|
|
|
538 |
|
|
|
539 |
|
|
/* |
540 |
pamela |
1.1 |
if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ; |
541 |
|
|
if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1]==1000.)) xhelp = PMTcharge_arr[ih] ; |
542 |
|
|
if ((PMTcharge_arr[ih]==1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = PMTcharge_arr[ih+1] ; |
543 |
pamelats |
1.3 |
*/ |
544 |
pamela |
1.1 |
if (adc[ih] == 4095) Layerinfo[ilay] = Layerinfo[ilay] + 1; |
545 |
|
|
if (adc[ih+1] == 4095) Layerinfo[ilay] = Layerinfo[ilay] + 1; |
546 |
|
|
if ((adc[ih] > PMTsat[ih]) && (adc[ih] < 4095)) Layerinfo[ilay] = Layerinfo[ilay] + 10; |
547 |
|
|
if ((adc[ih+1] > PMTsat[ih+1]) && (adc[ih+1] < 4095)) Layerinfo[ilay] = Layerinfo[ilay] + 10; |
548 |
|
|
} |
549 |
|
|
Layercharge[ilay] = xhelp; |
550 |
|
|
} // ilay ... |
551 |
|
|
|
552 |
|
|
|
553 |
|
|
|
554 |
|
|
//========================================================================== |
555 |
|
|
//========================= 2nd-order correction ======================= |
556 |
|
|
//========================================================================== |
557 |
|
|
|
558 |
|
|
Float_t xb = beta_mean; |
559 |
|
|
|
560 |
|
|
for (Int_t ii=0; ii<6; ii++) { |
561 |
|
|
Int_t ic = 0; |
562 |
|
|
Float_t corr[4] = {1., 0., 0., 0.}; |
563 |
|
|
for (Int_t iii=1; iii<9; iii++) if (fabs(Layercharge[ii] - iii)<0.50) ic = iii; |
564 |
|
|
if ((ic>0)&&(ic<=5)) for (Int_t iii=0; iii<4; iii++) corr[iii] = corr_a[ic-1][iii]; |
565 |
|
|
if (ic >5) for (Int_t iii=0; iii<4; iii++) corr[iii] = corr_a[5][iii]; |
566 |
|
|
|
567 |
|
|
Float_t c_corr = corr[0]+corr[1]*xb+corr[2]*xb*xb+corr[3]*xb*xb*xb; |
568 |
|
|
|
569 |
|
|
if ((ic>0)&&(ic<=5)) c_corr = c_corr/(1.*ic) ; |
570 |
|
|
if (ic>5) c_corr = c_corr/6. ; |
571 |
|
|
|
572 |
|
|
Layercharge[ii] = Layercharge[ii]/c_corr; |
573 |
|
|
|
574 |
|
|
} |
575 |
|
|
|
576 |
|
|
//========================================================================== |
577 |
|
|
//========================================================================== |
578 |
|
|
|
579 |
pamelats |
1.2 |
|
580 |
pamela |
1.1 |
Int_t icount=0; |
581 |
|
|
Float_t charge_mean = 0.; |
582 |
|
|
for (Int_t ii=0; ii<6; ii++) { |
583 |
|
|
if (Layercharge[ii] < 1000) charge_mean = charge_mean + Layercharge[ii] ; |
584 |
|
|
if (Layercharge[ii] < 1000) icount++; |
585 |
|
|
} |
586 |
|
|
if (icount>0) charge_mean = charge_mean/(1.*icount) ; |
587 |
|
|
|
588 |
|
|
if (icount>0) { |
589 |
|
|
|
590 |
|
|
//for (Int_t ii=0; ii<6; ii++) cout<<Layercharge[ii]<<" "; |
591 |
|
|
//cout<<endl; |
592 |
|
|
|
593 |
|
|
|
594 |
|
|
vector<float> charge_v; |
595 |
|
|
Float_t charge_median = 0.; |
596 |
|
|
|
597 |
|
|
//////// get the median charge //////////// |
598 |
|
|
for(Int_t ii=0;ii<6;ii++) { |
599 |
|
|
if (Layercharge[ii] < 1000) charge_v.push_back(Layercharge[ii]); |
600 |
|
|
} |
601 |
|
|
|
602 |
|
|
std::sort(charge_v.begin(),charge_v.end()); |
603 |
|
|
charge_median = charge_v[(int)(charge_v.size()/2+charge_v.size()%2)-1]; |
604 |
|
|
|
605 |
|
|
//cout<<charge_mean<<" "<<charge_median<<endl; |
606 |
|
|
|
607 |
|
|
charge_mean = charge_median; |
608 |
|
|
|
609 |
|
|
} // icount>0 |
610 |
|
|
|
611 |
|
|
|
612 |
|
|
//--- Calculate charge for the second time, use residuals of the single |
613 |
|
|
//--- measurements to get a chi2 value |
614 |
|
|
|
615 |
|
|
Float_t w_i_arr[8] = {0.1, 0.15, 0.2, 0.25, 0.30, 0.35, 0.45, 0.50}; |
616 |
|
|
|
617 |
|
|
icount=0; |
618 |
|
|
Float_t sw=0.; |
619 |
|
|
Float_t sxw=0.; |
620 |
|
|
Float_t w_i = 1./0.5; |
621 |
|
|
Float_t resmax= 3.0; |
622 |
|
|
|
623 |
|
|
iz=1; |
624 |
|
|
if ((0.0<charge_mean) & (charge_mean<1.5)) iz=1; |
625 |
|
|
if ((1.5<charge_mean) & (charge_mean<2.5)) iz=2; |
626 |
|
|
if ((2.5<charge_mean) & (charge_mean<3.5)) iz=3; |
627 |
|
|
if ((3.5<charge_mean) & (charge_mean<4.5)) iz=4; |
628 |
|
|
if ((4.5<charge_mean) & (charge_mean<5.5)) iz=5; |
629 |
|
|
if ((5.5<charge_mean) & (charge_mean<6.5)) iz=6; |
630 |
|
|
if ((6.5<charge_mean) & (charge_mean<7.5)) iz=7; |
631 |
|
|
if ((7.5<charge_mean) & (charge_mean<90.)) iz=8; |
632 |
|
|
|
633 |
|
|
w_i = 1./w_i_arr[iz-1]; |
634 |
|
|
|
635 |
|
|
for (Int_t jj=0; jj<6;jj++){ |
636 |
|
|
if (Layercharge[jj] < 1000) { |
637 |
|
|
Float_t res = charge_mean - Layercharge[jj] ; |
638 |
|
|
if (fabs(res*w_i)<resmax) { |
639 |
|
|
icount= icount+1; |
640 |
|
|
sxw=sxw + Layercharge[jj]*w_i*w_i ; |
641 |
|
|
sw =sw + w_i*w_i ; |
642 |
|
|
} |
643 |
|
|
} |
644 |
|
|
} |
645 |
|
|
|
646 |
|
|
|
647 |
|
|
ncount = icount; |
648 |
|
|
if (icount>0) charge_chi=sxw/sw; |
649 |
|
|
|
650 |
|
|
// cout<<" => "<<icount<<" "<<charge_chi<<endl; |
651 |
|
|
|
652 |
|
|
//============================================================= |
653 |
pamelats |
1.2 |
// changed 30-01-2009 WM |
654 |
pamela |
1.1 |
|
655 |
pamelats |
1.2 |
for (Int_t jj=0; jj<48;jj++) charge_PMT_trk[jj] = PMTcharge_arr[jj]; |
656 |
pamela |
1.1 |
for (Int_t jj=0; jj<6;jj++) charge_layer_trk[jj] = Layercharge[jj]; |
657 |
|
|
for (Int_t jj=0; jj<6;jj++) layerinfo_trk[jj] = Layerinfo[jj]; |
658 |
|
|
charge_trk = charge_chi; |
659 |
|
|
ncount_trk = ncount; |
660 |
|
|
|
661 |
pamelats |
1.2 |
} // 0.05 < beta < 2.0 |
662 |
|
|
|
663 |
pamela |
1.1 |
} // if ntrk == 1 |
664 |
|
|
|
665 |
|
|
//================================================================ |
666 |
|
|
//============== Siegen version 1 ============= |
667 |
|
|
//============== standalone dEdx and beta ============= |
668 |
|
|
//================================================================ |
669 |
|
|
|
670 |
|
|
// ToF track |
671 |
|
|
ToFTrkVar *track = L2->GetToFStoredTrack(-1); |
672 |
|
|
// if(!track)return; |
673 |
|
|
if(track) { |
674 |
|
|
|
675 |
pamelats |
1.2 |
/* |
676 |
pamela |
1.1 |
Float_t PMTsat[48] = { |
677 |
|
|
3162.14, 3165.48, 3153.85, 3085.73, 3089.65, 3107.64, 3097.52, 3078.37, 3130.05, 3087.07, 3112.22, |
678 |
|
|
3102.92, 3080.58, 3092.55, 3087.94, 3125.03, 3094.09, 3143.16, |
679 |
|
|
3125.51, 3181.27, 3092.09, 3124.98, 3069.3, 3095.53, 3097.11, 3133.53, 3114.73, 3113.01, 3091.19, |
680 |
|
|
3097.99, 3033.84, 3134.98, 3081.37, 3111.04, 3066.77, 3108.17, |
681 |
|
|
3133, 3111.06, 3052.52, 3140.66, 3106.33, 3094.85, 3150.85, 3118.8, 3096.24, 3118.47,3111.36, 3117.11 |
682 |
|
|
}; |
683 |
pamelats |
1.2 |
*/ |
684 |
|
|
|
685 |
|
|
// new values from Napoli dec 2008 |
686 |
|
|
Float_t PMTsat[48] = { |
687 |
|
|
3176.35,3178.19,3167.38,3099.73,3117.00,3126.29,3111.44,3092.27, |
688 |
|
|
3146.48,3094.41,3132.13,3115.37,3099.32,3110.97,3111.80,3143.14, |
689 |
|
|
3106.72,3153.44,3136.00,3188.96,3104.73,3140.45,3073.18,3106.62, |
690 |
|
|
3112.48,3146.92,3127.24,3136.52,3109.59,3112.89,3045.15,3147.26, |
691 |
|
|
3095.92,3121.05,3083.25,3123.62,3150.92,3125.30,3067.60,3160.18, |
692 |
|
|
3119.36,3108.92,3164.77,3133.64,3111.47,3131.98,3128.87,3135.56 }; |
693 |
|
|
|
694 |
|
|
for (Int_t i=0; i<48;i++) PMTsat[i] = PMTsat[i] - 5.; // safety margin |
695 |
|
|
|
696 |
pamela |
1.1 |
|
697 |
|
|
Float_t C0t[48][9] = { |
698 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, |
699 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, |
700 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, |
701 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, |
702 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, |
703 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, |
704 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, |
705 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, |
706 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, |
707 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, |
708 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, |
709 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, |
710 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, |
711 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, |
712 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, |
713 |
|
|
0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92, 0, 1, 2, 3, 4, 5, 6, 8, 92 }; |
714 |
|
|
|
715 |
|
|
|
716 |
|
|
Float_t A0t[48][9] = { |
717 |
|
|
0, 0.707632, 5.09223, 7.99994, 11, 13, 16, 18, 2000, 0, 0.636707, 6.37524, 8, 11, 13.0002, |
718 |
|
|
16.0001, 18, 2000, 0, 0.952117, 6.04188, 7.99999, 11, 13, 16, 18, 2000, 0, 0.880805, 5.80883, |
719 |
|
|
8.00003, 11.0001, 13.0005, 16.0011, 18.0027, 2000, 0, 0.834937, 5.12617, 8, 11, 13, 16, 17.9998, |
720 |
|
|
2000, 0, 0.772954, 5.17221, 8, 11, 13, 16, 18.0006, 2000, 0, 0.911496, 5.04755, 8, 11, 13, 16, |
721 |
|
|
18, 2000, 0, 0.86523, 5.55215, 8, 11, 13, 16, 17.9999, 2000, 0, 1.06061, 5.49757, 12, 15, 20, |
722 |
|
|
25, 25, 2000, 0, 0.5, 1.8, 3, 3.8, 6.49999, 7.99996, 8.99998, 2000, 0, 1.06974, 4.86153, |
723 |
|
|
7.99999, 11, 13, 16, 18, 2000, 0, 1.0465, 6.00778, 8, 11, 13, 16, 17.9999, 2000, 0, 1.18132, |
724 |
|
|
5.48741, 8, 11, 13, 16, 17.9999, 2000, 0, 1.10823, 5.43611, 8, 11, 13, 16, 18.0001, 2000, 0, |
725 |
|
|
1.19621, 5.27647, 7.99994, 11, 13, 16, 18, 2000, 0, 1.72505, 5.14873, 8.00006, 11, 13, 16, |
726 |
|
|
17.9999, 2000, 0, 1.48515, 6.07123, 8.00006, 11, 13.0003, 16, 17.9999, 2000, 0, 1.17628, |
727 |
|
|
6.63392, 8.00011, 11, 13, 16, 17.9999, 2000, 0, 1.11301, 5.94317, 7.99999, 11, 13, 16, 18, 2000, |
728 |
|
|
0, 1.04361, 6.40789, 8.00002, 11.0002, 13.0015, 16, 17.9996, 2000, 0, 1.12658, 5.69828, 8, 11, |
729 |
|
|
13, 16, 18.0001, 2000, 0, 0.840188, 5.44945, 8.00005, 11, 13, 16, 18, 2000, 0, 1.16985, 6.21385, |
730 |
|
|
8.00012, 11, 13.0002, 16, 17.9999, 2000, 0, 0.977696, 5.70252, 8.00004, 11, 13, 16, 17.9999, |
731 |
|
|
2000, 0, 1.26298, 6.03137, 8.00003, 11, 13, 16.0009, 17.9998, 2000, 0, 0.988707, 5.98453, 8, 11, |
732 |
|
|
13, 16, 18.0001, 2000, 0, 1.22109, 6.76385, 8.00002, 11, 13.0005, 16.0001, 18.0006, 2000, 0, |
733 |
|
|
1.65541, 6.01998, 8.00006, 11.0057, 13, 16, 18, 2000, 0, 1.59779, 6.00152, 7.00005, 7.99997, |
734 |
|
|
8.99997, 14.9991, 18, 2000, 0, 1.6515, 5.95297, 7.99999, 10, 12, 14.9995, 18, 2000, 0, 1.70339, |
735 |
|
|
6.43684, 9, 12, 14, 16, 21.9999, 2000, 0, 1.64867, 5.6503, 8, 10, 12, 14.9999, 18, 2000, 0, |
736 |
|
|
1.83955, 6.64378, 9, 12, 14, 16, 22, 2000, 0, 1.71975, 6.42585, 9, 12, 14, 16, 22, 2000, 0, |
737 |
|
|
1.88735, 6.12987, 8, 10, 12, 15.0001, 18, 2000, 0, 1.86719, 5.94227, 8, 10, 12, 14.9999, 20, |
738 |
|
|
2000, 0, 2.55127, 5.83621, 8.99997, 12, 15, 17.9999, 21.9998, 2000, 0, 2.59328, 5.90275, |
739 |
|
|
8.99999, 12, 15, 18, 22, 2000, 0, 2.63523, 6.56428, 9.00004, 12, 15.0003, 18.001, 22.0029, 2000, |
740 |
|
|
0, 2.63114, 6.77412, 8.99995, 11.9998, 14.9997, 17.9996, 21.9998, 2000, 0, 2.48986, 6.43372, |
741 |
|
|
8.99996, 11.9998, 14.9995, 17.9997, 21.9995, 2000, 0, 2.43724, 6.51911, 9.00012, 12, 15, 18, |
742 |
|
|
21.9999, 2000, 0, 3.21403, 5.7, 9, 12, 15, 18, 22, 2000, 0, 3.3517, 6.30461, 8.99997, 12, 15, |
743 |
|
|
18, 22, 2000, 0, 3.0843, 5.90189, 8.99993, 12, 15, 18, 22, 2000, 0, 3.35806, 6.20792, 8.99998, |
744 |
|
|
12.0001, 15, 18, 22, 2000, 0, 3.13525, 5.60432, 8.99997, 12, 15.0001, 18, 22, 2000, 0, 3.26271, |
745 |
|
|
6.38934, 9, 12, 15, 18, 22.0001, 2000 }; |
746 |
|
|
|
747 |
|
|
Float_t A1t[48][9] = { |
748 |
|
|
0, 0.182202, -3.48762, -4.67241, -5.61872, 2.35336, -2.4112, -0.7861, 0, 0, 0.528581, -6.33244, |
749 |
|
|
0.176685, -3.3272, 5.47434, 7.62771, 18.9223, 0, 0, -0.148985, -5.31035, -3.1044, -1.84685, |
750 |
|
|
-0.678725, -0.00713058, 11.2127, 0, 0, 0.01113, -4.6759, -0.669811, 1.69435, 7.44019, 12.2231, |
751 |
|
|
26.9653, 0, 0, 0.0567585, -3.05564, -2.57264, -0.0868904, 4.88938, 2.64699, -10, 0, 0, 0.331112, |
752 |
|
|
-3.06987, -0.451796, -0.660912, 4.49088, 6.43095, 16.7904, 0, 0, 0.0779621, -2.64271, -2.29896, |
753 |
|
|
-1.95824, 1.8888, 1.02257, 10.5746, 0, 0, 0.257346, -3.93191, 0.564894, 2.04068, 4.12823, |
754 |
|
|
5.87416, 16.2268, 0, 0, -0.332593, -3.65149, 0, 10, 20, 30, 40, 0, 0, 0, 0, -0.5, 0, -6.80247, |
755 |
|
|
-9.43463, -8.44329, 0, 0, -0.25099, -2.53532, -2.43846, -2.94008, -1.01258, -1.10502, 5.16068, |
756 |
|
|
0, 0, -0.101144, -4.98664, -0.369916, 2.2648, 4.2727, 3.1653, 19.8617, 0, 0, -0.5074, -3.98429, |
757 |
|
|
-0.306633, 0.562595, 5.05787, 4.70127, 14.2399, 0, 0, -0.326603, -3.83632, -1.75409, -1.86815, |
758 |
|
|
0.84194, 1.32718, 14.4304, 0, 0, -0.597543, -3.82759, -6.9094, -2.88583, 5.50573, 4.30943, |
759 |
|
|
18.0664, 0, 0, -1.86862, -3.80777, -2.69084, -4.09258, 1.59904, 4.61543, 13.8186, 0, 0, |
760 |
|
|
-0.932447, -6.02195, -0.891975, 0.870346, 7.22131, 6.03928, 20.5102, 0, 0, -0.439221, -7.66335, |
761 |
|
|
-2.7363, -3.29581, 3.74263, 3.2571, 15.8539, 0, 0, -0.487944, -5.05733, -2.61662, -2.86336, |
762 |
|
|
2.65017, -0.919043, 7.10535, 0, 0, -0.0329559, -6.07396, -0.0044396, 2.75593, 8.87808, 14.9627, |
763 |
|
|
28.8783, 0, 0, -0.573054, -4.15302, -2.15074, -1.83499, 0.969726, 1.36361, 17.6185, 0, 0, |
764 |
|
|
0.238198, -3.75628, -1.02674, 1.12711, 3.06917, 2.61956, 11.2723, 0, 0, -0.473325, -5.88165, |
765 |
|
|
-2.10476, -0.508963, 4.24835, 6.41943, 14.9346, 0, 0, 0.0585487, -4.40372, -1.45949, 1.31992, |
766 |
|
|
4.7115, 5.03433, 11.968, 0, 0, -0.836615, -5.05945, -0.644868, 2.3894, 9.40413, 11.4195, |
767 |
|
|
25.3239, 0, 0, 0.026064, -4.78872, -0.819969, -0.57223, 1.84866, 0.29272, 15.1362, 0, 0, |
768 |
|
|
-0.659228, -6.61715, 0.371846, 4.36719, 10.657, 17.8551, 29.3359, 0, 0, -1.27483, -4.52966, |
769 |
|
|
-1.85458, -0.9634, 3.65819, 2.89211, 13.508, 0, 0, -1.49858, -5.08299, 0.103222, 3.84545, |
770 |
|
|
3.46523, -13.6535, -20, 0, 0, -1.70043, -4.92192, -2.46523, -0.681845, -2.80632, -8.55159, -20, |
771 |
|
|
0, 0, -1.85437, -5.65787, -1.56314, 0.372468, 4.54151, 2.97956, -7.90681, 0, 0, -1.78092, |
772 |
|
|
-4.19601, -1.84397, -0.175657, -2.0339, -5.64021, -20, 0, 0, -2.08786, -6.05197, -1.81875, |
773 |
|
|
-0.423923, 5.86772, 7.50042, 4.22714, 0, 0, -1.78679, -5.6835, -1.22858, -0.764359, 2.71007, |
774 |
|
|
4.16034, 4.49981, 0, 0, -2.21623, -5.39176, -0.174751, 0.19786, -1.93316, -7.45927, -20, 0, 0, |
775 |
|
|
-2.2076, -4.93708, -1.49415, 0.576195, 0.552502, -5.02466, -18, 0, 0, -3.95472, -4.97236, |
776 |
|
|
-5.73642, -7.17611, -8.40014, -10.7071, -13.5198, 0, 0, -3.98713, -4.90269, -4.51467, -4.74549, |
777 |
|
|
-5.13124, -6.02539, -4.36386, 0, 0, -4.09193, -6.36148, -1.92129, 0.535293, 4.36379, 8.09335, |
778 |
|
|
21.4513, 0, 0, -4.09301, -6.86077, -8.51634, -10.7671, -15.4194, -19.8748, -18.2532, 0, 0, |
779 |
|
|
-3.66083, -6.39249, -8.20002, -12.5867, -18.523, -21.1403, -22.5493, 0, 0, -3.66449, -6.84751, |
780 |
|
|
-3.49245, -4.82854, 0.21682, 0.54105, -16.1417, 0, 0, -5.55283, -4.22, -4.20093, -2.0392, |
781 |
|
|
-1.493, 0.481244, 6.28662, 0, 0, -5.93701, -5.45729, -6.95403, -6.68625, -5.13187, -5.10613, |
782 |
|
|
-2.64945, 0, 0, -5.25381, -4.94071, -7.72978, -4.67849, -4.74316, -3.91651, 1.17451, 0, 0, |
783 |
|
|
-6.01523, -5.33454, -6.26672, -5.88745, -8.91118, -11.1342, -7.91073, 0, 0, -5.53583, -4.3686, |
784 |
|
|
-8.88023, -6.36106, -4.70941, -3.2139, -0.381882, 0, 0, -5.7646, -6.25807, -5.12981, -1.5055, |
785 |
|
|
-1.11425, -0.388791, 8.42188, 0 } ; |
786 |
|
|
|
787 |
|
|
Float_t A2t[48][9] = { |
788 |
|
|
0, 0.317852, 2.46394, 4.35287, 6.69993, 1.37704, 9.38636, 22.3426, 0, 0, 0.0270999, 4.03858, |
789 |
|
|
0.614142, 7.64715, 3, 4.55046, 9.46688, 0, 0, 0.422802, 3.25444, 2.83067, 3.78916, 7.15528, |
790 |
|
|
9.61404, 9.53181, 0, 0, 0.27719, 2.81849, 2, 3, 3, 3, 3, 0, 0, 0.257138, 1.96682, 2.66388, |
791 |
|
|
2.02686, 0.981737, 7.07876, 32, 0, 0, 0.0777448, 1.95238, 0.591915, 3.36314, 1.71777, 3.1121, 3, |
792 |
|
|
0, 0, 0.201297, 1.54333, 2.06343, 3.81529, 3.47056, 7.66122, 10.2165, 0, 0, 0.090275, 2.35456, |
793 |
|
|
0.150419, 1.48979, 4.43331, 6.09798, 9.59925, 0, 0, 0.472466, 2.2568, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
794 |
|
|
0, 0, 5.8114, 8.76464, 11.718, 0, 0, 0.369669, 1.66502, 2.21937, 4.8545, 6.71778, 9.52608, |
795 |
|
|
13.5645, 0, 0, 0.278447, 3.03196, 0.562358, 0.978803, 4.19387, 9.26949, 4.33973, 0, 0, 0.488781, |
796 |
|
|
2.52383, 0.674871, 2.54554, 2.33603, 6.75428, 10.7769, 0, 0, 0.396462, 2.42949, 1.33035, 3.9579, |
797 |
|
|
4.98889, 7.41728, 8.78462, 0, 0, 0.616543, 2.39152, 7.13157, 4.52173, 0.795959, 5.05895, |
798 |
|
|
3.58876, 0, 0, 1.3407, 2.54098, 2, 7.35567, 6.08494, 6.47321, 6.60084, 0, 0, 0.855061, 3.97328, |
799 |
|
|
2, 3, 3, 10.1946, 7.06782, 0, 0, 0.492265, 5.11681, 2, 2.24085, 0.00142742, 3.12852, 1.94308, 0, |
800 |
|
|
0, 0.594536, 3.10529, 2.07652, 4.86122, 2.7748, 10.0368, 14.8149, 0, 0, 0.220041, 3.69287, 2, 3, |
801 |
|
|
3, 0.0668348, 0.124322, 0, 0, 0.652342, 2.52474, 1.92129, 3.97957, 5.4076, 8.66393, 5.53485, 0, |
802 |
|
|
0, 0.109911, 2.37426, 2, 2.09403, 4.25338, 7.64627, 8.96803, 0, 0, 0.503317, 3.66579, 2, 3, 3, |
803 |
|
|
3.95553, 7.79201, 0, 0, 0.18358, 2.71524, 2, 1.64493, 2.67235, 6.00813, 13.3661, 0, 0, 0.762639, |
804 |
|
|
3.10968, 2, 1.79493, 0.0228019, 3, 6.68329, 0, 0, 0.218363, 2.87712, 0.218535, 3, 4.57375, |
805 |
|
|
9.68986, 4.89219, 0, 0, 0.675406, 4.00709, 2, 1.07325, 3, 0.182969, 8.20433, 0, 0, 0.991549, |
806 |
|
|
2.68269, 2, 3.876, 2.94015, 6.72011, 7.03988, 0, 0, 1.02743, 3.12518, 2, 2.20294, 6.63646, |
807 |
|
|
22.0153, 35, 0, 0, 1.18885, 3.01461, 2.30242, 3.46316, 8.98077, 16.6101, 35, 0, 0, 1.47119, |
808 |
|
|
3.24004, 1.07333, 2.31147, 2.98418, 9.99881, 28.0778, 0, 0, 1.28408, 2.55246, 1.49292, 3.01143, |
809 |
|
|
8.45419, 13.2062, 35, 0, 0, 1.56497, 3.35834, 0.73553, 3, 2.13162, 5.84836, 18.6428, 0, 0, |
810 |
|
|
1.39782, 3.19843, 0.593735, 3.34643, 4.22204, 6.78619, 12.8529, 0, 0, 1.46182, 3.30186, |
811 |
|
|
0.0348858, 3.87061, 9.87769, 16.8741, 35, 0, 0, 1.50597, 3.03838, 1.62411, 2.96043, 7.1428, |
812 |
|
|
15.4035, 35, 0, 0, 2.6053, 2.92019, 3.8816, 7.13833, 9.84022, 13.4445, 22.2018, 0, 0, 2.58901, |
813 |
|
|
2.74623, 2.66245, 5.37385, 8.40354, 11.6502, 17.4423, 0, 0, 2.65151, 3.592, 2, 3, 3, 3, 3, 0, 0, |
814 |
|
|
2.65586, 3.87903, 6.12175, 9.92231, 16.1427, 21.4766, 21.4604, 0, 0, 2.38768, 3.77375, 5.67703, |
815 |
|
|
11.8596, 18.8674, 20.8655, 24.5083, 0, 0, 2.40258, 4.1273, 2, 5.81564, 2.29756, 4.40615, |
816 |
|
|
32.3639, 0, 0, 3.54156, 2.13, 2.79762, 2.76993, 4.67104, 5.20053, 8.36394, 0, 0, 3.76292, |
817 |
|
|
2.83393, 5.30926, 6.67988, 7.35393, 9.46522, 14.8599, 0, 0, 3.37723, 2.74166, 6.71253, 5.63259, |
818 |
|
|
8.42885, 9.99872, 14.8742, 0, 0, 3.83378, 2.79501, 4.78642, 5.94201, 11.4635, 14.7442, 16.5806, |
819 |
|
|
0, 0, 3.59181, 2.3773, 7.14813, 5.60101, 6.47122, 6.64957, 14.2374, 0, 0, 3.68523, 3.54382, |
820 |
|
|
3.92867, 2.18506, 5.56025, 7.75895, 7.448, 0 } ; |
821 |
|
|
|
822 |
|
|
|
823 |
|
|
// S115B failure: 1158700000 // 2006-09-19 21:06:40 UTC |
824 |
|
|
|
825 |
pamelats |
1.2 |
if (time < 1158700000.) { // first workaround: just use calibration of PMT S115A |
826 |
pamela |
1.1 |
for ( Int_t jj=0; jj<9; jj++ ){ |
827 |
|
|
A0t[9][jj] = A0t[8][jj] ; |
828 |
|
|
A1t[9][jj] = A1t[8][jj] ; |
829 |
|
|
A2t[9][jj] = A2t[8][jj] ; |
830 |
|
|
} |
831 |
|
|
} // if time... |
832 |
|
|
|
833 |
|
|
|
834 |
|
|
// 2nd-order correction |
835 |
|
|
Float_t corr_a[6][4] = { |
836 |
|
|
0.551894 , 2.24353 , -3.35885 , 1.51401 , 0.915691 , 4.83967 , -6.85389 , 3.13679 , |
837 |
|
|
1.84338 , 5.63517 , -8.41577 , 4.04055 , 1.51216 , 11.3233 , -16.2119 , 7.45008 , |
838 |
|
|
1.50481 , 15.2538 , -21.2003 , 9.51127 , 1.82038 , 17.5336 , -23.5512 , 10.3036 }; |
839 |
|
|
|
840 |
|
|
//--------------------------------------------------------------------- |
841 |
|
|
|
842 |
|
|
Float_t xv[6],yv[6]; |
843 |
|
|
Int_t iz; |
844 |
|
|
|
845 |
|
|
Float_t x1[9],y1[9]; |
846 |
|
|
Int_t n1 = 9; |
847 |
|
|
|
848 |
pamelats |
1.2 |
Float_t Layercharge[6] = {1005., 1005., 1005., 1005., 1005., 1005. }; |
849 |
|
|
|
850 |
pamela |
1.1 |
Int_t Layerinfo[6] = {0, 0, 0, 0, 0, 0 }; |
851 |
|
|
|
852 |
pamelats |
1.2 |
Float_t adc[48],adc_c[48],PMTcharge_arr[48]; |
853 |
|
|
|
854 |
|
|
Float_t beta_mean = fabs(track->beta[12]); |
855 |
pamela |
1.1 |
|
856 |
pamelats |
1.2 |
// New!! If "beta_in" != 100. then overwrite beta_mean with beta_in |
857 |
|
|
if (beta_in != 100.) beta_mean=beta_in; |
858 |
pamela |
1.1 |
|
859 |
|
|
Int_t ncount=0; |
860 |
|
|
Float_t charge_chi=1000.; |
861 |
|
|
|
862 |
|
|
|
863 |
|
|
//------------------------------------------------------------- |
864 |
|
|
|
865 |
|
|
// fill adc and tdc |
866 |
|
|
|
867 |
|
|
Int_t ich,jj,kk; |
868 |
|
|
|
869 |
|
|
for (ich=0; ich<48; ich++) adc[ich] = 4095.; |
870 |
|
|
for (ich=0; ich<48; ich++) adc_c[ich] = 1000.; |
871 |
|
|
for (ich=0; ich<48; ich++) PMTcharge_arr[ich] = 1000.; |
872 |
|
|
|
873 |
pamelats |
1.2 |
|
874 |
|
|
if ((beta_mean < 0.05) || (beta_mean > 2.0)) { |
875 |
|
|
for (Int_t jj=0; jj<48;jj++) charge_PMT_std[jj] = 1001.; |
876 |
|
|
for (Int_t jj=0; jj<6;jj++) charge_layer_std[jj] = 1001.; |
877 |
|
|
for (Int_t jj=0; jj<6;jj++) layerinfo_std[jj] = 1001.; |
878 |
|
|
charge_std = 1001.; |
879 |
|
|
ncount_std = 0; |
880 |
|
|
} |
881 |
|
|
|
882 |
|
|
|
883 |
|
|
if ((beta_mean > 0.05) && (beta_mean < 2.0)) { |
884 |
|
|
|
885 |
pamela |
1.1 |
Float_t betahelp = pow(beta_mean, 1.2); |
886 |
|
|
|
887 |
|
|
//======================================================================= |
888 |
|
|
|
889 |
|
|
for (Int_t ipmt=0; ipmt<L2->GetToFLevel2()->npmt() ; ipmt++){ |
890 |
|
|
ToFPMT *tofpmt = L2->GetToFLevel2()->GetToFPMT(ipmt); |
891 |
|
|
Int_t pmt_id = tofpmt->pmt_id; |
892 |
|
|
adc[pmt_id] = tofpmt->adc ; |
893 |
|
|
} |
894 |
|
|
|
895 |
|
|
//======================================================================= |
896 |
|
|
|
897 |
|
|
Float_t yl, yh, ym, m, b, chelp, charge; |
898 |
|
|
|
899 |
|
|
|
900 |
|
|
for (Int_t ipmt=0; ipmt<track->npmtadc; ipmt++){ |
901 |
|
|
Float_t dEdx = track->dedx[ipmt]; |
902 |
|
|
ym = dEdx*betahelp; |
903 |
|
|
Int_t pmtadc = track->pmtadc[ipmt]; |
904 |
|
|
Int_t adcflag = track->adcflag[ipmt]; |
905 |
|
|
L2->GetToFLevel2()->GetPMTIndex(pmtadc,jj,kk); |
906 |
|
|
if (adcflag==0) adc_c[pmtadc] = dEdx; |
907 |
pamelats |
1.2 |
|
908 |
|
|
if (adc[pmtadc] == 4095) adc_c[pmtadc] = 0.; |
909 |
|
|
if (adc[pmtadc] == 4095) PMTcharge_arr[pmtadc] = 0.; |
910 |
|
|
|
911 |
|
|
if ((adc[pmtadc]>PMTsat[pmtadc]) && (adc[pmtadc]<4095)) adc_c[pmtadc] = 1000.; |
912 |
pamela |
1.1 |
|
913 |
|
|
if (adc[pmtadc] < PMTsat[pmtadc]) { |
914 |
|
|
|
915 |
|
|
if ((pmtadc!=4) && (pmtadc!=8) || (pmtadc!=28) || (pmtadc!=31) || (pmtadc!=34) || (pmtadc!=39) && (pmtadc!=41) || (pmtadc!=46)) { |
916 |
|
|
|
917 |
|
|
for ( Int_t jj=0; jj<9; jj++ ){ |
918 |
|
|
x1[jj] = A0t[pmtadc][jj]+A1t[pmtadc][jj]*beta_mean+A2t[pmtadc][jj]*beta_mean*beta_mean; |
919 |
|
|
y1[jj] = C0t[pmtadc][jj]*C0t[pmtadc][jj] ; |
920 |
|
|
// cout<<x1[jj]<<" "<<y1[jj]<<" "; |
921 |
|
|
} |
922 |
|
|
// cout<<endl; |
923 |
|
|
|
924 |
|
|
|
925 |
|
|
TGraph *gr2 = new TGraph(n1,x1,y1); |
926 |
|
|
TSpline3 *spl2 = new TSpline3("grs",gr2); // use a cubic spline |
927 |
|
|
chelp = spl2->Eval(ym); |
928 |
pamelats |
1.3 |
if (chelp<0.) chelp=0.0001; //WM new |
929 |
pamela |
1.1 |
charge = TMath::Sqrt(chelp); |
930 |
|
|
|
931 |
|
|
gr2->Delete(); |
932 |
|
|
spl2->Delete(); |
933 |
|
|
PMTcharge_arr[pmtadc] = charge; |
934 |
|
|
} // pmtadc != ... |
935 |
|
|
|
936 |
|
|
if ((pmtadc==4) && (pmtadc==8) || (pmtadc==28) || (pmtadc==31) || (pmtadc==34) || (pmtadc==39) && (pmtadc==41) || (pmtadc==46)) { |
937 |
|
|
for ( Int_t jj=0; jj<8; jj++ ){ |
938 |
|
|
yl = A0t[pmtadc][jj]+A1t[pmtadc][jj]*beta_mean+A2t[pmtadc][jj]*beta_mean*beta_mean; |
939 |
|
|
yh = A0t[pmtadc][jj+1]+A1t[pmtadc][jj+1]*beta_mean+A2t[pmtadc][jj+1]*beta_mean*beta_mean; |
940 |
|
|
if ((yl<ym)&&(ym<yh)){ |
941 |
|
|
m = (C0t[pmtadc][jj+1]*C0t[pmtadc][jj+1] - C0t[pmtadc][jj]*C0t[pmtadc][jj]) / (yh - yl); |
942 |
|
|
b = (C0t[pmtadc][jj]*C0t[pmtadc][jj]) - m*yl; |
943 |
|
|
chelp = m*ym + b; |
944 |
pamelats |
1.3 |
if (chelp<0.) chelp=0.0001; //WM new |
945 |
pamela |
1.1 |
charge= TMath::Sqrt(chelp); |
946 |
|
|
PMTcharge_arr[pmtadc] = charge; |
947 |
|
|
} |
948 |
|
|
} // jj=0..8 |
949 |
|
|
} // if pmtadc ==.... |
950 |
|
|
|
951 |
|
|
} // adc < sat |
952 |
|
|
} // ipmt... |
953 |
|
|
|
954 |
|
|
|
955 |
|
|
//==================================================================== |
956 |
|
|
//============= Check ToF standalone using HitPaddle =================== |
957 |
|
|
//==================================================================== |
958 |
|
|
|
959 |
|
|
Int_t PaddleIdOfTrack[6] = {-1, -1, -1, -1, -1, -1};; |
960 |
|
|
|
961 |
|
|
for(jj=0; jj<8; jj++){ |
962 |
|
|
Int_t HitPad = L2->GetToFLevel2()->HitPaddle(0,jj); |
963 |
|
|
if (HitPad==1) PaddleIdOfTrack[0] = jj; |
964 |
|
|
} |
965 |
|
|
for(jj=0; jj<6; jj++){ |
966 |
|
|
Int_t HitPad = L2->GetToFLevel2()->HitPaddle(1,jj); |
967 |
|
|
if (HitPad==1) PaddleIdOfTrack[1] = jj; |
968 |
|
|
} |
969 |
|
|
|
970 |
|
|
|
971 |
|
|
for(jj=0; jj<2; jj++){ |
972 |
|
|
Int_t HitPad = L2->GetToFLevel2()->HitPaddle(2,jj); |
973 |
|
|
if (HitPad==1) PaddleIdOfTrack[2] = jj; |
974 |
|
|
} |
975 |
|
|
for(jj=0; jj<2; jj++){ |
976 |
|
|
Int_t HitPad = L2->GetToFLevel2()->HitPaddle(3,jj); |
977 |
|
|
if (HitPad==1) PaddleIdOfTrack[3] = jj; |
978 |
|
|
} |
979 |
|
|
|
980 |
|
|
for(jj=0; jj<3; jj++){ |
981 |
|
|
Int_t HitPad = L2->GetToFLevel2()->HitPaddle(4,jj); |
982 |
|
|
if (HitPad==1) PaddleIdOfTrack[4] = jj; |
983 |
|
|
} |
984 |
|
|
for(jj=0; jj<3; jj++){ |
985 |
|
|
Int_t HitPad = L2->GetToFLevel2()->HitPaddle(5,jj); |
986 |
|
|
if (HitPad==1) PaddleIdOfTrack[5] = jj; |
987 |
|
|
} |
988 |
|
|
|
989 |
|
|
//============================================================== |
990 |
|
|
|
991 |
|
|
|
992 |
|
|
Int_t ihelp_a[6] = {0,16,28,32,36,42}; |
993 |
|
|
|
994 |
|
|
for (Int_t ilay=0; ilay<6; ilay ++) { |
995 |
|
|
Int_t jj = PaddleIdOfTrack[ilay] ; |
996 |
pamelats |
1.2 |
//Float_t xhelp = 1000.; |
997 |
|
|
Float_t xhelp = 1005.; |
998 |
pamela |
1.1 |
|
999 |
|
|
if (jj == -1) Layerinfo[ilay] = -1; |
1000 |
|
|
|
1001 |
|
|
if (jj != -1) { |
1002 |
|
|
Int_t ih = ihelp_a[ilay] + 2*jj; |
1003 |
pamelats |
1.3 |
|
1004 |
|
|
// New WM |
1005 |
|
|
Int_t igood1=0; |
1006 |
|
|
Int_t igood2=0; |
1007 |
|
|
if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih] > 0.)) igood1=1; |
1008 |
|
|
if ((PMTcharge_arr[ih+1] < 1000.) && (PMTcharge_arr[ih+1] > 0.)) igood2=1; |
1009 |
|
|
|
1010 |
|
|
if ((PMTcharge_arr[ih]==0.) && (PMTcharge_arr[ih+1]==0.)) xhelp = 0.; |
1011 |
|
|
if ((igood1==1)&&(igood2==1)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ; |
1012 |
|
|
if ((igood1==1)&&(igood2==0)) xhelp = PMTcharge_arr[ih]; |
1013 |
|
|
if ((igood2==1)&&(igood1==0)) xhelp = PMTcharge_arr[ih+1]; |
1014 |
|
|
|
1015 |
|
|
|
1016 |
|
|
/* |
1017 |
pamela |
1.1 |
if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = 0.5*(PMTcharge_arr[ih]+PMTcharge_arr[ih+1]) ; |
1018 |
|
|
if ((PMTcharge_arr[ih] < 1000.) && (PMTcharge_arr[ih+1]==1000.)) xhelp = PMTcharge_arr[ih] ; |
1019 |
|
|
if ((PMTcharge_arr[ih]==1000.) && (PMTcharge_arr[ih+1] < 1000.)) xhelp = PMTcharge_arr[ih+1] ; |
1020 |
pamelats |
1.3 |
*/ |
1021 |
pamela |
1.1 |
|
1022 |
|
|
if (adc[ih] == 4095) Layerinfo[ilay] = Layerinfo[ilay] + 1; |
1023 |
|
|
if (adc[ih+1] == 4095) Layerinfo[ilay] = Layerinfo[ilay] + 1; |
1024 |
|
|
if ((adc[ih] > PMTsat[ih]) && (adc[ih] < 4095)) Layerinfo[ilay] = Layerinfo[ilay] + 10; |
1025 |
|
|
if ((adc[ih+1] > PMTsat[ih+1]) && (adc[ih+1] < 4095)) Layerinfo[ilay] = Layerinfo[ilay] + 10; |
1026 |
|
|
|
1027 |
|
|
|
1028 |
|
|
} |
1029 |
|
|
Layercharge[ilay] = xhelp; |
1030 |
|
|
} // ilay ... |
1031 |
|
|
|
1032 |
|
|
|
1033 |
|
|
//cout<<"Std: "; |
1034 |
|
|
//for (Int_t ilay=0; ilay<6; ilay ++) cout<<Layercharge[ilay]<<" "; |
1035 |
|
|
|
1036 |
|
|
//========================================================================== |
1037 |
|
|
//========================= 2nd-order correction ======================= |
1038 |
|
|
//========================================================================== |
1039 |
|
|
|
1040 |
|
|
Float_t xb = beta_mean; |
1041 |
|
|
|
1042 |
|
|
for (Int_t ii=0; ii<6; ii++) { |
1043 |
|
|
Int_t ic = 0; |
1044 |
|
|
Float_t corr[4] = {1., 0., 0., 0.}; |
1045 |
pamelats |
1.2 |
//for (Int_t iii=1; iii<9; iii++) if (fabs(Layercharge[ii] - iii)<0.50) ic = iii; |
1046 |
|
|
for (Int_t iii=1; iii<10; iii++) if (fabs(Layercharge[ii] - iii)<0.50) ic = iii; |
1047 |
pamela |
1.1 |
if ((ic>0)&&(ic<=5)) for (Int_t iii=0; iii<4; iii++) corr[iii] = corr_a[ic-1][iii]; |
1048 |
|
|
if (ic >5) for (Int_t iii=0; iii<4; iii++) corr[iii] = corr_a[5][iii]; |
1049 |
|
|
|
1050 |
|
|
Float_t c_corr = corr[0]+corr[1]*xb+corr[2]*xb*xb+corr[3]*xb*xb*xb; |
1051 |
|
|
|
1052 |
|
|
if ((ic>0)&&(ic<=5)) c_corr = c_corr/(1.*ic) ; |
1053 |
|
|
if (ic>5) c_corr = c_corr/6. ; |
1054 |
|
|
|
1055 |
pamelats |
1.2 |
//cout<<Layercharge[ii]<<" "<<ic<<" "<<c_corr<<" => "; |
1056 |
pamela |
1.1 |
Layercharge[ii] = Layercharge[ii]/c_corr; |
1057 |
pamelats |
1.2 |
//cout<<Layercharge[ii]<<endl; |
1058 |
pamela |
1.1 |
|
1059 |
|
|
} |
1060 |
|
|
|
1061 |
pamelats |
1.2 |
|
1062 |
pamela |
1.1 |
//========================================================================== |
1063 |
pamelats |
1.2 |
//cout<<"In ToFNuclei Std: "; |
1064 |
|
|
//for (Int_t ilay=0; ilay<6; ilay ++) cout<<Layercharge[ilay]<<" "; |
1065 |
|
|
//cout<<endl; |
1066 |
pamela |
1.1 |
//========================================================================== |
1067 |
|
|
|
1068 |
|
|
|
1069 |
|
|
Int_t icount=0; |
1070 |
|
|
Float_t charge_mean = 0.; |
1071 |
|
|
for (Int_t ii=0; ii<6; ii++) { |
1072 |
|
|
if (Layercharge[ii] < 1000) charge_mean = charge_mean + Layercharge[ii] ; |
1073 |
|
|
if (Layercharge[ii] < 1000) icount++; |
1074 |
|
|
} |
1075 |
|
|
if (icount>0) charge_mean = charge_mean/(1.*icount) ; |
1076 |
|
|
|
1077 |
pamelats |
1.2 |
if (icount>0) { |
1078 |
|
|
|
1079 |
|
|
//for (Int_t ii=0; ii<6; ii++) cout<<Layercharge[ii]<<" "; |
1080 |
|
|
//cout<<endl; |
1081 |
|
|
|
1082 |
|
|
|
1083 |
|
|
vector<float> charge_v; |
1084 |
|
|
Float_t charge_median = 0.; |
1085 |
|
|
|
1086 |
|
|
//////// get the median charge //////////// |
1087 |
|
|
for(Int_t ii=0;ii<6;ii++) { |
1088 |
|
|
if (Layercharge[ii] < 1000) charge_v.push_back(Layercharge[ii]); |
1089 |
|
|
} |
1090 |
|
|
|
1091 |
|
|
std::sort(charge_v.begin(),charge_v.end()); |
1092 |
|
|
charge_median = charge_v[(int)(charge_v.size()/2+charge_v.size()%2)-1]; |
1093 |
|
|
|
1094 |
|
|
//cout<<charge_mean<<" "<<charge_median<<endl; |
1095 |
|
|
|
1096 |
|
|
charge_mean = charge_median; |
1097 |
|
|
|
1098 |
|
|
} // icount>0 |
1099 |
pamela |
1.1 |
|
1100 |
|
|
//--- Calculate charge for the second time, use residuals of the single |
1101 |
|
|
//--- measurements to get a chi2 value |
1102 |
|
|
|
1103 |
|
|
// Float_t w_i_arr[8] = {0.1, 0.15, 0.2, 0.25, 0.30, 0.35, 0.45, 0.50}; |
1104 |
|
|
Float_t w_i_arr[8] = {0.1, 0.15, 0.2, 0.25, 0.35, 0.40, 0.50, 0.55}; |
1105 |
|
|
|
1106 |
|
|
icount=0; |
1107 |
|
|
Float_t sw=0.; |
1108 |
|
|
Float_t sxw=0.; |
1109 |
|
|
Float_t w_i = 1./0.5; |
1110 |
|
|
Float_t resmax= 3.0; |
1111 |
|
|
|
1112 |
|
|
iz=1; |
1113 |
|
|
if ((0.0<charge_mean) & (charge_mean<1.5)) iz=1; |
1114 |
|
|
if ((1.5<charge_mean) & (charge_mean<2.5)) iz=2; |
1115 |
|
|
if ((2.5<charge_mean) & (charge_mean<3.5)) iz=3; |
1116 |
|
|
if ((3.5<charge_mean) & (charge_mean<4.5)) iz=4; |
1117 |
|
|
if ((4.5<charge_mean) & (charge_mean<5.5)) iz=5; |
1118 |
|
|
if ((5.5<charge_mean) & (charge_mean<6.5)) iz=6; |
1119 |
|
|
if ((6.5<charge_mean) & (charge_mean<7.5)) iz=7; |
1120 |
|
|
if ((7.5<charge_mean) & (charge_mean<90.)) iz=8; |
1121 |
|
|
|
1122 |
|
|
w_i = 1./w_i_arr[iz-1]; |
1123 |
|
|
|
1124 |
|
|
|
1125 |
|
|
for (Int_t jj=0; jj<6;jj++){ |
1126 |
|
|
if (Layercharge[jj] < 1000) { |
1127 |
|
|
Float_t res = charge_mean - Layercharge[jj] ; |
1128 |
|
|
if (fabs(res*w_i)<resmax) {; |
1129 |
|
|
icount= icount+1; |
1130 |
|
|
sxw=sxw + Layercharge[jj]*w_i*w_i ; |
1131 |
|
|
sw =sw + w_i*w_i ; |
1132 |
|
|
} |
1133 |
|
|
} |
1134 |
|
|
} |
1135 |
|
|
|
1136 |
|
|
if (icount>0) charge_chi=sxw/sw; |
1137 |
|
|
|
1138 |
|
|
ncount = icount; |
1139 |
|
|
|
1140 |
|
|
//cout<<" => "<<icount<<" "<<charge_chi<<endl; |
1141 |
|
|
|
1142 |
|
|
|
1143 |
|
|
// charge_tof = charge_chi; |
1144 |
|
|
|
1145 |
pamelats |
1.2 |
// changed 30-01-2009 WM |
1146 |
pamela |
1.1 |
|
1147 |
pamelats |
1.2 |
for (Int_t jj=0; jj<48;jj++) charge_PMT_std[jj] = PMTcharge_arr[jj]; |
1148 |
pamela |
1.1 |
for (Int_t jj=0; jj<6;jj++) charge_layer_std[jj] = Layercharge[jj]; |
1149 |
|
|
for (Int_t jj=0; jj<6;jj++) layerinfo_std[jj] = Layerinfo[jj]; |
1150 |
|
|
charge_std = charge_chi; |
1151 |
|
|
ncount_std = ncount; |
1152 |
|
|
|
1153 |
pamelats |
1.2 |
} // 0.05 < fabs( beta) < 2.0 |
1154 |
|
|
|
1155 |
|
|
|
1156 |
pamela |
1.1 |
} // standalone track found |
1157 |
|
|
|
1158 |
|
|
} |