X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliESDfriendTrack.cxx;h=b43ebaa8252ce8ed0eb7498565a1b7e93f6a7b53;hb=92664bc8534e1609e8f484efaa16df714ebc0978;hp=87937fc8aee6c70e378698717568bafd1efefd4f;hpb=00dce61aa16f19ed5226054a59cf5fa8fc9c4532;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliESDfriendTrack.cxx b/STEER/AliESDfriendTrack.cxx index 87937fc8aee..b43ebaa8252 100644 --- a/STEER/AliESDfriendTrack.cxx +++ b/STEER/AliESDfriendTrack.cxx @@ -20,45 +20,96 @@ //------------------------------------------------------------------------- #include "AliTrackPointArray.h" #include "AliESDfriendTrack.h" -#include "AliKalmanTrack.h" #include "TObjArray.h" +#include "TClonesArray.h" +#include "AliKalmanTrack.h" ClassImp(AliESDfriendTrack) AliESDfriendTrack::AliESDfriendTrack(): TObject(), f1P(0), +fnMaxITScluster(0), +fnMaxTPCcluster(0), +fnMaxTRDcluster(0), +fITSindex(0x0), +fTPCindex(0x0), +fTRDindex(0x0), fPoints(0), fCalibContainer(0), fITStrack(0), -fTRDtrack(0) +fTRDtrack(0), +fTPCOut(0), +fITSOut(0), +fTRDIn(0) { // // Default constructor // - Int_t i; - for (i=0; iSetOwner(kTRUE); + } AliESDfriendTrack::AliESDfriendTrack(const AliESDfriendTrack &t): TObject(t), f1P(t.f1P), +fnMaxITScluster(t.fnMaxITScluster), +fnMaxTPCcluster(t.fnMaxTPCcluster), +fnMaxTRDcluster(t.fnMaxTRDcluster), +fITSindex(0x0), +fTPCindex(0x0), +fTRDindex(0x0), fPoints(0), fCalibContainer(0), fITStrack(0), -fTRDtrack(0) +fTRDtrack(0), +fTPCOut(0), +fITSOut(0), +fTRDIn(0) { // // Copy constructor // + AliDebug(2,"Calling copy constructor"); + Int_t i; - for (i=0; iGetEntriesFast(); + for (i=0; iAt(i); + fCalibContainer->AddLast(o->Clone()); + } + } + + if (t.fTPCOut) fTPCOut = new AliExternalTrackParam(*(t.fTPCOut)); + if (t.fITSOut) fITSOut = new AliExternalTrackParam(*(t.fITSOut)); + if (t.fTRDIn) fTRDIn = new AliExternalTrackParam(*(t.fTRDIn)); + } AliESDfriendTrack::~AliESDfriendTrack() { @@ -66,9 +117,16 @@ AliESDfriendTrack::~AliESDfriendTrack() { // Simple destructor // delete fPoints; + if (fCalibContainer) fCalibContainer->Delete(); delete fCalibContainer; delete fITStrack; delete fTRDtrack; + delete fTPCOut; + delete fITSOut; + delete fTRDIn; + delete[] fITSindex; + delete[] fTPCindex; + delete[] fTRDindex; } @@ -89,3 +147,78 @@ TObject * AliESDfriendTrack::GetCalibObject(Int_t index){ if (index>=fCalibContainer->GetEntriesFast()) return 0; return fCalibContainer->At(index); } + + +void AliESDfriendTrack::SetTPCOut(const AliExternalTrackParam ¶m) { + // + // backup TPC out track + // + delete fTPCOut; + fTPCOut=new AliExternalTrackParam(param); +} +void AliESDfriendTrack::SetITSOut(const AliExternalTrackParam ¶m) { + // + // backup ITS out track + // + delete fITSOut; + fITSOut=new AliExternalTrackParam(param); +} +void AliESDfriendTrack::SetTRDIn(const AliExternalTrackParam ¶m) { + // + // backup TRD in track + // + delete fTRDIn; + fTRDIn=new AliExternalTrackParam(param); +} + +void AliESDfriendTrack::SetITSIndices(Int_t* indices, Int_t n){ + + // + // setting fITSindex + // instantiating the pointer if still NULL + // + + fnMaxITScluster = n; + AliDebug(2,Form("fnMaxITScluster = %d",fnMaxITScluster)); + if (fITSindex == 0x0){ + fITSindex = new Int_t[fnMaxITScluster]; + } + for (Int_t i = 0; i < fnMaxITScluster; i++){ + fITSindex[i] = indices[i]; + } +} + +void AliESDfriendTrack::SetTPCIndices(Int_t* indices, Int_t n){ + + // + // setting fTPCindex + // instantiating the pointer if still NULL + // + + fnMaxTPCcluster = n; + AliDebug(2,Form("fnMaxTPCcluster = %d",fnMaxTPCcluster)); + if (fTPCindex == 0x0){ + fTPCindex = new Int_t[fnMaxTPCcluster]; + } + for (Int_t i = 0; i < fnMaxTPCcluster; i++){ + fTPCindex[i] = indices[i]; + } +} + +void AliESDfriendTrack::SetTRDIndices(Int_t* indices, Int_t n){ + + // + // setting fTRDindex + // instantiating the pointer if still NULL + // + + fnMaxTRDcluster = n; + AliDebug(2,Form("fnMaxTRDcluster = %d",fnMaxTRDcluster)); + if (fTRDindex == 0x0){ + fTRDindex = new Int_t[fnMaxTRDcluster]; + } + for (Int_t i = 0; i < fnMaxTRDcluster; i++){ + fTRDindex[i] = indices[i]; + } +} +