From: kleinb Date: Tue, 21 Dec 2010 15:42:06 +0000 (+0000) Subject: fixes in copy constructor and assignment operator, added protection X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=d5f746db55e0a3314bfb2f24732b2f0110575bd0 fixes in copy constructor and assignment operator, added protection --- diff --git a/STEER/AliAODJet.cxx b/STEER/AliAODJet.cxx index 55d13a0e3fa..264a7127aef 100644 --- a/STEER/AliAODJet.cxx +++ b/STEER/AliAODJet.cxx @@ -103,8 +103,8 @@ AliAODJet::AliAODJet(const AliAODJet& jet) : fEffectiveArea[1] = jet.fEffectiveArea[1]; fEffectiveAreaError[0] = jet.fEffectiveAreaError[0]; fEffectiveAreaError[1] = jet.fEffectiveAreaError[1]; - fMomentum = new TLorentzVector(*jet.fMomentum); - fVectorAreaCharged = new TLorentzVector(*jet.fVectorAreaCharged); + if(jet.fMomentum)fMomentum = new TLorentzVector(*jet.fMomentum); + if(jet.fVectorAreaCharged)fVectorAreaCharged = new TLorentzVector(*jet.fVectorAreaCharged); fRefTracks = new TRefArray(*jet.fRefTracks); } @@ -122,8 +122,17 @@ AliAODJet& AliAODJet::operator=(const AliAODJet& jet) fEffectiveAreaError[1] = jet.fEffectiveAreaError[1]; fNeutralFraction = jet.fNeutralFraction; fTrigger = jet.fTrigger; - *fMomentum = *jet.fMomentum; - *fVectorAreaCharged = *jet.fVectorAreaCharged; + + + if(jet.fMomentum){ + if(fMomentum)*fMomentum = *jet.fMomentum; + else fMomentum = new TLorentzVector(*jet.fMomentum); + } + + if(jet.fVectorAreaCharged){ + if(fVectorAreaCharged)*fVectorAreaCharged = *jet.fVectorAreaCharged; + else fVectorAreaCharged = new TLorentzVector(*jet.fVectorAreaCharged); + } delete fRefTracks; fRefTracks = new TRefArray(*jet.fRefTracks); }