X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliAODTracklets.cxx;h=e9a89e4d3d70a9c8f819960b3de07b368ce4f072;hb=987d6d62c11e5fcb6ae8c9a8c475ab4f038f62a8;hp=00b490d351b42de75f75892c2c7d5131428dba06;hpb=21b22f32ebff4900f4540e9146ac37e09c4cebcb;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliAODTracklets.cxx b/STEER/AliAODTracklets.cxx index 00b490d351b..e9a89e4d3d7 100644 --- a/STEER/AliAODTracklets.cxx +++ b/STEER/AliAODTracklets.cxx @@ -25,16 +25,56 @@ ClassImp(AliAODTracklets) -AliAODTracklets::AliAODTracklets() : TNamed(), fNTracks(0), fTheta(0), fPhi(0), fDeltaPhi(0), fLabels(0) +AliAODTracklets::AliAODTracklets() : TNamed(), fNTracks(0), fTheta(0), fPhi(0), fDeltaPhi(0), fLabels(0), fLabelsL2(0) { // default constructor } -AliAODTracklets::AliAODTracklets(const char* name, const char* title) : TNamed(name, title), fNTracks(0), fTheta(0), fPhi(0), fDeltaPhi(0), fLabels(0) +AliAODTracklets::AliAODTracklets(const char* name, const char* title) : TNamed(name, title), fNTracks(0), fTheta(0), fPhi(0), fDeltaPhi(0), fLabels(0), fLabelsL2(0) { // TNamed constructor } +AliAODTracklets::AliAODTracklets(const AliAODTracklets& tracklet) : + TNamed(tracklet), + fNTracks(tracklet.fNTracks), + fTheta(0), + fPhi(0), + fDeltaPhi(0), + fLabels(0), + fLabelsL2(0) +{ +// Copy constructor + fTheta = new Double32_t[fNTracks]; + fPhi = new Double32_t[fNTracks]; + fDeltaPhi = new Double32_t[fNTracks]; + fLabels = new Int_t[fNTracks]; + fLabelsL2 = new Int_t[fNTracks]; + for (Int_t i = 0; i < fNTracks; i++) { + fTheta[i] = tracklet.fTheta[i]; + fPhi[i] = tracklet.fPhi[i]; + fDeltaPhi[i] = tracklet.fDeltaPhi[i]; + fLabels[i] = tracklet.fLabels[i]; + fLabelsL2[i] = tracklet.fLabelsL2[i]; + } +} + +AliAODTracklets& AliAODTracklets::operator=(const AliAODTracklets& tracklet) +{ +// Assignment operator + if(&tracklet == this) return *this; + TNamed::operator=(tracklet); + fNTracks = tracklet.fNTracks; + for (Int_t i = 0; i < fNTracks; i++) { + fTheta[i] = tracklet.fTheta[i]; + fPhi[i] = tracklet.fPhi[i]; + fDeltaPhi[i] = tracklet.fDeltaPhi[i]; + fLabels[i] = tracklet.fLabels[i]; + fLabelsL2[i] = tracklet.fLabelsL2[i]; + } + return *this; +} + void AliAODTracklets::CreateContainer(Int_t nTracks) { // function that creates container to store tracklets @@ -43,15 +83,19 @@ void AliAODTracklets::CreateContainer(Int_t nTracks) fNTracks = nTracks; - if (fNTracks <= 0) + if (fNTracks <= 0) { + fNTracks = 0; return; + } - fTheta = new Float_t[fNTracks]; - fPhi = new Float_t[fNTracks]; - fDeltaPhi = new Float_t[fNTracks]; + fTheta = new Double32_t[fNTracks]; + fPhi = new Double32_t[fNTracks]; + fDeltaPhi = new Double32_t[fNTracks]; fLabels = new Int_t[fNTracks]; + fLabelsL2 = new Int_t[fNTracks]; } + AliAODTracklets::~AliAODTracklets() { // destructor @@ -87,10 +131,16 @@ void AliAODTracklets::DeleteContainer() fLabels = 0; } + if (fLabelsL2) + { + delete[] fLabelsL2; + fLabelsL2 = 0; + } + fNTracks = 0; } -Bool_t AliAODTracklets::SetTracklet(Int_t pos, Float_t theta, Float_t phi, Float_t deltaPhi, Int_t label) +Bool_t AliAODTracklets::SetTracklet(Int_t pos, Double32_t theta, Double32_t phi, Double32_t deltaPhi, Int_t labelL1, Int_t labelL2) { // Sets a tracklet at the given position @@ -100,7 +150,9 @@ Bool_t AliAODTracklets::SetTracklet(Int_t pos, Float_t theta, Float_t phi, Float fTheta[pos] = theta; fPhi[pos] = phi; fDeltaPhi[pos] = deltaPhi; - fLabels[pos] = label; + fLabels[pos] = labelL1; + fLabelsL2[pos] = labelL2; return kTRUE; } +