]> git.uio.no Git - u/mrichter/AliRoot.git/blob - T0/AliT0SetCDB.C
New generator for the krypton runs of TPC (Marek)
[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,"data/CFD-Amp.txt");
175     //    calibda->SetSlewingLED(ipmt,"data/CFD-LED.txt");
176     //  calibda->SetSlewingRec(ipmt,"data/CFD-LED.txt");
177     calibda->SetWalk(ipmt);
178     calibda->SetSlewingLED(ipmt);
179     calibda->SetSlewingRec(ipmt);
180   }
181   //Store calibration data into database
182   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
183
184   //  AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
185   
186   AliCDBMetaData md;
187   md.SetComment(objFormat);
188   md.SetBeamPeriod(beamPeriod);
189   md.SetResponsible("Alla");
190   TString fPath="T0/Calib/Slewing_Walk";
191
192
193   // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
194   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
195   if(storage) {
196     AliCDBId id(fPath.Data(),firstRun,lastRun);
197     storage->Put(calibda, id, &md);
198   }
199 }
200
201 //------------------------------------------------------------------------
202 void GetTimeDelay()
203 {
204   // Read calibration coefficients into the Calibration DB
205   // Arguments:
206   
207   TString DBFolder;
208   
209   DBFolder  ="local://Calib";
210   Int_t nRun=gAlice->GetRunNumber();
211   
212   AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
213   AliCDBEntry* entry = stor->Get("T0/Calib/TimeDelay",0);
214   
215   AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
216   clb->Print();
217   for (Int_t i=0; i<24; i++) {
218    cout<<clb->GetTimeDelayCFD(i)<<" "<<clb->GetTimeDelayDA(i)<<endl;
219    cout<<" equalizing CFD "<<(clb->GetTimeDelayCFD(i)-clb->GetTimeDelayCFD(0))<<endl;
220   cout<<" equalizing DA "<<(clb->GetTimeDelayDA(i)-clb->GetTimeDelayDA(0))<<endl;
221   }
222   
223 }
224 //------------------------------------------------------------------------
225 void GetWalk()
226 {
227   // Read calibration coefficients into the Calibration DB
228   // Arguments:
229   
230   TString DBFolder;
231   
232   DBFolder  ="local://Calib";
233   Int_t nRun=gAlice->GetRunNumber();
234   
235    AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
236    AliCDBEntry* entry = stor->Get("T0/Calib/Slewing_Walk",0);
237    
238    AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
239    Int_t ipmt=0;
240    //  cin>>" enter channel number">>ipmt;
241    TGraph *gr = clb->GetWalk(ipmt); 
242    gr->Draw("AP");
243 }
244 //------------------------------------------------------------------------
245 void GetAC()
246 {
247   // Read align coefficients into the Calibration DB
248   // Arguments:
249   
250   TString DBFolder;
251   
252   DBFolder  ="local://Align";
253   Int_t nRun=gAlice->GetRunNumber();
254   
255   AliCDBManager *man = AliCDBManager::Instance();
256   AliCDBStorage *stor2 = man->GetStorage("local://Align");
257   AliCDBEntry *entry;
258   entry = stor2->Get("T0/Align/Positions", nRun);
259    
260   AliT0AlignData *aln = (AliT0AlignData*)entry->GetObject();
261   aln->Print();
262 }
263 //------------------------------------------------------------------------
264 void SetLookUp()
265 {
266   // Writing Lookup table into the Calibration DB
267   // Arguments:
268
269   TString DBFolder;
270   Int_t firstRun   =  0;
271   Int_t lastRun    = 10;
272   Int_t beamPeriod =  1;
273   char* objFormat  = "";
274
275   DBFolder  ="local://Calib";
276   firstRun  =  0;
277   lastRun   =  10;
278   objFormat = "T0 Lookup Table";
279
280   AliT0CalibData *calibda=new AliT0CalibData("T0");
281
282   calibda->ReadAsciiLookup("lookUpTable.txt");
283
284   //Store calibration data into database
285   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
286
287   //  AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
288
289   AliCDBMetaData md;
290   md.SetComment(objFormat);
291   md.SetBeamPeriod(beamPeriod);
292   md.SetResponsible("Alla");
293   TString fPath="T0/Calib/LookUp_Table";
294
295
296   // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
297   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
298   if(storage) {
299     AliCDBId id(fPath.Data(),firstRun,lastRun);
300     storage->Put(calibda, id, &md);
301   }
302 }
303 //------------------------------------------------------------------------
304 void GetLookUp()
305 {
306   // Read calibration coefficients into the Calibration DB
307   // Arguments:
308
309   TString DBFolder;
310
311   //  DBFolder  ="local://Calib";
312   //   Int_t nRun=gAlice->GetRunNumber();
313   AliCDBManager* cdb      = AliCDBManager::Instance();
314   AliCDBStorage *stor = cdb->GetStorage("local://$ALICE_ROOT");
315   // cout<<" GetLookUp :: "<<stor<<endl;
316   AliCDBEntry *entry;
317   //entry = stor->Get("T0/Calib/LookUp_Table",2,0,0);
318   entry = stor->Get("T0/Calib/LookUp_Table",1);
319   //cout<<"entry="<<entry<<endl;
320    cout<<" AliT0CalibData ::GetLookUp :: "<<entry<<endl;
321   AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
322   cout<<" AliT0CalibData *clb "<<clb <<endl;
323   //cout<<"clb->a="<<clb->GetA()<<endl;
324   //  clb->Dump();
325   for (Int_t i=0; i<20; i++) 
326     clb->PrintLookupNames("all",i);
327
328 }