1 #if !defined( __CINT__) || defined(__MAKECINT__)
5 #include <AliCDBManager.h>
6 #include <AliCDBStorage.h>
7 #include <AliCDBEntry.h>
8 #include <AliCDBMetaData.h>
10 #include "AliTRDgeometry.h"
12 #include "AliTRDCalROC.h"
13 #include "AliTRDCalChamberPos.h"
14 #include "AliTRDCalStackPos.h"
15 #include "AliTRDCalSuperModulePos.h"
16 #include "AliTRDCalPad.h"
17 #include "AliTRDCalDet.h"
18 #include "AliTRDCalGlobals.h"
20 #include "AliTRDCalSuperModuleStatus.h"
21 #include "AliTRDCalChamberStatus.h"
22 #include "AliTRDCalMCMStatus.h"
23 #include "AliTRDCalPadStatus.h"
24 #include "AliTRDCalSingleChamberStatus.h"
26 #include "AliTRDCalPIDLQ.h"
27 #include "AliTRDCalMonitoring.h"
31 // run number for the dummy file
32 const Int_t gkDummyRun = 0;
33 AliCDBStorage* gStorLoc = 0;
35 TObject* CreatePadObject(const char* shortName, const char* description, Float_t value)
37 AliTRDCalPad *calPad = new AliTRDCalPad(shortName, description);
38 for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)
40 AliTRDCalROC *calROC = calPad->GetCalROC(det);
41 for (Int_t channel=0; channel<calROC->GetNchannels(); ++channel)
42 calROC->SetValue(channel, value);
47 TObject* CreateDetObject(const char* shortName, const char* description, Float_t value)
49 AliTRDCalDet *object = new AliTRDCalDet(shortName, description);
50 for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)
51 object->SetValue(det, value);
55 TObject* CreateGlobalsObject()
57 AliTRDCalGlobals *object = new AliTRDCalGlobals("Globals", "Global TRD calibration parameters");
59 object->SetSamplingFrequency(10.0);
60 object->SetNumberOfTimeBins(22);
65 TObject* CreateChamberObject()
67 AliTRDCalChamberPos *object = new AliTRDCalChamberPos("Chamber", "TRD chamber positions");
69 for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)
71 object->SetPos(det, 0, 0, 0);
72 object->SetRot(det, 0, 0, 0);
78 TObject* CreateStackObject()
80 AliTRDCalStackPos *object = new AliTRDCalStackPos("Stack", "TRD stack positions");
82 for (Int_t sect=0; sect<AliTRDgeometry::kNsect; ++sect)
84 for (Int_t chamber=0; chamber<AliTRDgeometry::kNcham; ++chamber)
86 object->SetPos(chamber, sect, 0, 0, 0);
87 object->SetRot(chamber, sect, 0, 0, 0);
94 TObject* CreateSuperModuleObject()
96 AliTRDCalSuperModulePos *object = new AliTRDCalSuperModulePos("Stack", "TRD supermodule positions");
98 for (Int_t sect=0; sect<AliTRDgeometry::kNsect; ++sect)
100 object->SetPos(sect, 0, 0, 0);
101 object->SetRot(sect, 0, 0, 0);
108 TObject* CreatePRFWidthObject()
110 AliTRDCalPad *calPad = new AliTRDCalPad("PRFWidth","PRFWidth");
111 for (Int_t plane=0; plane<AliTRDgeometry::kNplan; ++plane)
116 case 0: value = 0.515; break;
117 case 1: value = 0.502; break;
118 case 2: value = 0.491; break;
119 case 3: value = 0.481; break;
120 case 4: value = 0.471; break;
121 case 5: value = 0.463; break;
122 default: cout << "CreatePRFWidthObject: UNEXPECTED" << endl; return 0;
124 for (Int_t chamber=0; chamber<AliTRDgeometry::kNcham; ++chamber)
126 for (Int_t sector=0; sector<AliTRDgeometry::kNsect; ++sector)
128 AliTRDCalROC *calROC = calPad->GetCalROC(plane, chamber, sector);
129 for (Int_t channel=0; channel<calROC->GetNchannels(); ++channel)
130 calROC->SetValue(channel, value);
138 AliTRDCalSuperModuleStatus* CreateSuperModuleStatusObject()
140 AliTRDCalSuperModuleStatus* obj = new AliTRDCalSuperModuleStatus("supermodulestatus", "supermodulestatus");
142 for (Int_t i=0; i<AliTRDgeometry::kNsect; ++i)
143 obj->SetStatus(i, AliTRDCalSuperModuleStatus::kInstalled);
148 AliTRDCalChamberStatus* CreateChamberStatusObject()
150 AliTRDCalChamberStatus* obj = new AliTRDCalChamberStatus("chamberstatus", "chamberstatus");
152 for (Int_t i=0; i<AliTRDgeometry::kNdet; ++i)
153 obj->SetStatus(i, AliTRDCalChamberStatus::kInstalled);
158 AliTRDCalMCMStatus* CreateMCMStatusObject()
160 AliTRDCalMCMStatus* obj = new AliTRDCalMCMStatus("mcmstatus", "mcmstatus");
165 AliTRDCalPadStatus* CreatePadStatusObject()
167 AliTRDCalPadStatus* obj = new AliTRDCalPadStatus("padstatus", "padstatus");
172 AliTRDCalPIDLQ* CreatePIDLQObject()
174 AliTRDCalPIDLQ* pid = new AliTRDCalPIDLQ("pidobject", "pidobject");
175 pid->ReadData("$ALICE_ROOT/TRD/TRDdEdxHistogramsV1.root");
176 pid->SetMeanChargeRatio(1.0); // The factor is the ratio of Mean of pi charge dist.
177 // for the New TRD code divided by the Mean of pi charge
178 // dist. given in AliTRDCalPIDLQ object
183 AliTRDCalMonitoring* CreateMonitoringObject()
185 AliTRDCalMonitoring* obj = new AliTRDCalMonitoring();
190 AliCDBMetaData* CreateMetaObject(const char* objectClassName)
192 AliCDBMetaData *md1= new AliCDBMetaData();
193 md1->SetObjectClassName(objectClassName);
194 md1->SetResponsible("Jan Fiete Grosse-Oetringhaus");
195 md1->SetBeamPeriod(1);
196 md1->SetAliRootVersion("05-06-00"); //root version
197 md1->SetComment("The dummy values in this calibration file are for testing only");
202 void StoreObject(const char* cdbPath, TObject* object, AliCDBMetaData* metaData)
204 AliCDBId id1(cdbPath, gkDummyRun, gkDummyRun);
205 gStorLoc->Put(object, id1, metaData);
209 void AliTRDCreateDummyCDB()
211 cout << endl << "TRD :: Creating dummy CDB with event number " << gkDummyRun << endl;
213 AliCDBManager *man = AliCDBManager::Instance();
214 gStorLoc = man->GetStorage("local://$ALICE_ROOT");
219 AliCDBMetaData* metaData = 0;
221 metaData = CreateMetaObject("AliTRDCalPad");
223 obj = CreatePadObject("LocalVdrift","TRD drift velocities (local variations)", 1);
224 StoreObject("TRD/Calib/LocalVdrift", obj, metaData);
226 obj = CreatePadObject("LocalT0","T0 (local variations)", 1);
227 StoreObject("TRD/Calib/LocalT0", obj, metaData);
229 obj = CreatePadObject("GainFactor","GainFactor (local variations)", 1);
230 StoreObject("TRD/Calib/LocalGainFactor", obj, metaData);
232 obj = CreatePRFWidthObject();
233 StoreObject("TRD/Calib/PRFWidth", obj, metaData);
235 metaData = CreateMetaObject("AliTRDCalDet");
237 obj = CreateDetObject("ChamberVdrift","TRD drift velocities (detector value)", 1.5);
238 StoreObject("TRD/Calib/ChamberVdrift", obj, metaData);
240 obj = CreateDetObject("ChamberT0","T0 (detector value)", 0);
241 StoreObject("TRD/Calib/ChamberT0", obj, metaData);
243 obj = CreateDetObject("ChamberGainFactor","GainFactor (detector value)", 1);
244 StoreObject("TRD/Calib/ChamberGainFactor", obj, metaData);
246 metaData = CreateMetaObject("AliTRDCalGlobals");
247 obj = CreateGlobalsObject();
248 StoreObject("TRD/Calib/Globals", obj, metaData);
250 metaData = CreateMetaObject("AliTRDCalChamberPos");
251 obj = CreateChamberObject();
252 StoreObject("TRD/Calib/ChamberPos", obj, metaData);
254 metaData = CreateMetaObject("AliTRDCalStackPos");
255 obj = CreateStackObject();
256 StoreObject("TRD/Calib/StackPos", obj, metaData);
258 metaData = CreateMetaObject("AliTRDCalSuperModulePos");
259 obj = CreateSuperModuleObject();
260 StoreObject("TRD/Calib/SuperModulePos", obj, metaData);
262 metaData = CreateMetaObject("AliTRDCalSuperModuleStatus");
263 obj = CreateSuperModuleStatusObject();
264 StoreObject("TRD/Calib/SuperModuleStatus", obj, metaData);
266 metaData = CreateMetaObject("AliTRDCalChamberStatus");
267 obj = CreateChamberStatusObject();
268 StoreObject("TRD/Calib/ChamberStatus", obj, metaData);
270 metaData = CreateMetaObject("AliTRDCalMCMStatus");
271 obj = CreateMCMStatusObject();
272 StoreObject("TRD/Calib/MCMStatus", obj, metaData);
274 metaData = CreateMetaObject("AliTRDCalPadStatus");
275 obj = CreatePadStatusObject();
276 StoreObject("TRD/Calib/PadStatus", obj, metaData);
278 metaData = CreateMetaObject("AliTRDCalPIDLQ");
279 obj = CreatePIDLQObject();
280 StoreObject("TRD/Calib/PIDLQ", obj, metaData);
282 metaData = CreateMetaObject("AliTRDCalMonitoring");
283 obj = CreateMonitoringObject();
284 StoreObject("TRD/Calib/MonitoringData", obj, metaData);