fixed bug in Getter stopping Digitisation. The Getter is moving away from keeping...
authormhorner <mhorner@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 1 Jul 2004 21:52:17 +0000 (21:52 +0000)
committermhorner <mhorner@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 1 Jul 2004 21:52:17 +0000 (21:52 +0000)
EMCAL/AliEMCALDigitizer.cxx
EMCAL/AliEMCALGetter.cxx
EMCAL/AliEMCALGetter.h

index d122dc6..df209cf 100644 (file)
@@ -140,11 +140,8 @@ AliEMCALDigitizer::AliEMCALDigitizer(AliRunDigitizer * rd):
 //____________________________________________________________________________ 
   AliEMCALDigitizer::~AliEMCALDigitizer()
 {
-  // dtor
   AliEMCALGetter * gime =AliEMCALGetter::Instance(GetTitle(),fEventFolderName);
   gime->EmcalLoader()->CleanDigitizer();
-  delete [] fInputFileNames ; 
-  delete [] fEventNames ; 
 
 }
 
@@ -419,7 +416,6 @@ Bool_t AliEMCALDigitizer::Init()
     Error("Init", "Could not obtain the Getter object for file %s and event %s !", GetTitle(), fEventFolderName.Data()) ;   
     return kFALSE;
   } 
-  
   TString opt("Digits") ; 
   if(gime->VersionExists(opt) ) { 
     Error( "Init", "Give a version name different from %s", fEventFolderName.Data() ) ;
index 6aced58..402a535 100644 (file)
@@ -62,6 +62,7 @@ ClassImp(AliEMCALGetter)
 AliEMCALGetter * AliEMCALGetter::fgObjGetter = 0 ; 
 AliEMCALLoader * AliEMCALGetter::fgEmcalLoader = 0;
 Int_t AliEMCALGetter::fgDebug = 0;
+TString AliEMCALGetter::fVersion = "";
 
 //  TFile * AliEMCALGetter::fgFile = 0 ; 
 
@@ -89,10 +90,12 @@ AliEMCALGetter::~AliEMCALGetter()
   delete rl;
   fgEmcalLoader = 0 ;
   fgObjGetter = 0; 
+  fVersion = "";
 }
 
 //____________________________________________________________________________ 
 void AliEMCALGetter::OpenFile(const char* headerFile, const char* version, Option_t * openingOption) {
+  fVersion = version;
   AliRunLoader* rl = AliRunLoader::GetRunLoader(version) ; 
   if (!rl) {
     rl = AliRunLoader::Open(headerFile, version, openingOption);
@@ -301,13 +304,14 @@ AliEMCALGetter * AliEMCALGetter::Instance(const char* alirunFileName, const char
 {
   // Creates and returns the pointer of the unique instance
   // Must be called only when the environment has changed
-  
+
   if(!fgObjGetter){ // first time the getter is called 
     fgObjGetter = new AliEMCALGetter(alirunFileName, version, openingOption) ;
   }
   else { // the getter has been called previously
-    AliRunLoader * rl = AliRunLoader::GetRunLoader(fgEmcalLoader->GetTitle());
-    if ( rl->GetFileName() == alirunFileName ) {// the alirunFile has the same name
+    AliRunLoader * rl = AliRunLoader::GetRunLoader(fVersion);
+    if (rl == 0)  fgObjGetter->OpenFile(alirunFileName, version, openingOption) ; 
+    else if ( rl->GetFileName() == alirunFileName ) {// the alirunFile has the same name
       // check if the file is already open
       TFile * galiceFile = dynamic_cast<TFile *>(gROOT->FindObject(rl->GetFileName()) ) ; 
       
@@ -321,12 +325,12 @@ AliEMCALGetter * AliEMCALGetter::Instance(const char* alirunFileName, const char
          if(fgDebug)
            ::Warning( "Instance", "Files with version %s already open", currentVersionName.Data() ) ;  
        else {    
-         fgEmcalLoader->SetTitle(version);
+         fgEmcalLoader->SetTitle(version); fVersion = version;
        }
       }
     }
     else { 
-      AliRunLoader * rl = AliRunLoader::GetRunLoader(fgEmcalLoader->GetTitle());
+      AliRunLoader * rl = AliRunLoader::GetRunLoader(fVersion);
       if ( strstr(version, AliConfig::GetDefaultEventFolderName()) ) // false in case of merging
        delete rl ; 
       fgObjGetter->OpenFile(alirunFileName, version, openingOption) ;      
index 428189d..fdf6a59 100644 (file)
@@ -215,6 +215,7 @@ private:
   static Int_t          fgDebug ;             //! Debug level
 
   TString           fLoadingStatus ;     //! tells which trees are loaded
+  static TString           fVersion;            //! stores the current folder name
 
 //  AliEMCALCalibrationDB * fcdb ;       //!
    
@@ -224,7 +225,7 @@ private:
   enum EDataTypes{kHits,kSDigits,kDigits,kRecPoints,kTracks,kNDataTypes};
 
 
-  ClassDef(AliEMCALGetter,4)  // Algorithm class that provides methods to retrieve objects from a list knowing the index 
+  ClassDef(AliEMCALGetter,5)  // Algorithm class that provides methods to retrieve objects from a list knowing the index 
 
 };