]>
Commit | Line | Data |
---|---|---|
7754cd1f | 1 | #if !defined( __CINT__) || defined(__MAKECINT__) |
2 | ||
3 | #include <iostream> | |
4 | ||
5 | #include <AliCDBManager.h> | |
6 | #include <AliCDBStorage.h> | |
7 | #include <AliCDBEntry.h> | |
8 | #include <AliCDBMetaData.h> | |
9 | ||
10 | #include "AliTRDgeometry.h" | |
11 | ||
12 | #include "AliTRDCalROC.h" | |
7754cd1f | 13 | #include "AliTRDCalPad.h" |
14 | #include "AliTRDCalDet.h" | |
15 | #include "AliTRDCalGlobals.h" | |
16 | ||
7754cd1f | 17 | #include "AliTRDCalChamberStatus.h" |
7754cd1f | 18 | #include "AliTRDCalPadStatus.h" |
19 | #include "AliTRDCalSingleChamberStatus.h" | |
20 | ||
21 | #include "AliTRDCalPIDLQ.h" | |
22 | #include "AliTRDCalMonitoring.h" | |
23 | ||
24 | #endif | |
25 | ||
d4c6453d | 26 | // Run number for the dummy file |
27 | const Int_t gkDummyRun = 0; | |
28 | AliCDBStorage *gStorLoc = 0; | |
7754cd1f | 29 | |
d4c6453d | 30 | //_____________________________________________________________________________ |
31 | TObject *CreatePadObject(const char *shortName, const char *description | |
32 | , Float_t value) | |
7754cd1f | 33 | { |
d4c6453d | 34 | |
7754cd1f | 35 | AliTRDCalPad *calPad = new AliTRDCalPad(shortName, description); |
d4c6453d | 36 | for (Int_t det = 0; det < AliTRDgeometry::kNdet; ++det) { |
7754cd1f | 37 | AliTRDCalROC *calROC = calPad->GetCalROC(det); |
d4c6453d | 38 | for (Int_t channel = 0; channel < calROC->GetNchannels(); ++channel) { |
7754cd1f | 39 | calROC->SetValue(channel, value); |
d4c6453d | 40 | } |
7754cd1f | 41 | } |
42 | return calPad; | |
d4c6453d | 43 | |
7754cd1f | 44 | } |
45 | ||
d4c6453d | 46 | //_____________________________________________________________________________ |
47 | TObject *CreateDetObject(const char *shortName, const char *description | |
48 | , Float_t value) | |
7754cd1f | 49 | { |
d4c6453d | 50 | |
7754cd1f | 51 | AliTRDCalDet *object = new AliTRDCalDet(shortName, description); |
d4c6453d | 52 | for (Int_t det = 0; det < AliTRDgeometry::kNdet; ++det) { |
7754cd1f | 53 | object->SetValue(det, value); |
d4c6453d | 54 | } |
7754cd1f | 55 | return object; |
d4c6453d | 56 | |
7754cd1f | 57 | } |
58 | ||
d4c6453d | 59 | //_____________________________________________________________________________ |
60 | TObject *CreateGlobalsObject(Float_t t0Offset = 0.0) | |
7754cd1f | 61 | { |
d4c6453d | 62 | |
63 | AliTRDCalGlobals *object = new AliTRDCalGlobals("Globals" | |
64 | ,"Global TRD calibration parameters"); | |
7754cd1f | 65 | |
7754cd1f | 66 | object->SetNumberOfTimeBins(22); |
d4c6453d | 67 | |
68 | object->SetTailCancelationTau1(0); | |
69 | object->SetTailCancelationTau2(0); | |
70 | object->SetTailCancelationAmp(0); | |
71 | ||
72 | object->SetPedestal(0); | |
73 | object->SetADCClockphase(0); | |
74 | ||
75 | // Introduce negative offset to allow for fluctuations around 0 | |
76 | object->SetT0Offset(-t0Offset); | |
7754cd1f | 77 | |
78 | return object; | |
d4c6453d | 79 | |
7754cd1f | 80 | } |
81 | ||
d4c6453d | 82 | //_____________________________________________________________________________ |
83 | TObject *CreatePRFWidthObject() | |
7754cd1f | 84 | { |
d4c6453d | 85 | |
7754cd1f | 86 | AliTRDCalPad *calPad = new AliTRDCalPad("PRFWidth","PRFWidth"); |
d4c6453d | 87 | for (Int_t plane = 0; plane < AliTRDgeometry::kNplan; ++plane) { |
88 | ||
89 | Float_t value = 0.0; | |
90 | switch (plane) { | |
91 | case 0: | |
92 | value = 0.515; | |
93 | break; | |
94 | case 1: | |
95 | value = 0.502; | |
96 | break; | |
97 | case 2: | |
98 | value = 0.491; | |
99 | break; | |
100 | case 3: | |
101 | value = 0.481; | |
102 | break; | |
103 | case 4: | |
104 | value = 0.471; | |
105 | break; | |
106 | case 5: | |
107 | value = 0.463; | |
108 | break; | |
109 | default: | |
110 | cout << "CreatePRFWidthObject: UNEXPECTED" << endl; | |
111 | return 0; | |
7754cd1f | 112 | } |
d4c6453d | 113 | |
114 | for (Int_t chamber = 0; chamber < AliTRDgeometry::kNcham; ++chamber) { | |
115 | for (Int_t sector = 0; sector < AliTRDgeometry::kNsect; ++sector) { | |
116 | AliTRDCalROC *calROC = calPad->GetCalROC(plane,chamber,sector); | |
117 | for (Int_t channel = 0; channel < calROC->GetNchannels(); ++channel) { | |
7754cd1f | 118 | calROC->SetValue(channel, value); |
d4c6453d | 119 | } |
7754cd1f | 120 | } |
121 | } | |
d4c6453d | 122 | |
7754cd1f | 123 | } |
124 | ||
125 | return calPad; | |
7754cd1f | 126 | |
7754cd1f | 127 | } |
128 | ||
d4c6453d | 129 | //_____________________________________________________________________________ |
130 | AliTRDCalChamberStatus *CreateChamberStatusObject() | |
7754cd1f | 131 | { |
7754cd1f | 132 | |
d4c6453d | 133 | AliTRDCalChamberStatus *obj = new AliTRDCalChamberStatus("chamberstatus" |
134 | ,"chamberstatus"); | |
135 | ||
136 | for (Int_t i = 0; i < AliTRDgeometry::kNdet; ++i) { | |
7754cd1f | 137 | obj->SetStatus(i, AliTRDCalChamberStatus::kInstalled); |
d4c6453d | 138 | } |
7754cd1f | 139 | |
140 | return obj; | |
d4c6453d | 141 | |
7754cd1f | 142 | } |
143 | ||
d4c6453d | 144 | //_____________________________________________________________________________ |
145 | AliTRDCalPadStatus *CreatePadStatusObject() | |
7754cd1f | 146 | { |
d4c6453d | 147 | AliTRDCalPadStatus *obj = new AliTRDCalPadStatus("padstatus" |
148 | ,"padstatus"); | |
7754cd1f | 149 | |
150 | return obj; | |
d4c6453d | 151 | |
7754cd1f | 152 | } |
153 | ||
d4c6453d | 154 | //_____________________________________________________________________________ |
155 | AliTRDCalPIDLQ *CreatePIDLQObject() | |
7754cd1f | 156 | { |
7754cd1f | 157 | |
d4c6453d | 158 | AliTRDCalPIDLQ *pid = new AliTRDCalPIDLQ("pidobject" |
159 | ,"pidobject"); | |
7754cd1f | 160 | |
7754cd1f | 161 | pid->ReadData("$ALICE_ROOT/TRD/TRDdEdxHistogramsV1.root"); |
d4c6453d | 162 | |
163 | // The factor is the ratio of Mean of pi charge dist. | |
164 | // for the New TRD code divided by the Mean of pi charge | |
165 | // dist. given in AliTRDCalPIDLQ object | |
166 | pid->SetMeanChargeRatio(1.0); | |
7754cd1f | 167 | |
168 | return pid; | |
d4c6453d | 169 | |
7754cd1f | 170 | } |
171 | ||
d4c6453d | 172 | //_____________________________________________________________________________ |
173 | AliTRDCalMonitoring *CreateMonitoringObject() | |
7754cd1f | 174 | { |
d4c6453d | 175 | AliTRDCalMonitoring *obj = new AliTRDCalMonitoring(); |
7754cd1f | 176 | |
177 | return obj; | |
d4c6453d | 178 | |
7754cd1f | 179 | } |
180 | ||
d4c6453d | 181 | //_____________________________________________________________________________ |
182 | AliCDBMetaData *CreateMetaObject(const char *objectClassName) | |
7754cd1f | 183 | { |
d4c6453d | 184 | |
7754cd1f | 185 | AliCDBMetaData *md1= new AliCDBMetaData(); |
186 | md1->SetObjectClassName(objectClassName); | |
187 | md1->SetResponsible("Jan Fiete Grosse-Oetringhaus"); | |
188 | md1->SetBeamPeriod(1); | |
189 | md1->SetAliRootVersion("05-06-00"); //root version | |
190 | md1->SetComment("The dummy values in this calibration file are for testing only"); | |
191 | ||
192 | return md1; | |
d4c6453d | 193 | |
7754cd1f | 194 | } |
195 | ||
d4c6453d | 196 | //_____________________________________________________________________________ |
197 | void StoreObject(const char *cdbPath, TObject *object, AliCDBMetaData *metaData) | |
7754cd1f | 198 | { |
d4c6453d | 199 | |
200 | AliCDBId id1(cdbPath,gkDummyRun,gkDummyRun); | |
201 | gStorLoc->Put(object,id1,metaData); | |
202 | ||
7754cd1f | 203 | } |
204 | ||
d4c6453d | 205 | //_____________________________________________________________________________ |
7754cd1f | 206 | void AliTRDCreateDummyCDB() |
207 | { | |
d4c6453d | 208 | |
209 | cout << endl | |
210 | << "TRD :: Creating dummy CDB with event number " | |
211 | << gkDummyRun | |
212 | << endl; | |
213 | ||
214 | Float_t t0Offset = 5.0; | |
7754cd1f | 215 | |
216 | AliCDBManager *man = AliCDBManager::Instance(); | |
217 | gStorLoc = man->GetStorage("local://$ALICE_ROOT"); | |
d4c6453d | 218 | if (!gStorLoc) { |
7754cd1f | 219 | return; |
d4c6453d | 220 | } |
7754cd1f | 221 | |
d4c6453d | 222 | TObject *obj = 0; |
223 | AliCDBMetaData *metaData = 0; | |
7754cd1f | 224 | |
d4c6453d | 225 | // |
226 | // Pad objects | |
227 | // | |
228 | ||
229 | metaData = CreateMetaObject("AliTRDCalPad"); | |
230 | ||
231 | obj = CreatePadObject("LocalVdrift" ,"TRD drift velocities (local variations)",1); | |
232 | StoreObject("TRD/Calib/LocalVdrift" ,obj,metaData); | |
7754cd1f | 233 | |
d4c6453d | 234 | obj = CreatePadObject("LocalT0" ,"T0 (local variations)",0.0); |
235 | StoreObject("TRD/Calib/LocalT0" ,obj,metaData); | |
7754cd1f | 236 | |
d4c6453d | 237 | obj = CreatePadObject("GainFactor" ,"GainFactor (local variations)",1); |
238 | StoreObject("TRD/Calib/LocalGainFactor" ,obj,metaData); | |
7754cd1f | 239 | |
240 | obj = CreatePRFWidthObject(); | |
d4c6453d | 241 | StoreObject("TRD/Calib/PRFWidth" ,obj,metaData); |
242 | ||
243 | // | |
244 | // Detector objects | |
245 | // | |
7754cd1f | 246 | |
247 | metaData = CreateMetaObject("AliTRDCalDet"); | |
248 | ||
d4c6453d | 249 | obj = CreateDetObject("ChamberVdrift" ,"TRD drift velocities (detector value)", 1.5); |
250 | StoreObject("TRD/Calib/ChamberVdrift" ,obj,metaData); | |
7754cd1f | 251 | |
d4c6453d | 252 | obj = CreateDetObject("ChamberT0" ,"T0 (detector value)",t0Offset); |
253 | StoreObject("TRD/Calib/ChamberT0" ,obj,metaData); | |
7754cd1f | 254 | |
d4c6453d | 255 | obj = CreateDetObject("ChamberGainFactor" ,"GainFactor (detector value)", 1); |
256 | StoreObject("TRD/Calib/ChamberGainFactor" ,obj,metaData); | |
7754cd1f | 257 | |
d4c6453d | 258 | // |
259 | // Global object | |
260 | // | |
261 | ||
7754cd1f | 262 | metaData = CreateMetaObject("AliTRDCalGlobals"); |
d4c6453d | 263 | obj = CreateGlobalsObject(t0Offset); |
264 | StoreObject("TRD/Calib/Globals" ,obj,metaData); | |
7754cd1f | 265 | |
d4c6453d | 266 | // |
267 | // Status objects | |
268 | // | |
7754cd1f | 269 | |
270 | metaData = CreateMetaObject("AliTRDCalChamberStatus"); | |
271 | obj = CreateChamberStatusObject(); | |
d4c6453d | 272 | StoreObject("TRD/Calib/ChamberStatus" ,obj,metaData); |
7754cd1f | 273 | |
274 | metaData = CreateMetaObject("AliTRDCalPadStatus"); | |
275 | obj = CreatePadStatusObject(); | |
d4c6453d | 276 | StoreObject("TRD/Calib/PadStatus" ,obj,metaData); |
7754cd1f | 277 | |
278 | metaData = CreateMetaObject("AliTRDCalPIDLQ"); | |
279 | obj = CreatePIDLQObject(); | |
d4c6453d | 280 | StoreObject("TRD/Calib/PIDLQ" ,obj,metaData); |
281 | ||
282 | // | |
283 | // Monitoring object | |
284 | // | |
7754cd1f | 285 | |
286 | metaData = CreateMetaObject("AliTRDCalMonitoring"); | |
287 | obj = CreateMonitoringObject(); | |
d4c6453d | 288 | StoreObject("TRD/Calib/MonitoringData" ,obj,metaData); |
289 | ||
7754cd1f | 290 | } |