1 #ifndef AliJetContainer_H
2 #define AliJetContainer_H
5 // container with name, TClonesArray and cuts for jets
11 class AliEMCALGeometry;
14 class AliParticleContainer;
15 class AliClusterContainer;
17 #include "AliRhoParameter.h"
19 #include "AliEmcalContainer.h"
21 class AliJetContainer : public AliEmcalContainer {
24 enum JetAcceptanceType {
25 kTPC = 0, // TPC acceptance
26 kEMCAL = 1, // EMCal acceptance
27 kUser = 2 // User defined acceptance
32 AliJetContainer(const char *name);
33 virtual ~AliJetContainer() {;}
35 void SetEMCALGeometry();
36 void SetEMCALGeometry(AliEMCALGeometry *p) {fGeom = p;}
37 void LoadRho(AliVEvent *event);
39 void SetJetAcceptanceType(JetAcceptanceType type) { fJetAcceptanceType = type ; }
43 void SetJetEtaPhiEMCAL() ;
44 void SetJetEtaPhiTPC() ;
45 void SetRunNumber(Int_t r) { fRunNumber = r; }
47 void SetJetEtaLimits(Float_t min, Float_t max) { fJetMinEta = min, fJetMaxEta = max ; }
48 void SetJetPhiLimits(Float_t min, Float_t max) { fJetMinPhi = min, fJetMaxPhi = max ; }
49 void SetJetAreaCut(Float_t cut) { fJetAreaCut = cut ; }
50 void SetPercAreaCut(Float_t p) { if(fJetRadius==0.) AliWarning("JetRadius not set. Area cut will be 0"); fJetAreaCut = p*TMath::Pi()*fJetRadius*fJetRadius; }
52 void SetAreaEmcCut(Double_t a = 0.99) { fAreaEmcCut = a ; }
53 void SetJetPtCut(Float_t cut) { fJetPtCut = cut ; }
54 void SetJetRadius(Float_t r) { fJetRadius = r ; }
55 virtual void SetRhoName(const char *n) { fRhoName = n ; }
56 void SetMaxClusterPt(Float_t b) { fMaxClusterPt = b ; }
57 void SetMaxTrackPt(Float_t b) { fMaxTrackPt = b ; }
58 void SetPtBiasJetClus(Float_t b) { fPtBiasJetClus = b ; }
59 void SetNLeadingJets(Int_t t) { fNLeadingJets = t ; }
60 void SetPtBiasJetTrack(Float_t b) { fPtBiasJetTrack = b ; }
62 void SetLeadingHadronType(Int_t t) { fLeadingHadronType = t ; }
63 void SetJetBitMap(UInt_t m) { fJetBitMap = m ; }
64 void SetJetTrigger(UInt_t t=AliVEvent::kEMCEJE) { fJetTrigger = t ; }
66 void ConnectParticleContainer(AliParticleContainer *c) { fParticleContainer = c ; }
67 void ConnectClusterContainer(AliClusterContainer *c) { fClusterContainer = c ; }
69 AliEmcalJet *GetLeadingJet(const char* opt="") ;
70 AliEmcalJet *GetJet(Int_t i) const;
71 AliEmcalJet *GetAcceptJet(Int_t i) const;
72 AliEmcalJet *GetJetWithLabel(Int_t lab) const;
73 AliEmcalJet *GetAcceptJetWithLabel(Int_t lab) const;
74 AliEmcalJet *GetNextAcceptJet(Int_t i=-1) ;
75 AliEmcalJet *GetNextJet(Int_t i=-1) ;
76 void GetMomentum(TLorentzVector &mom, Int_t i) const;
77 Bool_t AcceptJet(AliEmcalJet* jet) const;
78 Bool_t AcceptBiasJet(AliEmcalJet* jet) const;
79 Int_t GetNJets() const {return GetNEntries();}
80 Double_t GetLeadingHadronPt(AliEmcalJet* jet) const;
81 void GetLeadingHadronMomentum(TLorentzVector &mom, AliEmcalJet* jet) const;
82 AliRhoParameter *GetRhoParameter() {return fRho;}
83 Double_t GetRhoVal() const { if (fRho) return fRho->GetVal(); else return 0;}
84 const TString& GetRhoName() const {return fRhoName;}
85 Double_t GetJetPtCorr(Int_t i) const;
86 Float_t GetJetRadius() const {return fJetRadius;}
87 Float_t GetJetEtaMin() const {return fJetMinEta;}
88 Float_t GetJetEtaMax() const {return fJetMaxEta;}
89 Float_t GetJetPhiMin() const {return fJetMinPhi;}
90 Float_t GetJetPhiMax() const {return fJetMaxPhi;}
91 void SetClassName(const char *clname);
92 void SetArray(AliVEvent *event);
93 AliParticleContainer *GetParticleContainer() {return fParticleContainer;}
94 AliClusterContainer *GetClusterContainer() {return fClusterContainer;}
97 JetAcceptanceType fJetAcceptanceType; // acceptance type
98 Float_t fJetRadius; // jet radius
99 TString fRhoName; // Name of rho object
100 Float_t fPtBiasJetTrack; // select jets with a minimum pt track
101 Float_t fPtBiasJetClus; // select jets with a minimum pt cluster
102 Float_t fJetPtCut; // cut on jet pt
103 Float_t fJetAreaCut; // cut on jet area
104 Float_t fAreaEmcCut; // minimum cut on jet emcal area
105 Float_t fJetMinEta; // minimum eta jet acceptance
106 Float_t fJetMaxEta; // maximum eta jet acceptance
107 Float_t fJetMinPhi; // minimum phi jet acceptance
108 Float_t fJetMaxPhi; // maximum phi jet acceptance
109 Float_t fMaxClusterPt; // maximum cluster constituent pt to accept the jet
110 Float_t fMaxTrackPt; // maximum track constituent pt to accept the jet
111 Int_t fLeadingHadronType; // 0 = charged, 1 = neutral, 2 = both
112 Int_t fNLeadingJets; // how many jets are to be considered the leading jet(s)
113 UInt_t fJetBitMap; // bit map of accepted jets
114 UInt_t fJetTrigger; // jet trigger
115 AliParticleContainer *fParticleContainer; // particle container (jet constituents)
116 AliClusterContainer *fClusterContainer; // cluster container (jet constituents)
118 AliRhoParameter *fRho; //! event rho for these jets
119 AliEMCALGeometry *fGeom; //! emcal geometry
120 Int_t fRunNumber; //! run number
123 AliJetContainer(const AliJetContainer& obj); // copy constructor
124 AliJetContainer& operator=(const AliJetContainer& other); // assignment
126 ClassDef(AliJetContainer,3);