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 403f92f45c27af1a7329e977791a26cba3c91333..b785bcd3a85acb50d97e993e923ae461304c25ba 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 adb5991b8d6019cd0e862b8c9c01445327437630..8144826e221ff5f6aa621e5bcb6dbae8cc0b44af 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 d24d7fa6e112020992eb906232013ee5755bea49..22b93830f246ad0b4ea4fbd47797c4881b8ecf93 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 5d7d533bf3cbdd2d7390a4b9ac9802be5a943e48..af070212c41106acfb19c0909df86aad761c93f2 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 ff544130a531da3926ba0021940678bcdd4891a8..05dbe25ff09dffc2c241a224839d5ff88c3b97a6 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 82e35b631bc952d9e67962c9c3a8ae20f52ee733..f2eae71aa128f32cfc526c34c883bf81d5ab47c1 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)