X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=STEER%2FSTEERBase%2FAliTRDPIDReference.cxx;h=c50707d5fa20464900581ed83e6b8a475edcc2f6;hp=e3e6379f918f08676c1481f3b1f63b99156e0405;hb=db0e2c5f7ecb63300fd90881a5a3969dfc91d2aa;hpb=7330f0e52a55c9762ac260712cb54cd9446b876d diff --git a/STEER/STEERBase/AliTRDPIDReference.cxx b/STEER/STEERBase/AliTRDPIDReference.cxx index e3e6379f918..c50707d5fa2 100644 --- a/STEER/STEERBase/AliTRDPIDReference.cxx +++ b/STEER/STEERBase/AliTRDPIDReference.cxx @@ -58,14 +58,26 @@ AliTRDPIDReference::AliTRDPIDReference(const Char_t *name): //____________________________________________________________ AliTRDPIDReference::AliTRDPIDReference(const AliTRDPIDReference &ref): TNamed(ref), - fRefContainer(ref.fRefContainer), + fRefContainer(NULL), fMomentumBins(ref.fMomentumBins) { - // - // Copy constructor - // Only copies poiters, object is not the owner of the references - // - SetBit(kIsOwner, kFALSE); + // + // Copy constructor + // + fRefContainer = new TObjArray(fMomentumBins.GetSize() * AliPID::kSPECIES); + fRefContainer->SetOwner(); + + for(Int_t ip = 0; ip < GetNumberOfMomentumBins(); ip++){ + for(Int_t is = 0; is < 5; is++){ + Int_t ent=is * fMomentumBins.GetSize() + ip; + TObject *obj=ref.fRefContainer->At(ent); + if(obj){ + fRefContainer->AddAt(obj->Clone(),ent); + } + } + } + + SetBit(kIsOwner, kTRUE); } //____________________________________________________________ @@ -124,7 +136,7 @@ void AliTRDPIDReference::AddReference(TObject *ref, AliPID::EParticleType spec, return; } AliDebug(1, Form("Adding object with address %p to position %d", ref, spec * fMomentumBins.GetSize() + pbin)); - fRefContainer->AddAt(ref, spec * fMomentumBins.GetSize() + pbin); + fRefContainer->AddAt(ref->Clone(), spec * fMomentumBins.GetSize() + pbin); } //____________________________________________________________