1 // Script to create reconstruction parameters and store them into CDB
2 // Author: Yuri Kharlov
7 #include "TControlBar.h"
10 #include "AliEMCALRecParam.h"
11 #include "AliCDBMetaData.h"
13 #include "AliCDBEntry.h"
14 #include "AliCDBManager.h"
15 #include "AliCDBStorage.h"
19 void AliEMCALSetRecParamCDB(AliRecoParam::EventSpecie_t default = AliRecoParam::kDefault)
22 // Create an object AliEMCALRecParam and store it to OCDB
24 //Activate CDB storage
25 AliCDBManager* cdb = AliCDBManager::Instance();
26 if(!cdb->IsDefaultStorageSet()) cdb->SetDefaultStorage("local://OCDB");
29 // Create reconstruction parameter object and set parameter values
30 TObjArray* recParamArray = new TObjArray();
34 AliEMCALRecParam *recParamDB = AliEMCALRecParam::GetDefaultParameters();
37 recParamDB->SetClusteringThreshold(0.5);
38 recParamDB->SetW0(4.5);
39 recParamDB->SetMinECut(0.45);
40 recParamDB->SetUnfold(kFALSE);
41 recParamDB->SetLocMaxCut(0.03);
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);
50 recParamDB->SetTrkCutAngle(10000.0); // i.e. exclude this for the moment
54 // as a first step, all array elements are initialized to 0.0
56 for (i = 0; i < 6; i++) {
57 for (j = 0; j < 6; j++) {
59 recParamDB->SetGamma(i,j,0.);
60 recParamDB->SetHadron(i,j,0.);
61 recParamDB->SetPiZero5to10(i,j, 0.);
62 recParamDB->SetPiZero10to60(i,j,0.);
66 recParamDB->SetGamma(0,0, 0.038022);
67 recParamDB->SetGamma(0,1, -0.0001883);
68 recParamDB->SetGamma(0,2, 5.449e-06);
70 recParamDB->SetGamma(1,0, 0.207313);
71 recParamDB->SetGamma(1,1, -0.000978);
72 recParamDB->SetGamma(1,2, 0.00001634);
74 recParamDB->SetGamma(2,0, 0.043364);
75 recParamDB->SetGamma(2,1, -0.0002048);
76 recParamDB->SetGamma(2,2, 8.661e-06);
77 recParamDB->SetGamma(2,3, -1.353e-07);
79 recParamDB->SetGamma(3,0, 0.265004);
80 recParamDB->SetGamma(3,1, 0.061298);
81 recParamDB->SetGamma(3,2, -0.003203);
82 recParamDB->SetGamma(3,3, 4.73e-05);
84 recParamDB->SetGamma(4,0, 0.243579);
85 recParamDB->SetGamma(4,1, -1.614e-05);
87 recParamDB->SetGamma(5,0, 0.002942);
88 recParamDB->SetGamma(5,1, -3.976e-05);
90 recParamDB->SetHadron(0,0, 0.011945 / 3.);
91 recParamDB->SetHadron(0,1, 0.000386 / 3.);
92 recParamDB->SetHadron(0,2, -0.000014 / 3.);
93 recParamDB->SetHadron(0,3, 1.336e-07 / 3.);
95 recParamDB->SetHadron(1,0, 0.496544);
96 recParamDB->SetHadron(1,1, -0.003226);
97 recParamDB->SetHadron(1,2, 0.00001678);
99 recParamDB->SetHadron(2,0, 0.144838);
100 recParamDB->SetHadron(2,1, -0.002954);
101 recParamDB->SetHadron(2,2, 0.00008754);
102 recParamDB->SetHadron(2,3, -7.587e-07);
104 recParamDB->SetHadron(3,0, 1.264461 / 7.);
105 recParamDB->SetHadron(3,1, 0.002097 / 7.);
107 recParamDB->SetHadron(4,0, 0.261950);
108 recParamDB->SetHadron(4,1, -0.001078);
109 recParamDB->SetHadron(4,2, 0.00003237);
110 recParamDB->SetHadron(4,3, -3.241e-07);
111 recParamDB->SetHadron(4,4, 0.);
112 recParamDB->SetHadron(4,5, 0.);
113 recParamDB->SetHadron(5,0, 0.010317);
114 recParamDB->SetHadron(5,1, 0.);
115 recParamDB->SetHadron(5,2, 0.);
116 recParamDB->SetHadron(5,3, 0.);
117 recParamDB->SetHadron(5,4, 0.);
118 recParamDB->SetHadron(5,5, 0.);
120 recParamDB->SetPiZero5to10(0,0, 0.009138);
121 recParamDB->SetPiZero5to10(0,1, 0.0006377);
123 recParamDB->SetPiZero5to10(1,0, 0.08);
125 recParamDB->SetPiZero5to10(2,0, -0.061119);
126 recParamDB->SetPiZero5to10(2,1, 0.019013);
128 recParamDB->SetPiZero5to10(3,0, 0.2);
130 recParamDB->SetPiZero5to10(4,0, 0.252044);
131 recParamDB->SetPiZero5to10(4,1, -0.002315);
133 recParamDB->SetPiZero5to10(5,0, 0.002942);
134 recParamDB->SetPiZero5to10(5,1, -3.976e-05);
136 recParamDB->SetPiZero10to60(0,0, 0.009138);
137 recParamDB->SetPiZero10to60(0,1, 0.0006377);
139 recParamDB->SetPiZero10to60(1,0, 1.272837);
140 recParamDB->SetPiZero10to60(1,1, -0.069708);
141 recParamDB->SetPiZero10to60(1,2, 0.001568);
142 recParamDB->SetPiZero10to60(1,3, -1.162e-05);
144 recParamDB->SetPiZero10to60(2,0, 0.139703);
145 recParamDB->SetPiZero10to60(2,1, 0.003687);
146 recParamDB->SetPiZero10to60(2,2, -0.000568);
147 recParamDB->SetPiZero10to60(2,3, 1.498e-05);
148 recParamDB->SetPiZero10to60(2,4, -1.174e-07);
150 recParamDB->SetPiZero10to60(3,0, -0.826367);
151 recParamDB->SetPiZero10to60(3,1, 0.096951);
152 recParamDB->SetPiZero10to60(3,2, -0.002215);
153 recParamDB->SetPiZero10to60(3,3, 2.523e-05);
155 recParamDB->SetPiZero10to60(4,0, 0.249890);
156 recParamDB->SetPiZero10to60(4,1, -0.000063);
158 recParamDB->SetPiZero10to60(5,0, 0.002942);
159 recParamDB->SetPiZero10to60(5,1, -3.976e-05);
161 // raw signal fitting
162 recParamDB->SetHighLowGainFactor(16.);
163 recParamDB->SetOrderParameter(2);
164 recParamDB->SetTau(2.35);
165 recParamDB->SetNoiseThreshold(3);
166 recParamDB->SetNPedSamples(5);
168 //Add to the recParamArray
169 recParamDB->SetEventSpecie(AliRecoParam::kDefault);
170 recParamArray->AddLast(recParamDB);
173 //Add other options here, if desired, for
174 //Cosmic, LowMult and HighMult type events
175 //and add them to the array
179 //For now, default is Pb+Pb, but let's add it again as
180 //the "high mult" version too...
181 AliEMCALRecParam *recParamDB = AliEMCALRecParam::GetDefaultParameters();
183 recParamDB->SetEventSpecie(AliRecoParam::kHighMult);
184 recParamArray->AddLast(recParamDB);
189 //Low multiplicity parameter modifications:
190 AliEMCALRecParam *recParamDB = AliEMCALRecParam::GetDefaultParameters();
192 recParamDB->SetClusteringThreshold(0.1); // 100 MeV
193 recParamDB->SetMinECut(0.01); //10 MeV
194 recParamDB->SetEventSpecie(AliRecoParam::kLowMult);
195 recParamArray->AddLast(recParamDB);
200 //Set the default version in the array
201 Bool_t defaultIsSet = kFALSE;
202 for(Int_t i = 0; i < recParamArray->GetEntriesFast(); i++) {
203 AliDetectorRecoParam* param = (AliDetectorRecoParam*)recParamArray->UncheckedAt(i);
205 if(default & param->GetEventSpecie()) {
206 param->SetAsDefault();
207 defaultIsSet = kTRUE;
212 AliError("The default reconstruction parameters are not set! Exiting...");
216 // Store calibration data into database
217 AliCDBMetaData *md = new AliCDBMetaData();
218 md->SetResponsible("J. Klay");
219 md->SetComment("Reconstruction Parameters: EMCAL");
220 md->SetAliRootVersion(gSystem->Getenv("ARVERSION"));
221 md->SetBeamPeriod(0);
223 AliCDBId id("EMCAL/Calib/RecoParam",0,AliCDBRunRange::Infinity());
224 cdb->GetDefaultStorage()->Put(recParamArray, id, md);