From 341952b8438301053cef475ba6066ea16b24a90b Mon Sep 17 00:00:00 2001 From: kleinb Date: Thu, 14 Aug 2008 18:50:01 +0000 Subject: [PATCH] Some init values and deletes --- STEER/AliAODCaloCells.cxx | 4 ++++ STEER/AliAODCaloCluster.cxx | 28 ++++++++++++++++------------ STEER/AliAODPid.cxx | 24 +++++++++++++++++------- STEER/AliAODRecoDecay.cxx | 6 ++++++ STEER/AliAODTracklets.cxx | 5 ++++- 5 files changed, 47 insertions(+), 20 deletions(-) diff --git a/STEER/AliAODCaloCells.cxx b/STEER/AliAODCaloCells.cxx index 67764e16bb5..f8e2f25110a 100644 --- a/STEER/AliAODCaloCells.cxx +++ b/STEER/AliAODCaloCells.cxx @@ -88,6 +88,10 @@ void AliAODCaloCells::CreateContainer(Short_t nCells) fCellNumber = new Short_t[fNCells]; fAmplitude = new Double32_t[fNCells]; + // set to zero + for(int i = 0;i 0) { if(clus.fCellsAbsId){ @@ -221,8 +225,8 @@ void AliAODCaloCluster::SetCellsAbsId(UShort_t *array) { // Set the array of cell absId numbers if (fNCells) { - fCellsAbsId = new UShort_t[fNCells]; - for (Int_t i = 0; i < fNCells; i++) fCellsAbsId[i] = array[i]; + if(!fCellsAbsId)fCellsAbsId = new UShort_t[fNCells]; + for (Int_t i = 0; i < fNCells; i++) fCellsAbsId[i] = array[i]; } } @@ -230,7 +234,7 @@ void AliAODCaloCluster::SetCellsAmplitudeFraction(Double32_t *array) { // Set the array of cell amplitude fraction if (fNCells) { - fCellsAmpFraction = new Double32_t[fNCells]; - for (Int_t i = 0; i < fNCells; i++) fCellsAmpFraction[i] = array[i]; + if(!fCellsAmpFraction)fCellsAmpFraction = new Double32_t[fNCells]; + for (Int_t i = 0; i < fNCells; i++) fCellsAmpFraction[i] = array[i]; } } diff --git a/STEER/AliAODPid.cxx b/STEER/AliAODPid.cxx index f3e817c0c94..7179247ed89 100644 --- a/STEER/AliAODPid.cxx +++ b/STEER/AliAODPid.cxx @@ -44,6 +44,8 @@ AliAODPid::AliAODPid(): //______________________________________________________________________________ AliAODPid::~AliAODPid() { + delete [] fTRDslices; + fTRDslices = 0; // destructor } @@ -70,13 +72,21 @@ AliAODPid& AliAODPid::operator=(const AliAODPid& pid) // Assignment operator if(this!=&pid) { // copy stuff - fITSsignal=pid.fITSsignal; - fTPCsignal=pid.fTPCsignal; - fTRDnSlices=pid.fTRDnSlices; - for(Int_t i=0; i< fTRDnSlices; i++) fTRDslices[i]=pid.fTRDslices[i]; - fTOFesdsignal=pid.fTOFesdsignal; - fHMPIDsignal=pid.fHMPIDsignal; - for(Int_t i=0; i0) fTRDslices = new Double32_t[fTRDnSlices]; + } + fTRDnSlices=pid.fTRDnSlices; + + for(Int_t i=0; i< fTRDnSlices; i++) fTRDslices[i]=pid.fTRDslices[i]; + fTOFesdsignal=pid.fTOFesdsignal; + fHMPIDsignal=pid.fHMPIDsignal; + for(Int_t i=0; i0) { + if(fd0)delete [] fd0; fd0 = new Double_t[GetNProngs()]; memcpy(fd0,source.fd0,GetNProngs()*sizeof(Double_t)); if(source.fPx) { + if(fPx) delete [] fPx; fPx = new Double_t[GetNProngs()]; + if(fPy) delete [] fPy; fPy = new Double_t[GetNProngs()]; + if(fPz) delete [] fPz; fPz = new Double_t[GetNProngs()]; memcpy(fPx,source.fPx,GetNProngs()*sizeof(Double_t)); memcpy(fPy,source.fPy,GetNProngs()*sizeof(Double_t)); memcpy(fPz,source.fPz,GetNProngs()*sizeof(Double_t)); } if(source.fPID) { + if(fPID) delete [] fPID; fPID = new Double_t[5*GetNProngs()]; memcpy(fPID,source.fPID,GetNProngs()*sizeof(Double_t)); } if(source.fDCA) { + if(fDCA) delete [] fDCA; fDCA = new Double_t[GetNProngs()*(GetNProngs()-1)/2]; memcpy(fDCA,source.fDCA,(GetNProngs()*(GetNProngs()-1)/2)*sizeof(Double32_t)); } diff --git a/STEER/AliAODTracklets.cxx b/STEER/AliAODTracklets.cxx index e9a89e4d3d7..c53b6fedf17 100644 --- a/STEER/AliAODTracklets.cxx +++ b/STEER/AliAODTracklets.cxx @@ -64,7 +64,10 @@ AliAODTracklets& AliAODTracklets::operator=(const AliAODTracklets& tracklet) // Assignment operator if(&tracklet == this) return *this; TNamed::operator=(tracklet); - fNTracks = tracklet.fNTracks; + if(fNTracks!=tracklet.fNTracks){ + fNTracks = tracklet.fNTracks; + CreateContainer(fNTracks); + } for (Int_t i = 0; i < fNTracks; i++) { fTheta[i] = tracklet.fTheta[i]; fPhi[i] = tracklet.fPhi[i]; -- 2.43.0