reading Zposition from DB, the same RawReader for sim. and test data, reading detecto...
[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     calibda->SetWalk(ipmt);
166     calibda->SetSlewingLED(ipmt);
167     calibda->SetSlewingRec(ipmt);
168   }
169   //Store calibration data into database
170   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
171
172   //  AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
173   
174   AliCDBMetaData md;
175   md.SetComment(objFormat);
176   md.SetBeamPeriod(beamPeriod);
177   md.SetResponsible("Alla");
178   TString fPath="T0/Calib/Slewing_Walk";
179
180
181   // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
182   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
183   if(storage) {
184     AliCDBId id(fPath.Data(),firstRun,lastRun);
185     storage->Put(calibda, id, &md);
186   }
187 }
188
189 //------------------------------------------------------------------------
190 void GetTimeDelay()
191 {
192   // Read calibration coefficients into the Calibration DB
193   // Arguments:
194   
195   TString DBFolder;
196   
197   DBFolder  ="local://Calib";
198   Int_t nRun=gAlice->GetRunNumber();
199   
200   AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
201   AliCDBEntry* entry = stor->Get("T0/Calib/TimeDelay",0);
202   
203   AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
204   clb->Print();
205 }
206 //------------------------------------------------------------------------
207 void GetWalk()
208 {
209   // Read calibration coefficients into the Calibration DB
210   // Arguments:
211   
212   TString DBFolder;
213   
214   DBFolder  ="local://Calib";
215   Int_t nRun=gAlice->GetRunNumber();
216   
217    AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT");
218    AliCDBEntry* entry = stor->Get("T0/Calib/Slewing_Walk",0);
219    
220    AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
221    Int_t ipmt=0;
222    //  cin>>" enter channel number">>ipmt;
223    TGraph *gr = clb->GetWalk(ipmt); 
224    gr->Draw("AP");
225 }
226 //------------------------------------------------------------------------
227 void GetAC()
228 {
229   // Read align coefficients into the Calibration DB
230   // Arguments:
231   
232   TString DBFolder;
233   
234   DBFolder  ="local://Align";
235   Int_t nRun=gAlice->GetRunNumber();
236   
237   AliCDBManager *man = AliCDBManager::Instance();
238   AliCDBStorage *stor2 = man->GetStorage("local://Align");
239   AliCDBEntry *entry;
240   entry = stor2->Get("T0/Align/Positions", nRun);
241    
242   AliT0AlignData *aln = (AliT0AlignData*)entry->GetObject();
243   aln->Print();
244 }
245 //------------------------------------------------------------------------
246 void SetLookUp()
247 {
248   // Writing Lookup table into the Calibration DB
249   // Arguments:
250
251   TString DBFolder;
252   Int_t firstRun   =  0;
253   Int_t lastRun    = 10;
254   Int_t beamPeriod =  1;
255   char* objFormat  = "";
256
257   DBFolder  ="local://Calib";
258   firstRun  =  0;
259   lastRun   =  10;
260   objFormat = "T0 Lookup Table";
261
262   AliT0CalibData *calibda=new AliT0CalibData("T0");
263
264   calibda->ReadAsciiLookup("lookUpTable.txt");
265
266   //Store calibration data into database
267   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
268
269   //  AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
270
271   AliCDBMetaData md;
272   md.SetComment(objFormat);
273   md.SetBeamPeriod(beamPeriod);
274   md.SetResponsible("Alla");
275   TString fPath="T0/Calib/LookUp_Table";
276
277
278   // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
279   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
280   if(storage) {
281     AliCDBId id(fPath.Data(),firstRun,lastRun);
282     storage->Put(calibda, id, &md);
283   }
284 }
285 //------------------------------------------------------------------------
286 void GetLookUp()
287 {
288   // Read calibration coefficients into the Calibration DB
289   // Arguments:
290
291   TString DBFolder;
292
293   //  DBFolder  ="local://Calib";
294   //   Int_t nRun=gAlice->GetRunNumber();
295   AliCDBManager* cdb      = AliCDBManager::Instance();
296   AliCDBStorage *stor = cdb->GetStorage("local://$ALICE_ROOT");
297   // cout<<" GetLookUp :: "<<stor<<endl;
298   AliCDBEntry *entry;
299   //entry = stor->Get("T0/Calib/LookUp_Table",2,0,0);
300   entry = stor->Get("T0/Calib/LookUp_Table",1);
301   //cout<<"entry="<<entry<<endl;
302    cout<<" AliT0CalibData ::GetLookUp :: "<<entry<<endl;
303   AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
304   cout<<" AliT0CalibData *clb "<<clb <<endl;
305   //cout<<"clb->a="<<clb->GetA()<<endl;
306   //  clb->Dump();
307   for (Int_t i=0; i<6; i++) 
308     clb->PrintLookup("all",0,i,4);
309
310 }