1 /* $Id: AliT0SetCDB.C 22796 2007-12-06 11:32:28Z alla $ */
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 "AliT0Align.h"
20 #include "AliCDBMetaData.h"
22 #include "AliCDBEntry.h"
23 #include "AliCDBManager.h"
24 #include "AliCDBStorage.h"
30 TControlBar *menu = new TControlBar("vertical","T0 CDB");
31 menu->AddButton("Set time delay","SetTimeDelay()",
33 menu->AddButton("Set walk","SetWalk()",
34 "Set slewing coorection");
35 menu->AddButton("Set LookUpTable","SetLookUp()",
37 menu->AddButton("Read time delay","GetTimeDelay()",
39 menu->AddButton("Read walk","GetWalk()",
40 "Read amplitude-time correction");
41 menu->AddButton("Read Lookup","GetLookUp()",
42 "Read Lookup table ");
47 //------------------------------------------------------------------------
48 //------------------------------------------------------------------------
51 // Writing calibration coefficients into the Calibration DB
56 Int_t lastRun = 99999;
60 DBFolder ="local://Calib";
63 objFormat = "T0 initial time delay";
65 AliT0CalibTimeEq *calibda=new AliT0CalibTimeEq("T0");
66 calibda-> ComputeOnlineParams("t0treeDA08000025762005.10.root");
68 Float_t fTimeDelay = 1000;
69 for(Int_t ipmt=0; ipmt<24; ipmt++) {
70 calibda->SetTimeEq(ipmt,fTimeDelay+ipmt*100);
75 //Store calibration data into database
76 AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
77 //AliCDBManager::Instance()->SetDefaultStorage("local:///home/alla/alice/testFeb08/OCDB/");
79 // AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
82 md.SetComment(objFormat);
83 md.SetBeamPeriod(beamPeriod);
84 md.SetResponsible("Alla");
85 TString fPath="T0/Calib/TimeDelay";
86 //TString fPath="TimeDelay";
87 cout<<fPath.Data()<<endl;
89 // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
90 AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
92 AliCDBId id(fPath.Data(),firstRun,lastRun);
93 storage->Put(calibda, id, &md);
97 //------------------------------------------------------------------------
100 // Writing calibration coefficients into the Calibration DB
105 Int_t lastRun = 999999;
106 Int_t beamPeriod = 1;
107 char* objFormat = "";
109 DBFolder ="local://Calib";
112 objFormat = "T0 initial slewnig correction";
114 AliT0CalibWalk *calibda=new AliT0CalibWalk("T0");
115 // cout<<"AliT0CalibWalk "<< calibda<<endl;
117 const char *filename="t0tree08000025765005.10.root";
118 calibda->MakeWalkCorrGraph(filename);
124 for(Int_t ipmt=0; ipmt<24; ipmt++) {
125 calibda->SetWalk(ipmt);
126 calibda->SetAmpLEDRec(ipmt);
131 //Store calibration data into database
132 AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
133 //AliCDBManager::Instance()->SetDefaultStorage("local:///home/alla/alice/testFeb08/OCDB/");
135 // AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
138 md.SetComment(objFormat);
139 md.SetBeamPeriod(beamPeriod);
140 md.SetResponsible("Alla");
141 TString fPath="T0/Calib/Slewing_Walk";
144 // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
145 AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
147 AliCDBId id(fPath.Data(),firstRun,lastRun);
148 storage->Put(calibda, id, &md);
152 //------------------------------------------------------------------------
155 // Read calibration coefficients into the Calibration DB
160 DBFolder ="local://Calib";
161 Int_t nRun=gAlice->GetRunNumber();
163 AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
164 // AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local:///home/alla/alice/testFeb08/OCDB/");
165 AliCDBEntry* entry = stor->Get("T0/Calib/TimeDelay",25068);
167 AliT0CalibTimeEq *clb = (AliT0CalibTimeEq*)entry->GetObject();
169 for (Int_t i=0; i<24; i++) {
170 cout<<i<<" "<<clb->GetTimeEq(i)<<endl;
171 // cout<<" equalizing CFD "<<(clb->GetTimeDelayCFD(i)-clb->GetTimeDelayCFD(0))<<endl;
176 //------------------------------------------------------------------------
179 // Read calibration coefficients into the Calibration DB
184 DBFolder ="local://Calib";
185 Int_t nRun=gAlice->GetRunNumber();
186 // AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local:///home/alla/alice/testFeb08/OCDB/");
188 AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
189 AliCDBEntry* entry = stor->Get("T0/Calib/Slewing_Walk",25081);
191 // AliT0Parameters* param = AliT0Parameters::Instance();
195 AliT0CalibWalk *clb = (AliT0CalibWalk*)entry->GetObject();
196 // cin>>" enter channel number">>ipmt;
198 TCanvas *c1 = new TCanvas("c1", "CFD C side",0,48,1280,951);
200 for (Int_t i=0; i<12; i++) {
202 // TGraph* fu = param ->GetWalk(ipmt);
203 // TGraph *gr = clb->GetWalk(i);
204 TGraph *gr = clb->GetAmpLEDRec(i);
205 // cout<<" "<<gr<<endl;
207 gr->SetMarkerStyle(7);
211 TCanvas *c2 = new TCanvas("c2", "CFD A side",0,48,1280,951);
213 for (Int_t i=12; i<24; i++) {
215 // if(i==15) continue;
216 // TGraph *gr = clb->GetWalk(i);
217 // cout<<i<<" "<<gr->GetN()<<" "<<endl;
218 TGraph *gr = clb->GetAmpLEDRec(i);
219 // TGraph* fu = param ->GetWalk(pmt+12);
220 cout<<i<<" "<<gr->GetN()<<" "<<endl;
222 gr->SetMarkerStyle(7);
223 // gr->SetMarkerSize(20);
228 //------------------------------------------------------------------------
231 // Writing Lookup table into the Calibration DB
237 Int_t beamPeriod = 1;
238 char* objFormat = "";
240 DBFolder ="local://Calib";
243 objFormat = "T0 Lookup Table";
245 AliT0CalibData *calibda=new AliT0CalibData("T0");
247 // calibda->ReadAsciiLookup("lookUpTable.txt");
248 calibda->ReadAsciiLookup("lookUpTable_tanay.txt");
250 //Store calibration data into database
251 AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
253 // AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
256 md.SetComment(objFormat);
257 md.SetBeamPeriod(beamPeriod);
258 md.SetResponsible("Alla");
259 TString fPath="T0/Calib/LookUp_Table";
262 // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
263 AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
265 AliCDBId id(fPath.Data(),firstRun,lastRun);
266 storage->Put(calibda, id, &md);
269 //------------------------------------------------------------------------
272 // Read calibration coefficients into the Calibration DB
277 // DBFolder ="local://Calib";
278 // Int_t nRun=gAlice->GetRunNumber();
279 AliCDBManager* cdb = AliCDBManager::Instance();
280 AliCDBStorage *stor = cdb->GetStorage("local://$ALICE_ROOT");
281 // cout<<" GetLookUp :: "<<stor<<endl;
283 //entry = stor->Get("T0/Calib/LookUp_Table",2,0,0);
284 entry = stor->Get("T0/Calib/LookUp_Table",1);
285 //cout<<"entry="<<entry<<endl;
286 cout<<" AliT0CalibData ::GetLookUp :: "<<entry<<endl;
287 AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
288 cout<<" AliT0CalibData *clb "<<clb <<endl;
289 //cout<<"clb->a="<<clb->GetA()<<endl;
291 for (Int_t i=0; i<20; i++)
292 clb->PrintLookupNames("all",i);