]>
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 | ||
413e6b81 | 19 | void AliEMCALSetRecParamCDB(AliRecoParam::EventSpecie_t default = AliRecoParam::kDefault) |
3a8be91c | 20 | { |
3a8be91c | 21 | |
3a8be91c | 22 | // Create an object AliEMCALRecParam and store it to OCDB |
23 | ||
413e6b81 | 24 | //Activate CDB storage |
25 | AliCDBManager* cdb = AliCDBManager::Instance(); | |
26 | if(!cdb->IsDefaultStorageSet()) cdb->SetDefaultStorage("local://OCDB"); | |
3a8be91c | 27 | |
3a8be91c | 28 | |
29 | // Create reconstruction parameter object and set parameter values | |
413e6b81 | 30 | TObjArray* recParamArray = new TObjArray(); |
31 | ||
c8a7579b | 32 | { |
33 | //default | |
34 | AliEMCALRecParam *recParamDB = AliEMCALRecParam::GetDefaultParameters(); | |
35 | ||
36 | //Clusterization | |
37 | recParamDB->SetClusteringThreshold(0.5); | |
38 | recParamDB->SetW0(4.5); | |
39 | recParamDB->SetMinECut(0.45); | |
40 | recParamDB->SetUnfold(kFALSE); | |
41 | recParamDB->SetLocMaxCut(0.03); | |
42 | ||
43 | //Track matching | |
44 | recParamDB->SetTrkCutX(6.0); | |
45 | recParamDB->SetTrkCutY(6.0); | |
46 | recParamDB->SetTrkCutZ(6.0); | |
47 | recParamDB->SetTrkCutR(10.0); | |
48 | recParamDB->SetTrkCutAlphaMin(-50.0); | |
49 | recParamDB->SetTrkCutAlphaMax( 50.0); | |
dcd86c5d | 50 | recParamDB->SetTrkCutNITS(3.0); |
51 | recParamDB->SetTrkCutNTPC(20.0); | |
c8a7579b | 52 | recParamDB->SetTrkCutAngle(10000.0); // i.e. exclude this for the moment |
53 | ||
54 | //PID | |
55 | ||
56 | // as a first step, all array elements are initialized to 0.0 | |
57 | Int_t i, j; | |
58 | for (i = 0; i < 6; i++) { | |
59 | for (j = 0; j < 6; j++) { | |
60 | ||
61 | recParamDB->SetGamma(i,j,0.); | |
62 | recParamDB->SetHadron(i,j,0.); | |
63 | recParamDB->SetPiZero5to10(i,j, 0.); | |
64 | recParamDB->SetPiZero10to60(i,j,0.); | |
65 | } | |
66 | } | |
67 | ||
68 | recParamDB->SetGamma(0,0, 0.038022); | |
69 | recParamDB->SetGamma(0,1, -0.0001883); | |
70 | recParamDB->SetGamma(0,2, 5.449e-06); | |
71 | ||
72 | recParamDB->SetGamma(1,0, 0.207313); | |
73 | recParamDB->SetGamma(1,1, -0.000978); | |
74 | recParamDB->SetGamma(1,2, 0.00001634); | |
75 | ||
76 | recParamDB->SetGamma(2,0, 0.043364); | |
77 | recParamDB->SetGamma(2,1, -0.0002048); | |
78 | recParamDB->SetGamma(2,2, 8.661e-06); | |
79 | recParamDB->SetGamma(2,3, -1.353e-07); | |
80 | ||
81 | recParamDB->SetGamma(3,0, 0.265004); | |
82 | recParamDB->SetGamma(3,1, 0.061298); | |
83 | recParamDB->SetGamma(3,2, -0.003203); | |
84 | recParamDB->SetGamma(3,3, 4.73e-05); | |
85 | ||
86 | recParamDB->SetGamma(4,0, 0.243579); | |
87 | recParamDB->SetGamma(4,1, -1.614e-05); | |
88 | ||
89 | recParamDB->SetGamma(5,0, 0.002942); | |
90 | recParamDB->SetGamma(5,1, -3.976e-05); | |
91 | ||
92 | recParamDB->SetHadron(0,0, 0.011945 / 3.); | |
93 | recParamDB->SetHadron(0,1, 0.000386 / 3.); | |
94 | recParamDB->SetHadron(0,2, -0.000014 / 3.); | |
95 | recParamDB->SetHadron(0,3, 1.336e-07 / 3.); | |
96 | ||
97 | recParamDB->SetHadron(1,0, 0.496544); | |
98 | recParamDB->SetHadron(1,1, -0.003226); | |
99 | recParamDB->SetHadron(1,2, 0.00001678); | |
100 | ||
101 | recParamDB->SetHadron(2,0, 0.144838); | |
102 | recParamDB->SetHadron(2,1, -0.002954); | |
103 | recParamDB->SetHadron(2,2, 0.00008754); | |
104 | recParamDB->SetHadron(2,3, -7.587e-07); | |
105 | ||
106 | recParamDB->SetHadron(3,0, 1.264461 / 7.); | |
107 | recParamDB->SetHadron(3,1, 0.002097 / 7.); | |
108 | ||
109 | recParamDB->SetHadron(4,0, 0.261950); | |
110 | recParamDB->SetHadron(4,1, -0.001078); | |
111 | recParamDB->SetHadron(4,2, 0.00003237); | |
112 | recParamDB->SetHadron(4,3, -3.241e-07); | |
113 | recParamDB->SetHadron(4,4, 0.); | |
114 | recParamDB->SetHadron(4,5, 0.); | |
115 | recParamDB->SetHadron(5,0, 0.010317); | |
116 | recParamDB->SetHadron(5,1, 0.); | |
117 | recParamDB->SetHadron(5,2, 0.); | |
118 | recParamDB->SetHadron(5,3, 0.); | |
119 | recParamDB->SetHadron(5,4, 0.); | |
120 | recParamDB->SetHadron(5,5, 0.); | |
121 | ||
122 | recParamDB->SetPiZero5to10(0,0, 0.009138); | |
123 | recParamDB->SetPiZero5to10(0,1, 0.0006377); | |
124 | ||
125 | recParamDB->SetPiZero5to10(1,0, 0.08); | |
126 | ||
127 | recParamDB->SetPiZero5to10(2,0, -0.061119); | |
128 | recParamDB->SetPiZero5to10(2,1, 0.019013); | |
129 | ||
130 | recParamDB->SetPiZero5to10(3,0, 0.2); | |
131 | ||
132 | recParamDB->SetPiZero5to10(4,0, 0.252044); | |
133 | recParamDB->SetPiZero5to10(4,1, -0.002315); | |
134 | ||
135 | recParamDB->SetPiZero5to10(5,0, 0.002942); | |
136 | recParamDB->SetPiZero5to10(5,1, -3.976e-05); | |
137 | ||
138 | recParamDB->SetPiZero10to60(0,0, 0.009138); | |
139 | recParamDB->SetPiZero10to60(0,1, 0.0006377); | |
140 | ||
141 | recParamDB->SetPiZero10to60(1,0, 1.272837); | |
142 | recParamDB->SetPiZero10to60(1,1, -0.069708); | |
143 | recParamDB->SetPiZero10to60(1,2, 0.001568); | |
144 | recParamDB->SetPiZero10to60(1,3, -1.162e-05); | |
145 | ||
146 | recParamDB->SetPiZero10to60(2,0, 0.139703); | |
147 | recParamDB->SetPiZero10to60(2,1, 0.003687); | |
148 | recParamDB->SetPiZero10to60(2,2, -0.000568); | |
149 | recParamDB->SetPiZero10to60(2,3, 1.498e-05); | |
150 | recParamDB->SetPiZero10to60(2,4, -1.174e-07); | |
151 | ||
152 | recParamDB->SetPiZero10to60(3,0, -0.826367); | |
153 | recParamDB->SetPiZero10to60(3,1, 0.096951); | |
154 | recParamDB->SetPiZero10to60(3,2, -0.002215); | |
155 | recParamDB->SetPiZero10to60(3,3, 2.523e-05); | |
156 | ||
157 | recParamDB->SetPiZero10to60(4,0, 0.249890); | |
158 | recParamDB->SetPiZero10to60(4,1, -0.000063); | |
159 | ||
160 | recParamDB->SetPiZero10to60(5,0, 0.002942); | |
161 | recParamDB->SetPiZero10to60(5,1, -3.976e-05); | |
162 | ||
163 | // raw signal fitting | |
164 | recParamDB->SetHighLowGainFactor(16.); | |
165 | recParamDB->SetOrderParameter(2); | |
166 | recParamDB->SetTau(2.35); | |
167 | recParamDB->SetNoiseThreshold(3); | |
168 | recParamDB->SetNPedSamples(5); | |
169 | ||
170 | //Add to the recParamArray | |
171 | recParamDB->SetEventSpecie(AliRecoParam::kDefault); | |
172 | recParamArray->AddLast(recParamDB); | |
173 | } | |
413e6b81 | 174 | |
175 | //Add other options here, if desired, for | |
176 | //Cosmic, LowMult and HighMult type events | |
177 | //and add them to the array | |
178 | ||
c8a7579b | 179 | |
180 | { | |
181 | //For now, default is Pb+Pb, but let's add it again as | |
182 | //the "high mult" version too... | |
183 | AliEMCALRecParam *recParamDB = AliEMCALRecParam::GetDefaultParameters(); | |
184 | ||
185 | recParamDB->SetEventSpecie(AliRecoParam::kHighMult); | |
186 | recParamArray->AddLast(recParamDB); | |
187 | } | |
188 | ||
189 | ||
190 | { | |
191 | //Low multiplicity parameter modifications: | |
192 | AliEMCALRecParam *recParamDB = AliEMCALRecParam::GetDefaultParameters(); | |
193 | ||
50c386d5 | 194 | recParamDB->SetClusteringThreshold(0.2); // 200 MeV |
c8a7579b | 195 | recParamDB->SetMinECut(0.01); //10 MeV |
196 | recParamDB->SetEventSpecie(AliRecoParam::kLowMult); | |
197 | recParamArray->AddLast(recParamDB); | |
198 | ||
199 | } | |
200 | ||
201 | ||
413e6b81 | 202 | //Set the default version in the array |
203 | Bool_t defaultIsSet = kFALSE; | |
204 | for(Int_t i = 0; i < recParamArray->GetEntriesFast(); i++) { | |
205 | AliDetectorRecoParam* param = (AliDetectorRecoParam*)recParamArray->UncheckedAt(i); | |
206 | if(!param) continue; | |
207 | if(default & param->GetEventSpecie()) { | |
208 | param->SetAsDefault(); | |
209 | defaultIsSet = kTRUE; | |
210 | } | |
211 | } | |
3a8be91c | 212 | |
413e6b81 | 213 | if(!defaultIsSet) { |
214 | AliError("The default reconstruction parameters are not set! Exiting..."); | |
3a8be91c | 215 | return; |
216 | } | |
217 | ||
413e6b81 | 218 | // Store calibration data into database |
219 | AliCDBMetaData *md = new AliCDBMetaData(); | |
220 | md->SetResponsible("J. Klay"); | |
221 | md->SetComment("Reconstruction Parameters: EMCAL"); | |
222 | md->SetAliRootVersion(gSystem->Getenv("ARVERSION")); | |
223 | md->SetBeamPeriod(0); | |
224 | ||
225 | AliCDBId id("EMCAL/Calib/RecoParam",0,AliCDBRunRange::Infinity()); | |
c8a7579b | 226 | cdb->GetDefaultStorage()->Put(recParamArray, id, md); |
3a8be91c | 227 | |
413e6b81 | 228 | return; |
3a8be91c | 229 | } |