]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EMCAL/macros/RecParamDB/AliEMCALSetRecParamCDB.C
Track matching and PID parameters added to AliEMCALRecParam
[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()
20 {
21   TControlBar *menu = new TControlBar("vertical","EMCAL CDB");
22   menu->AddButton("Help to run EMCAL CDB","Help()",
23                   "Explains how to use EMCAL CDS menus");
24   menu->AddButton("Set RecParam","SetRecParam()",
25                   "Set clusterization parameters");
26   menu->AddButton("Get RecParam","GetRecParam()",
27                   "Get clusterization parameters");
28   menu->AddButton("Exit","gApplication->Terminate(0)","Quit aliroot session");
29   menu->Show();
30 }
31
32 //------------------------------------------------------------------------
33 void Help()
34 {
35   char *string =
36     "\n\nSet reconstruction parameters and write them into ALICE OCDB. \nPress button \"Set RecParam\" to create an object AliEMCALRecParam \nand store it to OCDB. \nPress button \"Get RecParam\" to read reconstruction parameters from OCDB \nand print then to stdout.\n\n";
37   printf(string);
38 }
39
40 //------------------------------------------------------------------------
41 void SetRecParam()
42 {
43   // Create an object AliEMCALRecParam and store it to OCDB
44
45   TString DBFolder;
46   Int_t firstRun   =  0;
47   Int_t lastRun    =  999999;
48   Int_t beamPeriod =  1;
49   char* objFormat  = "";
50
51   DBFolder  ="local://LocalCDB";
52   objFormat = "EMCAL reconstruction parameters";
53
54   // Create reconstruction parameter object and set parameter values
55   
56   AliEMCALRecParam *recParamDB = new AliEMCALRecParam();
57   //Clusterization
58   recParamDB->SetClusteringThreshold(0.5);
59   recParamDB->SetW0(4.5);
60   recParamDB->SetMinECut(0.45);
61
62   //Track matching
63   recParamDB->SetTrkCutX(6.0);
64   recParamDB->SetTrkCutY(6.0);
65   recParamDB->SetTrkCutZ(6.0);
66   recParamDB->SetTrkCutR(10.0);
67   recParamDB->SetTrkCutAlphaMin(-50.0);
68   recParamDB->SetTrkCutAlphaMin( 50.0);
69   recParamDB->SetTrkCutAngle(10000.0);      // i.e. exclude this for the moment
70
71   //PID
72   recParamDB->SetGamma(0,0,  0.038022);
73   recParamDB->SetGamma(0,1, -0.0001883);
74   recParamDB->SetGamma(0,2,  5.449e-06);
75   
76   recParamDB->SetGamma(1,0,  0.207313);
77   recParamDB->SetGamma(1,1, -0.000978);
78   recParamDB->SetGamma(1,2,  0.00001634);
79   
80   recParamDB->SetGamma(2,0,  0.043364);
81   recParamDB->SetGamma(2,1, -0.0002048);
82   recParamDB->SetGamma(2,2,  8.661e-06);
83   recParamDB->SetGamma(2,3, -1.353e-07);
84   
85   recParamDB->SetGamma(3,0,  0.265004);
86   recParamDB->SetGamma(3,1,  0.061298);
87   recParamDB->SetGamma(3,2, -0.003203);
88   recParamDB->SetGamma(3,3,  4.73e-05);
89   
90   recParamDB->SetGamma(4,0,  0.243579);
91   recParamDB->SetGamma(4,1, -1.614e-05);
92   
93   recParamDB->SetGamma(5,0,  0.002942);
94   recParamDB->SetGamma(5,1, -3.976e-05);
95   
96   recParamDB->SetHadron(0,0,  0.011945 / 3.);
97   recParamDB->SetHadron(0,1,  0.000386 / 3.);
98   recParamDB->SetHadron(0,2, -0.000014 / 3.);
99   recParamDB->SetHadron(0,3,  1.336e-07 / 3.);
100   
101   recParamDB->SetHadron(1,0,  0.496544);
102   recParamDB->SetHadron(1,1, -0.003226);
103   recParamDB->SetHadron(1,2,  0.00001678);
104   
105   recParamDB->SetHadron(2,0,  0.144838);
106   recParamDB->SetHadron(2,1, -0.002954);
107   recParamDB->SetHadron(2,2,  0.00008754);
108   recParamDB->SetHadron(2,3, -7.587e-07);
109   
110   recParamDB->SetHadron(3,0,  1.264461 / 7.);
111   recParamDB->SetHadron(3,1,  0.002097 / 7.);
112   
113   recParamDB->SetHadron(4,0,  0.261950);
114   recParamDB->SetHadron(4,1, -0.001078);
115   recParamDB->SetHadron(4,2,  0.00003237);
116   recParamDB->SetHadron(4,3, -3.241e-07);
117   recParamDB->SetHadron(4,4,  0.);
118   recParamDB->SetHadron(4,5,  0.);
119   recParamDB->SetHadron(5,0,  0.010317);
120   recParamDB->SetHadron(5,1,  0.);
121   recParamDB->SetHadron(5,2,  0.);
122   recParamDB->SetHadron(5,3,  0.);
123   recParamDB->SetHadron(5,4,  0.);
124   recParamDB->SetHadron(5,5,  0.);
125   
126   recParamDB->SetPiZero5to10(0,0, 0.009138);
127   recParamDB->SetPiZero5to10(0,1, 0.0006377);
128   
129   recParamDB->SetPiZero5to10(1,0, 0.08);
130   
131   recParamDB->SetPiZero5to10(2,0, -0.061119);
132   recParamDB->SetPiZero5to10(2,1,  0.019013);
133   
134   recParamDB->SetPiZero5to10(3,0,  0.2);
135   
136   recParamDB->SetPiZero5to10(4,0,  0.252044);
137   recParamDB->SetPiZero5to10(4,1, -0.002315);
138   
139   recParamDB->SetPiZero5to10(5,0,  0.002942);
140   recParamDB->SetPiZero5to10(5,1, -3.976e-05);
141   
142   recParamDB->SetPiZero10to60(0,0,  0.009138);
143   recParamDB->SetPiZero10to60(0,1,  0.0006377);
144   
145   recParamDB->SetPiZero10to60(1,0,  1.272837);
146   recParamDB->SetPiZero10to60(1,1, -0.069708);
147   recParamDB->SetPiZero10to60(1,2,  0.001568);
148   recParamDB->SetPiZero10to60(1,3, -1.162e-05);
149   
150   recParamDB->SetPiZero10to60(2,0,  0.139703);
151   recParamDB->SetPiZero10to60(2,1,  0.003687);
152   recParamDB->SetPiZero10to60(2,2, -0.000568);
153   recParamDB->SetPiZero10to60(2,3,  1.498e-05);
154   recParamDB->SetPiZero10to60(2,4, -1.174e-07);
155   
156   recParamDB->SetPiZero10to60(3,0, -0.826367);
157   recParamDB->SetPiZero10to60(3,1,  0.096951);
158   recParamDB->SetPiZero10to60(3,2, -0.002215);
159   recParamDB->SetPiZero10to60(3,3,  2.523e-05);
160   
161   recParamDB->SetPiZero10to60(4,0,  0.249890);
162   recParamDB->SetPiZero10to60(4,1, -0.000063);
163   
164   recParamDB->SetPiZero10to60(5,0,  0.002942);
165   recParamDB->SetPiZero10to60(5,1, -3.976e-05);
166   
167   // Store calibration data into database
168   
169   AliCDBMetaData md;
170   md.SetComment(objFormat);
171   md.SetBeamPeriod(beamPeriod);
172   md.SetResponsible("Yuri Kharlov");
173   
174   AliCDBId id("EMCAL/Config/RecParam",firstRun,lastRun);
175
176   AliCDBManager* man = AliCDBManager::Instance();  
177   AliCDBStorage* loc = man->GetStorage(DBFolder.Data());
178   loc->Put(recParamDB, id, &md);
179   recParamDB->Print();
180 }
181
182 //------------------------------------------------------------------------
183 void GetRecParam()
184 {
185   // Read reconstruction parameters from OCDB
186
187   TString DBFolder;
188
189   DBFolder  ="local://LocalCDB";
190   Int_t runNumber = 0;
191
192   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
193   AliCDBManager::Instance()->SetSpecificStorage("EMCAL/*",DBFolder.Data());
194
195   AliCDBEntry* cdbEntry = AliCDBManager::Instance()->Get("EMCAL/Config/RecParam/",runNumber);
196   if (cdbEntry == 0) {
197     cerr << "No CDBEntry found at path "<<DBFolder.Data()<<"/"<<"EMCAL/Config/RecParam/"<<endl;
198     return;
199   }
200
201   AliEMCALRecParam* recParam  = (AliEMCALRecParam*)cdbEntry->GetObject();
202   if (recParam != 0) recParam->Print("");
203   else
204     cerr << "GetRecParam(): no AliEMCALRecParam object is found in OCDB" << endl;
205
206 }