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