7 #include "AliEmcalJet.h"
11 //__________________________________________________________________________________________________
12 AliEmcalJet::AliEmcalJet() :
43 fClosestJetsDist[0] = 999;
44 fClosestJetsDist[1] = 999;
47 //__________________________________________________________________________________________________
48 AliEmcalJet::AliEmcalJet(Double_t px, Double_t py, Double_t pz) :
50 fPt(TMath::Sqrt(px*px+py*py)),
51 fEta(TMath::ASinH(pz/fPt)),
78 fPhi = TMath::ATan2(py, px);
80 fPhi += 2. * TMath::Pi();
85 fClosestJetsDist[0] = 999;
86 fClosestJetsDist[1] = 999;
89 //_________________________________________________________________________________________________
90 AliEmcalJet::AliEmcalJet(Double_t pt, Double_t eta, Double_t phi, Double_t m) :
120 fPhi += TMath::TwoPi();
124 fClosestJetsDist[0] = 999;
125 fClosestJetsDist[1] = 999;
128 //_________________________________________________________________________________________________
129 AliEmcalJet::AliEmcalJet(const AliEmcalJet &jet) :
137 fAreaEta(jet.fAreaEta),
138 fAreaPhi(jet.fAreaPhi),
139 fAreaEmc(jet.fAreaEmc),
140 fAxisInEmcal(jet.fAxisInEmcal),
141 fMaxCPt(jet.fMaxCPt),
142 fMaxNPt(jet.fMaxNPt),
148 fClusterIDs(jet.fClusterIDs),
149 fTrackIDs(jet.fTrackIDs),
150 fMatched(jet.fMatched),
151 fMatchingType(jet.fMatchingType),
153 fPtVectSub(jet.fPtVectSub),
154 fTriggers(jet.fTriggers)
158 fClosestJets[0] = jet.fClosestJets[0];
159 fClosestJets[1] = jet.fClosestJets[1];
160 fClosestJetsDist[0] = jet.fClosestJetsDist[0];
161 fClosestJetsDist[1] = jet.fClosestJetsDist[1];
164 //_________________________________________________________________________________________________
165 AliEmcalJet &AliEmcalJet::operator=(const AliEmcalJet &jet)
167 // Assignment operator.
170 AliVParticle::operator=(jet);
177 fAreaEta = jet.fAreaEta;
178 fAreaPhi = jet.fAreaPhi;
179 fAreaEmc = jet.fAreaEmc;
180 fAxisInEmcal = jet.fAxisInEmcal;
181 fMaxCPt = jet.fMaxCPt;
182 fMaxNPt = jet.fMaxNPt;
188 fClusterIDs = jet.fClusterIDs;
189 fTrackIDs = jet.fTrackIDs;
190 fClosestJets[0] = jet.fClosestJets[0];
191 fClosestJets[1] = jet.fClosestJets[1];
192 fClosestJetsDist[0] = jet.fClosestJetsDist[0];
193 fClosestJetsDist[1] = jet.fClosestJetsDist[1];
194 fMatched = jet.fMatched;
196 fPtVectSub = jet.fPtVectSub;
197 fTriggers = jet.fTriggers;
203 //_________________________________________________________________________________________________
204 Int_t AliEmcalJet::Compare(const TObject* obj) const
206 //Return -1 if this is smaller than obj, 0 if objects are equal and 1 if this is larger than obj.
208 const AliEmcalJet *jet = static_cast<const AliEmcalJet *>(obj);
216 //__________________________________________________________________________________________________
217 void AliEmcalJet::GetMom(TLorentzVector &vec) const
219 // Return momentum as four vector.
221 Double_t p = fPt *TMath::CosH(fEta);
222 vec.SetPtEtaPhiE(fPt,fEta,fPhi,TMath::Sqrt(p*p+fM*fM));
225 //__________________________________________________________________________________________________
226 void AliEmcalJet::Print(Option_t* /*option*/) const
228 // Print jet information.
230 printf("Jet pt=%.2f, eta=%.2f, phi=%.2f, area=%.2f, NEF=%.2f\n", fPt, fEta, fPhi, fArea, fNEF);
233 //__________________________________________________________________________________________________
234 Double_t AliEmcalJet::PtSubVect(Double_t rho) const
236 // Return vectorial subtracted transverse momentum.
238 Double_t dx = Px() - rho * fArea * TMath::Cos(fAreaPhi);
239 Double_t dy = Py() - rho * fArea * TMath::Sin(fAreaPhi);
240 //Double_t dz = Pz() - rho * fArea * TMath::SinH(fAreaEta);
241 return TMath::Sqrt(dx*dx+dy*dy);
244 //__________________________________________________________________________________________________
245 void AliEmcalJet::SortConstituents()
247 // Sort constituent by index (increasing).
249 std::sort(fClusterIDs.GetArray(), fClusterIDs.GetArray() + fClusterIDs.GetSize());
250 std::sort(fTrackIDs.GetArray(), fTrackIDs.GetArray() + fTrackIDs.GetSize());
253 //__________________________________________________________________________________________________
254 AliVParticle* AliEmcalJet::GetLeadingTrack(TClonesArray *tracks) const
256 AliVParticle* maxTrack = 0;
257 for (Int_t i = 0; i < GetNumberOfTracks(); i++) {
258 AliVParticle *track = TrackAt(i, tracks);
259 if (!maxTrack || track->Pt() > maxTrack->Pt())
266 //__________________________________________________________________________________________________
267 AliVCluster* AliEmcalJet::GetLeadingCluster(TClonesArray *clusters) const
269 AliVCluster* maxCluster = 0;
270 for (Int_t i = 0; i < GetNumberOfClusters(); i++) {
271 AliVCluster *cluster = ClusterAt(i, clusters);
272 if (!maxCluster || cluster->E() > maxCluster->E())
273 maxCluster = cluster;
279 //__________________________________________________________________________________________________
280 void AliEmcalJet::ResetMatching()
284 fClosestJetsDist[0] = 999;
285 fClosestJetsDist[1] = 999;