]>
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"); | |
30 | menu->AddButton("Set Calib","SetCC()", | |
31 | "Set calibration coefficients"); | |
32 | menu->AddButton("Set Align","SetAC()", | |
33 | "Set alignment coefficients"); | |
6ba20b30 | 34 | menu->AddButton("Set LookUpTable","SetLookUp()", |
35 | "Set LookUp table"); | |
dc7ca31d | 36 | menu->AddButton("Read calibration CC","GetCC()", |
37 | "Read calibration coefficients"); | |
38 | menu->AddButton("Read alignment CC","GetAC()", | |
39 | "Read face detector position "); | |
6ba20b30 | 40 | menu->AddButton("Read Lookup","GetLookUp()", |
41 | "Read Lookup table "); | |
dc7ca31d | 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(); | |
6ba20b30 | 81 | if(storage) { |
dc7ca31d | 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 | } | |
6ba20b30 | 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 | } |