Fix for #68917: Improper usage of TClonesArrays in ITS -- 2
authorhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 2 Aug 2011 13:03:20 +0000 (13:03 +0000)
committerhristov <hristov@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 2 Aug 2011 13:03:20 +0000 (13:03 +0000)
ITS/AliITSRecPointContainer.cxx
ITS/AliITSRecPointContainer.h
ITS/AliITSReconstructor.h
STEER/STEER/AliReconstructor.h

index e218011..333a775 100644 (file)
@@ -245,6 +245,15 @@ AliITSRecPointContainer* AliITSRecPointContainer::Instance(const AliITSRecoParam
 }
 
 //______________________________________________________________________
+void AliITSRecPointContainer::Destroy(){
+  // deletes the singleton
+  if(fgInstance){
+    delete fgInstance;
+    fgInstance = NULL;
+  }
+}
+
+//______________________________________________________________________
 void AliITSRecPointContainer::Reset(){
   // Resets the status of the object
   ClearClus(0,fgkNModules);
index c80bbfe..c83289c 100644 (file)
@@ -28,6 +28,7 @@ class AliITSRecPointContainer : public TObject {
   Int_t GetNumberOfModules() const {return fActualSize; }
 
   static AliITSRecPointContainer* Instance(const AliITSRecoParam *ptr=NULL);
+  static void Destroy();
   void PrepareToRead(){if(fNextEvent<0){fNextEvent=0;} else {++fNextEvent;}}
   TClonesArray* FetchClusters(Int_t mod, TTree* tR);
   TClonesArray* FetchClusters(Int_t mod, TTree* tR,Int_t cureve);
index 7fe0585..38c8e02 100644 (file)
@@ -13,6 +13,7 @@
 #include "AliReconstructor.h"
 #include "AliITSRecoParam.h"
 #include "AliITSDetTypeRec.h"
+#include "AliITSRecPointContainer.h"
 class AliESDpid;
 class AliITSgeom;
 class AliTracker;
@@ -38,6 +39,7 @@ public:
   virtual void         FillESD(AliRawReader* /*rawReader*/, TTree* clustersTree, 
                               AliESDEvent* esd) const
   {FillESD((TTree*)NULL, clustersTree, esd);}
+  virtual void Terminate() const {AliITSRecPointContainer::Destroy();}
   void ResetRecPoints() {fDetTypeRec->ResetRecPoints();}
 
   static const AliITSRecoParam* GetRecoParam() { return dynamic_cast<const AliITSRecoParam*>(AliReconstructor::GetRecoParam(0)); }
index 4c63b21..b3f12f3 100644 (file)
@@ -70,6 +70,7 @@ public:
 
   virtual void FillEventTimeWithTOF(AliESDEvent *, AliESDpid *)
     {return;}
+  virtual void Terminate() const {return; }
 
 private: