3 // Script to create calibration parameters and store them into CDB
4 // Two sets of calibration parameters can be created:
6 // 2) randomly distributed parameters for decalibrated detector silumations
9 #include "TControlBar.h"
17 #include "AliT0CalibData.h"
18 #include "AliT0AlignData.h"
19 #include "AliCDBMetaData.h"
21 #include "AliCDBEntry.h"
22 #include "AliCDBManager.h"
23 #include "AliCDBStorage.h"
29 TControlBar *menu = new TControlBar("vertical","T0 CDB");
30 menu->AddButton("Set time delay","SetTimeDelay()",
32 menu->AddButton("Set walk","SetWalk()",
33 "Set slewing coorection");
34 menu->AddButton("Set Align","SetAC()",
35 "Set alignment coefficients");
36 menu->AddButton("Set LookUpTable","SetLookUp()",
38 menu->AddButton("Read time delay","GetTimeDelay()",
40 menu->AddButton("Read walk","GetWalk()",
41 "Read amplitude-time correction");
42 menu->AddButton("Read alignment CC","GetAC()",
43 "Read face detector position ");
44 menu->AddButton("Read Lookup","GetLookUp()",
45 "Read Lookup table ");
50 //------------------------------------------------------------------------
53 // Writing alignment coefficients into the Condition DB
62 DBFolder ="local://Align";
65 objFormat = "T0 array Z positions";
68 AliT0AlignData *alignda=new AliT0AlignData("T0");
69 alignda-> SetZposition (67.9,373);
72 //Store calibration data into database
73 AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
74 AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
77 md.SetComment(objFormat);
78 md.SetBeamPeriod(beamPeriod);
79 md.SetResponsible("Alla");
80 TString fPath="T0/Align/Positions";
83 // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
84 AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
86 AliCDBId id(fPath.Data(),firstRun,lastRun);
88 storage->Put(alignda, id, &md);
91 //------------------------------------------------------------------------
94 // Writing calibration coefficients into the Calibration DB
100 Int_t beamPeriod = 1;
101 char* objFormat = "";
103 DBFolder ="local://Calib";
106 objFormat = "T0 initial time delay";
108 AliT0CalibData *calibda=new AliT0CalibData("T0");
110 Float_t fTimeDelay = 1000;
112 //for timeDelayDA now we are using Int mean time (+-3RMS fit)
113 //in number of channel for time in each chanel for
114 //1000 Hijingpara nparticles=500 & zvertex=0 produced by readDigits.C
115 // this is way to simulate time positon for vertex=0
116 //with unknown time delay in channel
118 Int_t timedelayDA[24] = {501, 509, 511,510 ,510, 510, 509, 509, 510,
119 510, 509, 508, 511, 510, 509, 508,510,
120 510, 511, 510, 510, 510, 509, 510};
123 for(Int_t ipmt=0; ipmt<24; ipmt++) {
124 calibda->SetTimeDelayCFD(fTimeDelay+ipmt*100,ipmt);
125 // calibda->SetTimeDelayLED(fTimeDelay,ipmt);
126 // calibda->SetTimeDelayDA(timedelayDA[ipmt],ipmt);
127 calibda->SetTimeDelayDA(500,ipmt);
129 calibda->SetMeanT0(499);
131 //Store calibration data into database
132 AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
134 // AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
137 md.SetComment(objFormat);
138 md.SetBeamPeriod(beamPeriod);
139 md.SetResponsible("Alla");
140 TString fPath="T0/Calib/TimeDelay";
143 // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
144 AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
146 AliCDBId id(fPath.Data(),firstRun,lastRun);
147 storage->Put(calibda, id, &md);
151 //------------------------------------------------------------------------
154 // Writing calibration coefficients into the Calibration DB
160 Int_t beamPeriod = 1;
161 char* objFormat = "";
163 DBFolder ="local://Calib";
166 objFormat = "T0 initial slewnig correction";
168 AliT0CalibData *calibda=new AliT0CalibData("T0");
173 for(Int_t ipmt=0; ipmt<24; ipmt++) {
174 calibda->SetWalk(ipmt);
175 calibda->SetAmpLEDRec(ipmt);
177 //Store calibration data into database
178 AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
180 // AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
183 md.SetComment(objFormat);
184 md.SetBeamPeriod(beamPeriod);
185 md.SetResponsible("Alla");
186 TString fPath="T0/Calib/Slewing_Walk";
189 // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
190 AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
192 AliCDBId id(fPath.Data(),firstRun,lastRun);
193 storage->Put(calibda, id, &md);
197 //------------------------------------------------------------------------
200 // Read calibration coefficients into the Calibration DB
205 DBFolder ="local://Calib";
206 Int_t nRun=gAlice->GetRunNumber();
208 AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
209 AliCDBEntry* entry = stor->Get("T0/Calib/TimeDelay",0);
211 AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
213 for (Int_t i=0; i<24; i++) {
214 cout<<clb->GetTimeDelayCFD(i)<<" "<<clb->GetTimeDelayDA(i)<<endl;
215 cout<<" equalizing CFD "<<(clb->GetTimeDelayCFD(i)-clb->GetTimeDelayCFD(0))<<endl;
216 cout<<" equalizing DA "<<(clb->GetTimeDelayDA(i)-clb->GetTimeDelayDA(0))<<endl;
220 //------------------------------------------------------------------------
223 // Read calibration coefficients into the Calibration DB
228 DBFolder ="local://Calib";
229 Int_t nRun=gAlice->GetRunNumber();
231 AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
232 AliCDBEntry* entry = stor->Get("T0/Calib/Slewing_Walk",0);
234 AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
236 // cin>>" enter channel number">>ipmt;
237 TGraph *gr = clb->GetAmpLEDRec(ipmt);
240 //------------------------------------------------------------------------
243 // Read align coefficients into the Calibration DB
248 DBFolder ="local://Align";
249 Int_t nRun=gAlice->GetRunNumber();
251 AliCDBManager *man = AliCDBManager::Instance();
252 AliCDBStorage *stor2 = man->GetStorage("local://Align");
254 entry = stor2->Get("T0/Align/Positions", nRun);
256 AliT0AlignData *aln = (AliT0AlignData*)entry->GetObject();
259 //------------------------------------------------------------------------
262 // Writing Lookup table into the Calibration DB
268 Int_t beamPeriod = 1;
269 char* objFormat = "";
271 DBFolder ="local://Calib";
274 objFormat = "T0 Lookup Table";
276 AliT0CalibData *calibda=new AliT0CalibData("T0");
278 calibda->ReadAsciiLookup("lookUpTable.txt");
280 //Store calibration data into database
281 AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
283 // AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
286 md.SetComment(objFormat);
287 md.SetBeamPeriod(beamPeriod);
288 md.SetResponsible("Alla");
289 TString fPath="T0/Calib/LookUp_Table";
292 // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
293 AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
295 AliCDBId id(fPath.Data(),firstRun,lastRun);
296 storage->Put(calibda, id, &md);
299 //------------------------------------------------------------------------
302 // Read calibration coefficients into the Calibration DB
307 // DBFolder ="local://Calib";
308 // Int_t nRun=gAlice->GetRunNumber();
309 AliCDBManager* cdb = AliCDBManager::Instance();
310 AliCDBStorage *stor = cdb->GetStorage("local://$ALICE_ROOT");
311 // cout<<" GetLookUp :: "<<stor<<endl;
313 //entry = stor->Get("T0/Calib/LookUp_Table",2,0,0);
314 entry = stor->Get("T0/Calib/LookUp_Table",1);
315 //cout<<"entry="<<entry<<endl;
316 cout<<" AliT0CalibData ::GetLookUp :: "<<entry<<endl;
317 AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
318 cout<<" AliT0CalibData *clb "<<clb <<endl;
319 //cout<<"clb->a="<<clb->GetA()<<endl;
321 for (Int_t i=0; i<20; i++)
322 clb->PrintLookupNames("all",i);