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 Calib","SetCC()",
31 "Set calibration coefficients");
32 menu->AddButton("Set Align","SetAC()",
33 "Set alignment coefficients");
34 menu->AddButton("Set LookUpTable","SetLookUp()",
36 menu->AddButton("Read calibration CC","GetCC()",
37 "Read calibration coefficients");
38 menu->AddButton("Read alignment CC","GetAC()",
39 "Read face detector position ");
40 menu->AddButton("Read Lookup","GetLookUp()",
41 "Read Lookup table ");
46 //------------------------------------------------------------------------
49 // Writing alignment coefficients into the Condition DB
58 DBFolder ="local://Align";
61 objFormat = "T0 array Z positions";
64 AliT0AlignData *alignda=new AliT0AlignData("T0");
65 alignda-> SetZposition (67.9,373);
68 //Store calibration data into database
69 AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
70 AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
73 md.SetComment(objFormat);
74 md.SetBeamPeriod(beamPeriod);
75 md.SetResponsible("Alla");
76 TString fPath="T0/Align/Positions";
79 // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
80 AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
82 AliCDBId id(fPath.Data(),firstRun,lastRun);
84 storage->Put(alignda, id, &md);
87 //------------------------------------------------------------------------
90 // Writing calibration coefficients into the Calibration DB
99 DBFolder ="local://Calib";
102 objFormat = "T0 initial gain factors, time delay, slewnig";
104 AliT0CalibData *calibda=new AliT0CalibData("T0");
107 Float_t fTimeDelay = 200;
111 for(Int_t ipmt=0; ipmt<24; ipmt++) {
112 calibda->SetGain (fGain,ipmt);
113 calibda->SetTimeDelayCFD(fTimeDelay,ipmt);
114 calibda->SetTimeDelayLED(fTimeDelay,ipmt);
115 calibda->SetWalk(ipmt,"data/re.root");
116 calibda->SetSlewingLED(ipmt,"data/CFD-LED.txt");
117 calibda->SetSlewingRec(ipmt,"data/CFD-LED.txt");
118 Double_t value=calibda->GetSlewingLED(ipmt,300);
119 Double_t rec= calibda->GetSlewingRec(ipmt, value);
120 cout<<" in "<<value<<" out "<<rec<<endl;
123 //Store calibration data into database
124 AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
126 // AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
129 md.SetComment(objFormat);
130 md.SetBeamPeriod(beamPeriod);
131 md.SetResponsible("Alla");
132 TString fPath="T0/Calib/Gain_TimeDelay_Slewing_Walk";
135 // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
136 AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
138 AliCDBId id(fPath.Data(),firstRun,lastRun);
139 storage->Put(calibda, id, &md);
143 //------------------------------------------------------------------------
146 // Read calibration coefficients into the Calibration DB
151 DBFolder ="local://Calib";
152 Int_t nRun=gAlice->GetRunNumber();
154 AliCDBManager *man = AliCDBManager::Instance();
155 AliCDBStorage *stor2 = man->GetStorage("local://Calib");
157 entry = stor2->Get("T0/Calib/Gain_TimeDelay_Slewing_Walk");
159 AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
162 //------------------------------------------------------------------------
165 // Read align coefficients into the Calibration DB
170 DBFolder ="local://Align";
171 Int_t nRun=gAlice->GetRunNumber();
173 AliCDBManager *man = AliCDBManager::Instance();
174 AliCDBStorage *stor2 = man->GetStorage("local://Align");
176 entry = stor2->Get("T0/Align/Positions", nRun);
178 AliT0AlignData *aln = (AliT0AlignData*)entry->GetObject();
181 //------------------------------------------------------------------------
184 // Writing Lookup table into the Calibration DB
190 Int_t beamPeriod = 1;
191 char* objFormat = "";
193 DBFolder ="local://Calib";
196 objFormat = "T0 Lookup Table";
198 AliT0CalibData *calibda=new AliT0CalibData("T0");
200 calibda->ReadAsciiLookup("lookUpTable.txt");
202 //Store calibration data into database
203 AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
205 // AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
208 md.SetComment(objFormat);
209 md.SetBeamPeriod(beamPeriod);
210 md.SetResponsible("Alla");
211 TString fPath="T0/Calib/LookUp_Table";
214 // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
215 AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
217 AliCDBId id(fPath.Data(),firstRun,lastRun);
218 storage->Put(calibda, id, &md);
221 //------------------------------------------------------------------------
224 // Read calibration coefficients into the Calibration DB
229 // DBFolder ="local://Calib";
230 // Int_t nRun=gAlice->GetRunNumber();
231 AliCDBManager* cdb = AliCDBManager::Instance();
232 AliCDBStorage *stor = cdb->GetStorage("local://$ALICE_ROOT");
233 // cout<<" GetLookUp :: "<<stor<<endl;
235 //entry = stor->Get("T0/Calib/LookUp_Table",2,0,0);
236 entry = stor->Get("T0/Calib/LookUp_Table",1);
237 //cout<<"entry="<<entry<<endl;
238 cout<<" AliT0CalibData ::GetLookUp :: "<<entry<<endl;
239 AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
240 cout<<" AliT0CalibData *clb "<<clb <<endl;
241 //cout<<"clb->a="<<clb->GetA()<<endl;
243 for (Int_t i=0; i<6; i++)
244 clb->PrintLookup("all",0,i,4);