]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/Cal/AliTRDCreateDummyCDB.C
protect against crash due to wrong gDirectory settings in OCDB
[u/mrichter/AliRoot.git] / TRD / Cal / AliTRDCreateDummyCDB.C
index 657c3e0f73dc42f28aaa0f39550a1793c11d77c3..1a1d85518ac878980cf3e9cd731ff81a5fca3636 100644 (file)
 #include "AliTRDCalROC.h"
 #include "AliTRDCalPad.h"
 #include "AliTRDCalDet.h"
-#include "AliTRDCalGlobals.h"
 
-#include "AliTRDCalSuperModuleStatus.h"
 #include "AliTRDCalChamberStatus.h"
-#include "AliTRDCalMCMStatus.h"
 #include "AliTRDCalPadStatus.h"
 #include "AliTRDCalSingleChamberStatus.h"
 
 
 #endif
 
-// run number for the dummy file
-const Int_t gkDummyRun = 0;
-AliCDBStorage* gStorLoc = 0;
+// Run numbers for the dummy file
+const Int_t    gkDummyRunBeg = 0;
+const Int_t    gkDummyRunEnd = 999999999;
+AliCDBStorage *gStorLoc      = 0;
 
-TObject* CreatePadObject(const char* shortName, const char* description, Float_t value)
+//_____________________________________________________________________________
+TObject *CreatePadObject(const char *shortName, const char *description
+                       , Float_t value)
 {
+
   AliTRDCalPad *calPad = new AliTRDCalPad(shortName, description);
-  for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)
-  {
+  for (Int_t det = 0; det < AliTRDgeometry::kNdet; ++det) {
     AliTRDCalROC *calROC = calPad->GetCalROC(det);
-    for (Int_t channel=0; channel<calROC->GetNchannels(); ++channel)
+    for (Int_t channel = 0; channel < calROC->GetNchannels(); ++channel) {
       calROC->SetValue(channel, value);
+    }
   }
   return calPad;
+
 }
 
-TObject* CreateDetObject(const char* shortName, const char* description, Float_t value)
+//_____________________________________________________________________________
+TObject *CreateDetObject(const char *shortName, const char *description
+                       , Float_t value)
 {
+
   AliTRDCalDet *object = new AliTRDCalDet(shortName, description);
-  for (Int_t det=0; det<AliTRDgeometry::kNdet; ++det)
+  for (Int_t det = 0; det < AliTRDgeometry::kNdet; ++det) {
     object->SetValue(det, value);
+  }
   return object;
-}
 
-TObject* CreateGlobalsObject()
-{
-  AliTRDCalGlobals *object = new AliTRDCalGlobals("Globals", "Global TRD calibration parameters");
-
-  object->SetNumberOfTimeBins(22);
-  
-  return object;
 }
 
-TObject* CreatePRFWidthObject()
+//_____________________________________________________________________________
+TObject *CreatePRFWidthObject()
 {
+
   AliTRDCalPad *calPad = new AliTRDCalPad("PRFWidth","PRFWidth");
-  for (Int_t plane=0; plane<AliTRDgeometry::kNplan; ++plane)
-  {
-    Float_t value = 0;
-    switch (plane)
-    {
-      case 0: value = 0.515; break;
-      case 1: value = 0.502; break;
-      case 2: value = 0.491; break;
-      case 3: value = 0.481; break;
-      case 4: value = 0.471; break;
-      case 5: value = 0.463; break;
-      default: cout << "CreatePRFWidthObject: UNEXPECTED" << endl; return 0;
+  for (Int_t iLayer = 0; iLayer < AliTRDgeometry::kNlayer; ++iLayer) {
+
+    Float_t value = 0.0;
+    switch (iLayer) {
+      case 0: 
+        value = 0.515; 
+        break;
+      case 1: 
+        value = 0.502; 
+        break;
+      case 2: 
+        value = 0.491; 
+        break;
+      case 3: 
+        value = 0.481; 
+        break;
+      case 4: 
+        value = 0.471; 
+        break;
+      case 5: 
+        value = 0.463; 
+        break;
+      default: 
+        cout << "CreatePRFWidthObject: UNEXPECTED" << endl; 
+        return 0;
     }
-    for (Int_t chamber=0; chamber<AliTRDgeometry::kNcham; ++chamber)
-    {
-      for (Int_t sector=0; sector<AliTRDgeometry::kNsect; ++sector)
-      {
-        AliTRDCalROC *calROC = calPad->GetCalROC(plane, chamber, sector);
-        for (Int_t channel=0; channel<calROC->GetNchannels(); ++channel)
-          calROC->SetValue(channel, value);
+
+    for (Int_t iStack = 0; iStack < AliTRDgeometry::kNstack; ++iStack) {
+      for (Int_t iSector = 0; iSector < AliTRDgeometry::kNsector; ++iSector) {
+        AliTRDCalROC *calROC = calPad->GetCalROC(iLayer,iStack,iSector);
+        for (Int_t iChannel = 0; iChannel < calROC->GetNchannels(); ++iChannel) {
+          calROC->SetValue(iChannel, value);
+       }
       }
     }
+
   }
       
   return calPad;
-}
-
-AliTRDCalSuperModuleStatus* CreateSuperModuleStatusObject()
-{
-  AliTRDCalSuperModuleStatus* obj = new AliTRDCalSuperModuleStatus("supermodulestatus", "supermodulestatus");
-
-  for (Int_t i=0; i<AliTRDgeometry::kNsect; ++i)
-    obj->SetStatus(i, AliTRDCalSuperModuleStatus::kInstalled);
 
-  return obj;
 }
 
-AliTRDCalChamberStatus* CreateChamberStatusObject()
+//_____________________________________________________________________________
+AliTRDCalChamberStatus *CreateChamberStatusObject()
 {
-  AliTRDCalChamberStatus* obj = new AliTRDCalChamberStatus("chamberstatus", "chamberstatus");
 
-  for (Int_t i=0; i<AliTRDgeometry::kNdet; ++i)
+  AliTRDCalChamberStatus *obj = new AliTRDCalChamberStatus("chamberstatus"
+                                                          ,"chamberstatus");
+
+  for (Int_t i = 0; i < AliTRDgeometry::kNdet; ++i) {
     obj->SetStatus(i, AliTRDCalChamberStatus::kInstalled);
+  }
 
   return obj;
+
 }
 
-AliTRDCalMCMStatus* CreateMCMStatusObject()
+//_____________________________________________________________________________
+AliTRDCalPadStatus *CreatePadStatusObject()
 {
-  AliTRDCalMCMStatus* obj = new AliTRDCalMCMStatus("mcmstatus", "mcmstatus");
+  AliTRDCalPadStatus     *obj = new AliTRDCalPadStatus("padstatus"
+                                                      ,"padstatus");
 
   return obj;
+
 }
 
-AliTRDCalPadStatus* CreatePadStatusObject()
+//_____________________________________________________________________________
+AliTRDCalMonitoring *CreateMonitoringObject()
 {
-  AliTRDCalPadStatus* obj = new AliTRDCalPadStatus("padstatus", "padstatus");
+  AliTRDCalMonitoring    *obj = new AliTRDCalMonitoring();
 
   return obj;
-}
 
-AliTRDCalPIDLQ* CreatePIDLQObject()
-{
-  AliTRDCalPIDLQ* pid = new AliTRDCalPIDLQ("pidobject", "pidobject");
-  pid->ReadData("$ALICE_ROOT/TRD/TRDdEdxHistogramsV1.root");
-  pid->SetMeanChargeRatio(1.0); // The factor is the ratio of Mean of pi charge dist.
-                    // for the New TRD code divided by the Mean of pi charge
-                    // dist. given in AliTRDCalPIDLQ object
-  
-  return pid;
 }
 
-AliTRDCalMonitoring* CreateMonitoringObject()
+//_____________________________________________________________________________
+TClonesArray* CreateRecoParamObject()
 {
-  AliTRDCalMonitoring* obj = new AliTRDCalMonitoring();
+  TClonesArray *recos = new TClonesArray("AliTRDrecoParam", 3);
+  recos->SetOwner(kTRUE);
+
+  AliTRDrecoParam *rec = 0x0;
+  AliTRDrecoParam *reco = new((*recos)[0]) AliTRDrecoParam(*(rec = AliTRDrecoParam::GetLowFluxParam()));
+  delete rec;
+  // further settings for low flux reco param
+  // reco->SetThisAndThat()
+
+  reco = new((*recos)[1]) AliTRDrecoParam(*(rec = AliTRDrecoParam::GetHighFluxParam()));
+  delete rec;
+
+  reco = new((*recos)[2]) AliTRDrecoParam(*(rec = AliTRDrecoParam::GetCosmicTestParam()));
+  delete rec;
+
+  return recos;
 
-  return obj;
 }
 
-AliCDBMetaData* CreateMetaObject(const char* objectClassName)
+//_____________________________________________________________________________
+AliCDBMetaData *CreateMetaObject(const char *objectClassName)
 {
+
   AliCDBMetaData *md1= new AliCDBMetaData(); 
   md1->SetObjectClassName(objectClassName);
-  md1->SetResponsible("Jan Fiete Grosse-Oetringhaus");
+  md1->SetResponsible("Christoph Blume");
   md1->SetBeamPeriod(1);
-  md1->SetAliRootVersion("05-06-00"); //root version
-  md1->SetComment("The dummy values in this calibration file are for testing only");
+  md1->SetAliRootVersion("05-16-00"); //root version
+  md1->SetComment("Ideal calibration values");
   
   return md1;
+
 }
 
-void StoreObject(const char* cdbPath, TObject* object, AliCDBMetaData* metaData)
+//_____________________________________________________________________________
+void StoreObject(const char *cdbPath, TObject *object, AliCDBMetaData *metaData)
 {
-  AliCDBId id1(cdbPath, gkDummyRun, gkDummyRun); 
-  gStorLoc->Put(object, id1, metaData); 
+
+  AliCDBId id1(cdbPath,gkDummyRunBeg,gkDummyRunEnd); 
+  gStorLoc->Put(object,id1,metaData); 
+
 }
     
 
+//_____________________________________________________________________________
 void AliTRDCreateDummyCDB()
 {
-  cout << endl << "TRD :: Creating dummy CDB with event number " << gkDummyRun << endl;
+
+  cout << endl 
+       << "TRD :: Creating dummy CDB for the runs " 
+       << gkDummyRunBeg
+       << " -- " 
+       << gkDummyRunEnd
+       << endl;
   
   AliCDBManager *man = AliCDBManager::Instance();
-  gStorLoc = man->GetStorage("local://$ALICE_ROOT");
-  if (!gStorLoc)
+  gStorLoc = man->GetStorage("local://$ALICE_ROOT/OCDB");
+  if (!gStorLoc) {
     return;
+  }
 
-  TObject* obj = 0;
-  AliCDBMetaData* metaData = 0;
-  
-  metaData = CreateMetaObject("AliTRDCalPad");
-  
-  obj = CreatePadObject("LocalVdrift","TRD drift velocities (local variations)", 1);
-  StoreObject("TRD/Calib/LocalVdrift", obj, metaData);
+  TObject        *obj      = 0;
+  AliCDBMetaData *metaData = 0;
+
+  //
+  // Reco Param Object
+  //
+
+  metaData= new AliCDBMetaData(); 
+  metaData->SetObjectClassName("TClonesArray");
+  metaData->SetResponsible("Alexandru Bercuci");
+  metaData->SetBeamPeriod(1);
+  metaData->SetAliRootVersion("05-19-04"); //root version
+  metaData->SetComment("Ideal reconstruction parameters for low, high and cosmic runs");
+  StoreObject("TRD/Calib/RecoParam",CreateRecoParamObject(),metaData);
+  return;
+
+  //
+  // Pad objects
+  //
+
+  metaData = CreateMetaObject("AliTRDCalPad");  
+
+  obj = CreatePadObject("LocalVdrift"       ,"TRD drift velocities (local variations)",1);
+  StoreObject("TRD/Calib/LocalVdrift"       ,obj,metaData);
   
-  obj = CreatePadObject("LocalT0","T0 (local variations)", 1);
-  StoreObject("TRD/Calib/LocalT0", obj, metaData);
+  obj = CreatePadObject("LocalT0"           ,"T0 (local variations)",0);
+  StoreObject("TRD/Calib/LocalT0"           ,obj,metaData);
 
-  obj = CreatePadObject("GainFactor","GainFactor (local variations)", 1);
-  StoreObject("TRD/Calib/LocalGainFactor", obj, metaData);
+  obj = CreatePadObject("GainFactor"        ,"GainFactor (local variations)",1);
+  StoreObject("TRD/Calib/LocalGainFactor"   ,obj,metaData);
 
   obj = CreatePRFWidthObject();
-  StoreObject("TRD/Calib/PRFWidth", obj, metaData);
+  StoreObject("TRD/Calib/PRFWidth"          ,obj,metaData);
+
+  //
+  // Detector objects
+  //
 
   metaData = CreateMetaObject("AliTRDCalDet");
   
-  obj = CreateDetObject("ChamberVdrift","TRD drift velocities (detector value)", 1.5);
-  StoreObject("TRD/Calib/ChamberVdrift", obj, metaData);
-  
-  obj = CreateDetObject("ChamberT0","T0 (detector value)", 0);
-  StoreObject("TRD/Calib/ChamberT0", obj, metaData);
+  obj = CreateDetObject("ChamberVdrift"     ,"TRD drift velocities (detector value)", 1.5);
+  StoreObject("TRD/Calib/ChamberVdrift"     ,obj,metaData);
   
-  obj = CreateDetObject("ChamberGainFactor","GainFactor (detector value)", 1);
-  StoreObject("TRD/Calib/ChamberGainFactor", obj, metaData);
+  obj = CreateDetObject("ChamberT0"         ,"T0 (detector value)",0);
+  StoreObject("TRD/Calib/ChamberT0"         ,obj,metaData);
   
-  metaData = CreateMetaObject("AliTRDCalGlobals");
-  obj = CreateGlobalsObject();
-  StoreObject("TRD/Calib/Globals", obj, metaData);
+  obj = CreateDetObject("ChamberGainFactor" ,"GainFactor (detector value)", 1);
+  StoreObject("TRD/Calib/ChamberGainFactor" ,obj,metaData);
   
-  metaData = CreateMetaObject("AliTRDCalSuperModuleStatus");
-  obj = CreateSuperModuleStatusObject();
-  StoreObject("TRD/Calib/SuperModuleStatus", obj, metaData);
+  //
+  // Status objects
+  //
 
   metaData = CreateMetaObject("AliTRDCalChamberStatus");
   obj = CreateChamberStatusObject();
-  StoreObject("TRD/Calib/ChamberStatus", obj, metaData);
-
-  metaData = CreateMetaObject("AliTRDCalMCMStatus");
-  obj = CreateMCMStatusObject();
-  StoreObject("TRD/Calib/MCMStatus", obj, metaData);
+  StoreObject("TRD/Calib/ChamberStatus"     ,obj,metaData);
 
   metaData = CreateMetaObject("AliTRDCalPadStatus");
   obj = CreatePadStatusObject();
-  StoreObject("TRD/Calib/PadStatus", obj, metaData);
+  StoreObject("TRD/Calib/PadStatus"         ,obj,metaData);
 
-  metaData = CreateMetaObject("AliTRDCalPIDLQ");
-  obj = CreatePIDLQObject();
-  StoreObject("TRD/Calib/PIDLQ", obj, metaData);
+  //
+  // Monitoring object
+  //
 
   metaData = CreateMetaObject("AliTRDCalMonitoring");
   obj = CreateMonitoringObject();
-  StoreObject("TRD/Calib/MonitoringData", obj, metaData);
+  StoreObject("TRD/Calib/MonitoringData"    ,obj,metaData);
+
 }