]>
Commit | Line | Data |
---|---|---|
3a8be91c | 1 | // Script to create reconstruction parameters and store them into CDB |
2 | // Author: Yuri Kharlov | |
3 | ||
4 | /* $Id$ */ | |
5 | ||
6 | #if !defined(__CINT__) | |
7 | #include "TControlBar.h" | |
8 | #include "TString.h" | |
9 | ||
10 | #include "AliEMCALRecParam.h" | |
11 | #include "AliCDBMetaData.h" | |
12 | #include "AliCDBId.h" | |
13 | #include "AliCDBEntry.h" | |
14 | #include "AliCDBManager.h" | |
15 | #include "AliCDBStorage.h" | |
16 | #endif | |
17 | ||
18 | ||
88cf6bfb | 19 | void AliEMCALSetRecParamCDB(AliRecoParam::EventSpecie_t default = AliRecoParam::kLowMult) |
3a8be91c | 20 | { |
1e7c9b89 | 21 | |
3a8be91c | 22 | // Create an object AliEMCALRecParam and store it to OCDB |
1e7c9b89 | 23 | |
413e6b81 | 24 | //Activate CDB storage |
25 | AliCDBManager* cdb = AliCDBManager::Instance(); | |
3aa21746 | 26 | if(!cdb->IsDefaultStorageSet()) cdb->SetDefaultStorage("local://$ALICE_ROOT/OCDB"); |
1e7c9b89 | 27 | |
3a8be91c | 28 | // Create reconstruction parameter object and set parameter values |
413e6b81 | 29 | TObjArray* recParamArray = new TObjArray(); |
1e7c9b89 | 30 | |
c8a7579b | 31 | { |
32 | //default | |
1e7c9b89 | 33 | //AliEMCALRecParam *recParamDB = AliEMCALRecParam::GetDefaultParameters(); |
e658398a | 34 | AliEMCALRecParam *recParamDB = GetLowMultiplicityParameters(); |
35 | recParamDB->SetName("Default - p+p"); | |
36 | recParamDB->SetTitle("Default - p+p"); | |
c8a7579b | 37 | //Add to the recParamArray |
38 | recParamDB->SetEventSpecie(AliRecoParam::kDefault); | |
39 | recParamArray->AddLast(recParamDB); | |
88cf6bfb | 40 | |
c8a7579b | 41 | } |
1e7c9b89 | 42 | |
413e6b81 | 43 | //Add other options here, if desired, for |
44 | //Cosmic, LowMult and HighMult type events | |
45 | //and add them to the array | |
1e7c9b89 | 46 | |
c8a7579b | 47 | { |
48 | //For now, default is Pb+Pb, but let's add it again as | |
49 | //the "high mult" version too... | |
1e7c9b89 | 50 | //AliEMCALRecParam *recParamDB = AliEMCALRecParam::GetHighFluxParam(); |
51 | AliEMCALRecParam *recParamDB = GetHighMultiplicityParameters(); | |
52 | recParamDB->SetName("High Flux - Pb+Pb"); | |
53 | recParamDB->SetTitle("High Flux - Pb+Pb"); | |
c8a7579b | 54 | recParamDB->SetEventSpecie(AliRecoParam::kHighMult); |
55 | recParamArray->AddLast(recParamDB); | |
56 | } | |
1e7c9b89 | 57 | |
c8a7579b | 58 | { |
59 | //Low multiplicity parameter modifications: | |
1e7c9b89 | 60 | //AliEMCALRecParam *recParamDB = AliEMCALRecParam::GetLowFluxParam(); |
61 | AliEMCALRecParam *recParamDB = GetLowMultiplicityParameters(); | |
62 | recParamDB->SetName("Low Flux - p+p"); | |
63 | recParamDB->SetTitle("Low Flux - p+p"); | |
c8a7579b | 64 | recParamDB->SetEventSpecie(AliRecoParam::kLowMult); |
65 | recParamArray->AddLast(recParamDB); | |
66 | ||
67 | } | |
1e7c9b89 | 68 | |
98cf874d | 69 | { |
1e7c9b89 | 70 | //Cosmic parameter modifications (same as low multiplicity): |
71 | //AliEMCALRecParam *recParamDB = AliEMCALRecParam::GetLowFluxParam(); | |
72 | AliEMCALRecParam *recParamDB = GetLowMultiplicityParameters(); | |
73 | recParamDB->SetName("Cosmic"); | |
74 | recParamDB->SetTitle("Cosmic"); | |
75 | recParamDB->SetEventSpecie(AliRecoParam::kCosmic); | |
76 | recParamArray->AddLast(recParamDB); | |
77 | ||
98cf874d | 78 | } |
1e7c9b89 | 79 | |
98cf874d | 80 | { |
1e7c9b89 | 81 | //Calib parameter modifications (same as low multiplicity): |
82 | //AliEMCALRecParam *recParamDB = AliEMCALRecParam::GetLowFluxParam(); | |
83 | AliEMCALRecParam *recParamDB = GetLowMultiplicityParameters(); | |
84 | recParamDB->SetName("Calibration - LED"); | |
85 | recParamDB->SetTitle("Calibration - LED"); | |
86 | recParamDB->SetEventSpecie(AliRecoParam::kCalib); | |
87 | recParamArray->AddLast(recParamDB); | |
88 | ||
89 | } | |
90 | ||
413e6b81 | 91 | //Set the default version in the array |
92 | Bool_t defaultIsSet = kFALSE; | |
93 | for(Int_t i = 0; i < recParamArray->GetEntriesFast(); i++) { | |
94 | AliDetectorRecoParam* param = (AliDetectorRecoParam*)recParamArray->UncheckedAt(i); | |
95 | if(!param) continue; | |
96 | if(default & param->GetEventSpecie()) { | |
97 | param->SetAsDefault(); | |
98 | defaultIsSet = kTRUE; | |
99 | } | |
100 | } | |
1e7c9b89 | 101 | |
413e6b81 | 102 | if(!defaultIsSet) { |
103 | AliError("The default reconstruction parameters are not set! Exiting..."); | |
3a8be91c | 104 | return; |
105 | } | |
1e7c9b89 | 106 | |
413e6b81 | 107 | // Store calibration data into database |
108 | AliCDBMetaData *md = new AliCDBMetaData(); | |
109 | md->SetResponsible("J. Klay"); | |
110 | md->SetComment("Reconstruction Parameters: EMCAL"); | |
111 | md->SetAliRootVersion(gSystem->Getenv("ARVERSION")); | |
112 | md->SetBeamPeriod(0); | |
113 | ||
114 | AliCDBId id("EMCAL/Calib/RecoParam",0,AliCDBRunRange::Infinity()); | |
c8a7579b | 115 | cdb->GetDefaultStorage()->Put(recParamArray, id, md); |
1e7c9b89 | 116 | |
413e6b81 | 117 | return; |
3a8be91c | 118 | } |
1e7c9b89 | 119 | |
120 | //----------------------------------------------------------------------------- | |
121 | AliEMCALRecParam* GetHighMultiplicityParameters() | |
122 | { | |
123 | //Set here the high flux/multiplicity ("Pb+Pb") parameters for the reconstruction | |
124 | //Right now it should be the same settings as with | |
125 | //AliEMCALRecParam *recParamDB = AliEMCALRecParam::GetHighFluxParam(); | |
126 | //or | |
127 | //AliEMCALRecParam *recParamDB = AliEMCALRecParam::GetDefaultParameters(); | |
128 | ||
129 | AliEMCALRecParam* params = AliEMCALRecParam::GetDefaultParameters(); | |
130 | ||
131 | //Clusterization | |
132 | params->SetClusteringThreshold(0.5); | |
133 | params->SetW0(4.5); | |
134 | params->SetMinECut(0.45); | |
135 | params->SetUnfold(kFALSE); | |
136 | params->SetLocMaxCut(0.03); | |
137 | ||
138 | //Track matching | |
139 | params->SetTrkCutX(6.0); | |
140 | params->SetTrkCutY(6.0); | |
141 | params->SetTrkCutZ(6.0); | |
142 | params->SetTrkCutR(10.0); | |
143 | params->SetTrkCutAlphaMin(-50.0); | |
144 | params->SetTrkCutAlphaMax( 50.0); | |
145 | params->SetTrkCutNITS(3.0); | |
146 | params->SetTrkCutNTPC(20.0); | |
147 | params->SetTrkCutAngle(10000.0); // i.e. exclude this for the moment | |
148 | ||
149 | //PID | |
150 | ||
151 | // as a first step, all array elements are initialized to 0.0 | |
152 | Int_t i, j; | |
153 | for (i = 0; i < 6; i++) { | |
154 | params->SetGammaEnergyProb(i,0.); | |
155 | params->SetHadronEnergyProb(i,0.); | |
156 | params->SetPiZeroEnergyProb(i,0.); | |
157 | ||
158 | for (j = 0; j < 6; j++) { | |
159 | ||
160 | params->SetGamma(i,j,0.); | |
161 | params->SetHadron(i,j,0.); | |
162 | params->SetPiZero(i,j, 0.); | |
163 | params->SetGamma1to10(i,j,0.); | |
164 | params->SetHadron1to10(i,j,0.); | |
165 | } | |
166 | } | |
167 | ||
168 | params->SetGamma(0,0, -7.656908e-01); | |
169 | params->SetGamma(0,1, 2.352536e-01); | |
170 | params->SetGamma(0,2, 1.555996e-02); | |
171 | params->SetGamma(0,3, 2.243525e-04); | |
172 | params->SetGamma(0,4, -2.560087e-06); | |
173 | ||
174 | params->SetGamma(1,0, 6.500216e+00); | |
175 | params->SetGamma(1,1, -2.564958e-01); | |
176 | params->SetGamma(1,2, 1.967894e-01); | |
177 | params->SetGamma(1,3, -3.982273e-04); | |
178 | params->SetGamma(1,4, 2.797737e-06); | |
179 | ||
180 | params->SetGamma(2,0, 2.416489e+00); | |
181 | params->SetGamma(2,1, -1.601258e-01); | |
182 | params->SetGamma(2,2, 3.126839e-02); | |
183 | params->SetGamma(2,3, 3.387532e-04); | |
184 | params->SetGamma(2,4, -4.089145e-06); | |
185 | ||
186 | params->SetGamma(3,0, 0.); | |
187 | params->SetGamma(3,1, -2.696008e+00); | |
188 | params->SetGamma(3,2, 6.920305e-01); | |
189 | params->SetGamma(3,3, -2.281122e-03); | |
190 | params->SetGamma(3,4, 0.); | |
191 | ||
192 | params->SetGamma(4,0, 2.281564e-01); | |
193 | params->SetGamma(4,1, -7.575040e-02); | |
194 | params->SetGamma(4,2, 3.813423e-01); | |
195 | params->SetGamma(4,3, -1.243854e-04); | |
196 | params->SetGamma(4,4, 1.232045e-06); | |
197 | ||
198 | params->SetGamma(5,0, -3.290107e-01); | |
199 | params->SetGamma(5,1, 3.707545e-02); | |
200 | params->SetGamma(5,2, 2.917397e-03); | |
201 | params->SetGamma(5,3, 4.695306e-05); | |
202 | params->SetGamma(5,4, -3.572981e-07); | |
203 | ||
204 | params->SetHadron(0,0, 1.519112e-01); | |
205 | params->SetHadron(0,1, -8.267603e-02); | |
206 | params->SetHadron(0,2, 1.914574e-02); | |
207 | params->SetHadron(0,3, -2.677921e-04); | |
208 | params->SetHadron(0,4, 5.447939e-06); | |
209 | ||
210 | params->SetHadron(1,0, 0.); | |
211 | params->SetHadron(1,1, -7.549870e-02); | |
212 | params->SetHadron(1,2, 3.930087e-01); | |
213 | params->SetHadron(1,3, -2.368500e-03); | |
214 | params->SetHadron(1,4, 0.); | |
215 | ||
216 | params->SetHadron(2,0, 0.); | |
217 | params->SetHadron(2,1, -2.463152e-02); | |
218 | params->SetHadron(2,2, 1.349257e-01); | |
219 | params->SetHadron(2,3, -1.089440e-03); | |
220 | params->SetHadron(2,4, 0.); | |
221 | ||
222 | params->SetHadron(3,0, 0.); | |
223 | params->SetHadron(3,1, 5.101560e-01); | |
224 | params->SetHadron(3,2, 1.458679e-01); | |
225 | params->SetHadron(3,3, 4.903068e-04); | |
226 | params->SetHadron(3,4, 0.); | |
227 | ||
228 | params->SetHadron(4,0, 0.); | |
229 | params->SetHadron(4,1, -6.693943e-03); | |
230 | params->SetHadron(4,2, 2.444753e-01); | |
231 | params->SetHadron(4,3, -5.553749e-05); | |
232 | params->SetHadron(4,4, 0.); | |
233 | ||
234 | params->SetHadron(5,0, -4.414030e-01); | |
235 | params->SetHadron(5,1, 2.292277e-01); | |
236 | params->SetHadron(5,2, -2.433737e-02); | |
237 | params->SetHadron(5,3, 1.758422e-03); | |
238 | params->SetHadron(5,4, -3.001493e-05); | |
239 | ||
240 | params->SetPiZero(0,0, 5.072157e-01); | |
241 | params->SetPiZero(0,1, -5.352747e-01); | |
242 | params->SetPiZero(0,2, 8.499259e-02); | |
243 | params->SetPiZero(0,3, -3.687401e-03); | |
244 | params->SetPiZero(0,4, 5.482280e-05); | |
245 | ||
246 | params->SetPiZero(1,0, 4.590137e+02); | |
247 | params->SetPiZero(1,1, -7.079341e+01); | |
248 | params->SetPiZero(1,2, 4.990735e+00); | |
249 | params->SetPiZero(1,3, -1.241302e-01); | |
250 | params->SetPiZero(1,4, 1.065772e-03); | |
251 | ||
252 | params->SetPiZero(2,0, 1.376415e+02); | |
253 | params->SetPiZero(2,1, -3.031577e+01); | |
254 | params->SetPiZero(2,2, 2.474338e+00); | |
255 | params->SetPiZero(2,3, -6.903410e-02); | |
256 | params->SetPiZero(2,4, 6.244089e-04); | |
257 | ||
258 | params->SetPiZero(3,0, 0.); | |
259 | params->SetPiZero(3,1, 1.145983e+00); | |
260 | params->SetPiZero(3,2, -2.476052e-01); | |
261 | params->SetPiZero(3,3, 1.367373e-02); | |
262 | params->SetPiZero(3,4, 0.); | |
263 | ||
264 | params->SetPiZero(4,0, -2.097586e+02); | |
265 | params->SetPiZero(4,1, 6.300800e+01); | |
266 | params->SetPiZero(4,2, -4.038906e+00); | |
267 | params->SetPiZero(4,3, 1.088543e-01); | |
268 | params->SetPiZero(4,4, -9.362485e-04); | |
269 | ||
270 | params->SetPiZero(5,0, -1.671477e+01); | |
271 | params->SetPiZero(5,1, 2.995415e+00); | |
272 | params->SetPiZero(5,2, -6.040360e-02); | |
273 | params->SetPiZero(5,3, -6.137459e-04); | |
274 | params->SetPiZero(5,4, 1.847328e-05); | |
275 | ||
276 | // High flux ones pp | |
277 | ||
278 | params->SetHadronEnergyProb(0, 0.); | |
279 | params->SetHadronEnergyProb(1, 0.); | |
280 | params->SetHadronEnergyProb(2, 6.188452e-02); | |
281 | params->SetHadronEnergyProb(3, 2.030230e+00); | |
282 | params->SetHadronEnergyProb(4, -6.402242e-02); | |
283 | ||
284 | // raw signal fitting | |
285 | params->SetHighLowGainFactor(16.); | |
286 | params->SetOrderParameter(2); | |
287 | params->SetTau(2.35); | |
288 | params->SetNoiseThreshold(3); | |
289 | params->SetNPedSamples(5); | |
290 | ||
291 | return params ; | |
292 | } | |
293 | ||
294 | //----------------------------------------------------------------------------- | |
295 | AliEMCALRecParam* GetLowMultiplicityParameters() | |
296 | { | |
297 | // Set here the low flux/multiplicity ("p+p") parameters for the reconstruction | |
298 | //Right now it should be the same settings as with | |
299 | //AliEMCALRecParam *recParamDB = AliEMCALRecParam::GetLowFluxParam(); | |
300 | ||
301 | AliEMCALRecParam* params = AliEMCALRecParam::GetDefaultParameters(); | |
e658398a | 302 | params->SetClusteringThreshold(0.1); // 100 MeV |
1e7c9b89 | 303 | params->SetMinECut(0.01); //10 MeV |
304 | ||
305 | //PID parameters for pp implemented | |
306 | // as a first step, all array elements are initialized to 0.0 | |
307 | Int_t i, j; | |
308 | for (i = 0; i < 6; i++) { | |
309 | for (j = 0; j < 6; j++) { | |
310 | params->SetGamma(i,j,0.); | |
311 | params->SetGamma1to10(i,j,0.); | |
312 | params->SetHadron(i,j,0.); | |
313 | params->SetHadron1to10(i,j,0.); | |
314 | params->SetPiZero(i,j,0.); | |
315 | ||
316 | } | |
317 | params->SetGammaEnergyProb(i,0.); // not yet implemented | |
318 | params->SetHadronEnergyProb(i,0.); | |
319 | params->SetPiZeroEnergyProb(i,0.); // not yet implemented | |
320 | } | |
321 | ||
322 | params->SetGamma(0,0, -7.656908e-01); | |
323 | params->SetGamma(0,1, 2.352536e-01); | |
324 | params->SetGamma(0,2, 1.555996e-02); | |
325 | params->SetGamma(0,3, 2.243525e-04); | |
326 | params->SetGamma(0,4, -2.560087e-06); | |
327 | ||
328 | params->SetGamma(1,0, 6.500216e+00); | |
329 | params->SetGamma(1,1, -2.564958e-01); | |
330 | params->SetGamma(1,2, 1.967894e-01); | |
331 | params->SetGamma(1,3, -3.982273e-04); | |
332 | params->SetGamma(1,4, 2.797737e-06); | |
333 | ||
334 | params->SetGamma(2,0, 2.416489e+00); | |
335 | params->SetGamma(2,1, -1.601258e-01); | |
336 | params->SetGamma(2,2, 3.126839e-02); | |
337 | params->SetGamma(2,3, 3.387532e-04); | |
338 | params->SetGamma(2,4, -4.089145e-06); | |
339 | ||
340 | params->SetGamma(3,0,0.); | |
341 | params->SetGamma(3,1,-2.696008e+00); | |
342 | params->SetGamma(3,2, 6.920305e-01); | |
343 | params->SetGamma(3,3,-2.281122e-03); | |
344 | params->SetGamma(3,4,0.); | |
345 | ||
346 | params->SetGamma(4,0, 2.281564e-01); | |
347 | params->SetGamma(4,1, -7.575040e-02); | |
348 | params->SetGamma(4,2, 3.813423e-01); | |
349 | params->SetGamma(4,3, -1.243854e-04); | |
350 | params->SetGamma(4,4, 1.232045e-06); | |
351 | ||
352 | params->SetGamma(5,0, -3.290107e-01); | |
353 | params->SetGamma(5,1, 3.707545e-02); | |
354 | params->SetGamma(5,2, 2.917397e-03); | |
355 | params->SetGamma(5,3, 4.695306e-05); | |
356 | params->SetGamma(5,4, -3.572981e-07); | |
357 | ||
358 | params->SetHadron(0,0, 9.482243e-01); | |
359 | params->SetHadron(0,1, -2.780896e-01); | |
360 | params->SetHadron(0,2, 2.223507e-02); | |
361 | params->SetHadron(0,3, 7.294263e-04); | |
362 | params->SetHadron(0,4, -5.665872e-06); | |
363 | ||
364 | params->SetHadron(1,0, 0.); | |
365 | params->SetHadron(1,1, 0.); | |
366 | params->SetHadron(1,2, 2.483298e-01); | |
367 | params->SetHadron(1,3, 0.); | |
368 | params->SetHadron(1,4, 0.); | |
369 | ||
370 | params->SetHadron(2,0, -5.601199e+00); | |
371 | params->SetHadron(2,1, 2.097382e+00); | |
372 | params->SetHadron(2,2, -2.307965e-01); | |
373 | params->SetHadron(2,3, 9.206871e-03); | |
374 | params->SetHadron(2,4, -8.887548e-05); | |
375 | ||
376 | params->SetHadron(3,0, 6.543101e+00); | |
377 | params->SetHadron(3,1, -2.305203e+00); | |
378 | params->SetHadron(3,2, 2.761673e-01); | |
379 | params->SetHadron(3,3, -5.465855e-03); | |
380 | params->SetHadron(3,4, 2.784329e-05); | |
381 | ||
382 | params->SetHadron(4,0, -2.443530e+01); | |
383 | params->SetHadron(4,1, 8.902578e+00); | |
384 | params->SetHadron(4,2, -5.265901e-01); | |
385 | params->SetHadron(4,3, 2.549111e-02); | |
386 | params->SetHadron(4,4, -2.196801e-04); | |
387 | ||
388 | params->SetHadron(5,0, 2.102007e-01); | |
389 | params->SetHadron(5,1, -3.844418e-02); | |
390 | params->SetHadron(5,2, 1.234682e-01); | |
391 | params->SetHadron(5,3, -3.866733e-03); | |
392 | params->SetHadron(5,4, 3.362719e-05); | |
393 | ||
394 | params->SetPiZero(0,0, 5.07215e-01); | |
395 | params->SetPiZero(0,1, -5.35274e-01); | |
396 | params->SetPiZero(0,2, 8.49925e-02); | |
397 | params->SetPiZero(0,3, -3.68740e-03); | |
398 | params->SetPiZero(0,4, 5.48228e-05); | |
399 | ||
400 | params->SetPiZero(1,0, 4.590137e+02); | |
401 | params->SetPiZero(1,1, -7.079341e+01); | |
402 | params->SetPiZero(1,2, 4.990735e+00); | |
403 | params->SetPiZero(1,3, -1.241302e-01); | |
404 | params->SetPiZero(1,4, 1.065772e-03); | |
405 | ||
406 | params->SetPiZero(2,0, 1.376415e+02); | |
407 | params->SetPiZero(2,1, -3.031577e+01); | |
408 | params->SetPiZero(2,2, 2.474338e+00); | |
409 | params->SetPiZero(2,3, -6.903410e-02); | |
410 | params->SetPiZero(2,4, 6.244089e-04); | |
411 | ||
412 | params->SetPiZero(3,0, 0.); | |
413 | params->SetPiZero(3,1, 1.145983e+00); | |
414 | params->SetPiZero(3,2, -2.476052e-01); | |
415 | params->SetPiZero(3,3, 1.367373e-02); | |
416 | params->SetPiZero(3,4, 0.); | |
417 | ||
418 | params->SetPiZero(4,0, -2.09758e+02); | |
419 | params->SetPiZero(4,1, 6.30080e+01); | |
420 | params->SetPiZero(4,2, -4.03890e+00); | |
421 | params->SetPiZero(4,3, 1.08854e-01); | |
422 | params->SetPiZero(4,4, -9.36248e-04); | |
423 | ||
424 | params->SetPiZero(5,0, -1.671477e+01); | |
425 | params->SetPiZero(5,1, 2.995415e+00); | |
426 | params->SetPiZero(5,2, -6.040360e-02); | |
427 | params->SetPiZero(5,3, -6.137459e-04); | |
428 | params->SetPiZero(5,4, 1.847328e-05); | |
429 | ||
430 | // params->SetHadronEnergyProb(0,0.); | |
431 | // params->SetHadronEnergyProb(1,0.); | |
432 | // params->SetHadronEnergyProb(2,1.); | |
433 | // params->SetHadronEnergyProb(3,0.); | |
434 | // params->SetHadronEnergyProb(4,0.); | |
435 | ||
436 | params->SetHadronEnergyProb(0, 4.767543e-02); | |
437 | params->SetHadronEnergyProb(1, -1.537523e+00); | |
438 | params->SetHadronEnergyProb(2, 2.956727e-01); | |
439 | params->SetHadronEnergyProb(3, -3.051022e+01); | |
440 | params->SetHadronEnergyProb(4, -6.036931e-02); | |
441 | ||
442 | return params; | |
443 | ||
444 | } | |
445 | ||
446 |