]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/Cal/AliTRDCreateDummyCDB.C
Introduce T0 offset in CDB
[u/mrichter/AliRoot.git] / TRD / Cal / AliTRDCreateDummyCDB.C
CommitLineData
7754cd1f 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"
7754cd1f 13#include "AliTRDCalPad.h"
14#include "AliTRDCalDet.h"
15#include "AliTRDCalGlobals.h"
16
7754cd1f 17#include "AliTRDCalChamberStatus.h"
7754cd1f 18#include "AliTRDCalPadStatus.h"
19#include "AliTRDCalSingleChamberStatus.h"
20
21#include "AliTRDCalPIDLQ.h"
22#include "AliTRDCalMonitoring.h"
23
24#endif
25
d4c6453d 26// Run number for the dummy file
27const Int_t gkDummyRun = 0;
28AliCDBStorage *gStorLoc = 0;
7754cd1f 29
d4c6453d 30//_____________________________________________________________________________
31TObject *CreatePadObject(const char *shortName, const char *description
32 , Float_t value)
7754cd1f 33{
d4c6453d 34
7754cd1f 35 AliTRDCalPad *calPad = new AliTRDCalPad(shortName, description);
d4c6453d 36 for (Int_t det = 0; det < AliTRDgeometry::kNdet; ++det) {
7754cd1f 37 AliTRDCalROC *calROC = calPad->GetCalROC(det);
d4c6453d 38 for (Int_t channel = 0; channel < calROC->GetNchannels(); ++channel) {
7754cd1f 39 calROC->SetValue(channel, value);
d4c6453d 40 }
7754cd1f 41 }
42 return calPad;
d4c6453d 43
7754cd1f 44}
45
d4c6453d 46//_____________________________________________________________________________
47TObject *CreateDetObject(const char *shortName, const char *description
48 , Float_t value)
7754cd1f 49{
d4c6453d 50
7754cd1f 51 AliTRDCalDet *object = new AliTRDCalDet(shortName, description);
d4c6453d 52 for (Int_t det = 0; det < AliTRDgeometry::kNdet; ++det) {
7754cd1f 53 object->SetValue(det, value);
d4c6453d 54 }
7754cd1f 55 return object;
d4c6453d 56
7754cd1f 57}
58
d4c6453d 59//_____________________________________________________________________________
60TObject *CreateGlobalsObject(Float_t t0Offset = 0.0)
7754cd1f 61{
d4c6453d 62
63 AliTRDCalGlobals *object = new AliTRDCalGlobals("Globals"
64 ,"Global TRD calibration parameters");
7754cd1f 65
7754cd1f 66 object->SetNumberOfTimeBins(22);
d4c6453d 67
68 object->SetTailCancelationTau1(0);
69 object->SetTailCancelationTau2(0);
70 object->SetTailCancelationAmp(0);
71
72 object->SetPedestal(0);
73 object->SetADCClockphase(0);
74
75 // Introduce negative offset to allow for fluctuations around 0
76 object->SetT0Offset(-t0Offset);
7754cd1f 77
78 return object;
d4c6453d 79
7754cd1f 80}
81
d4c6453d 82//_____________________________________________________________________________
83TObject *CreatePRFWidthObject()
7754cd1f 84{
d4c6453d 85
7754cd1f 86 AliTRDCalPad *calPad = new AliTRDCalPad("PRFWidth","PRFWidth");
d4c6453d 87 for (Int_t plane = 0; plane < AliTRDgeometry::kNplan; ++plane) {
88
89 Float_t value = 0.0;
90 switch (plane) {
91 case 0:
92 value = 0.515;
93 break;
94 case 1:
95 value = 0.502;
96 break;
97 case 2:
98 value = 0.491;
99 break;
100 case 3:
101 value = 0.481;
102 break;
103 case 4:
104 value = 0.471;
105 break;
106 case 5:
107 value = 0.463;
108 break;
109 default:
110 cout << "CreatePRFWidthObject: UNEXPECTED" << endl;
111 return 0;
7754cd1f 112 }
d4c6453d 113
114 for (Int_t chamber = 0; chamber < AliTRDgeometry::kNcham; ++chamber) {
115 for (Int_t sector = 0; sector < AliTRDgeometry::kNsect; ++sector) {
116 AliTRDCalROC *calROC = calPad->GetCalROC(plane,chamber,sector);
117 for (Int_t channel = 0; channel < calROC->GetNchannels(); ++channel) {
7754cd1f 118 calROC->SetValue(channel, value);
d4c6453d 119 }
7754cd1f 120 }
121 }
d4c6453d 122
7754cd1f 123 }
124
125 return calPad;
7754cd1f 126
7754cd1f 127}
128
d4c6453d 129//_____________________________________________________________________________
130AliTRDCalChamberStatus *CreateChamberStatusObject()
7754cd1f 131{
7754cd1f 132
d4c6453d 133 AliTRDCalChamberStatus *obj = new AliTRDCalChamberStatus("chamberstatus"
134 ,"chamberstatus");
135
136 for (Int_t i = 0; i < AliTRDgeometry::kNdet; ++i) {
7754cd1f 137 obj->SetStatus(i, AliTRDCalChamberStatus::kInstalled);
d4c6453d 138 }
7754cd1f 139
140 return obj;
d4c6453d 141
7754cd1f 142}
143
d4c6453d 144//_____________________________________________________________________________
145AliTRDCalPadStatus *CreatePadStatusObject()
7754cd1f 146{
d4c6453d 147 AliTRDCalPadStatus *obj = new AliTRDCalPadStatus("padstatus"
148 ,"padstatus");
7754cd1f 149
150 return obj;
d4c6453d 151
7754cd1f 152}
153
d4c6453d 154//_____________________________________________________________________________
155AliTRDCalPIDLQ *CreatePIDLQObject()
7754cd1f 156{
7754cd1f 157
d4c6453d 158 AliTRDCalPIDLQ *pid = new AliTRDCalPIDLQ("pidobject"
159 ,"pidobject");
7754cd1f 160
7754cd1f 161 pid->ReadData("$ALICE_ROOT/TRD/TRDdEdxHistogramsV1.root");
d4c6453d 162
163 // The factor is the ratio of Mean of pi charge dist.
164 // for the New TRD code divided by the Mean of pi charge
165 // dist. given in AliTRDCalPIDLQ object
166 pid->SetMeanChargeRatio(1.0);
7754cd1f 167
168 return pid;
d4c6453d 169
7754cd1f 170}
171
d4c6453d 172//_____________________________________________________________________________
173AliTRDCalMonitoring *CreateMonitoringObject()
7754cd1f 174{
d4c6453d 175 AliTRDCalMonitoring *obj = new AliTRDCalMonitoring();
7754cd1f 176
177 return obj;
d4c6453d 178
7754cd1f 179}
180
d4c6453d 181//_____________________________________________________________________________
182AliCDBMetaData *CreateMetaObject(const char *objectClassName)
7754cd1f 183{
d4c6453d 184
7754cd1f 185 AliCDBMetaData *md1= new AliCDBMetaData();
186 md1->SetObjectClassName(objectClassName);
187 md1->SetResponsible("Jan Fiete Grosse-Oetringhaus");
188 md1->SetBeamPeriod(1);
189 md1->SetAliRootVersion("05-06-00"); //root version
190 md1->SetComment("The dummy values in this calibration file are for testing only");
191
192 return md1;
d4c6453d 193
7754cd1f 194}
195
d4c6453d 196//_____________________________________________________________________________
197void StoreObject(const char *cdbPath, TObject *object, AliCDBMetaData *metaData)
7754cd1f 198{
d4c6453d 199
200 AliCDBId id1(cdbPath,gkDummyRun,gkDummyRun);
201 gStorLoc->Put(object,id1,metaData);
202
7754cd1f 203}
204
d4c6453d 205//_____________________________________________________________________________
7754cd1f 206void AliTRDCreateDummyCDB()
207{
d4c6453d 208
209 cout << endl
210 << "TRD :: Creating dummy CDB with event number "
211 << gkDummyRun
212 << endl;
213
214 Float_t t0Offset = 5.0;
7754cd1f 215
216 AliCDBManager *man = AliCDBManager::Instance();
217 gStorLoc = man->GetStorage("local://$ALICE_ROOT");
d4c6453d 218 if (!gStorLoc) {
7754cd1f 219 return;
d4c6453d 220 }
7754cd1f 221
d4c6453d 222 TObject *obj = 0;
223 AliCDBMetaData *metaData = 0;
7754cd1f 224
d4c6453d 225 //
226 // Pad objects
227 //
228
229 metaData = CreateMetaObject("AliTRDCalPad");
230
231 obj = CreatePadObject("LocalVdrift" ,"TRD drift velocities (local variations)",1);
232 StoreObject("TRD/Calib/LocalVdrift" ,obj,metaData);
7754cd1f 233
d4c6453d 234 obj = CreatePadObject("LocalT0" ,"T0 (local variations)",0.0);
235 StoreObject("TRD/Calib/LocalT0" ,obj,metaData);
7754cd1f 236
d4c6453d 237 obj = CreatePadObject("GainFactor" ,"GainFactor (local variations)",1);
238 StoreObject("TRD/Calib/LocalGainFactor" ,obj,metaData);
7754cd1f 239
240 obj = CreatePRFWidthObject();
d4c6453d 241 StoreObject("TRD/Calib/PRFWidth" ,obj,metaData);
242
243 //
244 // Detector objects
245 //
7754cd1f 246
247 metaData = CreateMetaObject("AliTRDCalDet");
248
d4c6453d 249 obj = CreateDetObject("ChamberVdrift" ,"TRD drift velocities (detector value)", 1.5);
250 StoreObject("TRD/Calib/ChamberVdrift" ,obj,metaData);
7754cd1f 251
d4c6453d 252 obj = CreateDetObject("ChamberT0" ,"T0 (detector value)",t0Offset);
253 StoreObject("TRD/Calib/ChamberT0" ,obj,metaData);
7754cd1f 254
d4c6453d 255 obj = CreateDetObject("ChamberGainFactor" ,"GainFactor (detector value)", 1);
256 StoreObject("TRD/Calib/ChamberGainFactor" ,obj,metaData);
7754cd1f 257
d4c6453d 258 //
259 // Global object
260 //
261
7754cd1f 262 metaData = CreateMetaObject("AliTRDCalGlobals");
d4c6453d 263 obj = CreateGlobalsObject(t0Offset);
264 StoreObject("TRD/Calib/Globals" ,obj,metaData);
7754cd1f 265
d4c6453d 266 //
267 // Status objects
268 //
7754cd1f 269
270 metaData = CreateMetaObject("AliTRDCalChamberStatus");
271 obj = CreateChamberStatusObject();
d4c6453d 272 StoreObject("TRD/Calib/ChamberStatus" ,obj,metaData);
7754cd1f 273
274 metaData = CreateMetaObject("AliTRDCalPadStatus");
275 obj = CreatePadStatusObject();
d4c6453d 276 StoreObject("TRD/Calib/PadStatus" ,obj,metaData);
7754cd1f 277
278 metaData = CreateMetaObject("AliTRDCalPIDLQ");
279 obj = CreatePIDLQObject();
d4c6453d 280 StoreObject("TRD/Calib/PIDLQ" ,obj,metaData);
281
282 //
283 // Monitoring object
284 //
7754cd1f 285
286 metaData = CreateMetaObject("AliTRDCalMonitoring");
287 obj = CreateMonitoringObject();
d4c6453d 288 StoreObject("TRD/Calib/MonitoringData" ,obj,metaData);
289
7754cd1f 290}