]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/Cal/AliTRDCreateDummyCDB.C
introduce tracking efficiency for each species
[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 "AliTRDCalPad.h"
14 #include "AliTRDCalDet.h"
15 #include "AliTRDCalFEE.h"
16
17 #include "AliTRDCalChamberStatus.h"
18 #include "AliTRDCalPadStatus.h"
19 #include "AliTRDCalSingleChamberStatus.h"
20
21 #include "AliTRDCalPIDLQ.h"
22 #include "AliTRDCalMonitoring.h"
23
24 #endif
25
26 // Run numbers for the dummy file
27 const Int_t    gkDummyRunBeg = 0;
28 const Int_t    gkDummyRunEnd = 999999999;
29 AliCDBStorage *gStorLoc      = 0;
30
31 //_____________________________________________________________________________
32 TObject *CreatePadObject(const char *shortName, const char *description
33                        , Float_t value)
34 {
35
36   AliTRDCalPad *calPad = new AliTRDCalPad(shortName, description);
37   for (Int_t det = 0; det < AliTRDgeometry::kNdet; ++det) {
38     AliTRDCalROC *calROC = calPad->GetCalROC(det);
39     for (Int_t channel = 0; channel < calROC->GetNchannels(); ++channel) {
40       calROC->SetValue(channel, value);
41     }
42   }
43   return calPad;
44
45 }
46
47 //_____________________________________________________________________________
48 TObject *CreateDetObject(const char *shortName, const char *description
49                        , Float_t value)
50 {
51
52   AliTRDCalDet *object = new AliTRDCalDet(shortName, description);
53   for (Int_t det = 0; det < AliTRDgeometry::kNdet; ++det) {
54     object->SetValue(det, value);
55   }
56   return object;
57
58 }
59
60 //_____________________________________________________________________________
61 TObject *CreateFEEObject() 
62 {
63
64   AliTRDCalFEE *object = new AliTRDCalFEE("FEE"
65                                          ,"TRD FEE calibration parameters");
66
67   object->SetNumberOfTimeBins(24);
68
69   object->SetTailCancelationTau1(0);
70   object->SetTailCancelationTau2(0);
71   object->SetTailCancelationAmp(0);
72
73   object->SetPedestal(0);
74
75   return object;
76
77 }
78
79 //_____________________________________________________________________________
80 TObject *CreatePRFWidthObject()
81 {
82
83   AliTRDCalPad *calPad = new AliTRDCalPad("PRFWidth","PRFWidth");
84   for (Int_t plane = 0; plane < AliTRDgeometry::kNplan; ++plane) {
85
86     Float_t value = 0.0;
87     switch (plane) {
88       case 0: 
89         value = 0.515; 
90         break;
91       case 1: 
92         value = 0.502; 
93         break;
94       case 2: 
95         value = 0.491; 
96         break;
97       case 3: 
98         value = 0.481; 
99         break;
100       case 4: 
101         value = 0.471; 
102         break;
103       case 5: 
104         value = 0.463; 
105         break;
106       default: 
107         cout << "CreatePRFWidthObject: UNEXPECTED" << endl; 
108         return 0;
109     }
110
111     for (Int_t chamber = 0; chamber < AliTRDgeometry::kNcham; ++chamber) {
112       for (Int_t sector = 0; sector < AliTRDgeometry::kNsect; ++sector) {
113         AliTRDCalROC *calROC = calPad->GetCalROC(plane,chamber,sector);
114         for (Int_t channel = 0; channel < calROC->GetNchannels(); ++channel) {
115           calROC->SetValue(channel, value);
116         }
117       }
118     }
119
120   }
121       
122   return calPad;
123
124 }
125
126 //_____________________________________________________________________________
127 AliTRDCalChamberStatus *CreateChamberStatusObject()
128 {
129
130   AliTRDCalChamberStatus *obj = new AliTRDCalChamberStatus("chamberstatus"
131                                                           ,"chamberstatus");
132
133   for (Int_t i = 0; i < AliTRDgeometry::kNdet; ++i) {
134     obj->SetStatus(i, AliTRDCalChamberStatus::kInstalled);
135   }
136
137   return obj;
138
139 }
140
141 //_____________________________________________________________________________
142 AliTRDCalPadStatus *CreatePadStatusObject()
143 {
144   AliTRDCalPadStatus     *obj = new AliTRDCalPadStatus("padstatus"
145                                                       ,"padstatus");
146
147   return obj;
148
149 }
150
151 //_____________________________________________________________________________
152 AliTRDCalMonitoring *CreateMonitoringObject()
153 {
154   AliTRDCalMonitoring    *obj = new AliTRDCalMonitoring();
155
156   return obj;
157
158 }
159
160 //_____________________________________________________________________________
161 TClonesArray* CreateRecoParamObject()
162 {
163   TClonesArray *recos = new TClonesArray("AliTRDrecoParam", 3);
164   recos->SetOwner(kTRUE);
165
166   AliTRDrecoParam *rec = 0x0;
167   AliTRDrecoParam *reco = new((*recos)[0]) AliTRDrecoParam(*(rec = AliTRDrecoParam::GetLowFluxParam()));
168   delete rec;
169   // further settings for low flux reco param
170   // reco->SetThisAndThat()
171
172   reco = new((*recos)[1]) AliTRDrecoParam(*(rec = AliTRDrecoParam::GetHighFluxParam()));
173   delete rec;
174
175   reco = new((*recos)[2]) AliTRDrecoParam(*(rec = AliTRDrecoParam::GetCosmicTestParam()));
176   delete rec;
177
178   return recos;
179
180 }
181
182 //_____________________________________________________________________________
183 AliCDBMetaData *CreateMetaObject(const char *objectClassName)
184 {
185
186   AliCDBMetaData *md1= new AliCDBMetaData(); 
187   md1->SetObjectClassName(objectClassName);
188   md1->SetResponsible("Christoph Blume");
189   md1->SetBeamPeriod(1);
190   md1->SetAliRootVersion("05-16-00"); //root version
191   md1->SetComment("Ideal calibration values");
192   
193   return md1;
194
195 }
196
197 //_____________________________________________________________________________
198 void StoreObject(const char *cdbPath, TObject *object, AliCDBMetaData *metaData)
199 {
200
201   AliCDBId id1(cdbPath,gkDummyRunBeg,gkDummyRunEnd); 
202   gStorLoc->Put(object,id1,metaData); 
203
204 }
205     
206
207 //_____________________________________________________________________________
208 void AliTRDCreateDummyCDB()
209 {
210
211   cout << endl 
212        << "TRD :: Creating dummy CDB for the runs " 
213        << gkDummyRunBeg
214        << " -- " 
215        << gkDummyRunEnd
216        << endl;
217   
218   AliCDBManager *man = AliCDBManager::Instance();
219   gStorLoc = man->GetStorage("local://$ALICE_ROOT");
220   if (!gStorLoc) {
221     return;
222   }
223
224   TObject        *obj      = 0;
225   AliCDBMetaData *metaData = 0;
226
227   //
228   // Reco Param Object
229   //
230
231   metaData= new AliCDBMetaData(); 
232   metaData->SetObjectClassName("TClonesArray");
233   metaData->SetResponsible("Alexandru Bercuci");
234   metaData->SetBeamPeriod(1);
235   metaData->SetAliRootVersion("05-19-04"); //root version
236   metaData->SetComment("Ideal reconstruction parameters for low, high and cosmic runs");
237   StoreObject("TRD/Calib/RecoParam",CreateRecoParamObject(),metaData);
238   return;
239
240   //
241   // Pad objects
242   //
243
244   metaData = CreateMetaObject("AliTRDCalPad");  
245
246   obj = CreatePadObject("LocalVdrift"       ,"TRD drift velocities (local variations)",1);
247   StoreObject("TRD/Calib/LocalVdrift"       ,obj,metaData);
248   
249   obj = CreatePadObject("LocalT0"           ,"T0 (local variations)",0);
250   StoreObject("TRD/Calib/LocalT0"           ,obj,metaData);
251
252   obj = CreatePadObject("GainFactor"        ,"GainFactor (local variations)",1);
253   StoreObject("TRD/Calib/LocalGainFactor"   ,obj,metaData);
254
255   obj = CreatePRFWidthObject();
256   StoreObject("TRD/Calib/PRFWidth"          ,obj,metaData);
257
258   //
259   // Detector objects
260   //
261
262   metaData = CreateMetaObject("AliTRDCalDet");
263   
264   obj = CreateDetObject("ChamberVdrift"     ,"TRD drift velocities (detector value)", 1.5);
265   StoreObject("TRD/Calib/ChamberVdrift"     ,obj,metaData);
266   
267   obj = CreateDetObject("ChamberT0"         ,"T0 (detector value)",0);
268   StoreObject("TRD/Calib/ChamberT0"         ,obj,metaData);
269   
270   obj = CreateDetObject("ChamberGainFactor" ,"GainFactor (detector value)", 1);
271   StoreObject("TRD/Calib/ChamberGainFactor" ,obj,metaData);
272   
273   //
274   // FEE object
275   //
276
277   metaData = CreateMetaObject("AliTRDCalFEE");
278   obj = CreateFEEObject();
279   StoreObject("TRD/Calib/FEE"               ,obj,metaData);
280   
281   //
282   // Status objects
283   //
284
285   metaData = CreateMetaObject("AliTRDCalChamberStatus");
286   obj = CreateChamberStatusObject();
287   StoreObject("TRD/Calib/ChamberStatus"     ,obj,metaData);
288
289   metaData = CreateMetaObject("AliTRDCalPadStatus");
290   obj = CreatePadStatusObject();
291   StoreObject("TRD/Calib/PadStatus"         ,obj,metaData);
292
293   //
294   // Monitoring object
295   //
296
297   metaData = CreateMetaObject("AliTRDCalMonitoring");
298   obj = CreateMonitoringObject();
299   StoreObject("TRD/Calib/MonitoringData"    ,obj,metaData);
300
301 }