]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/macros/RecParamDB/AliEMCALSetRecParamCDB.C
added low and high flux parameters to the array
[u/mrichter/AliRoot.git] / EMCAL / macros / RecParamDB / AliEMCALSetRecParamCDB.C
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
19 void AliEMCALSetRecParamCDB(AliRecoParam::EventSpecie_t default = AliRecoParam::kDefault)
20 {
21
22   // Create an object AliEMCALRecParam and store it to OCDB
23
24   //Activate CDB storage
25   AliCDBManager* cdb = AliCDBManager::Instance();
26   if(!cdb->IsDefaultStorageSet()) cdb->SetDefaultStorage("local://OCDB");
27
28
29   // Create reconstruction parameter object and set parameter values
30   TObjArray* recParamArray = new TObjArray();
31
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);
50     recParamDB->SetTrkCutAngle(10000.0);      // i.e. exclude this for the moment
51     
52     //PID
53     
54     // as a first step, all array elements are initialized to 0.0
55     Int_t i, j;
56     for (i = 0; i < 6; i++) {
57       for (j = 0; j < 6; j++) {
58         
59         recParamDB->SetGamma(i,j,0.);
60         recParamDB->SetHadron(i,j,0.);
61         recParamDB->SetPiZero5to10(i,j, 0.);
62         recParamDB->SetPiZero10to60(i,j,0.);
63       }
64     } 
65     
66     recParamDB->SetGamma(0,0,  0.038022);
67     recParamDB->SetGamma(0,1, -0.0001883);
68     recParamDB->SetGamma(0,2,  5.449e-06);
69     
70     recParamDB->SetGamma(1,0,  0.207313);
71     recParamDB->SetGamma(1,1, -0.000978);
72     recParamDB->SetGamma(1,2,  0.00001634);
73     
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);
78     
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);
83     
84     recParamDB->SetGamma(4,0,  0.243579);
85     recParamDB->SetGamma(4,1, -1.614e-05);
86     
87     recParamDB->SetGamma(5,0,  0.002942);
88     recParamDB->SetGamma(5,1, -3.976e-05);
89     
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.);
94     
95     recParamDB->SetHadron(1,0,  0.496544);
96     recParamDB->SetHadron(1,1, -0.003226);
97     recParamDB->SetHadron(1,2,  0.00001678);
98     
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);
103     
104     recParamDB->SetHadron(3,0,  1.264461 / 7.);
105     recParamDB->SetHadron(3,1,  0.002097 / 7.);
106     
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.);
119     
120     recParamDB->SetPiZero5to10(0,0, 0.009138);
121     recParamDB->SetPiZero5to10(0,1, 0.0006377);
122     
123     recParamDB->SetPiZero5to10(1,0, 0.08);
124     
125     recParamDB->SetPiZero5to10(2,0, -0.061119);
126     recParamDB->SetPiZero5to10(2,1,  0.019013);
127     
128     recParamDB->SetPiZero5to10(3,0,  0.2);
129     
130     recParamDB->SetPiZero5to10(4,0,  0.252044);
131     recParamDB->SetPiZero5to10(4,1, -0.002315);
132     
133     recParamDB->SetPiZero5to10(5,0,  0.002942);
134     recParamDB->SetPiZero5to10(5,1, -3.976e-05);
135     
136     recParamDB->SetPiZero10to60(0,0,  0.009138);
137     recParamDB->SetPiZero10to60(0,1,  0.0006377);
138     
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);
143     
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);
149     
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);
154     
155     recParamDB->SetPiZero10to60(4,0,  0.249890);
156     recParamDB->SetPiZero10to60(4,1, -0.000063);
157     
158     recParamDB->SetPiZero10to60(5,0,  0.002942);
159     recParamDB->SetPiZero10to60(5,1, -3.976e-05);
160     
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);
167
168     //Add to the recParamArray
169     recParamDB->SetEventSpecie(AliRecoParam::kDefault);
170     recParamArray->AddLast(recParamDB);
171   }
172
173   //Add other options here, if desired, for
174   //Cosmic, LowMult and HighMult type events
175   //and add them to the array
176
177
178   {
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();
182
183     recParamDB->SetEventSpecie(AliRecoParam::kHighMult);
184     recParamArray->AddLast(recParamDB);
185   }
186
187
188   {
189     //Low multiplicity parameter modifications:
190     AliEMCALRecParam *recParamDB = AliEMCALRecParam::GetDefaultParameters();
191
192     recParamDB->SetClusteringThreshold(0.1); // 100 MeV
193     recParamDB->SetMinECut(0.01);  //10 MeV
194     recParamDB->SetEventSpecie(AliRecoParam::kLowMult);
195     recParamArray->AddLast(recParamDB);
196     
197   }
198
199
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);
204     if(!param) continue;
205     if(default & param->GetEventSpecie()) {
206       param->SetAsDefault();
207       defaultIsSet = kTRUE;
208     }
209   }
210
211   if(!defaultIsSet) {
212     AliError("The default reconstruction parameters are not set!  Exiting...");
213     return;
214   }
215
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);
222   
223   AliCDBId id("EMCAL/Calib/RecoParam",0,AliCDBRunRange::Infinity());
224   cdb->GetDefaultStorage()->Put(recParamArray, id, md);
225
226   return;
227 }