]> git.uio.no Git - u/mrichter/AliRoot.git/blob - T0/AliT0SetCDB.C
Modifications in AliESDMuonTrack:
[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 "AliCDBMetaData.h"
20 #include "AliCDBId.h"
21 #include "AliCDBEntry.h"
22 #include "AliCDBManager.h"
23 #include "AliCDBStorage.h"
24 #endif
25
26
27 void AliT0SetCDB()
28 {
29   TControlBar *menu = new TControlBar("vertical","T0 CDB");
30   menu->AddButton("Set time delay","SetTimeDelay()",
31                   "Set time dalay");
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()",
37                   "Set LookUp table");
38   menu->AddButton("Read time delay","GetTimeDelay()",
39                   "Read time delay");
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 ");
46   menu->Show();
47 }
48
49
50 //------------------------------------------------------------------------
51 void SetAC()
52 {
53   // Writing alignment coefficients into the Condition DB
54   // Arguments:
55   
56   TString DBFolder;
57   Int_t firstRun   =  0;
58   Int_t lastRun    = 10;
59   Int_t beamPeriod =  1;
60   char* objFormat  = "";
61
62   DBFolder  ="local://Align";
63   firstRun  =  0;
64   lastRun   =  10;
65   objFormat = "T0 array Z positions";
66
67   
68   AliT0AlignData *alignda=new AliT0AlignData("T0");
69   alignda-> SetZposition (67.9,373);
70   alignda->Print();
71   
72   //Store calibration data into database
73   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
74    AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
75   
76   AliCDBMetaData md;
77   md.SetComment(objFormat);
78   md.SetBeamPeriod(beamPeriod);
79   md.SetResponsible("Alla");
80   TString fPath="T0/Align/Positions";
81
82
83   //  AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
84   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
85   if(storage) {
86    AliCDBId id(fPath.Data(),firstRun,lastRun);
87
88    storage->Put(alignda, id, &md);
89  }
90 }
91 //------------------------------------------------------------------------
92 void SetTimeDelay()
93 {
94   // Writing calibration coefficients into the Calibration DB
95   // Arguments:
96
97   TString DBFolder;
98   Int_t firstRun   =  0;
99   Int_t lastRun    = 10;
100   Int_t beamPeriod =  1;
101   char* objFormat  = "";
102
103   DBFolder  ="local://Calib";
104   firstRun  =  0;
105   lastRun   =  10;
106   objFormat = "T0 initial time delay";
107
108   AliT0CalibData *calibda=new AliT0CalibData("T0");
109   
110    Float_t fTimeDelay  = 1000;
111
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
117    /*
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};
121  
122    */
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);
128   }
129   calibda->SetMeanT0(499);
130   calibda->Print();
131   //Store calibration data into database
132   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
133
134   //  AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
135   
136   AliCDBMetaData md;
137   md.SetComment(objFormat);
138   md.SetBeamPeriod(beamPeriod);
139   md.SetResponsible("Alla");
140   TString fPath="T0/Calib/TimeDelay";
141
142
143   // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
144   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
145   if(storage) {
146     AliCDBId id(fPath.Data(),firstRun,lastRun);
147     storage->Put(calibda, id, &md);
148   }
149 }
150
151 //------------------------------------------------------------------------
152 void SetWalk()
153 {
154   // Writing calibration coefficients into the Calibration DB
155   // Arguments:
156
157   TString DBFolder;
158   Int_t firstRun   =  0;
159   Int_t lastRun    = 10;
160   Int_t beamPeriod =  1;
161   char* objFormat  = "";
162
163   DBFolder  ="local://Calib";
164   firstRun  =  0;
165   lastRun   =  10;
166   objFormat = "T0 initial slewnig correction";
167
168   AliT0CalibData *calibda=new AliT0CalibData("T0");
169   
170    
171   TRandom rn;
172   
173   for(Int_t ipmt=0; ipmt<24; ipmt++) {
174     calibda->SetWalk(ipmt);
175     calibda->SetAmpLEDRec(ipmt);
176   }
177   //Store calibration data into database
178   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
179
180   //  AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
181   
182   AliCDBMetaData md;
183   md.SetComment(objFormat);
184   md.SetBeamPeriod(beamPeriod);
185   md.SetResponsible("Alla");
186   TString fPath="T0/Calib/Slewing_Walk";
187
188
189   // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
190   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
191   if(storage) {
192     AliCDBId id(fPath.Data(),firstRun,lastRun);
193     storage->Put(calibda, id, &md);
194   }
195 }
196
197 //------------------------------------------------------------------------
198 void GetTimeDelay()
199 {
200   // Read calibration coefficients into the Calibration DB
201   // Arguments:
202   
203   TString DBFolder;
204   
205   DBFolder  ="local://Calib";
206   Int_t nRun=gAlice->GetRunNumber();
207   
208   AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
209   AliCDBEntry* entry = stor->Get("T0/Calib/TimeDelay",0);
210   
211   AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
212   clb->Print();
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;
217   }
218   
219 }
220 //------------------------------------------------------------------------
221 void GetWalk()
222 {
223   // Read calibration coefficients into the Calibration DB
224   // Arguments:
225   
226   TString DBFolder;
227   
228   DBFolder  ="local://Calib";
229   Int_t nRun=gAlice->GetRunNumber();
230   
231    AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
232    AliCDBEntry* entry = stor->Get("T0/Calib/Slewing_Walk",0);
233    
234    AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
235    Int_t ipmt=0;
236    //  cin>>" enter channel number">>ipmt;
237    TGraph *gr = clb->GetAmpLEDRec(ipmt); 
238    gr->Draw("AP");
239 }
240 //------------------------------------------------------------------------
241 void GetAC()
242 {
243   // Read align coefficients into the Calibration DB
244   // Arguments:
245   
246   TString DBFolder;
247   
248   DBFolder  ="local://Align";
249   Int_t nRun=gAlice->GetRunNumber();
250   
251   AliCDBManager *man = AliCDBManager::Instance();
252   AliCDBStorage *stor2 = man->GetStorage("local://Align");
253   AliCDBEntry *entry;
254   entry = stor2->Get("T0/Align/Positions", nRun);
255    
256   AliT0AlignData *aln = (AliT0AlignData*)entry->GetObject();
257   aln->Print();
258 }
259 //------------------------------------------------------------------------
260 void SetLookUp()
261 {
262   // Writing Lookup table into the Calibration DB
263   // Arguments:
264
265   TString DBFolder;
266   Int_t firstRun   =  0;
267   Int_t lastRun    = 10;
268   Int_t beamPeriod =  1;
269   char* objFormat  = "";
270
271   DBFolder  ="local://Calib";
272   firstRun  =  0;
273   lastRun   =  10;
274   objFormat = "T0 Lookup Table";
275
276   AliT0CalibData *calibda=new AliT0CalibData("T0");
277
278   calibda->ReadAsciiLookup("lookUpTable.txt");
279
280   //Store calibration data into database
281   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
282
283   //  AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
284
285   AliCDBMetaData md;
286   md.SetComment(objFormat);
287   md.SetBeamPeriod(beamPeriod);
288   md.SetResponsible("Alla");
289   TString fPath="T0/Calib/LookUp_Table";
290
291
292   // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
293   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
294   if(storage) {
295     AliCDBId id(fPath.Data(),firstRun,lastRun);
296     storage->Put(calibda, id, &md);
297   }
298 }
299 //------------------------------------------------------------------------
300 void GetLookUp()
301 {
302   // Read calibration coefficients into the Calibration DB
303   // Arguments:
304
305   TString DBFolder;
306
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;
312   AliCDBEntry *entry;
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;
320   //  clb->Dump();
321   for (Int_t i=0; i<20; i++) 
322     clb->PrintLookupNames("all",i);
323
324 }