]> git.uio.no Git - u/mrichter/AliRoot.git/blob - T0/AliT0SetCDB.C
fix bug in OnlineLookup
[u/mrichter/AliRoot.git] / T0 / AliT0SetCDB.C
1 /* $Id$ */
2
3 // Script to create calibration parameters and store them into CDB
4 // Two sets of calibration parameters can be created:
5 // 1) equal parameters
6 // 2) randomly distributed parameters for decalibrated detector silumations
7
8 #if !defined(__CINT__)
9 #include "TControlBar.h"
10 #include "TString.h"
11 #include "TRandom.h"
12 #include "TH1F.h"
13 #include "TF1.h"
14 #include "TCanvas.h"
15
16 #include "AliRun.h"
17 #include "AliT0CalibData.h"
18 //#include "AliT0AlignData.h"
19 #include "AliT0Align.h"
20 #include "AliCDBMetaData.h"
21 #include "AliCDBId.h"
22 #include "AliCDBEntry.h"
23 #include "AliCDBManager.h"
24 #include "AliCDBStorage.h"
25 #endif
26
27
28 void AliT0SetCDB()
29 {
30   TControlBar *menu = new TControlBar("vertical","T0 CDB");
31   menu->AddButton("Set time delay","SetTimeDelay()",
32                   "Set time dalay");
33   menu->AddButton("Set walk","SetWalk()",
34                   "Set slewing coorection");
35   menu->AddButton("Set Align","SetAC()",
36                   "Set alignment coefficients");
37   menu->AddButton("Set LookUpTable","SetLookUp()",
38                   "Set LookUp table");
39   menu->AddButton("Read time delay","GetTimeDelay()",
40                   "Read time delay");
41   menu->AddButton("Read walk","GetWalk()",
42                   "Read amplitude-time correction");
43   menu->AddButton("Read alignment CC","GetAC()",
44                   "Read face detector position ");
45   menu->AddButton("Read Lookup","GetLookUp()",
46                   "Read Lookup table ");
47   menu->Show();
48 }
49
50
51 //------------------------------------------------------------------------
52 void SetAC()
53 {
54   // Writing alignment coefficients into the Condition DB
55   // Arguments:
56   
57   TString DBFolder;
58   Int_t firstRun   =  0;
59   Int_t lastRun    = 10;
60   Int_t beamPeriod =  1;
61   char* objFormat  = "";
62
63   DBFolder  ="local://Align";
64   firstRun  =  0;
65   lastRun   =  10;
66   objFormat = "T0 array  positions";
67
68   AliT0Align *al = new AliT0Align(1,835615);
69   al->Run();
70
71    /* 
72   AliT0AlignData *alignda=new AliT0AlignData("T0");
73   alignda-> SetZposition (67.9,373);
74   alignda->Print();
75   
76   //Store calibration data into database
77   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
78    AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
79   
80   AliCDBMetaData md;
81   md.SetComment(objFormat);
82   md.SetBeamPeriod(beamPeriod);
83   md.SetResponsible("Alla");
84   TString fPath="T0/Align/Positions";
85
86
87   //  AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
88   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
89   if(storage) {
90    AliCDBId id(fPath.Data(),firstRun,lastRun);
91
92    storage->Put(alignda, id, &md);
93  }
94    */
95 }
96 //------------------------------------------------------------------------
97 void SetTimeDelay()
98 {
99   // Writing calibration coefficients into the Calibration DB
100   // Arguments:
101
102   TString DBFolder;
103   Int_t firstRun   =  0;
104   Int_t lastRun    = 10;
105   Int_t beamPeriod =  1;
106   char* objFormat  = "";
107
108   DBFolder  ="local://Calib";
109   firstRun  =  0;
110   lastRun   =  10;
111   objFormat = "T0 initial time delay";
112
113   AliT0CalibData *calibda=new AliT0CalibData("T0");
114   
115    Float_t fTimeDelay  = 1000;
116
117    //for timeDelayDA now we are using Int mean time (+-3RMS fit) 
118    //in number of channel for time in each chanel for 
119    //1000 Hijingpara nparticles=500 & zvertex=0 produced by readDigits.C
120    // this is way to simulate time positon for vertex=0 
121    //with unknown time delay in channel
122    /*
123    Int_t timedelayDA[24] = {501, 509, 511,510 ,510, 510, 509, 509, 510,
124                             510, 509, 508, 511, 510, 509, 508,510,
125                             510, 511, 510, 510, 510, 509, 510};
126  
127    */
128   for(Int_t ipmt=0; ipmt<24; ipmt++) {
129     calibda->SetTimeDelayCFD(fTimeDelay+ipmt*100,ipmt);
130        //   calibda->SetTimeDelayLED(fTimeDelay,ipmt);
131 //    calibda->SetTimeDelayDA(timedelayDA[ipmt],ipmt);
132     calibda->SetTimeDelayDA(500,ipmt);
133   }
134   calibda->SetMeanT0(499);
135   calibda->Print();
136   //Store calibration data into database
137   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
138
139   //  AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
140   
141   AliCDBMetaData md;
142   md.SetComment(objFormat);
143   md.SetBeamPeriod(beamPeriod);
144   md.SetResponsible("Alla");
145   TString fPath="T0/Calib/TimeDelay";
146
147
148   // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
149   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
150   if(storage) {
151     AliCDBId id(fPath.Data(),firstRun,lastRun);
152     storage->Put(calibda, id, &md);
153   }
154 }
155
156 //------------------------------------------------------------------------
157 void SetWalk()
158 {
159   // Writing calibration coefficients into the Calibration DB
160   // Arguments:
161
162   TString DBFolder;
163   Int_t firstRun   =  0;
164   Int_t lastRun    = 10;
165   Int_t beamPeriod =  1;
166   char* objFormat  = "";
167
168   DBFolder  ="local://Calib";
169   firstRun  =  0;
170   lastRun   =  10;
171   objFormat = "T0 initial slewnig correction";
172
173   AliT0CalibData *calibda=new AliT0CalibData("T0");
174   
175    
176   TRandom rn;
177   
178   for(Int_t ipmt=0; ipmt<24; ipmt++) {
179     calibda->SetWalk(ipmt);
180     calibda->SetAmpLEDRec(ipmt);
181   }
182   //Store calibration data into database
183   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
184
185   //  AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
186   
187   AliCDBMetaData md;
188   md.SetComment(objFormat);
189   md.SetBeamPeriod(beamPeriod);
190   md.SetResponsible("Alla");
191   TString fPath="T0/Calib/Slewing_Walk";
192
193
194   // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
195   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
196   if(storage) {
197     AliCDBId id(fPath.Data(),firstRun,lastRun);
198     storage->Put(calibda, id, &md);
199   }
200 }
201
202 //------------------------------------------------------------------------
203 void GetTimeDelay()
204 {
205   // Read calibration coefficients into the Calibration DB
206   // Arguments:
207   
208   TString DBFolder;
209   
210   DBFolder  ="local://Calib";
211   Int_t nRun=gAlice->GetRunNumber();
212   
213   AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
214   AliCDBEntry* entry = stor->Get("T0/Calib/TimeDelay",0);
215   
216   AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
217   clb->Print();
218   for (Int_t i=0; i<24; i++) {
219    cout<<clb->GetTimeDelayCFD(i)<<" "<<clb->GetTimeDelayDA(i)<<endl;
220    cout<<" equalizing CFD "<<(clb->GetTimeDelayCFD(i)-clb->GetTimeDelayCFD(0))<<endl;
221   cout<<" equalizing DA "<<(clb->GetTimeDelayDA(i)-clb->GetTimeDelayDA(0))<<endl;
222   }
223   
224 }
225 //------------------------------------------------------------------------
226 void GetWalk()
227 {
228   // Read calibration coefficients into the Calibration DB
229   // Arguments:
230   
231   TString DBFolder;
232   
233   DBFolder  ="local://Calib";
234   Int_t nRun=gAlice->GetRunNumber();
235   
236    AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
237    AliCDBEntry* entry = stor->Get("T0/Calib/Slewing_Walk",0);
238    
239    AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
240    Int_t ipmt=0;
241    //  cin>>" enter channel number">>ipmt;
242    TGraph *gr = clb->GetAmpLEDRec(ipmt); 
243    gr->Draw("AP");
244 }
245 //------------------------------------------------------------------------
246 void GetAC()
247 {
248   // Read align coefficients into the Calibration DB
249   // Arguments:
250   
251   TString DBFolder;
252   
253   DBFolder  ="local://Align";
254   Int_t nRun=gAlice->GetRunNumber();
255   
256   AliCDBManager *man = AliCDBManager::Instance();
257   AliCDBStorage *stor2 = man->GetStorage("local://Align");
258   AliCDBEntry *entry;
259   entry = stor2->Get("T0/Align/Positions", nRun);
260    
261   AliT0AlignData *aln = (AliT0AlignData*)entry->GetObject();
262   aln->Print();
263 }
264 //------------------------------------------------------------------------
265 void SetLookUp()
266 {
267   // Writing Lookup table into the Calibration DB
268   // Arguments:
269
270   TString DBFolder;
271   Int_t firstRun   =  0;
272   Int_t lastRun    = 10;
273   Int_t beamPeriod =  1;
274   char* objFormat  = "";
275
276   DBFolder  ="local://Calib";
277   firstRun  =  0;
278   lastRun   =  10;
279   objFormat = "T0 Lookup Table";
280
281   AliT0CalibData *calibda=new AliT0CalibData("T0");
282
283 //  calibda->ReadAsciiLookup("lookUpTable.txt");
284   calibda->ReadAsciiLookup("lookUpTable_tanay.txt");
285
286   //Store calibration data into database
287   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
288
289   //  AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
290
291   AliCDBMetaData md;
292   md.SetComment(objFormat);
293   md.SetBeamPeriod(beamPeriod);
294   md.SetResponsible("Alla");
295   TString fPath="T0/Calib/LookUp_Table";
296
297
298   // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
299   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
300   if(storage) {
301     AliCDBId id(fPath.Data(),firstRun,lastRun);
302     storage->Put(calibda, id, &md);
303   }
304 }
305 //------------------------------------------------------------------------
306 void GetLookUp()
307 {
308   // Read calibration coefficients into the Calibration DB
309   // Arguments:
310
311   TString DBFolder;
312
313   //  DBFolder  ="local://Calib";
314   //   Int_t nRun=gAlice->GetRunNumber();
315   AliCDBManager* cdb      = AliCDBManager::Instance();
316   AliCDBStorage *stor = cdb->GetStorage("local://$ALICE_ROOT");
317   // cout<<" GetLookUp :: "<<stor<<endl;
318   AliCDBEntry *entry;
319   //entry = stor->Get("T0/Calib/LookUp_Table",2,0,0);
320   entry = stor->Get("T0/Calib/LookUp_Table",1);
321   //cout<<"entry="<<entry<<endl;
322    cout<<" AliT0CalibData ::GetLookUp :: "<<entry<<endl;
323   AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
324   cout<<" AliT0CalibData *clb "<<clb <<endl;
325   //cout<<"clb->a="<<clb->GetA()<<endl;
326   //  clb->Dump();
327   for (Int_t i=0; i<20; i++) 
328     clb->PrintLookupNames("all",i);
329
330 }