]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGJE/EMCALJetTasks/AliEmcalJet.cxx
Updates from Salvatore for Embedding
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliEmcalJet.cxx
CommitLineData
7df864a3 1// $Id$
04f6e9de 2//
3// Emcal jet class.
4//
cd231d42 5// Author: C.Loizides
7efbea04 6
914d486c 7#include "AliEmcalJet.h"
7df864a3 8
914d486c 9ClassImp(AliEmcalJet)
7efbea04 10
96919f91 11//__________________________________________________________________________________________________
12AliEmcalJet::AliEmcalJet() :
13 AliVParticle(),
14 fPt(0),
15 fEta(0),
16 fPhi(0),
17 fM(0),
18 fNEF(0),
19 fArea(0),
db8a0184 20 fAreaEta(0),
21 fAreaPhi(0),
96919f91 22 fAreaEmc(-1),
23 fAxisInEmcal(0),
24 fMaxCPt(0),
25 fMaxNPt(0),
26 fMCPt(0),
27 fNn(0),
28 fNch(0),
8895e61b 29 fPtEmc(0),
30 fNEmc(0),
96919f91 31 fClusterIDs(),
32 fTrackIDs(),
8895e61b 33 fMatched(2),
db8a0184 34 fPtSub(0),
35 fPtVectSub(0)
96919f91 36{
37 // Constructor.
38
39 fClosestJets[0] = 0;
40 fClosestJets[1] = 0;
41 fClosestJetsDist[0] = 999;
42 fClosestJetsDist[1] = 999;
96919f91 43}
44
7efbea04 45//__________________________________________________________________________________________________
101cefde 46AliEmcalJet::AliEmcalJet(Double_t px, Double_t py, Double_t pz) :
47 AliVParticle(),
48 fPt(TMath::Sqrt(px*px+py*py)),
49 fEta(TMath::ASinH(pz/fPt)),
50 fPhi(0),
51 fM(0),
52 fNEF(0),
53 fArea(0),
db8a0184 54 fAreaEta(0),
55 fAreaPhi(0),
101cefde 56 fAreaEmc(-1),
57 fAxisInEmcal(0),
58 fMaxCPt(0),
59 fMaxNPt(0),
96919f91 60 fMCPt(0),
61 fNn(0),
62 fNch(0),
8895e61b 63 fPtEmc(0),
64 fNEmc(0),
101cefde 65 fClusterIDs(),
96919f91 66 fTrackIDs(),
8895e61b 67 fMatched(2),
db8a0184 68 fPtSub(0),
69 fPtVectSub(0)
7efbea04 70{
71 // Constructor.
72
73 if (fPt != 0) {
74 fPhi = TMath::ATan2(py, px);
75 if (fPhi<0.)
76 fPhi += 2. * TMath::Pi();
77 }
96919f91 78
79 fClosestJets[0] = 0;
80 fClosestJets[1] = 0;
81 fClosestJetsDist[0] = 999;
82 fClosestJetsDist[1] = 999;
7efbea04 83}
84
9cffd2d0 85//_________________________________________________________________________________________________
914d486c 86AliEmcalJet::AliEmcalJet(Double_t pt, Double_t eta, Double_t phi, Double_t m) :
9cffd2d0 87 AliVParticle(),
f8087a81 88 fPt(pt),
89 fEta(eta),
90 fPhi(phi),
91 fM(m),
92 fNEF(0),
93 fArea(0),
db8a0184 94 fAreaEta(0),
95 fAreaPhi(0),
101cefde 96 fAreaEmc(-1),
97 fAxisInEmcal(0),
f8087a81 98 fMaxCPt(0),
96919f91 99 fMaxNPt(0),
100 fMCPt(0),
101 fNn(0),
102 fNch(0),
8895e61b 103 fPtEmc(0),
104 fNEmc(0),
f8087a81 105 fClusterIDs(),
96919f91 106 fTrackIDs(),
8895e61b 107 fMatched(2),
db8a0184 108 fPtSub(0),
109 fPtVectSub(0)
9cffd2d0 110{
111 // Constructor.
112
4f149872 113 if (fPhi<0.)
114 fPhi += TMath::TwoPi();
96919f91 115
116 fClosestJets[0] = 0;
117 fClosestJets[1] = 0;
118 fClosestJetsDist[0] = 999;
119 fClosestJetsDist[1] = 999;
9cffd2d0 120}
121
7efbea04 122//_________________________________________________________________________________________________
914d486c 123AliEmcalJet::AliEmcalJet(const AliEmcalJet &jet) :
7efbea04 124 AliVParticle(jet),
f8087a81 125 fPt(jet.fPt),
126 fEta(jet.fEta),
127 fPhi(jet.fPhi),
128 fM(jet.fM),
129 fNEF(jet.fNEF),
130 fArea(jet.fArea),
db8a0184 131 fAreaEta(jet.fAreaEta),
132 fAreaPhi(jet.fAreaPhi),
101cefde 133 fAreaEmc(jet.fAreaEmc),
134 fAxisInEmcal(jet.fAxisInEmcal),
f8087a81 135 fMaxCPt(jet.fMaxCPt),
136 fMaxNPt(jet.fMaxNPt),
96919f91 137 fMCPt(jet.fMCPt),
138 fNn(jet.fNn),
139 fNch(jet.fNch),
8895e61b 140 fPtEmc(jet.fPtEmc),
141 fNEmc(jet.fNEmc),
f8087a81 142 fClusterIDs(jet.fClusterIDs),
4f149872 143 fTrackIDs(jet.fTrackIDs),
8895e61b 144 fMatched(jet.fMatched),
db8a0184 145 fPtSub(jet.fPtSub),
146 fPtVectSub(jet.fPtVectSub)
7df864a3 147{
101cefde 148 // Copy constructor.
4f149872 149
150 fClosestJets[0] = jet.fClosestJets[0];
151 fClosestJets[1] = jet.fClosestJets[1];
152 fClosestJetsDist[0] = jet.fClosestJetsDist[0];
153 fClosestJetsDist[1] = jet.fClosestJetsDist[1];
7efbea04 154}
155
156//_________________________________________________________________________________________________
914d486c 157AliEmcalJet &AliEmcalJet::operator=(const AliEmcalJet &jet)
7efbea04 158{
159 // Assignment operator.
160
161 if (this!=&jet) {
162 AliVParticle::operator=(jet);
4f149872 163 fPt = jet.fPt;
164 fEta = jet.fEta;
165 fPhi = jet.fPhi;
166 fM = jet.fM;
167 fNEF = jet.fNEF;
168 fArea = jet.fArea;
db8a0184 169 fAreaEta = jet.fAreaEta;
170 fAreaPhi = jet.fAreaPhi;
4f149872 171 fAreaEmc = jet.fAreaEmc;
172 fAxisInEmcal = jet.fAxisInEmcal;
173 fMaxCPt = jet.fMaxCPt;
174 fMaxNPt = jet.fMaxNPt;
175 fMCPt = jet.fMCPt;
176 fNn = jet.fNn;
177 fNch = jet.fNch;
8895e61b 178 fPtEmc = jet.fPtEmc;
179 fNEmc = jet.fNEmc;
4f149872 180 fClusterIDs = jet.fClusterIDs;
181 fTrackIDs = jet.fTrackIDs;
182 fClosestJets[0] = jet.fClosestJets[0];
183 fClosestJets[1] = jet.fClosestJets[1];
184 fClosestJetsDist[0] = jet.fClosestJetsDist[0];
185 fClosestJetsDist[1] = jet.fClosestJetsDist[1];
186 fMatched = jet.fMatched;
8895e61b 187 fPtSub = jet.fPtSub;
db8a0184 188 fPtVectSub = jet.fPtVectSub;
7efbea04 189 }
190
191 return *this;
7df864a3 192}
7efbea04 193
db8a0184 194Int_t AliEmcalJet::Compare(const TObject* obj) const
195{
196 //Return -1 if this is smaller than obj, 0 if objects are equal and 1 if this is larger than obj.
197
198 const AliEmcalJet *jet = static_cast<const AliEmcalJet *>(obj);
199 if (!obj)
200 return 0;
201 if (Pt()>jet->Pt())
202 return -1;
203 return 1;
204}
205
7efbea04 206//__________________________________________________________________________________________________
914d486c 207void AliEmcalJet::GetMom(TLorentzVector &vec) const
7efbea04 208{
209 // Return momentum as four vector.
210
211 Double_t p = fPt *TMath::CosH(fEta);
212 vec.SetPtEtaPhiE(fPt,fEta,fPhi,TMath::Sqrt(p*p+fM*fM));
213}
214
215//__________________________________________________________________________________________________
914d486c 216void AliEmcalJet::Print(Option_t* /*option*/) const
7efbea04 217{
218 // Print jet information.
219
220 printf("Jet pt=%.2f, eta=%.2f, phi=%.2f, area=%.2f, NEF=%.2f\n", fPt, fEta, fPhi, fArea, fNEF);
221}
629e03fc 222
db8a0184 223//__________________________________________________________________________________________________
224Double_t AliEmcalJet::PtSubVect(Double_t rho) const
225{
226 // Return vectorial subtracted transverse momentum.
227
228 Double_t dx = Px() - rho * fArea * TMath::Cos(fAreaPhi);
229 Double_t dy = Py() - rho * fArea * TMath::Sin(fAreaPhi);
230 //Double_t dz = Pz() - rho * fArea * TMath::SinH(fAreaEta);
231 return TMath::Sqrt(dx*dx+dy*dy);
232}
233
629e03fc 234//__________________________________________________________________________________________________
235void AliEmcalJet::SortConstituents()
236{
f8087a81 237 // Sort constituent by index (increasing).
238
239 std::sort(fClusterIDs.GetArray(), fClusterIDs.GetArray() + fClusterIDs.GetSize());
240 std::sort(fTrackIDs.GetArray(), fTrackIDs.GetArray() + fTrackIDs.GetSize());
629e03fc 241}