]> git.uio.no Git - u/mrichter/AliRoot.git/blob - T0/AliT0SetCDB.C
93b3e521280a5f951dae389b964c25a8046fce5c
[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 Calib","SetCC()",
31                   "Set calibration coefficients");
32   menu->AddButton("Set Align","SetAC()",
33                   "Set alignment coefficients");
34   menu->AddButton("Set LookUpTable","SetLookUp()",
35                   "Set LookUp table");
36   menu->AddButton("Read calibration CC","GetCC()",
37                   "Read calibration  coefficients");
38   menu->AddButton("Read alignment CC","GetAC()",
39                   "Read face detector position ");
40   menu->AddButton("Read Lookup","GetLookUp()",
41                   "Read Lookup table ");
42   menu->Show();
43 }
44
45
46 //------------------------------------------------------------------------
47 void SetAC()
48 {
49   // Writing alignment coefficients into the Condition DB
50   // Arguments:
51   
52   TString DBFolder;
53   Int_t firstRun   =  0;
54   Int_t lastRun    = 10;
55   Int_t beamPeriod =  1;
56   char* objFormat  = "";
57
58   DBFolder  ="local://Align";
59   firstRun  =  0;
60   lastRun   =  10;
61   objFormat = "T0 array Z positions";
62
63   
64   AliT0AlignData *alignda=new AliT0AlignData("T0");
65   alignda-> SetZposition (67.9,373);
66   alignda->Print();
67   
68   //Store calibration data into database
69   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
70    AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
71   
72   AliCDBMetaData md;
73   md.SetComment(objFormat);
74   md.SetBeamPeriod(beamPeriod);
75   md.SetResponsible("Alla");
76   TString fPath="T0/Align/Positions";
77
78
79   //  AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
80   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
81   if(storage) {
82    AliCDBId id(fPath.Data(),firstRun,lastRun);
83
84    storage->Put(alignda, id, &md);
85  }
86 }
87 //------------------------------------------------------------------------
88 void SetCC()
89 {
90   // Writing calibration coefficients into the Calibration DB
91   // Arguments:
92
93   TString DBFolder;
94   Int_t firstRun   =  0;
95   Int_t lastRun    = 10;
96   Int_t beamPeriod =  1;
97   char* objFormat  = "";
98
99   DBFolder  ="local://Calib";
100   firstRun  =  0;
101   lastRun   =  10;
102   objFormat = "T0 initial gain factors, time delay, slewnig";
103
104   AliT0CalibData *calibda=new AliT0CalibData("T0");
105   
106   Float_t fGain = 1;
107   Float_t fTimeDelay  = 200;
108   
109   TRandom rn;
110   
111   for(Int_t ipmt=0; ipmt<24; ipmt++) {
112     calibda->SetGain (fGain,ipmt);
113     calibda->SetTimeDelayCFD(fTimeDelay,ipmt);
114     calibda->SetTimeDelayLED(fTimeDelay,ipmt);
115     calibda->SetWalk(ipmt,"data/re.root");
116     calibda->SetSlewingLED(ipmt,"data/CFD-LED.txt");
117     calibda->SetSlewingRec(ipmt,"data/CFD-LED.txt");
118     Double_t value=calibda->GetSlewingLED(ipmt,300);
119     Double_t rec= calibda->GetSlewingRec(ipmt, value);
120     cout<<" in "<<value<<" out "<<rec<<endl;
121   }
122   calibda->Print();
123   //Store calibration data into database
124   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
125
126   //  AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
127   
128   AliCDBMetaData md;
129   md.SetComment(objFormat);
130   md.SetBeamPeriod(beamPeriod);
131   md.SetResponsible("Alla");
132   TString fPath="T0/Calib/Gain_TimeDelay_Slewing_Walk";
133
134
135   // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
136   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
137   if(storage) {
138     AliCDBId id(fPath.Data(),firstRun,lastRun);
139     storage->Put(calibda, id, &md);
140   }
141 }
142
143 //------------------------------------------------------------------------
144 void GetCC()
145 {
146   // Read calibration coefficients into the Calibration DB
147   // Arguments:
148   
149   TString DBFolder;
150   
151   DBFolder  ="local://Calib";
152   Int_t nRun=gAlice->GetRunNumber();
153   
154   AliCDBManager *man = AliCDBManager::Instance();
155   AliCDBStorage *stor2 = man->GetStorage("local://Calib");
156   AliCDBEntry *entry;
157   entry = stor2->Get("T0/Calib/Gain_TimeDelay_Slewing_Walk");
158    
159   AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
160   clb->Print();
161 }
162 //------------------------------------------------------------------------
163 void GetAC()
164 {
165   // Read align coefficients into the Calibration DB
166   // Arguments:
167   
168   TString DBFolder;
169   
170   DBFolder  ="local://Align";
171   Int_t nRun=gAlice->GetRunNumber();
172   
173   AliCDBManager *man = AliCDBManager::Instance();
174   AliCDBStorage *stor2 = man->GetStorage("local://Align");
175   AliCDBEntry *entry;
176   entry = stor2->Get("T0/Align/Positions", nRun);
177    
178   AliT0AlignData *aln = (AliT0AlignData*)entry->GetObject();
179   aln->Print();
180 }
181 //------------------------------------------------------------------------
182 void SetLookUp()
183 {
184   // Writing Lookup table into the Calibration DB
185   // Arguments:
186
187   TString DBFolder;
188   Int_t firstRun   =  0;
189   Int_t lastRun    = 10;
190   Int_t beamPeriod =  1;
191   char* objFormat  = "";
192
193   DBFolder  ="local://Calib";
194   firstRun  =  0;
195   lastRun   =  10;
196   objFormat = "T0 Lookup Table";
197
198   AliT0CalibData *calibda=new AliT0CalibData("T0");
199
200   calibda->ReadAsciiLookup("lookUpTable.txt");
201 //calibda->SetA(5);
202   //Store calibration data into database
203   AliCDBManager::Instance()->SetDefaultStorage("local://$ALICE_ROOT");
204
205   //  AliCDBManager::Instance()->SetSpecificStorage("T0",DBFolder.Data());
206
207   AliCDBMetaData md;
208   md.SetComment(objFormat);
209   md.SetBeamPeriod(beamPeriod);
210   md.SetResponsible("Alla");
211   TString fPath="T0/Calib/LookUp_Table";
212
213
214   // AliCDBStorage* storage = AliCDBManager::Instance()->GetSpecificStorage("T0");
215   AliCDBStorage* storage = AliCDBManager::Instance()->GetDefaultStorage();
216   if(storage) {
217     AliCDBId id(fPath.Data(),firstRun,lastRun);
218     storage->Put(calibda, id, &md);
219   }
220 }
221 //------------------------------------------------------------------------
222 void GetLookUp()
223 {
224   // Read calibration coefficients into the Calibration DB
225   // Arguments:
226
227   TString DBFolder;
228
229   //  DBFolder  ="local://Calib";
230   //   Int_t nRun=gAlice->GetRunNumber();
231   AliCDBManager* cdb      = AliCDBManager::Instance();
232   AliCDBStorage *stor = cdb->GetStorage("local://$ALICE_ROOT");
233   // cout<<" GetLookUp :: "<<stor<<endl;
234   AliCDBEntry *entry;
235   //entry = stor->Get("T0/Calib/LookUp_Table",2,0,0);
236   entry = stor->Get("T0/Calib/LookUp_Table",1);
237   //cout<<"entry="<<entry<<endl;
238    cout<<" AliT0CalibData ::GetLookUp :: "<<entry<<endl;
239   AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject();
240   cout<<" AliT0CalibData *clb "<<clb <<endl;
241   //cout<<"clb->a="<<clb->GetA()<<endl;
242   //  clb->Dump();
243   for (Int_t i=0; i<6; i++) 
244     clb->PrintLookup("all",0,i,4);
245
246 }