]>
Commit | Line | Data |
---|---|---|
4a01bb2c | 1 | /************************************************************************** |
2 | * Copyright(c) 1998-1999, 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 | ||
8838ab7a | 16 | |
17 | /* $Id$ */ | |
18 | ||
19 | //_________________________________________________________________________ | |
4a01bb2c | 20 | // Unit used by UA1 algorithm |
8838ab7a | 21 | // -- |
22 | //*-- Author: Sarah Blyth (LBL/UCT) | |
23 | // -- | |
24 | // Revised Version for JETAN | |
25 | // -- Magali Estienne (IReS) | |
4a01bb2c | 26 | |
8838ab7a | 27 | //#include <vector> |
28 | ||
29 | #include <TVector3.h> | |
30 | #include <TLorentzVector.h> | |
31 | #include <TClonesArray.h> | |
4a01bb2c | 32 | |
8838ab7a | 33 | #include "AliJetUnitArray.h" |
4a01bb2c | 34 | |
35 | ClassImp(AliJetUnitArray) | |
36 | ||
b92e2ccf | 37 | AliJetUnitArray::AliJetUnitArray(): |
ee7de0dd | 38 | fUnitEnergy(0.0), |
39 | fUnitEta(0.0), | |
40 | fUnitPhi(0.0), | |
41 | fUnitDeta(0.), | |
42 | fUnitDphi(0.), | |
43 | fUnitID(0), | |
44 | fUnitTrackID(0), | |
45 | fUnitNum(0), | |
46 | fUnitClusterID(0), | |
47 | fUnitFlag(kOutJet), | |
48 | fUnitCutFlag(kPtSmaller), | |
8838ab7a | 49 | fUnitCutFlag2(kPtSmaller), |
ee7de0dd | 50 | fUnitSignalFlag(kBad), |
51 | fUnitDetectorFlag(kTpc), | |
52 | fUnitPx(0.), | |
53 | fUnitPy(0.), | |
54 | fUnitPz(0.), | |
8838ab7a | 55 | fUnitMass(0.), |
56 | fV(0), | |
57 | fVc(0), | |
58 | fVn(0), | |
59 | fVet(0) | |
4a01bb2c | 60 | { |
61 | // Default constructor | |
4a01bb2c | 62 | } |
63 | ||
8838ab7a | 64 | AliJetUnitArray::AliJetUnitArray(Int_t absId, Int_t esdId, Float_t eta, Float_t phi, Float_t en, Float_t Deta, Float_t Dphi, AliJetFinderUnitDetectorFlagType_t det, AliJetFinderUnitFlagType_t inout, AliJetFinderUnitCutFlagType_t cut, AliJetFinderUnitCutFlagType_t cut2, AliJetFinderUnitSignalFlagType_t signal,Float_t mass, Int_t clusId): |
65 | fUnitEnergy(en), | |
66 | fUnitEta(eta), | |
67 | fUnitPhi(phi), | |
68 | fUnitDeta(Deta), | |
69 | fUnitDphi(Dphi), | |
70 | fUnitID(absId), | |
71 | fUnitTrackID(esdId), | |
72 | fUnitNum(0), | |
73 | fUnitClusterID(clusId), | |
74 | fUnitFlag(inout), | |
75 | fUnitCutFlag(cut), | |
76 | fUnitCutFlag2(cut2), | |
77 | fUnitSignalFlag(signal), | |
78 | fUnitDetectorFlag(det), | |
79 | fUnitPx(0.), | |
80 | fUnitPy(0.), | |
81 | fUnitPz(0.), | |
82 | fUnitMass(mass), | |
83 | fV(0), | |
84 | fVc(0), | |
85 | fVn(0), | |
86 | fVet(0) | |
87 | { | |
88 | //abs ID (in a eta,phi grid, track ID in ESD, eta, phi, energy, px, py, pz, Deta, Dphi, detector flag, in/out jet, mass | |
89 | ||
90 | // Constructor 2 | |
91 | } | |
92 | ||
ee7de0dd | 93 | AliJetUnitArray::AliJetUnitArray(Int_t absId, Int_t esdId, Float_t eta, Float_t phi, Float_t en, Float_t px, Float_t py, Float_t pz, Float_t Deta, Float_t Dphi, AliJetFinderUnitDetectorFlagType_t det, AliJetFinderUnitFlagType_t inout, AliJetFinderUnitCutFlagType_t cut, Float_t mass, Int_t clusId): |
94 | fUnitEnergy(en), | |
95 | fUnitEta(eta), | |
96 | fUnitPhi(phi), | |
97 | fUnitDeta(Deta), | |
98 | fUnitDphi(Dphi), | |
99 | fUnitID(absId), | |
100 | fUnitTrackID(esdId), | |
101 | fUnitNum(0), | |
102 | fUnitClusterID(clusId), | |
103 | fUnitFlag(inout), | |
104 | fUnitCutFlag(cut), | |
8838ab7a | 105 | fUnitCutFlag2(kPtSmaller), |
106 | fUnitSignalFlag(kBad), | |
ee7de0dd | 107 | fUnitDetectorFlag(det), |
108 | fUnitPx(px), | |
109 | fUnitPy(py), | |
110 | fUnitPz(pz), | |
8838ab7a | 111 | fUnitMass(mass), |
112 | fV(0), | |
113 | fVc(0), | |
114 | fVn(0), | |
115 | fVet(0) | |
ee7de0dd | 116 | { |
117 | // Constructor 2 | |
118 | } | |
8838ab7a | 119 | |
120 | //------------------------------------------------------------------------ | |
4a01bb2c | 121 | AliJetUnitArray::~AliJetUnitArray() |
122 | { | |
123 | // Destructor | |
124 | } | |
8838ab7a | 125 | |
126 | //------------------------------------------------------------------------ | |
127 | void AliJetUnitArray::SetUnitSignalFlagC(Bool_t init, AliJetFinderUnitSignalFlagType_t flag) | |
128 | { | |
129 | // Set signal flag of the charged particle | |
130 | if(init){ | |
131 | if(!fVc.empty()) | |
132 | fVc.clear(); | |
133 | } | |
134 | else fVc.push_back(flag); | |
135 | } | |
136 | ||
137 | //------------------------------------------------------------------------ | |
138 | void AliJetUnitArray::SetUnitSignalFlagN(Bool_t init, AliJetFinderUnitSignalFlagType_t flag) | |
139 | { | |
140 | // Set signal flag of the neutral cell | |
141 | if(init){ | |
142 | if(!fVn.empty()) | |
143 | fVn.clear(); | |
144 | } | |
145 | else fVn.push_back(flag); | |
146 | } | |
147 | ||
148 | //------------------------------------------------------------------------ | |
149 | void AliJetUnitArray::SetUnitEtN(Bool_t init, Float_t et) | |
150 | { | |
151 | // Set transverse energy of the neutral cell | |
152 | if(init){ | |
153 | if(!fVet.empty()) | |
154 | fVet.clear(); | |
155 | } | |
156 | else fVet.push_back(et); | |
157 | } | |
158 | ||
159 | ||
160 | //------------------------------------------------------------------------ | |
161 | void AliJetUnitArray::SetUnitPxPyPz(Bool_t init, vector<Float_t> v3) | |
162 | { | |
163 | // Set momentum components of the charged particle | |
164 | if(init) | |
165 | { | |
166 | if(!fV.empty()){ | |
167 | fV.clear(); | |
168 | } | |
169 | } | |
170 | else{ | |
171 | fV.push_back(v3); | |
172 | } | |
173 | } | |
174 | ||
175 | //------------------------------------------------------------------------ | |
176 | Bool_t AliJetUnitArray::GetUnitSignalFlagC(Int_t ind, AliJetFinderUnitSignalFlagType_t &flagc) | |
177 | { | |
178 | // Get signal flag of the charged particle | |
179 | if(ind <= (Int_t)fVc.size()) | |
180 | { | |
181 | flagc = (AliJetFinderUnitSignalFlagType_t)fVc[ind]; | |
182 | return kTRUE; | |
183 | } | |
184 | else return kFALSE; | |
185 | } | |
186 | ||
187 | //------------------------------------------------------------------------ | |
188 | Bool_t AliJetUnitArray::GetUnitSignalFlagN(Int_t ind, AliJetFinderUnitSignalFlagType_t &flagn) | |
189 | { | |
190 | // Get signal flag of the neutral cell | |
191 | if(ind <= (Int_t)fVn.size()) | |
192 | { | |
193 | flagn = (AliJetFinderUnitSignalFlagType_t)fVn[ind]; | |
194 | return kTRUE; | |
195 | } | |
196 | else return kFALSE; | |
197 | } | |
198 | ||
199 | //------------------------------------------------------------------------ | |
200 | Bool_t AliJetUnitArray::GetUnitEtN(Int_t ind, Float_t &et) | |
201 | { | |
202 | // Get transverse energy of the neutral cell | |
203 | if(ind <= (Int_t)fVet.size()) | |
204 | { | |
205 | et = (Float_t)fVet[ind]; | |
206 | return kTRUE; | |
207 | } | |
208 | else return kFALSE; | |
209 | } | |
210 | ||
211 | //------------------------------------------------------------------------ | |
212 | Bool_t AliJetUnitArray::GetUnitPxPyPz(Int_t ind, Float_t &px, Float_t &py, Float_t &pz) | |
213 | { | |
214 | // Get momentum components of the charged particle | |
215 | if(ind <= (Int_t)fV.size()) | |
216 | { | |
217 | px = (Float_t)fV[ind][0]; | |
218 | py = (Float_t)fV[ind][1]; | |
219 | pz = (Float_t)fV[ind][2]; | |
220 | return kTRUE; | |
221 | } | |
222 | else return kFALSE; | |
223 | } | |
224 | ||
225 | //------------------------------------------------------------------------ | |
226 | Bool_t AliJetUnitArray::GetUnitPxPyPzE(Int_t ind, Float_t &px, Float_t &py, Float_t &pz, Float_t &en) | |
227 | { | |
228 | // Get 4-momentum components of the charged particle | |
229 | if(ind <= (Int_t)fV.size()) | |
230 | { | |
231 | px = (Float_t)fV[ind][0]; | |
232 | py = (Float_t)fV[ind][1]; | |
233 | pz = (Float_t)fV[ind][2]; | |
234 | en = TMath::Sqrt(px*px+py*py+pz*pz); | |
235 | return kTRUE; | |
236 | } | |
237 | else return kFALSE; | |
238 | } | |
239 | ||
240 | //------------------------------------------------------------------------ | |
241 | Float_t AliJetUnitArray::EtaToTheta(Float_t arg) const | |
242 | { | |
243 | // Eta to theta transformation | |
244 | return 2.*atan(exp(-arg)); | |
245 | } | |
246 | ||
247 | //------------------------------------------------------------------------ | |
248 | Bool_t AliJetUnitArray::operator>(AliJetUnitArray unit) const | |
4a01bb2c | 249 | { |
250 | // Greater than operator used by sort | |
251 | if( fUnitEnergy > unit.GetUnitEnergy()) | |
252 | return kTRUE; | |
253 | else | |
254 | return kFALSE; | |
255 | } | |
256 | ||
8838ab7a | 257 | //------------------------------------------------------------------------ |
258 | Bool_t AliJetUnitArray::operator<( AliJetUnitArray unit) const | |
4a01bb2c | 259 | { |
260 | // Less than operator used by sort | |
261 | if( fUnitEnergy < unit.GetUnitEnergy()) | |
262 | return kTRUE; | |
263 | else | |
264 | return kFALSE; | |
265 | } | |
266 | ||
8838ab7a | 267 | //------------------------------------------------------------------------ |
268 | Bool_t AliJetUnitArray::operator==( AliJetUnitArray unit) const | |
4a01bb2c | 269 | { |
270 | // equality operator used by sort | |
271 | if( fUnitEnergy == unit.GetUnitEnergy()) | |
272 | return kTRUE; | |
273 | else | |
274 | return kFALSE; | |
275 | } |