]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliESDCaloTrigger.h
Fix for memory leaks in digits TClonesArrays (Matevz)
[u/mrichter/AliRoot.git] / STEER / AliESDCaloTrigger.h
index 3e05f21b1a4532f5db97b259509c4cd340c1d740..d5fc630c34da4b5d4cf67ecf6e90d6d4458896c0 100644 (file)
@@ -28,15 +28,22 @@ public:
   AliESDCaloTrigger(const  AliESDCaloTrigger& ctrig);
   AliESDCaloTrigger& operator=(const  AliESDCaloTrigger& ctrig);
   virtual ~AliESDCaloTrigger();
+  virtual void Copy(TObject &obj) const;
 
-  // does this create mem leak? CKB use new with placement?
-  void AddTriggerPosition(const TArrayF & array)  { fTriggerPosition     = new TArrayF(array); }
-  void AddTriggerAmplitudes(const TArrayF & array) { fTriggerAmplitudes  = new TArrayF(array); }
+  void AddTriggerPosition(const TArrayF & array)  { 
+    if(fTriggerPosition) *fTriggerPosition = array;
+    else fTriggerPosition =  new TArrayF(array);
+  }
+
+  void AddTriggerAmplitudes(const TArrayF & array) { 
+    if(fTriggerAmplitudes) *fTriggerAmplitudes = array;
+    else fTriggerAmplitudes  = new TArrayF(array); 
+  }
   
   void Reset(); 
 
   TArrayF* GetTriggerPosition()    {return fTriggerPosition;}
-  TArrayF* GetTriggerAmplitudes()  {return fTriggerPosition;}
+  TArrayF* GetTriggerAmplitudes()  {return fTriggerAmplitudes;}
   
 
 private: