]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - STEER/AliAODTracklets.cxx
Increasing the class version number.
[u/mrichter/AliRoot.git] / STEER / AliAODTracklets.cxx
... / ...
CommitLineData
1/**************************************************************************
2 * Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/* $Id$ */
17
18//-------------------------------------------------------------------------
19// AOD class to store tracklets
20// Author: Jan Fiete Grosse-Oetringhaus, CERN
21// Class created from AliMultiplicity
22//-------------------------------------------------------------------------
23
24#include "AliAODTracklets.h"
25
26ClassImp(AliAODTracklets)
27
28AliAODTracklets::AliAODTracklets() : TNamed(), fNTracks(0), fTheta(0), fPhi(0), fDeltaPhi(0), fLabels(0), fLabelsL2(0)
29{
30 // default constructor
31}
32
33AliAODTracklets::AliAODTracklets(const char* name, const char* title) : TNamed(name, title), fNTracks(0), fTheta(0), fPhi(0), fDeltaPhi(0), fLabels(0), fLabelsL2(0)
34{
35 // TNamed constructor
36}
37
38AliAODTracklets::AliAODTracklets(const AliAODTracklets& tracklet) :
39 TNamed(tracklet),
40 fNTracks(tracklet.fNTracks),
41 fTheta(0),
42 fPhi(0),
43 fDeltaPhi(0),
44 fLabels(0),
45 fLabelsL2(0)
46{
47// Copy constructor
48 fTheta = new Double32_t[fNTracks];
49 fPhi = new Double32_t[fNTracks];
50 fDeltaPhi = new Double32_t[fNTracks];
51 fLabels = new Int_t[fNTracks];
52 fLabelsL2 = new Int_t[fNTracks];
53 for (Int_t i = 0; i < fNTracks; i++) {
54 fTheta[i] = tracklet.fTheta[i];
55 fPhi[i] = tracklet.fPhi[i];
56 fDeltaPhi[i] = tracklet.fDeltaPhi[i];
57 fLabels[i] = tracklet.fLabels[i];
58 fLabelsL2[i] = tracklet.fLabelsL2[i];
59 }
60}
61
62AliAODTracklets& AliAODTracklets::operator=(const AliAODTracklets& tracklet)
63{
64// Assignment operator
65 if(&tracklet == this) return *this;
66 TNamed::operator=(tracklet);
67 if(fNTracks!=tracklet.fNTracks){
68 fNTracks = tracklet.fNTracks;
69 CreateContainer(fNTracks);
70 }
71 for (Int_t i = 0; i < fNTracks; i++) {
72 fTheta[i] = tracklet.fTheta[i];
73 fPhi[i] = tracklet.fPhi[i];
74 fDeltaPhi[i] = tracklet.fDeltaPhi[i];
75 fLabels[i] = tracklet.fLabels[i];
76 fLabelsL2[i] = tracklet.fLabelsL2[i];
77 }
78 return *this;
79}
80
81void AliAODTracklets::CreateContainer(Int_t nTracks)
82{
83 // function that creates container to store tracklets
84
85 DeleteContainer();
86
87 fNTracks = nTracks;
88
89 if (fNTracks <= 0) {
90 fNTracks = 0;
91 return;
92 }
93
94 fTheta = new Double32_t[fNTracks];
95 fPhi = new Double32_t[fNTracks];
96 fDeltaPhi = new Double32_t[fNTracks];
97 fLabels = new Int_t[fNTracks];
98 fLabelsL2 = new Int_t[fNTracks];
99}
100
101
102AliAODTracklets::~AliAODTracklets()
103{
104 // destructor
105
106 DeleteContainer();
107}
108
109void AliAODTracklets::DeleteContainer()
110{
111 // deletes allocated memory
112
113 if (fTheta)
114 {
115 delete[] fTheta;
116 fTheta = 0;
117 }
118
119 if (fPhi)
120 {
121 delete[] fPhi;
122 fPhi = 0;
123 }
124
125 if (fDeltaPhi)
126 {
127 delete[] fDeltaPhi;
128 fDeltaPhi = 0;
129 }
130
131 if (fLabels)
132 {
133 delete[] fLabels;
134 fLabels = 0;
135 }
136
137 if (fLabelsL2)
138 {
139 delete[] fLabelsL2;
140 fLabelsL2 = 0;
141 }
142
143 fNTracks = 0;
144}
145
146Bool_t AliAODTracklets::SetTracklet(Int_t pos, Double32_t theta, Double32_t phi, Double32_t deltaPhi, Int_t labelL1, Int_t labelL2)
147{
148 // Sets a tracklet at the given position
149
150 if (pos < 0 || pos >= fNTracks)
151 return kFALSE;
152
153 fTheta[pos] = theta;
154 fPhi[pos] = phi;
155 fDeltaPhi[pos] = deltaPhi;
156 fLabels[pos] = labelL1;
157 fLabelsL2[pos] = labelL2;
158
159 return kTRUE;
160}
161