]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliAODHeader.cxx
Fix for memory leaks in digits TClonesArrays (Matevz)
[u/mrichter/AliRoot.git] / STEER / AliAODHeader.cxx
index e69585c3aac4b9531128828200b8d68ceea6a0eb..626d98fc601240b3f6935c9c624f7ee5b345110c 100644 (file)
@@ -21,6 +21,8 @@
 //-------------------------------------------------------------------------
 
 #include "AliAODHeader.h"
+#include <TGeoMatrix.h>
+#include <TObjString.h>
 
 ClassImp(AliAODHeader)
 
@@ -37,6 +39,7 @@ AliAODHeader::AliAODHeader() :
   fNQTheta(0),
   fQTheta(0x0),
   fTriggerMask(0),
+  fFiredTriggers(),
   fRunNumber(-999),  
   fRefMult(-999),
   fRefMultPos(-999),
@@ -54,6 +57,8 @@ AliAODHeader::AliAODHeader() :
   for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
   fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
   fDiamondCovXY[1]=0.;
+  for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
+  for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
 }
 
 //______________________________________________________________________________
@@ -73,6 +78,7 @@ AliAODHeader::AliAODHeader(Int_t nRun,
   fNQTheta(0),
   fQTheta(0x0),
   fTriggerMask(0),
+  fFiredTriggers(),
   fRunNumber(nRun),
   fRefMult(-999),
   fRefMultPos(-999),
@@ -91,6 +97,8 @@ AliAODHeader::AliAODHeader(Int_t nRun,
   for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
   fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
   fDiamondCovXY[1]=0.;
+  for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
+  for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
 }
 
 //______________________________________________________________________________
@@ -124,6 +132,7 @@ AliAODHeader::AliAODHeader(Int_t nRun,
   fNQTheta(0),
   fQTheta(0x0),
   fTriggerMask(trigMask),
+  fFiredTriggers(),
   fRunNumber(nRun),  
   fRefMult(refMult),
   fRefMultPos(refMultPos),
@@ -142,6 +151,8 @@ AliAODHeader::AliAODHeader(Int_t nRun,
   for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
   fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
   fDiamondCovXY[1]=0.;
+  for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
+  for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
 }
 
 //______________________________________________________________________________
@@ -165,6 +176,7 @@ AliAODHeader::AliAODHeader(const AliAODHeader& hdr) :
   fNQTheta(0),
   fQTheta(0x0),
   fTriggerMask(hdr.fTriggerMask),
+  fFiredTriggers(hdr.fFiredTriggers),
   fRunNumber(hdr.fRunNumber),  
   fRefMult(hdr.fRefMult), 
   fRefMultPos(hdr.fRefMultPos), 
@@ -183,6 +195,22 @@ AliAODHeader::AliAODHeader(const AliAODHeader& hdr) :
   SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
   for(Int_t i=0; i<2; i++) fDiamondXY[i]=hdr.fDiamondXY[i];
   for(Int_t i=0; i<3; i++) fDiamondCovXY[i]=hdr.fDiamondCovXY[i];
+
+
+  for(Int_t m=0; m<kNPHOSMatrix; m++){
+      if(hdr.fPHOSMatrix[m])
+         fPHOSMatrix[m]=new TGeoHMatrix(*(hdr.fPHOSMatrix[m])) ;
+      else
+         fPHOSMatrix[m]=0;
+  }
+  
+  for(Int_t sm=0; sm<kNEMCALMatrix; sm++){
+      if(hdr.fEMCALMatrix[sm])
+         fEMCALMatrix[sm]=new TGeoHMatrix(*(hdr.fEMCALMatrix[sm])) ;
+      else
+         fEMCALMatrix[sm]=0;
+  }
+
 }
 
 //______________________________________________________________________________
@@ -201,6 +229,7 @@ AliAODHeader& AliAODHeader::operator=(const AliAODHeader& hdr)
     fZDCN2Energy      = hdr.fZDCN2Energy;
     fZDCP2Energy      = hdr.fZDCP2Energy;
     fTriggerMask      = hdr.fTriggerMask;
+    fFiredTriggers    = hdr.fFiredTriggers;
     fRunNumber        = hdr.fRunNumber;
     fRefMult          = hdr.fRefMult;
     fRefMultPos       = hdr.fRefMultPos;
@@ -217,6 +246,21 @@ AliAODHeader& AliAODHeader::operator=(const AliAODHeader& hdr)
     SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
     for(Int_t i=0; i<2; i++) fDiamondXY[i]=hdr.fDiamondXY[i];
     for(Int_t i=0; i<3; i++) fDiamondCovXY[i]=hdr.fDiamondCovXY[i];
+
+    for(Int_t m=0; m<kNPHOSMatrix; m++){
+       if(hdr.fPHOSMatrix[m])
+           fPHOSMatrix[m]=new TGeoHMatrix(*(hdr.fPHOSMatrix[m])) ;
+       else
+           fPHOSMatrix[m]=0;
+    }
+    
+    for(Int_t sm=0; sm<kNEMCALMatrix; sm++){
+       if(hdr.fEMCALMatrix[sm])
+           fEMCALMatrix[sm]=new TGeoHMatrix(*(hdr.fEMCALMatrix[sm])) ;
+       else
+           fEMCALMatrix[sm]=0;
+  }
+
   }