]> git.uio.no Git - u/mrichter/AliRoot.git/blob - T0/AliT0SetCDB.C
more realistic calibration
[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   
113   for(Int_t ipmt=0; ipmt<24; ipmt++) {
114     calibda->SetTimeDelayCFD(fTimeDelay+ipmt*100,ipmt);
115     //   calibda->SetTimeDelayLED(fTimeDelay,ipmt);
116     calibda->SetTimeDelayLED(0,ipmt);
117   }
118   calibda->Print();
119   //Store calibration data into database
120   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
121
122   //  AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
123   
124   AliCDBMetaData md;
125   md.SetComment(objFormat);
126   md.SetBeamPeriod(beamPeriod);
127   md.SetResponsible("Alla");
128   TString fPath="T0/Calib/TimeDelay";
129
130
131   // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
132   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
133   if(storage) {
134     AliCDBId id(fPath.Data(),firstRun,lastRun);
135     storage->Put(calibda, id, &md);
136   }
137 }
138
139 //------------------------------------------------------------------------
140 void SetWalk()
141 {
142   // Writing calibration coefficients into the Calibration DB
143   // Arguments:
144
145   TString DBFolder;
146   Int_t firstRun   =  0;
147   Int_t lastRun    = 10;
148   Int_t beamPeriod =  1;
149   char* objFormat  = "";
150
151   DBFolder  ="local://Calib";
152   firstRun  =  0;
153   lastRun   =  10;
154   objFormat = "T0 initial slewnig correction";
155
156   AliT0CalibData *calibda=new AliT0CalibData("T0");
157   
158    
159   TRandom rn;
160   
161   for(Int_t ipmt=0; ipmt<24; ipmt++) {
162     calibda->SetWalk(ipmt,"data/CFD-Amp.txt");
163     calibda->SetSlewingLED(ipmt,"data/CFD-LED.txt");
164     calibda->SetSlewingRec(ipmt,"data/CFD-LED.txt");
165   }
166   //Store calibration data into database
167   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
168
169   //  AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
170   
171   AliCDBMetaData md;
172   md.SetComment(objFormat);
173   md.SetBeamPeriod(beamPeriod);
174   md.SetResponsible("Alla");
175   TString fPath="T0/Calib/Slewing_Walk";
176
177
178   // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
179   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
180   if(storage) {
181     AliCDBId id(fPath.Data(),firstRun,lastRun);
182     storage->Put(calibda, id, &md);
183   }
184 }
185
186 //------------------------------------------------------------------------
187 void GetTimeDelay()
188 {
189   // Read calibration coefficients into the Calibration DB
190   // Arguments:
191   
192   TString DBFolder;
193   
194   DBFolder  ="local://Calib";
195   Int_t nRun=gAlice->GetRunNumber();
196   
197   AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
198   AliCDBEntry* entry = stor->Get("T0/Calib/TimeDelay",0);
199   
200   AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
201   clb->Print();
202 }
203 //------------------------------------------------------------------------
204 void GetWalk()
205 {
206   // Read calibration coefficients into the Calibration DB
207   // Arguments:
208   
209   TString DBFolder;
210   
211   DBFolder  ="local://Calib";
212   Int_t nRun=gAlice->GetRunNumber();
213   
214    AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
215    AliCDBEntry* entry = stor->Get("T0/Calib/Slewing_Walk",0);
216    
217    AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
218    Int_t ipmt=0;
219    //  cin>>" enter channel number">>ipmt;
220    TGraph *gr = clb->GetWalk(ipmt); 
221    gr->Draw("AP");
222 }
223 //------------------------------------------------------------------------
224 void GetAC()
225 {
226   // Read align coefficients into the Calibration DB
227   // Arguments:
228   
229   TString DBFolder;
230   
231   DBFolder  ="local://Align";
232   Int_t nRun=gAlice->GetRunNumber();
233   
234   AliCDBManager *man = AliCDBManager::Instance();
235   AliCDBStorage *stor2 = man->GetStorage("local://Align");
236   AliCDBEntry *entry;
237   entry = stor2->Get("T0/Align/Positions", nRun);
238    
239   AliT0AlignData *aln = (AliT0AlignData*)entry->GetObject();
240   aln->Print();
241 }
242 //------------------------------------------------------------------------
243 void SetLookUp()
244 {
245   // Writing Lookup table into the Calibration DB
246   // Arguments:
247
248   TString DBFolder;
249   Int_t firstRun   =  0;
250   Int_t lastRun    = 10;
251   Int_t beamPeriod =  1;
252   char* objFormat  = "";
253
254   DBFolder  ="local://Calib";
255   firstRun  =  0;
256   lastRun   =  10;
257   objFormat = "T0 Lookup Table";
258
259   AliT0CalibData *calibda=new AliT0CalibData("T0");
260
261   calibda->ReadAsciiLookup("lookUpTable.txt");
262 //calibda->SetA(5);
263   //Store calibration data into database
264   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
265
266   //  AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
267
268   AliCDBMetaData md;
269   md.SetComment(objFormat);
270   md.SetBeamPeriod(beamPeriod);
271   md.SetResponsible("Alla");
272   TString fPath="T0/Calib/LookUp_Table";
273
274
275   // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
276   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
277   if(storage) {
278     AliCDBId id(fPath.Data(),firstRun,lastRun);
279     storage->Put(calibda, id, &md);
280   }
281 }
282 //------------------------------------------------------------------------
283 void GetLookUp()
284 {
285   // Read calibration coefficients into the Calibration DB
286   // Arguments:
287
288   TString DBFolder;
289
290   //  DBFolder  ="local://Calib";
291   //   Int_t nRun=gAlice->GetRunNumber();
292   AliCDBManager* cdb      = AliCDBManager::Instance();
293   AliCDBStorage *stor = cdb->GetStorage("local://$ALICE_ROOT");
294   // cout<<" GetLookUp :: "<<stor<<endl;
295   AliCDBEntry *entry;
296   //entry = stor->Get("T0/Calib/LookUp_Table",2,0,0);
297   entry = stor->Get("T0/Calib/LookUp_Table",1);
298   //cout<<"entry="<<entry<<endl;
299    cout<<" AliT0CalibData ::GetLookUp :: "<<entry<<endl;
300   AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
301   cout<<" AliT0CalibData *clb "<<clb <<endl;
302   //cout<<"clb->a="<<clb->GetA()<<endl;
303   //  clb->Dump();
304   for (Int_t i=0; i<6; i++) 
305     clb->PrintLookup("all",0,i,4);
306
307 }