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 "AliTRDCalPad.h"
16 #include "AliTRDCalDet.h"
17 #include "AliTRDCalGlobals.h"
21 // run number for the dummy file
22 const Int_t gkDummyRun = 0;
23 AliCDBStorage* gStorLoc = 0;
25 TObject* CreatePadObject(const char* shortName, const char* description, Float_t value)
27 AliTRDCalPad *calPad = new AliTRDCalPad(shortName, description);
28 for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)
30 AliTRDCalROC *calROC = calPad->GetCalROC(det);
31 for (Int_t channel=0; channel<calROC->GetNchannels(); ++channel)
32 calROC->SetValue(channel, value);
37 TObject* CreateDetObject(const char* shortName, const char* description, Float_t value)
39 AliTRDCalDet *object = new AliTRDCalDet(shortName, description);
40 for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)
41 object->SetValue(det, value);
45 TObject* CreateGlobalsObject()
47 AliTRDCalGlobals *object = new AliTRDCalGlobals("Globals", "Global TRD calibration parameters");
49 object->SetSamplingFrequency(10.0);
50 object->SetNumberOfTimeBins(22);
55 TObject* CreateChamberObject()
57 AliTRDCalChamberPos *object = new AliTRDCalChamberPos("Chamber", "TRD chamber positions");
59 for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)
61 object->SetPos(det, 0, 0, 0);
62 object->SetRot(det, 0, 0, 0);
68 TObject* CreateStackObject()
70 AliTRDCalStackPos *object = new AliTRDCalStackPos("Stack", "TRD stack positions");
72 for (Int_t sect=0; sect<AliTRDgeometry::kNsect; ++sect)
74 for (Int_t chamber=0; chamber<AliTRDgeometry::kNcham; ++chamber)
76 object->SetPos(chamber, sect, 0, 0, 0);
77 object->SetRot(chamber, sect, 0, 0, 0);
84 TObject* CreatePRFWidthObject()
86 AliTRDCalPad *calPad = new AliTRDCalPad("PRFWidth","PRFWidth");
87 for (Int_t plane=0; plane<AliTRDgeometry::kNplan; ++plane)
92 case 0: value = 0.515; break;
93 case 1: value = 0.502; break;
94 case 2: value = 0.491; break;
95 case 3: value = 0.481; break;
96 case 4: value = 0.471; break;
97 case 5: value = 0.463; break;
98 default: cout << "CreatePRFWidthObject: UNEXPECTED" << endl; return 0;
100 for (Int_t chamber=0; chamber<AliTRDgeometry::kNcham; ++chamber)
102 for (Int_t sector=0; sector<AliTRDgeometry::kNsect; ++sector)
104 AliTRDCalROC *calROC = calPad->GetCalROC(plane, chamber, sector);
105 for (Int_t channel=0; channel<calROC->GetNchannels(); ++channel)
106 calROC->SetValue(channel, value);
114 AliTRDCalPIDLQ* CreatePIDLQObject()
116 AliTRDCalPIDLQ* pid = new AliTRDCalPIDLQ("pidobject", "pidobject");
117 pid->ReadData("$ALICE_ROOT/TRD/TRDdEdxHistogramsV1.root");
118 pid->SetMeanChargeRatio(1.0); // The factor is the ratio of Mean of pi charge dist.
119 // for the New TRD code divided by the Mean of pi charge
120 // dist. given in AliTRDCalPIDLQ object
125 AliCDBMetaData* CreateMetaObject(const char* objectClassName)
127 AliCDBMetaData *md1= new AliCDBMetaData();
128 md1->SetObjectClassName(objectClassName);
129 md1->SetResponsible("Jan Fiete Grosse-Oetringhaus");
130 md1->SetBeamPeriod(1);
131 md1->SetAliRootVersion("05-06-00"); //root version
132 md1->SetComment("The dummy values in this calibration file are for testing only");
137 void StoreObject(const char* cdbPath, TObject* object, AliCDBMetaData* metaData)
139 AliCDBId id1(cdbPath, gkDummyRun, gkDummyRun);
140 gStorLoc->Put(object, id1, metaData);
144 void AliTRDCreateDummyCDB()
146 cout << endl << "TRD :: Creating dummy CDB with event number " << gkDummyRun << endl;
148 AliCDBManager *man = AliCDBManager::Instance();
149 gStorLoc = man->GetStorage("local://$ALICE_ROOT");
154 AliCDBMetaData* metaData = 0;
156 metaData = CreateMetaObject("AliTRDCalPad");
158 obj = CreatePadObject("LocalVdrift","TRD drift velocities (local variations)", 1);
159 StoreObject("TRD/Calib/LocalVdrift", obj, metaData);
161 obj = CreatePadObject("LocalT0","T0 (local variations)", 1);
162 StoreObject("TRD/Calib/LocalT0", obj, metaData);
164 obj = CreatePadObject("GainFactor","GainFactor", 1);
165 StoreObject("TRD/Calib/GainFactor", obj, metaData);
167 obj = CreatePRFWidthObject();
168 StoreObject("TRD/Calib/PRFWidth", obj, metaData);
170 metaData = CreateMetaObject("AliTRDCalDet");
172 obj = CreateDetObject("ChamberVdrift","TRD drift velocities (detector value)", 1.5);
173 StoreObject("TRD/Calib/ChamberVdrift", obj, metaData);
175 obj = CreateDetObject("ChamberT0","T0 (detector value)", 0);
176 StoreObject("TRD/Calib/ChamberT0", obj, metaData);
178 metaData = CreateMetaObject("AliTRDCalGlobals");
179 obj = CreateGlobalsObject();
180 StoreObject("TRD/Calib/Globals", obj, metaData);
182 metaData = CreateMetaObject("AliTRDCalChamberPos");
183 obj = CreateChamberObject();
184 StoreObject("TRD/Calib/Chamber", obj, metaData);
186 metaData = CreateMetaObject("AliTRDCalStackPos");
187 obj = CreateStackObject();
188 StoreObject("TRD/Calib/Stack", obj, metaData);
190 metaData = CreateMetaObject("AliTRDCalPIDLQ");
191 obj = CreatePIDLQObject();
192 StoreObject("TRD/Calib/PIDLQ", obj, metaData);