13 #include <TClonesArray.h>
15 #include <TLorentzVector.h>
18 #include <AliVParticle.h>
19 #include <AliVCluster.h>
20 #include <AliVEvent.h>
63 AliEmcalJet(Double_t pt, Double_t eta, Double_t phi, Double_t m);
68 Int_t
Compare(
const TObject* obj)
const;
69 std::ostream &
Print(std::ostream &in)
const;
73 Double_t
Px()
const {
return fPt*TMath::Cos(
fPhi) ; }
74 Double_t
Py()
const {
return fPt*TMath::Sin(
fPhi) ; }
75 Double_t
Pz()
const {
return fPt*TMath::SinH(
fEta); }
76 Double_t
Pt()
const {
return fPt ; }
77 Double_t
P()
const {
return fPt*TMath::CosH(
fEta); }
78 Bool_t
PxPyPz(Double_t p[3])
const { p[0]=
Px();p[1]=
Py();p[2]=
Pz();
return kTRUE; }
79 Double_t
Xv()
const {
return 0.; }
80 Double_t
Yv()
const {
return 0.; }
81 Double_t
Zv()
const {
return 0.; }
82 Bool_t
XvYvZv(Double_t x[3])
const { x[0]=0;x[1]=0;x[2]=0 ;
return kTRUE; }
85 Double_t
Theta()
const {
return 2*TMath::ATan(TMath::Exp(-
fEta)) ; }
86 Double_t
E()
const { Double_t p=
P();
return TMath::Sqrt(
fM*
fM+p*p); }
87 Double_t
M()
const {
return fM ; }
89 Double_t
Y()
const { Double_t e =
E(); Double_t pz =
Pz();
return 0.5*TMath::Log((e+pz)/(e-pz)); }
90 Short_t
Charge()
const {
return 0 ; }
93 const Double_t *
PID()
const {
return 0; }
111 Bool_t
IsMC()
const {
return (Bool_t)(
MCPt() > 0) ; }
116 UShort_t
Nn()
const {
return fNn ; }
118 UShort_t
N()
const {
return Nch()+
Nn() ; }
130 Double_t
PtSub(Double_t rho, Bool_t save = kFALSE) ;
131 Double_t
PtSubVect(Double_t rho, Bool_t save = kFALSE) ;
135 AliVCluster *
ClusterAt(Int_t idx, TClonesArray *ca)
const;
136 Int_t
ContainsCluster(AliVCluster* cluster, TClonesArray* clusters)
const;
139 AliVParticle *
TrackAt(Int_t idx, TClonesArray *ta)
const;
140 Int_t
ContainsTrack(AliVParticle* track, TClonesArray* tracks)
const;
145 Double_t
GetZ(
const Double_t trkPx,
const Double_t trkPy,
const Double_t trkPz)
const;
146 Double_t
GetZ(
const AliVParticle* trk )
const;
147 Double_t
GetXi(
const AliVParticle* trk )
const;
148 Double_t
GetXi(
const Double_t trkPx,
const Double_t trkPy,
const Double_t trkPz)
const;
152 Double_t
DeltaR(
const AliVParticle* part)
const;
176 void Clear(Option_t *=
"");
207 void AddGhost(
const Double_t dPx,
const Double_t dPy,
const Double_t dPz,
const Double_t dE);
212 void Print(Option_t* =
"")
const;
290 bool operator () (
const std::pair<Double_t, Int_t>& p1,
const std::pair<Double_t, Int_t>& p2) {
return p1.first > p2.first ; }
TArrayI fTrackIDs
Array containing ids of track constituents.
void SetMaxNeutralPt(Double32_t t)
void SetSecondClosestJet(AliEmcalJet *j, Double_t d)
void SetTagStatus(Int_t i)
Double_t fPtSubVect
! Background vector subtracted pt (not stored set from outside)
void AddFlavourTag(Int_t tag)
void AddTrackAt(Int_t track, Int_t idx)
Bool_t XvYvZv(Double_t x[3]) const
AliEmcalJet * GetTaggedJet() const
Int_t fTagStatus
! Status of tagging -1: NA 0: not tagged 1: tagged
void SetTaggedJet(AliEmcalJet *j)
Double_t GetXi(const AliVParticle *trk) const
Simple C structure to allow sorting in descending order.
Double32_t fAreaE
Jet temporal area component.
AliEmcalJet * ClosestJet() const
Jet is tagged to contain a D* meson.
Int_t GetTagStatus() const
Double_t ClosestJetDistance() const
TArrayI fClusterIDs
Array containing ids of cluster constituents.
Bool_t AxisInEmcal() const
void ClearFlavourTracks()
Int_t fLabel
! Label to inclusive jet for constituent subtracted jet
Double_t fPtSub
! Background subtracted pt (not stored set from outside)
void Clear(Option_t *="")
Bool_t fHasGhost
! Whether ghost particle are included within the constituents
void AddClusterAt(Int_t clus, Int_t idx)
AliEmcalJet * MatchedJet() const
Bool_t IsSortable() const
AliEmcalJetShapeProperties * fJetShapeProperties
! Pointer to the jet shape properties
Double_t FracEmcalArea() const
Double_t MaxChargedPt() const
AliEmcalJet & operator=(const AliEmcalJet &jet)
Double_t GetFlavourTrackZ(Int_t i=0) const
void SetAreaE(Double_t a)
friend std::ostream & operator<<(std::ostream &in, const AliEmcalJet &jet)
void SetPtSubVect(Double_t ps)
AliVParticle * GetFlavourTrack(Int_t i=0) const
UShort_t GetNumberOfConstituents() const
AliVParticle * RemoveFlavourTrack(Int_t i=0)
Int_t ContainsCluster(AliVCluster *cluster, TClonesArray *clusters) const
void SetMatchedToSecondClosest(UShort_t m)
UShort_t GetNumberOfTracks() const
AliEmcalJetShapeProperties * GetShapeProperties()
std::ostream & Print(std::ostream &in) const
void GetMomentum(TLorentzVector &vec) const
Double32_t fMCPt
Pt from MC particles contributing to the jet.
Double32_t fMaxNPt
Pt of maximum neutral constituent.
Short_t ClusterAt(Int_t idx) const
UShort_t GetNumberOfClusters() const
AliVParticle * GetLeadingTrack(TClonesArray *tracks) const
UShort_t GetMatchingType() const
Double32_t fAreaPhi
Jet phi area.
void AddFlavourTrack(AliVParticle *hftrack)
EFlavourTag
Bit definition for the flavor tagging.
UShort_t fMatched
! 0 or 1 if it is matched with one of the closest jets; 2 if it is not matched
std::vector< int > SortConstituentsPt(TClonesArray *tracks) const
std::vector< TLorentzVector > fGhosts
! Vector containing the ghost particles
Double_t OneOverPt() const
Double_t PtSubVect() const
Double32_t fArea
Jet transverse area.
Double_t MaxTrackPt() const
AliVCluster * GetLeadingCluster(TClonesArray *clusters) const
AliEmcalJet * fTaggedJet
! Jet tagged to this jet
Int_t ContainsTrack(AliVParticle *track, TClonesArray *tracks) const
Double_t Phi_0_2pi() const
TLorentzVector SubtractRhoVect(Double_t rho, Bool_t save=kFALSE)
Double32_t fAreaEta
Jet eta area.
void SetPtSub(Double_t ps)
void SetMaxChargedPt(Double32_t t)
void SetNEF(Double_t nef)
const Double_t * PID() const
Double_t MaxNeutralPt() const
void AddGhost(const Double_t dPx, const Double_t dPy, const Double_t dPz, const Double_t dE)
Double_t GetZ(const Double_t trkPx, const Double_t trkPy, const Double_t trkPz) const
Int_t fFlavourTagging
Tag jet with a flavor (use bits defined in enum EFlavourTag)
AliEmcalJet * SecondClosestJet() const
Double_t DeltaR(const AliVParticle *part) const
bool operator()(const std::pair< Double_t, Int_t > &p1, const std::pair< Double_t, Int_t > &p2)
Double32_t fPtEmc
Pt in EMCAL acceptance.
void SetNumberOfCharged(Int_t n)
This class contains the derivative subtraction operators for jet shapes.
void SetAreaEta(Double_t a)
Jet is tagged to contain a D0 meson.
Double32_t fPt
Jet transverse momentum.
std::ostream & operator<<(std::ostream &in, const AliEmcalJet &jet)
Bool_t IsInsideEmcal() const
void SetClosestJet(AliEmcalJet *j, Double_t d)
Double32_t fEta
Jet pseudo-rapidity.
Double32_t fMaxCPt
Pt of maximum charged constituent.
Short_t TrackAt(Int_t idx) const
Double_t SecondClosestJetDistance() const
Bool_t TestFlavourTag(Int_t tag) const
Double32_t fAreaEmc
Area on EMCAL surface (determined by ghosts in EMCal acceptance)
Double_t MaxClusterPt() const
Represent a jet reconstructed using the EMCal jet framework.
Int_t fNn
Number of neutral constituents.
void SetNumberOfTracks(Int_t n)
Bool_t PxPyPz(Double_t p[3]) const
const std::vector< TLorentzVector > GetGhosts() const
void SetTrigger(UInt_t trigger)
void SetFlavour(Int_t flavour)
UInt_t fTriggers
! Triggers that the jet might have fired (AliVEvent::EOfflineTriggerTypes)
Bool_t fAxisInEmcal
Whether the jet axis is inside the EMCAL acceptance.
Int_t fNEmc
Number of constituents in EMCAL acceptance.
void CreateShapeProperties()
Double32_t fPhi
Jet axis azimuthal angle.
AliEmcalJet * fClosestJets[2]
! If this is MC it contains the two closest detector level jets in order of distance and viceversa ...
AliEmcalJetShapeProperties * GetShapeProperties() const
void AddTrigger(UInt_t trigger)
void SetAreaPhi(Double_t a)
void SetPtEmc(Double_t pt)
Bool_t IsTriggerJet(UInt_t trigger=AliVEvent::kEMCEJE) const
Double32_t fNEF
Jet Neutral Energy Fraction.
Double32_t fClosestJetsDist[2]
! Distance from the two closest jets
UShort_t fMatchingType
! Matching type
Int_t Compare(const TObject *obj) const
Double_t MaxPartPt() const
void SetMatchedToClosest(UShort_t m)
void SetNumberOfClusters(Int_t n)
void SetAxisInEmcal(Bool_t b)
TObjArray * fFlavourTracks
void SetAreaEmc(Double_t a)
void PrintConstituents(TClonesArray *tracks, TClonesArray *clusters) const
void SetNumberOfNeutrals(Int_t n)