Change TArrayS of labels and trackmatches to TArrayI (Jenn). Load reconstruction...
authorgustavo <gustavo@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 22 Oct 2007 13:48:34 +0000 (13:48 +0000)
committergustavo <gustavo@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 22 Oct 2007 13:48:34 +0000 (13:48 +0000)
EMCAL/AliEMCALReconstructor.cxx
EMCAL/AliEMCALReconstructor.h

index c9fe14bc2f8b3ba5d68191c007a07f5e6b818b78..fe29f518eaa00c9029606af271e2beaa23bcdeea 100644 (file)
@@ -16,8 +16,8 @@
 /* $Id$ */
 
 //_________________________________________________________________________
-//*--
-//*-- Yves Schutz (SUBATECH) 
+//--
+//-- Yves Schutz (SUBATECH) 
 // Reconstruction class. Redesigned from the old AliReconstructionner class and 
 // derived from STEER/AliReconstructor. 
 // 
@@ -38,6 +38,9 @@
 #include "AliEMCALPID.h"
 #include "AliEMCALTrigger.h"
 #include "AliRawReader.h"
+#include "AliCDBEntry.h"
+#include "AliCDBManager.h"
+#include "AliEMCALRecParam.h"
 // to be removed - it is here just because of geom
 #include "AliRun.h"
 #include "AliRunLoader.h"
@@ -51,10 +54,6 @@ AliEMCALReconstructor::AliEMCALReconstructor()
   : fDebug(kFALSE) 
 {
   // ctor
-  if (!fgkRecParam) {
-    AliWarning("The Reconstruction parameters for EMCAL nonitialized - Used default one");
-    fgkRecParam = new AliEMCALRecParam;
-  }
 } 
 
 //____________________________________________________________________________
@@ -71,6 +70,24 @@ AliEMCALReconstructor::~AliEMCALReconstructor()
   // dtor
 } 
 
+//____________________________________________________________________________
+void AliEMCALReconstructor::InitRecParam() const
+{
+  // Check if the instance of AliEMCALRecParam exists, 
+  // if not, get it from OCDB if available, otherwise create a default one
+
+ if (!fgkRecParam  && (AliCDBManager::Instance()->IsDefaultStorageSet())) {
+    AliCDBEntry *entry = (AliCDBEntry*) 
+      AliCDBManager::Instance()->Get("EMCAL/Config/RecParam");
+    if (entry) fgkRecParam =  (AliEMCALRecParam*) entry->GetObject();
+  }
+  
+  if(!fgkRecParam){
+    AliWarning("The Reconstruction parameters for EMCAL nonitialized - Used default one");
+    fgkRecParam = new AliEMCALRecParam;
+  }
+}
+
 //____________________________________________________________________________
 void AliEMCALReconstructor::Reconstruct(TTree* digitsTree, TTree* clustersTree) const
 {
@@ -79,7 +96,8 @@ void AliEMCALReconstructor::Reconstruct(TTree* digitsTree, TTree* clustersTree)
   // segment maker needs access to the AliESD object to retrieve the tracks reconstructed by 
   // the global tracking.
   // Works on the current event.
+
+  InitRecParam();
   AliEMCALClusterizerv1 clu;
   clu.SetInput(digitsTree);
   clu.SetOutput(clustersTree);
@@ -259,7 +277,7 @@ void AliEMCALReconstructor::FillESD(TTree* /*digitsTree*/, TTree* clustersTree,
 
       //Primaries
       Int_t  parentMult  = 0;
-      Int_t *parentList =  clust->GetParents(parentMult); 
+      Int_t *parentList =  clust->GetParents(parentMult);
     
       // fills the ESDCaloCluster
       AliESDCaloCluster * ec = new AliESDCaloCluster() ; 
@@ -277,12 +295,12 @@ void AliEMCALReconstructor::FillESD(TTree* /*digitsTree*/, TTree* clustersTree,
         ec->SetM02(elipAxis[0]*elipAxis[0]) ;
         ec->SetM20(elipAxis[1]*elipAxis[1]) ;
         ec->SetM11(-1) ;        //not yet implemented
-       
-       TArrayI arrayTrackMatched(1);// Only one track, temporal solution.
-       arrayTrackMatched[0]= matchedTrack[iClust];
-       ec->AddTracksMatched(arrayTrackMatched);
-       
-       TArrayI arrayParents(parentMult,parentList);
+
+       TArrayI arrayTrackMatched(1);// Only one track, temporal solution. 
+       arrayTrackMatched[0]= matchedTrack[iClust]; 
+       ec->AddTracksMatched(arrayTrackMatched); 
+         
+       TArrayI arrayParents(parentMult,parentList); 
        ec->AddLabels(arrayParents);
       } 
       
index 77bf6fad83b0283132ee33b73625b279ac9ffef2..5a820644c438edca0aeb0168b266a2b883413b32 100644 (file)
@@ -58,6 +58,7 @@ public:
   
   void SetRecParam(AliEMCALRecParam * recParam){ fgkRecParam = recParam;}
 
+  void InitRecParam() const;
   static const AliEMCALRecParam* GetRecParam(){ return fgkRecParam;}
 
 private: