]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
added initialisation of DetectorRecoParam needed by AMORE
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 11 Mar 2009 17:08:38 +0000 (17:08 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 11 Mar 2009 17:08:38 +0000 (17:08 +0000)
STEER/AliQADataMakerRec.cxx
STEER/AliQADataMakerRec.h

index 0a0dafbe5026d0ec9c808ce15174d6d17a79f17f..7dba4387462ae3ced00a3468c7f354c038c80ca6 100644 (file)
 #include <TFile.h>
 #include <TTree.h>
 #include <TNtupleD.h>
+#include <TObjArray.h>
 
 // --- Standard library ---
 
 // --- AliRoot header files ---
+#include "AliCDBPath.h"
+#include "AliCDBEntry.h"
+#include "AliDetectorRecoParam.h"
+#include "AliCDBManager.h"
+
 #include "AliLog.h"
 #include "AliQADataMakerRec.h"
 #include "AliESDEvent.h"
@@ -212,7 +218,7 @@ void AliQADataMakerRec::Exec(AliQA::TASKINDEX_t task, TObject * data)
 TObjArray **  AliQADataMakerRec::Init(AliQA::TASKINDEX_t task, Int_t cycles)
 {
   // general intialisation
-
+  InitRecoParams() ;
        TObjArray ** rv = NULL ; 
   
        if (cycles > 0)
@@ -257,7 +263,8 @@ void AliQADataMakerRec::Init(AliQA::TASKINDEX_t task, TObjArray ** list, Int_t r
 {
   // Intialisation by passing the list of QA data booked elsewhere
   
-       fRun = run ;
+  InitRecoParams() ;
+  fRun = run ;
        if (cycles > 0)
                SetCycle(cycles) ;  
        
@@ -270,6 +277,32 @@ void AliQADataMakerRec::Init(AliQA::TASKINDEX_t task, TObjArray ** list, Int_t r
        }
 }
 
+//____________________________________________________________________________
+void AliQADataMakerRec::InitRecoParams() 
+{
+  if (!fRecoParam) {
+    AliInfo(Form("Loading reconstruction parameter objects for detector %s", GetName()));
+    AliCDBPath path(GetName(),"Calib","RecoParam");
+    AliCDBEntry *entry=AliCDBManager::Instance()->Get(path.GetPath());
+    if(!entry) {
+      fRecoParam = NULL ; 
+      AliWarning(Form("Couldn't find RecoParam entry in OCDB for detector %s",GetName()));
+    }
+    else {
+      TObject * recoParamObj = entry->GetObject() ; 
+      if (dynamic_cast<AliDetectorRecoParam*>(recoParamObj)) {
+        // The detector has only onse set of reco parameters
+        // Registering it in AliRecoParam
+        AliInfo(Form("Single set of reconstruction parameters found for detector %s",GetName()));
+        dynamic_cast<AliDetectorRecoParam*>(recoParamObj)->SetAsDefault();
+        fRecoParam = dynamic_cast<AliDetectorRecoParam*>(recoParamObj) ;
+      } else { 
+        AliError(Form("No valid RecoParam object found in the OCDB for detector %s",GetName()));
+      }
+    }
+  }
+}
+
 //____________________________________________________________________________
 void AliQADataMakerRec::StartOfCycle(Int_t run) 
 {
index e4a5659384a26f497b4aee33b25f1b6b03d25921..de2cffad211e3860dc23e86b39aec91f0e57c8c2 100644 (file)
@@ -18,6 +18,7 @@ class TNtupleD ;
 // --- Standard library ---
 
 // --- AliRoot header files ---
+class AliDetectorRecoParam ;
 #include "AliQADataMaker.h"
 #include "AliQA.h"
 
@@ -57,6 +58,7 @@ protected:
 
        virtual void   InitDigits()                        {AliWarning("Call not valid") ; }
        virtual void   InitESDs()                          {AliInfo("To be implemented by detectors");}
+  virtual void   InitRecoParams() ; 
        virtual void   InitHits()                          {AliWarning("Call not valid") ; }
        //virtual void   InitRecParticles()                {AliInfo("To be implemented by detectors");}
        virtual void   InitRecPoints()                     {AliInfo("To be implemented by detectors");}