Added cleanup in Loader dtor and Getter Reset()
authorschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 19 Feb 2004 08:28:33 +0000 (08:28 +0000)
committerschutz <schutz@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 19 Feb 2004 08:28:33 +0000 (08:28 +0000)
EMCAL/AliEMCALGetter.cxx
EMCAL/AliEMCALGetter.h
EMCAL/AliEMCALLoader.cxx
PHOS/AliPHOSGetter.cxx
PHOS/AliPHOSGetter.h
PHOS/AliPHOSLoader.cxx

index 403f92f..b785bcd 100644 (file)
@@ -105,6 +105,21 @@ AliEMCALGetter::~AliEMCALGetter()
   // fBTE = 0 ; 
   fPrimaries->Delete() ; 
   delete fPrimaries ; 
+  fgObjGetter = 0; 
+}
+
+//____________________________________________________________________________ 
+void AliEMCALGetter::Reset()
+{
+  // resets things in case the getter is called consecutively with different files
+  // the EMCAL Loader is already deleted by the Run Loader
+
+  if (fPrimaries) { 
+    fPrimaries->Delete() ; 
+    delete fPrimaries ;
+  } 
+  fgEmcalLoader = 0; 
+  fgObjGetter = 0; 
 }
 
 //____________________________________________________________________________ 
index adb5991..8144826 100644 (file)
@@ -184,7 +184,7 @@ class AliEMCALGetter : public TObject {
 
   TString Version() const  { return EmcalLoader()->GetTitle() ; } 
   AliEMCALLoader * EmcalLoader() const { return  fgEmcalLoader ; }
-  void Reset() {fgEmcalLoader = 0; fgObjGetter = 0; }
+  void Reset() ;  
 
 private:
   
index d24d7fa..22b9383 100644 (file)
@@ -90,7 +90,8 @@ AliEMCALLoader::~AliEMCALLoader()
   Clean(fgkECARecPointsName);
   Clean(fgkTracksName);
   Clean(fgkRecParticlesName);
-  // set to 0x0 the objgetter in AliGetter ... weird isn it !
+  CleanFolders() ; 
+ // set to 0x0 the objgetter in AliGetter ... weird isn it !
   AliEMCALGetter * gime = AliEMCALGetter::Instance() ; 
   if (gime) 
     gime->Reset() ;
@@ -439,6 +440,7 @@ Int_t AliEMCALLoader::ReadHits()
              index++ ; 
            }
        }
+      tempo->Delete() ; 
       delete tempo;
     }
   else 
@@ -784,7 +786,8 @@ void AliEMCALLoader::CleanHits()
   AliLoader::CleanHits();
   //Clear an array 
   TClonesArray* hits = Hits();
-  if (hits) hits->Clear();
+  if (hits) 
+    hits->Clear();
 }
 
 //____________________________________________________________________________ 
index 5d7d533..af07021 100644 (file)
@@ -108,6 +108,21 @@ AliPHOSGetter::~AliPHOSGetter()
   fBTE = 0 ; 
   fPrimaries->Delete() ; 
   delete fPrimaries ; 
+  fgObjGetter = 0; 
+}
+
+//____________________________________________________________________________ 
+void AliPHOSGetter::Reset()
+{
+  // resets things in case the getter is called consecutively with different files
+  // the PHOS Loader is already deleted by the Run Loader
+
+  if (fPrimaries) { 
+    fPrimaries->Delete() ; 
+    delete fPrimaries ;
+  } 
+  fgPhosLoader = 0; 
+  fgObjGetter = 0; 
 }
 
 //____________________________________________________________________________ 
index ff54413..05dbe25 100644 (file)
@@ -182,7 +182,7 @@ public:
   
   TString Version() const  { return PhosLoader()->GetTitle() ; } 
   AliPHOSLoader * PhosLoader() const { return  fgPhosLoader ; }
-  void Reset() {fgPhosLoader = 0; fgObjGetter = 0; }
+  void Reset() ;
   
   AliESD * ESD(Int_t event = 0) ;
   Bool_t OpenESDFile(TString name = "AliESDs.root") ;
index 82e35b6..f2eae71 100644 (file)
@@ -92,6 +92,7 @@ AliPHOSLoader::~AliPHOSLoader()
   Clean(fgkCpvRecPointsName);
   Clean(fgkTracksName);
   Clean(fgkRecParticlesName);
+  CleanFolders() ;
   // set to 0x0 the objgetter in AliGetter ... weird isn it !
   AliPHOSGetter * gime = AliPHOSGetter::Instance((AliLoader::GetRunLoader()->GetFileName()).Data()) ; 
   if (gime)