]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/Cal/AliTRDCreateDummyCDB.C
Update of calibration classes by Jan Fiete
[u/mrichter/AliRoot.git] / TRD / Cal / AliTRDCreateDummyCDB.C
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"
13 #include "AliTRDCalChamberPos.h"
14 #include "AliTRDCalStackPos.h"
15 #include "AliTRDCalSuperModulePos.h"
16 #include "AliTRDCalPad.h"
17 #include "AliTRDCalDet.h"
18 #include "AliTRDCalGlobals.h"
19
20 #include "AliTRDCalSuperModuleStatus.h"
21 #include "AliTRDCalChamberStatus.h"
22 #include "AliTRDCalMCMStatus.h"
23 #include "AliTRDCalPadStatus.h"
24 #include "AliTRDCalSingleChamberStatus.h"
25
26 #include "AliTRDCalPIDLQ.h"
27 #include "AliTRDCalMonitoring.h"
28
29 #endif
30
31 // run number for the dummy file
32 const Int_t gkDummyRun = 0;
33 AliCDBStorage* gStorLoc = 0;
34
35 TObject* CreatePadObject(const char* shortName, const char* description, Float_t value)
36 {
37   AliTRDCalPad *calPad = new AliTRDCalPad(shortName, description);
38   for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)
39   {
40     AliTRDCalROC *calROC = calPad->GetCalROC(det);
41     for (Int_t channel=0; channel<calROC->GetNchannels(); ++channel)
42       calROC->SetValue(channel, value);
43   }
44   return calPad;
45 }
46
47 TObject* CreateDetObject(const char* shortName, const char* description, Float_t value)
48 {
49   AliTRDCalDet *object = new AliTRDCalDet(shortName, description);
50   for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)
51     object->SetValue(det, value);
52   return object;
53 }
54
55 TObject* CreateGlobalsObject()
56 {
57   AliTRDCalGlobals *object = new AliTRDCalGlobals("Globals", "Global TRD calibration parameters");
58
59   object->SetSamplingFrequency(10.0);
60   object->SetNumberOfTimeBins(22);
61   
62   return object;
63 }
64
65 TObject* CreateChamberObject()
66 {
67   AliTRDCalChamberPos *object = new AliTRDCalChamberPos("Chamber", "TRD chamber positions");
68   
69   for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)
70   {
71     object->SetPos(det, 0, 0, 0);
72     object->SetRot(det, 0, 0, 0);
73   }
74   
75   return object;
76 }
77
78 TObject* CreateStackObject()
79 {
80   AliTRDCalStackPos *object = new AliTRDCalStackPos("Stack", "TRD stack positions");
81
82   for (Int_t sect=0; sect<AliTRDgeometry::kNsect; ++sect)
83   {
84     for (Int_t chamber=0; chamber<AliTRDgeometry::kNcham; ++chamber)
85     {
86       object->SetPos(chamber, sect, 0, 0, 0);
87       object->SetRot(chamber, sect, 0, 0, 0);
88     }
89   }
90
91   return object;
92 }
93
94 TObject* CreateSuperModuleObject()
95 {
96   AliTRDCalSuperModulePos *object = new AliTRDCalSuperModulePos("Stack", "TRD supermodule positions");
97
98   for (Int_t sect=0; sect<AliTRDgeometry::kNsect; ++sect)
99   {
100     object->SetPos(sect, 0, 0, 0);
101     object->SetRot(sect, 0, 0, 0);
102   }
103
104   return object;
105 }
106
107
108 TObject* CreatePRFWidthObject()
109 {
110   AliTRDCalPad *calPad = new AliTRDCalPad("PRFWidth","PRFWidth");
111   for (Int_t plane=0; plane<AliTRDgeometry::kNplan; ++plane)
112   {
113     Float_t value = 0;
114     switch (plane)
115     {
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;
123     }
124     for (Int_t chamber=0; chamber<AliTRDgeometry::kNcham; ++chamber)
125     {
126       for (Int_t sector=0; sector<AliTRDgeometry::kNsect; ++sector)
127       {
128         AliTRDCalROC *calROC = calPad->GetCalROC(plane, chamber, sector);
129         for (Int_t channel=0; channel<calROC->GetNchannels(); ++channel)
130           calROC->SetValue(channel, value);
131       }
132     }
133   }
134       
135   return calPad;
136 }
137
138 AliTRDCalSuperModuleStatus* CreateSuperModuleStatusObject()
139 {
140   AliTRDCalSuperModuleStatus* obj = new AliTRDCalSuperModuleStatus("supermodulestatus", "supermodulestatus");
141
142   for (Int_t i=0; i<AliTRDgeometry::kNsect; ++i)
143     obj->SetStatus(i, AliTRDCalSuperModuleStatus::kInstalled);
144
145   return obj;
146 }
147
148 AliTRDCalChamberStatus* CreateChamberStatusObject()
149 {
150   AliTRDCalChamberStatus* obj = new AliTRDCalChamberStatus("chamberstatus", "chamberstatus");
151
152   for (Int_t i=0; i<AliTRDgeometry::kNdet; ++i)
153     obj->SetStatus(i, AliTRDCalChamberStatus::kInstalled);
154
155   return obj;
156 }
157
158 AliTRDCalMCMStatus* CreateMCMStatusObject()
159 {
160   AliTRDCalMCMStatus* obj = new AliTRDCalMCMStatus("mcmstatus", "mcmstatus");
161
162   return obj;
163 }
164
165 AliTRDCalPadStatus* CreatePadStatusObject()
166 {
167   AliTRDCalPadStatus* obj = new AliTRDCalPadStatus("padstatus", "padstatus");
168
169   return obj;
170 }
171
172 AliTRDCalPIDLQ* CreatePIDLQObject()
173 {
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
179   
180   return pid;
181 }
182
183 AliTRDCalMonitoring* CreateMonitoringObject()
184 {
185   AliTRDCalMonitoring* obj = new AliTRDCalMonitoring();
186
187   return obj;
188 }
189
190 AliCDBMetaData* CreateMetaObject(const char* objectClassName)
191 {
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");
198   
199   return md1;
200 }
201
202 void StoreObject(const char* cdbPath, TObject* object, AliCDBMetaData* metaData)
203 {
204   AliCDBId id1(cdbPath, gkDummyRun, gkDummyRun); 
205   gStorLoc->Put(object, id1, metaData); 
206 }
207     
208
209 void AliTRDCreateDummyCDB()
210 {
211   cout << endl << "TRD :: Creating dummy CDB with event number " << gkDummyRun << endl;
212   
213   AliCDBManager *man = AliCDBManager::Instance();
214   gStorLoc = man->GetStorage("local://$ALICE_ROOT");
215   if (!gStorLoc)
216     return;
217
218   TObject* obj = 0;
219   AliCDBMetaData* metaData = 0;
220   
221   metaData = CreateMetaObject("AliTRDCalPad");
222   
223   obj = CreatePadObject("LocalVdrift","TRD drift velocities (local variations)", 1);
224   StoreObject("TRD/Calib/LocalVdrift", obj, metaData);
225   
226   obj = CreatePadObject("LocalT0","T0 (local variations)", 1);
227   StoreObject("TRD/Calib/LocalT0", obj, metaData);
228
229   obj = CreatePadObject("GainFactor","GainFactor (local variations)", 1);
230   StoreObject("TRD/Calib/LocalGainFactor", obj, metaData);
231
232   obj = CreatePRFWidthObject();
233   StoreObject("TRD/Calib/PRFWidth", obj, metaData);
234
235   metaData = CreateMetaObject("AliTRDCalDet");
236   
237   obj = CreateDetObject("ChamberVdrift","TRD drift velocities (detector value)", 1.5);
238   StoreObject("TRD/Calib/ChamberVdrift", obj, metaData);
239   
240   obj = CreateDetObject("ChamberT0","T0 (detector value)", 0);
241   StoreObject("TRD/Calib/ChamberT0", obj, metaData);
242   
243   obj = CreateDetObject("ChamberGainFactor","GainFactor (detector value)", 1);
244   StoreObject("TRD/Calib/ChamberGainFactor", obj, metaData);
245   
246   metaData = CreateMetaObject("AliTRDCalGlobals");
247   obj = CreateGlobalsObject();
248   StoreObject("TRD/Calib/Globals", obj, metaData);
249   
250   metaData = CreateMetaObject("AliTRDCalChamberPos");
251   obj = CreateChamberObject();
252   StoreObject("TRD/Calib/ChamberPos", obj, metaData);
253
254   metaData = CreateMetaObject("AliTRDCalStackPos");
255   obj = CreateStackObject();
256   StoreObject("TRD/Calib/StackPos", obj, metaData);
257
258   metaData = CreateMetaObject("AliTRDCalSuperModulePos");
259   obj = CreateSuperModuleObject();
260   StoreObject("TRD/Calib/SuperModulePos", obj, metaData);
261
262   metaData = CreateMetaObject("AliTRDCalSuperModuleStatus");
263   obj = CreateSuperModuleStatusObject();
264   StoreObject("TRD/Calib/SuperModuleStatus", obj, metaData);
265
266   metaData = CreateMetaObject("AliTRDCalChamberStatus");
267   obj = CreateChamberStatusObject();
268   StoreObject("TRD/Calib/ChamberStatus", obj, metaData);
269
270   metaData = CreateMetaObject("AliTRDCalMCMStatus");
271   obj = CreateMCMStatusObject();
272   StoreObject("TRD/Calib/MCMStatus", obj, metaData);
273
274   metaData = CreateMetaObject("AliTRDCalPadStatus");
275   obj = CreatePadStatusObject();
276   StoreObject("TRD/Calib/PadStatus", obj, metaData);
277
278   metaData = CreateMetaObject("AliTRDCalPIDLQ");
279   obj = CreatePIDLQObject();
280   StoreObject("TRD/Calib/PIDLQ", obj, metaData);
281
282   metaData = CreateMetaObject("AliTRDCalMonitoring");
283   obj = CreateMonitoringObject();
284   StoreObject("TRD/Calib/MonitoringData", obj, metaData);
285 }