]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/Cal/AliTRDCreateDummyCDB.C
New data member in the common calibration class
[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 "AliTRDCalGlobals.h"
16
17 #include "AliTRDCalSuperModuleStatus.h"
18 #include "AliTRDCalChamberStatus.h"
19 #include "AliTRDCalMCMStatus.h"
20 #include "AliTRDCalPadStatus.h"
21 #include "AliTRDCalSingleChamberStatus.h"
22
23 #include "AliTRDCalPIDLQ.h"
24 #include "AliTRDCalMonitoring.h"
25
26 #endif
27
28 // run number for the dummy file
29 const Int_t gkDummyRun = 0;
30 AliCDBStorage* gStorLoc = 0;
31
32 TObject* CreatePadObject(const char* shortName, const char* description, Float_t value)
33 {
34   AliTRDCalPad *calPad = new AliTRDCalPad(shortName, description);
35   for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)
36   {
37     AliTRDCalROC *calROC = calPad->GetCalROC(det);
38     for (Int_t channel=0; channel<calROC->GetNchannels(); ++channel)
39       calROC->SetValue(channel, value);
40   }
41   return calPad;
42 }
43
44 TObject* CreateDetObject(const char* shortName, const char* description, Float_t value)
45 {
46   AliTRDCalDet *object = new AliTRDCalDet(shortName, description);
47   for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)
48     object->SetValue(det, value);
49   return object;
50 }
51
52 TObject* CreateGlobalsObject()
53 {
54   AliTRDCalGlobals *object = new AliTRDCalGlobals("Globals", "Global TRD calibration parameters");
55
56   object->SetNumberOfTimeBins(22);
57   
58   return object;
59 }
60
61 TObject* CreatePRFWidthObject()
62 {
63   AliTRDCalPad *calPad = new AliTRDCalPad("PRFWidth","PRFWidth");
64   for (Int_t plane=0; plane<AliTRDgeometry::kNplan; ++plane)
65   {
66     Float_t value = 0;
67     switch (plane)
68     {
69       case 0: value = 0.515; break;
70       case 1: value = 0.502; break;
71       case 2: value = 0.491; break;
72       case 3: value = 0.481; break;
73       case 4: value = 0.471; break;
74       case 5: value = 0.463; break;
75       default: cout << "CreatePRFWidthObject: UNEXPECTED" << endl; return 0;
76     }
77     for (Int_t chamber=0; chamber<AliTRDgeometry::kNcham; ++chamber)
78     {
79       for (Int_t sector=0; sector<AliTRDgeometry::kNsect; ++sector)
80       {
81         AliTRDCalROC *calROC = calPad->GetCalROC(plane, chamber, sector);
82         for (Int_t channel=0; channel<calROC->GetNchannels(); ++channel)
83           calROC->SetValue(channel, value);
84       }
85     }
86   }
87       
88   return calPad;
89 }
90
91 AliTRDCalSuperModuleStatus* CreateSuperModuleStatusObject()
92 {
93   AliTRDCalSuperModuleStatus* obj = new AliTRDCalSuperModuleStatus("supermodulestatus", "supermodulestatus");
94
95   for (Int_t i=0; i<AliTRDgeometry::kNsect; ++i)
96     obj->SetStatus(i, AliTRDCalSuperModuleStatus::kInstalled);
97
98   return obj;
99 }
100
101 AliTRDCalChamberStatus* CreateChamberStatusObject()
102 {
103   AliTRDCalChamberStatus* obj = new AliTRDCalChamberStatus("chamberstatus", "chamberstatus");
104
105   for (Int_t i=0; i<AliTRDgeometry::kNdet; ++i)
106     obj->SetStatus(i, AliTRDCalChamberStatus::kInstalled);
107
108   return obj;
109 }
110
111 AliTRDCalMCMStatus* CreateMCMStatusObject()
112 {
113   AliTRDCalMCMStatus* obj = new AliTRDCalMCMStatus("mcmstatus", "mcmstatus");
114
115   return obj;
116 }
117
118 AliTRDCalPadStatus* CreatePadStatusObject()
119 {
120   AliTRDCalPadStatus* obj = new AliTRDCalPadStatus("padstatus", "padstatus");
121
122   return obj;
123 }
124
125 AliTRDCalPIDLQ* CreatePIDLQObject()
126 {
127   AliTRDCalPIDLQ* pid = new AliTRDCalPIDLQ("pidobject", "pidobject");
128   pid->ReadData("$ALICE_ROOT/TRD/TRDdEdxHistogramsV1.root");
129   pid->SetMeanChargeRatio(1.0); // The factor is the ratio of Mean of pi charge dist.
130                     // for the New TRD code divided by the Mean of pi charge
131                     // dist. given in AliTRDCalPIDLQ object
132   
133   return pid;
134 }
135
136 AliTRDCalMonitoring* CreateMonitoringObject()
137 {
138   AliTRDCalMonitoring* obj = new AliTRDCalMonitoring();
139
140   return obj;
141 }
142
143 AliCDBMetaData* CreateMetaObject(const char* objectClassName)
144 {
145   AliCDBMetaData *md1= new AliCDBMetaData(); 
146   md1->SetObjectClassName(objectClassName);
147   md1->SetResponsible("Jan Fiete Grosse-Oetringhaus");
148   md1->SetBeamPeriod(1);
149   md1->SetAliRootVersion("05-06-00"); //root version
150   md1->SetComment("The dummy values in this calibration file are for testing only");
151   
152   return md1;
153 }
154
155 void StoreObject(const char* cdbPath, TObject* object, AliCDBMetaData* metaData)
156 {
157   AliCDBId id1(cdbPath, gkDummyRun, gkDummyRun); 
158   gStorLoc->Put(object, id1, metaData); 
159 }
160     
161
162 void AliTRDCreateDummyCDB()
163 {
164   cout << endl << "TRD :: Creating dummy CDB with event number " << gkDummyRun << endl;
165   
166   AliCDBManager *man = AliCDBManager::Instance();
167   gStorLoc = man->GetStorage("local://$ALICE_ROOT");
168   if (!gStorLoc)
169     return;
170
171   TObject* obj = 0;
172   AliCDBMetaData* metaData = 0;
173   
174   metaData = CreateMetaObject("AliTRDCalPad");
175   
176   obj = CreatePadObject("LocalVdrift","TRD drift velocities (local variations)", 1);
177   StoreObject("TRD/Calib/LocalVdrift", obj, metaData);
178   
179   obj = CreatePadObject("LocalT0","T0 (local variations)", 1);
180   StoreObject("TRD/Calib/LocalT0", obj, metaData);
181
182   obj = CreatePadObject("GainFactor","GainFactor (local variations)", 1);
183   StoreObject("TRD/Calib/LocalGainFactor", obj, metaData);
184
185   obj = CreatePRFWidthObject();
186   StoreObject("TRD/Calib/PRFWidth", obj, metaData);
187
188   metaData = CreateMetaObject("AliTRDCalDet");
189   
190   obj = CreateDetObject("ChamberVdrift","TRD drift velocities (detector value)", 1.5);
191   StoreObject("TRD/Calib/ChamberVdrift", obj, metaData);
192   
193   obj = CreateDetObject("ChamberT0","T0 (detector value)", 0);
194   StoreObject("TRD/Calib/ChamberT0", obj, metaData);
195   
196   obj = CreateDetObject("ChamberGainFactor","GainFactor (detector value)", 1);
197   StoreObject("TRD/Calib/ChamberGainFactor", obj, metaData);
198   
199   metaData = CreateMetaObject("AliTRDCalGlobals");
200   obj = CreateGlobalsObject();
201   StoreObject("TRD/Calib/Globals", obj, metaData);
202   
203   metaData = CreateMetaObject("AliTRDCalSuperModuleStatus");
204   obj = CreateSuperModuleStatusObject();
205   StoreObject("TRD/Calib/SuperModuleStatus", obj, metaData);
206
207   metaData = CreateMetaObject("AliTRDCalChamberStatus");
208   obj = CreateChamberStatusObject();
209   StoreObject("TRD/Calib/ChamberStatus", obj, metaData);
210
211   metaData = CreateMetaObject("AliTRDCalMCMStatus");
212   obj = CreateMCMStatusObject();
213   StoreObject("TRD/Calib/MCMStatus", obj, metaData);
214
215   metaData = CreateMetaObject("AliTRDCalPadStatus");
216   obj = CreatePadStatusObject();
217   StoreObject("TRD/Calib/PadStatus", obj, metaData);
218
219   metaData = CreateMetaObject("AliTRDCalPIDLQ");
220   obj = CreatePIDLQObject();
221   StoreObject("TRD/Calib/PIDLQ", obj, metaData);
222
223   metaData = CreateMetaObject("AliTRDCalMonitoring");
224   obj = CreateMonitoringObject();
225   StoreObject("TRD/Calib/MonitoringData", obj, metaData);
226 }