]>
Commit | Line | Data |
---|---|---|
dc7ca31d | 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"); | |
c41ceaac | 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()", | |
dc7ca31d | 35 | "Set alignment coefficients"); |
6ba20b30 | 36 | menu->AddButton("Set LookUpTable","SetLookUp()", |
37 | "Set LookUp table"); | |
c41ceaac | 38 | menu->AddButton("Read time delay","GetTimeDelay()", |
39 | "Read time delay"); | |
40 | menu->AddButton("Read walk","GetWalk()", | |
41 | "Read amplitude-time correction"); | |
dc7ca31d | 42 | menu->AddButton("Read alignment CC","GetAC()", |
43 | "Read face detector position "); | |
6ba20b30 | 44 | menu->AddButton("Read Lookup","GetLookUp()", |
45 | "Read Lookup table "); | |
dc7ca31d | 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(); | |
6ba20b30 | 85 | if(storage) { |
dc7ca31d | 86 | AliCDBId id(fPath.Data(),firstRun,lastRun); |
87 | ||
88 | storage->Put(alignda, id, &md); | |
89 | } | |
90 | } | |
91 | //------------------------------------------------------------------------ | |
c41ceaac | 92 | void SetTimeDelay() |
dc7ca31d | 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; | |
c41ceaac | 106 | objFormat = "T0 initial time delay"; |
dc7ca31d | 107 | |
108 | AliT0CalibData *calibda=new AliT0CalibData("T0"); | |
109 | ||
c41ceaac | 110 | Float_t fTimeDelay = 1000; |
dc7ca31d | 111 | |
c41ceaac | 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 | ||
dc7ca31d | 159 | TRandom rn; |
160 | ||
161 | for(Int_t ipmt=0; ipmt<24; ipmt++) { | |
c41ceaac | 162 | calibda->SetWalk(ipmt,"data/CFD-Amp.txt"); |
dc7ca31d | 163 | calibda->SetSlewingLED(ipmt,"data/CFD-LED.txt"); |
164 | calibda->SetSlewingRec(ipmt,"data/CFD-LED.txt"); | |
dc7ca31d | 165 | } |
dc7ca31d | 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"); | |
c41ceaac | 175 | TString fPath="T0/Calib/Slewing_Walk"; |
dc7ca31d | 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 | //------------------------------------------------------------------------ | |
c41ceaac | 187 | void GetTimeDelay() |
dc7ca31d | 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 | ||
c41ceaac | 197 | AliCDBStorage *stor =AliCDBManager::Instance()->GetStorage("local://$ALICE_ROOT"); |
198 | AliCDBEntry* entry = stor->Get("T0/Calib/TimeDelay",0); | |
199 | ||
dc7ca31d | 200 | AliT0CalibData *clb = (AliT0CalibData*)entry->GetObject(); |
201 | clb->Print(); | |
202 | } | |
203 | //------------------------------------------------------------------------ | |
c41ceaac | 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 | //------------------------------------------------------------------------ | |
dc7ca31d | 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 | } | |
6ba20b30 | 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 | } |