]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDcalibDB.cxx
Removed useless function from AliMixInputEventHandler
[u/mrichter/AliRoot.git] / TRD / AliTRDcalibDB.cxx
index 220d688c3fb02d8b6b300a1cd2eb80a21c50acc2..1f50533b946f4bcaceefd18bfbbef0dccbaf2de1 100644 (file)
@@ -47,6 +47,7 @@
 #include "Cal/AliTRDCalChamberStatus.h"
 #include "Cal/AliTRDCalPadStatus.h"
 #include "Cal/AliTRDCalSingleChamberStatus.h"
+#include "Cal/AliTRDCalTrkAttach.h"
 
 ClassImp(AliTRDcalibDB)
 
@@ -102,6 +103,7 @@ AliTRDcalibDB::AliTRDcalibDB()
   ,fPRFhi(0)
   ,fPRFwid(0)
   ,fPRFpad(0)
+  ,fPIDResponse(NULL)
 {
   //
   // Default constructor
@@ -131,6 +133,7 @@ AliTRDcalibDB::AliTRDcalibDB(const AliTRDcalibDB &c)
   ,fPRFhi(0)
   ,fPRFwid(0)
   ,fPRFpad(0)
+  ,fPIDResponse(NULL)
 {
   //
   // Copy constructor (not that it make any sense for a singleton...)
@@ -172,6 +175,7 @@ AliTRDcalibDB::~AliTRDcalibDB()
     delete [] fPRFsmp;
     fPRFsmp = 0;
   }
+  if(fPIDResponse) delete fPIDResponse;
 
   Invalidate();
 
@@ -249,20 +253,22 @@ const TObject *AliTRDcalibDB::GetCachedCDBObject(Int_t id)
       return CacheCDBEntry(kIDFEE               ,"TRD/Calib/FEE"); 
       break;
     case kIDDCS :
-      if (GetCDBEntry("TRD/Calib/DCSv2"))
-       return CacheCDBEntry(kIDDCS             ,"TRD/Calib/DCSv2");
-      else
-       return CacheCDBEntry(kIDDCS             ,"TRD/Calib/DCS");
+      return CacheCDBEntry(kIDDCS               ,"TRD/Calib/DCS");
       break;
     case kIDPIDNN : 
       return CacheCDBEntry(kIDPIDNN             ,"TRD/Calib/PIDNN");
     case kIDPIDLQ : 
       return CacheCDBEntry(kIDPIDLQ             ,"TRD/Calib/PIDLQ"); 
       break;
+    case kIDPIDLQ1D:
+      return CacheCDBEntry(kIDPIDLQ1D           ,"TRD/Calib/PIDLQ1D");
+      break;
     case kIDRecoParam : 
-      return CacheCDBEntry(kIDRecoParam             ,"TRD/Calib/RecoParam"); 
+      return CacheCDBEntry(kIDRecoParam         ,"TRD/Calib/RecoParam"); 
+      break;
+    case kIDAttach : 
+      return CacheCDBEntry(kIDAttach            ,"TRD/Calib/TrkAttach"); 
       break;
-
   }
 
   return 0;
@@ -292,16 +298,15 @@ const TObject *AliTRDcalibDB::CacheCDBEntry(Int_t id, const char *cdbPath)
   //
   // Caches the entry <id> with cdb path <cdbPath>
   //
-  
+
   if (!fCDBCache[id]) {
     fCDBEntries[id] = GetCDBEntry(cdbPath);
     if (fCDBEntries[id]) {
       fCDBCache[id] = fCDBEntries[id]->GetObject();
     }
-  }
-
+  } 
+  
   return fCDBCache[id];
-
 }
 
 //_____________________________________________________________________________
@@ -752,44 +757,26 @@ Int_t AliTRDcalibDB::GetNumberOfTimeBinsDCS()
   Int_t nUndef = -1; // default value - has not been set!
   Int_t nTbSor = nUndef;
   Int_t nTbEor = nUndef;
+  Int_t calver = 0; // Check CalDCS version
 
   const TObjArray *dcsArr = dynamic_cast<const TObjArray *>(GetCachedCDBObject(kIDDCS));
-
   if (!dcsArr) {
     AliError("No DCS object found!");
     return nUndef;
   }
 
-  if (GetCDBEntry("TRD/Calib/DCSv2")) {
-    // if there is a DCSv2 object
-    const AliTRDCalDCSv2 *calDCSsorv2 = dynamic_cast<const AliTRDCalDCSv2 *>(dcsArr->At(0));
-    const AliTRDCalDCSv2 *calDCSeorv2 = dynamic_cast<const AliTRDCalDCSv2 *>(dcsArr->At(1));
-
-    if (!calDCSsorv2) {
-      // the SOR file is mandatory
-      AliError("NO SOR AliTRDCalDCSv2 object found in CDB file!");
-      return nUndef;
-    }
-
-    if (!calDCSeorv2) {
-      // this can happen if the run is shorter than a couple of seconds.
-      AliWarning("NO EOR AliTRDCalDCSv2 object found in CDB file.");
-    }
+  if (!strcmp(dcsArr->At(0)->ClassName(),"AliTRDCalDCS"))   calver = 1;
+  if (!strcmp(dcsArr->At(0)->ClassName(),"AliTRDCalDCSv2")) calver = 2;
 
-    // get the numbers
-    nTbSor = calDCSsorv2->GetGlobalNumberOfTimeBins();
-    if (calDCSeorv2) nTbEor = calDCSeorv2->GetGlobalNumberOfTimeBins();
-  } else {
-    // if there is a DCS object
+  if (calver == 1) {
+    // DCS object
     const AliTRDCalDCS *calDCSsor = dynamic_cast<const AliTRDCalDCS *>(dcsArr->At(0));
     const AliTRDCalDCS *calDCSeor = dynamic_cast<const AliTRDCalDCS *>(dcsArr->At(1));
-
     if (!calDCSsor) {
       // the SOR file is mandatory
       AliError("NO SOR AliTRDCalDCS object found in CDB file!");
       return nUndef;
     }
-
     if (!calDCSeor) {
       // this can happen if the run is shorter than a couple of seconds.
       AliWarning("NO EOR AliTRDCalDCS object found in CDB file.");
@@ -798,7 +785,26 @@ Int_t AliTRDcalibDB::GetNumberOfTimeBinsDCS()
     // get the numbers
     nTbSor = calDCSsor->GetGlobalNumberOfTimeBins();
     if (calDCSeor) nTbEor = calDCSeor->GetGlobalNumberOfTimeBins();
-  }
+
+  } else if (calver == 2) {
+    // DCSv2 object
+    const AliTRDCalDCSv2 *calDCSsorv2 = dynamic_cast<const AliTRDCalDCSv2 *>(dcsArr->At(0));
+    const AliTRDCalDCSv2 *calDCSeorv2 = dynamic_cast<const AliTRDCalDCSv2 *>(dcsArr->At(1));
+    if (!calDCSsorv2) {
+      // the SOR file is mandatory
+      AliError("NO SOR AliTRDCalDCSv2 object found in CDB file!");
+      return nUndef;
+    }
+    if (!calDCSeorv2) {
+      // this can happen if the run is shorter than a couple of seconds.
+      AliWarning("NO EOR AliTRDCalDCSv2 object found in CDB file.");
+    }
+
+    // get the numbers
+    nTbSor = calDCSsorv2->GetGlobalNumberOfTimeBins();
+    if (calDCSeorv2) nTbEor = calDCSeorv2->GetGlobalNumberOfTimeBins();
+
+  } else AliError("NO DCS/DCSv2 OCDB entry found!");
 
   // if they're the same return the value
   // -2 means mixed, -1: no data, >= 0: good number of time bins
@@ -809,7 +815,7 @@ Int_t AliTRDcalibDB::GetNumberOfTimeBinsDCS()
     AliWarning("Inconsistent number of time bins found!");
     return nMixed;
   }
-  
+
   // one is undefined, the other ok -> return that one
   if (nTbSor == nUndef) return nTbEor;
   if (nTbEor == nUndef) return nTbSor;
@@ -830,23 +836,30 @@ void AliTRDcalibDB::GetFilterType(TString &filterType)
     filterType = "";
     return;
   }
-  if (GetCDBEntry("TRD/Calib/DCSv2")) {
-    const AliTRDCalDCSv2 *calDCSv2 = dynamic_cast<const AliTRDCalDCSv2 *>(dcsArr->At(0)); // Take SOR
 
-    if(!calDCSv2){
-      filterType = "";
-      return;
-    } 
-    filterType = calDCSv2->GetGlobalFilterType();
-  } else {
-    const AliTRDCalDCS *calDCS = dynamic_cast<const AliTRDCalDCS *>(dcsArr->At(0)); // Take SOR
+  Int_t esor   = 0; // Take SOR
+  Int_t calver = 0; // Check CalDCS version
+  if (!strcmp(dcsArr->At(0)->ClassName(),"AliTRDCalDCS"))   calver = 1;
+  if (!strcmp(dcsArr->At(0)->ClassName(),"AliTRDCalDCSv2")) calver = 2;
 
+  if (calver == 1) {
+    // DCS object
+    const AliTRDCalDCS *calDCS = dynamic_cast<const AliTRDCalDCS *>(dcsArr->At(esor));
     if(!calDCS){
       filterType = "";
       return;
     } 
     filterType = calDCS->GetGlobalFilterType();
-  }
+  } else if (calver == 2) {
+    // DCSv2 object
+    const AliTRDCalDCSv2 *calDCSv2 = dynamic_cast<const AliTRDCalDCSv2 *>(dcsArr->At(esor));
+    if(!calDCSv2){
+      filterType = "";
+      return;
+    } 
+    filterType = calDCSv2->GetGlobalFilterType();
+  } else AliError("NO DCS/DCSv2 OCDB entry found!"); 
+
 }
 
 //_____________________________________________________________________________
@@ -854,29 +867,36 @@ void AliTRDcalibDB::GetGlobalConfiguration(TString &config){
   //
   // Get Configuration from the DCS
   //
+
   const TObjArray *dcsArr = dynamic_cast<const TObjArray *>(GetCachedCDBObject(kIDDCS));
   if(!dcsArr){
     config = "";
     return;
   }
 
-  if (GetCDBEntry("TRD/Calib/DCSv2")) {
-    const AliTRDCalDCSv2 *calDCSv2 = dynamic_cast<const AliTRDCalDCSv2 *>(dcsArr->At(0)); // Take SOR
+  Int_t esor   = 0; // Take SOR
+  Int_t calver = 0; // Check CalDCS version
+  if (!strcmp(dcsArr->At(0)->ClassName(),"AliTRDCalDCS"))   calver = 1;
+  if (!strcmp(dcsArr->At(0)->ClassName(),"AliTRDCalDCSv2")) calver = 2;
 
-    if(!calDCSv2){
+  if (calver == 1) {
+    // DCS object
+    const AliTRDCalDCS *calDCS = dynamic_cast<const AliTRDCalDCS *>(dcsArr->At(esor));
+    if(!calDCS){
       config = "";
       return;
     } 
-    config = calDCSv2->GetGlobalConfigName();
-  } else {
-    const AliTRDCalDCS *calDCS = dynamic_cast<const AliTRDCalDCS *>(dcsArr->At(0)); // Take SOR
-
-    if(!calDCS){
+    config = calDCS->GetGlobalConfigName();
+  } else if (calver == 2) {
+    // DCSv2 object
+    const AliTRDCalDCSv2 *calDCSv2 = dynamic_cast<const AliTRDCalDCSv2 *>(dcsArr->At(esor));
+    if(!calDCSv2){
       config = "";
       return;
     } 
-    config = calDCS->GetGlobalConfigName();
-  }
+    config = calDCSv2->GetGlobalConfigName();
+  } else AliError("NO DCS/DCSv2 OCDB entry found!");
+
 }
 
 //_____________________________________________________________________________
@@ -1137,6 +1157,27 @@ const AliTRDCalPID *AliTRDcalibDB::GetPIDObject(AliTRDpidUtil::ETRDPIDMethod met
 
 }
 
+//_____________________________________________________________________________
+AliTRDPIDResponse *AliTRDcalibDB::GetPIDResponse(AliTRDPIDResponse::ETRDPIDMethod method){
+  if(!fPIDResponse){
+    fPIDResponse = new AliTRDPIDResponse;
+    // Load Reference Histos from OCDB
+    fPIDResponse->SetPIDmethod(method);
+    fPIDResponse->Load(dynamic_cast<const TObjArray *>(GetCachedCDBObject(kIDPIDLQ1D)));
+  }
+  return fPIDResponse;
+}
+
+//_____________________________________________________________________________
+const AliTRDCalTrkAttach* AliTRDcalibDB::GetAttachObject()
+{
+  //
+  // Returns the object storing likelihood distributions for cluster to track attachment
+  //
+  return dynamic_cast<const AliTRDCalTrkAttach*>(GetCachedCDBObject(kIDAttach));
+}
+
+
 //_____________________________________________________________________________
 const AliTRDCalMonitoring *AliTRDcalibDB::GetMonitoringObject()
 {