]> git.uio.no Git - u/mrichter/AliRoot.git/blame - JETAN/AliJetUnitArray.cxx
Cdf jet finder temporarily removed.
[u/mrichter/AliRoot.git] / JETAN / AliJetUnitArray.cxx
CommitLineData
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
35ClassImp(AliJetUnitArray)
36
b92e2ccf 37AliJetUnitArray::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 64AliJetUnitArray::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 93AliJetUnitArray::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 121AliJetUnitArray::~AliJetUnitArray()
122{
123 // Destructor
124}
8838ab7a 125
126//------------------------------------------------------------------------
127void 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//------------------------------------------------------------------------
138void 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//------------------------------------------------------------------------
149void 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//------------------------------------------------------------------------
161void 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//------------------------------------------------------------------------
176Bool_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//------------------------------------------------------------------------
188Bool_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//------------------------------------------------------------------------
200Bool_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//------------------------------------------------------------------------
212Bool_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//------------------------------------------------------------------------
226Bool_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//------------------------------------------------------------------------
241Float_t AliJetUnitArray::EtaToTheta(Float_t arg) const
242{
243 // Eta to theta transformation
244 return 2.*atan(exp(-arg));
245}
246
247//------------------------------------------------------------------------
248Bool_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//------------------------------------------------------------------------
258Bool_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//------------------------------------------------------------------------
268Bool_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}