AliPhysics  cdeda5a (cdeda5a)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliJetContainer.h
Go to the documentation of this file.
1 #ifndef ALIJETCONTAINER_H
2 #define ALIJETCONTAINER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 class TClonesArray;
7 class TString;
8 
9 class AliEMCALGeometry;
10 class AliEmcalJet;
11 class AliVEvent;
15 
16 #include <TMath.h>
17 #include <TLorentzVector.h>
18 #include "AliRhoParameter.h"
19 #include "AliParticleContainer.h"
20 #include "AliLog.h"
21 #include "AliVEvent.h"
22 #include "AliEmcalJet.h"
23 
24 #if !(defined(__CINT__) || defined(__MAKECINT__))
27 #endif
28 
38  public:
39 
40  enum EJetType_t {
44  };
45 
46  enum EJetAlgo_t {
55  };
56 
58  E_scheme = 0,
59  pt_scheme = 1,
61  Et_scheme = 3,
66  };
67 
81  };
82 
84  AliJetContainer(const char *name);
85  AliJetContainer(EJetType_t jetType, EJetAlgo_t jetAlgo, ERecoScheme_t recoScheme, Double_t radius, AliParticleContainer* partCont, AliClusterContainer* clusCont, TString tag);
86  virtual ~AliJetContainer() {;}
87 
88  void LoadRho(const AliVEvent *event);
89  void LoadLocalRho(const AliVEvent *event);
90  void LoadRhoMass(const AliVEvent *event);
91 
93  void PrintCuts();
94  void ResetCuts();
95  void SetJetEtaLimits(Float_t min, Float_t max) { SetEtaLimits(min, max) ; }
96  void SetJetPhiLimits(Float_t min, Float_t max) { SetPhiLimits(min, max) ; }
97  void SetJetPtCut(Float_t cut) { SetMinPt(cut) ; }
98  void SetJetPtCutMax(Float_t cut) { SetMaxPt(cut) ; }
99  void SetRunNumber(Int_t r) { fRunNumber = r; }
100  void SetJetRadius(Float_t r) { fJetRadius = r ; }
101  void SetJetAreaCut(Float_t cut) { fJetAreaCut = cut ; }
102  void SetPercAreaCut(Float_t p) { if(fJetRadius==0.) AliWarning("JetRadius not set. Area cut will be 0");
103  fJetAreaCut = p*TMath::Pi()*fJetRadius*fJetRadius; }
104  void SetAreaEmcCut(Double_t a = 0.99) { fAreaEmcCut = a ; }
105  void SetZLeadingCut(Float_t zemc, Float_t zch) { fZLeadingEmcCut = zemc; fZLeadingChCut = zch ; }
106  void SetNEFCut(Float_t min = 0., Float_t max = 1.) { fNEFMinCut = min; fNEFMaxCut = max; }
107  void SetFlavourCut(Int_t myflavour) { fFlavourSelection = myflavour;}
117  void SetJetTrigger(UInt_t t=AliVEvent::kEMCEJE) { fJetTrigger = t ; }
118  void SetTagStatus(Int_t i) { fTagStatus = i ; }
119 
120  void SetRhoName(const char *n) { fRhoName = n ; }
121  void SetLocalRhoName(const char *n) { fLocalRhoName = n ; }
122  void SetRhoMassName(const char *n) { fRhoMassName = n ; }
123 
126 
127 
130 
131  AliEmcalJet *GetLeadingJet(const char* opt="") ;
132  AliEmcalJet *GetJet(Int_t i) const;
133  AliEmcalJet *GetAcceptJet(Int_t i) const;
136  Bool_t GetMomentumFromJet(TLorentzVector &mom, const AliEmcalJet* jet, Double_t mass) const;
137  Bool_t GetMomentumFromJet(TLorentzVector &mom, const AliEmcalJet* jet) const;
138  Bool_t GetMomentum(TLorentzVector &mom, Int_t i) const;
139  Bool_t GetAcceptMomentum(TLorentzVector &mom, Int_t i) const;
140  Bool_t GetNextMomentum(TLorentzVector &mom);
141  Bool_t GetNextAcceptMomentum(TLorentzVector &mom);
142  virtual Bool_t AcceptObject(Int_t i, UInt_t &rejectionReason) const { return AcceptJet(i, rejectionReason);}
143  virtual Bool_t AcceptObject(const TObject* obj, UInt_t &rejectionReason) const { return AcceptJet(dynamic_cast<const AliEmcalJet*>(obj), rejectionReason);}
144  virtual Bool_t AcceptJet(Int_t i, UInt_t &rejectionReason) const;
145  virtual Bool_t AcceptJet(const AliEmcalJet* jet, UInt_t &rejectionReason) const;
146  virtual Bool_t ApplyJetCuts(const AliEmcalJet* clus, UInt_t &rejectionReason) const;
147  virtual Bool_t CheckTpcHolesOverlap(const AliEmcalJet* clus,UInt_t &rejectionReason) const;
149  Int_t GetNJets() const {return GetNEntries();}
151 
152  Double_t GetLeadingHadronPt(const AliEmcalJet* jet) const;
153  void GetLeadingHadronMomentum(TLorentzVector &mom, const AliEmcalJet* jet) const;
154  Double_t GetZ(const AliEmcalJet *jet, const TLorentzVector& mom) const;
155  Double_t GetZLeadingEmc(const AliEmcalJet *jet) const;
156  Double_t GetZLeadingCharged(const AliEmcalJet *jet) const;
158  Double_t GetRhoVal() const {if (fRho) return fRho->GetVal(); else return 0;}
159  const TString& GetRhoName() const {return fRhoName;}
161  const TString& GetLocalRhoName() const {return fLocalRhoName;}
163  Double_t GetRhoMassVal() const {if (fRhoMass) return fRhoMass->GetVal(); else return 0;}
164  const TString& GetRhoMassName() const {return fRhoMassName;}
165  Double_t GetJetPtCorr(Int_t i) const;
167  Float_t GetJetRadius() const {return fJetRadius ; }
168  Double_t GetJetEtaMin() const {return GetMinEta(); }
169  Double_t GetJetEtaMax() const {return GetMaxEta(); }
170  Double_t GetJetPhiMin() const {return GetMinPhi(); }
171  Double_t GetJetPhiMax() const {return GetMaxPhi(); }
172  Double_t GetJetPtCut() const {return GetMinPt() ; }
173  Double_t GetJetPtCutMax() const {return GetMaxPt() ; }
174 
175  void SetArray(const AliVEvent *event);
178  Double_t GetFractionSharedPt(const AliEmcalJet *jet, AliParticleContainer *cont2 = 0x0) const;
179 
180  const char* GetTitle() const;
181 
182  static TString GenerateJetName(EJetType_t jetType, EJetAlgo_t jetAlgo, ERecoScheme_t recoScheme, Double_t radius, AliParticleContainer* partCont, AliClusterContainer* clusCont, TString tag);
183 
184 #if !(defined(__CINT__) || defined(__MAKECINT__))
185  const AliJetIterableContainer all() const;
186  const AliJetIterableContainer accepted() const;
187 
190 #endif
191 
192  protected:
219  AliEMCALGeometry *fGeom;
223  private:
224  AliJetContainer(const AliJetContainer& obj); // copy constructor
225  AliJetContainer& operator=(const AliJetContainer& other); // assignment
226 
228 };
229 
230 #endif
void SetAreaEmcCut(Double_t a=0.99)
EMCal fiducial acceptance (each eta, phi edge narrowed by jet R)
UInt_t fJetTrigger
minimum number of constituents in jet
Float_t fMinTrackPt
maximum cluster constituent pt to accept the jet
Float_t fJetAreaCut
selection on jet flavour
Double_t GetRhoVal() const
Float_t fJetRadius
Jet acceptance type cut, see AliEmcalJet::JetAcceptanceType.
const TString & GetRhoName() const
double Double_t
Definition: External.C:58
void LoadRho(const AliVEvent *event)
Double_t GetJetEtaMin() const
AliRhoParameter * fRhoMass
! event rho mass for these jets
virtual Bool_t ApplyJetCuts(const AliEmcalJet *clus, UInt_t &rejectionReason) const
DCal acceptance.
Definition: AliEmcalJet.h:62
AliRhoParameter * fRho
cluster container (jet constituents)
Double_t GetJetPhiMax() const
void SetLeadingHadronType(Int_t t)
Double_t mass
void SetPtBiasJetTrack(Float_t b)
void SetMinNConstituents(Int_t n)
const TString & GetLocalRhoName() const
ClassDef(AliJetContainer, 17)
Float_t fNEFMinCut
maximum z,leading charged
Double_t GetJetEtaMax() const
AliClusterContainer * GetClusterContainer() const
Double_t GetJetPtCorrLocal(Int_t i) const
AliJetContainer & operator=(const AliJetContainer &other)
virtual Bool_t AcceptJet(Int_t i, UInt_t &rejectionReason) const
Full acceptance, i.e. no acceptance cut applied – left to user.
Definition: AliEmcalJet.h:64
TCanvas * c
Definition: TestFitELoss.C:172
Double_t GetJetPtCutMax() const
void LoadRhoMass(const AliVEvent *event)
Full acceptance, i.e. no acceptance cut applied – left to user.
void SetPercAreaCut(Float_t p)
AliParticleContainer * fParticleContainer
jet tag status
virtual Bool_t CheckTpcHolesOverlap(const AliEmcalJet *clus, UInt_t &rejectionReason) const
void SetPtBiasJetClus(Float_t b)
Bool_t GetMomentum(TLorentzVector &mom, Int_t i) const
static TString GenerateJetName(EJetType_t jetType, EJetAlgo_t jetAlgo, ERecoScheme_t recoScheme, Double_t radius, AliParticleContainer *partCont, AliClusterContainer *clusCont, TString tag)
DCal fiducial acceptance (each eta, phi edge narrowed by jet R)
Container for particles within the EMCAL framework.
const AliJetIterableMomentumContainer all_momentum() const
AliLocalRhoParameter * fLocalRho
! event local rho for these jets
Float_t fAreaEmcCut
cut on jet area
const TString & GetRhoMassName() const
void SetRhoName(const char *n)
TPC fiducial acceptance (each eta edge narrowed by jet R)
Definition: AliEmcalJet.h:59
Int_t fLeadingHadronType
maximum NEF in a jet
AliParticleContainer * GetParticleContainer() const
Double_t fTpcHoleWidth
position(in radians) of the malfunctioning TPC sector
AliEmcalJet * GetLeadingJet(const char *opt="")
void GetLeadingHadronMomentum(TLorentzVector &mom, const AliEmcalJet *jet) const
Bool_t GetAcceptMomentum(TLorentzVector &mom, Int_t i) const
void SetMinTrackPt(Float_t b)
Double_t GetJetPhiMin() const
const AliJetIterableMomentumContainer accepted_momentum() const
int Int_t
Definition: External.C:63
Int_t fRunNumber
! run number
void SetJetRadius(Float_t r)
void SetJetPtCut(Float_t cut)
TPC acceptance.
Definition: AliEmcalJet.h:58
unsigned int UInt_t
Definition: External.C:33
JetAcceptanceType
Bit definition for jet geometry acceptance. Defined here for backwards compatibility. This will be removed. Please use AliEmcalJet::JetAcceptanceType in your code.
DCal acceptance.
Double_t GetLeadingHadronPt(const AliEmcalJet *jet) const
float Float_t
Definition: External.C:68
void SetNLeadingJets(Int_t t)
void SetJetPhiLimits(Float_t min, Float_t max)
Float_t fMaxClusterPt
maximum cluster constituent pt to accept the jet
Bool_t GetNextAcceptMomentum(TLorentzVector &mom)
EMCal acceptance.
Definition: AliEmcalJet.h:60
const char * GetTitle() const
Int_t GetNJets() const
void SetMinClusterPt(Float_t b)
Float_t fMinClusterPt
minimum cut on jet emcal area
EMCal acceptance.
void SetRhoMassName(const char *n)
TString fLocalRhoName
Name of rho object.
void SetTpcHolePos(Double_t b)
Double_t GetJetPtCut() const
Double_t GetRhoMassVal() const
Float_t fZLeadingChCut
maximum z,leading neutral
virtual Bool_t AcceptObject(Int_t i, UInt_t &rejectionReason) const
TPC fiducial acceptance (each eta edge narrowed by jet R)
AliEmcalJet * GetNextAcceptJet()
AliRhoParameter * GetRhoParameter()
virtual ~AliJetContainer()
void ConnectParticleContainer(AliParticleContainer *c)
AliEmcalJet * GetNextJet()
AliEMCALGeometry * fGeom
! emcal geometry
TPC acceptance.
Float_t GetJetRadius() const
Int_t fNLeadingJets
0 = charged, 1 = neutral, 2 = both
TString fRhoMassName
Name of local rho object.
Double_t GetZLeadingCharged(const AliEmcalJet *jet) const
Int_t GetFlavourCut() const
AliLocalRhoParameter * GetLocalRhoParameter() const
EMCALIterableContainer::AliEmcalIterableContainerT< AliEmcalJet, EMCALIterableContainer::operator_star_object< AliEmcalJet > > AliJetIterableContainer
void SetArray(const AliVEvent *event)
void LoadLocalRho(const AliVEvent *event)
Int_t fTagStatus
jet trigger
EMCALIterableContainer::AliEmcalIterableContainerT< AliEmcalJet, EMCALIterableContainer::operator_star_pair< AliEmcalJet > > AliJetIterableMomentumContainer
void SetJetTrigger(UInt_t t=AliVEvent::kEMCEJE)
void SetLocalRhoName(const char *n)
Float_t fZLeadingEmcCut
maximum track constituent pt to accept the jet
void SetTagStatus(Int_t i)
AliEmcalJet * GetAcceptJet(Int_t i) const
void SetRunNumber(Int_t r)
Represent a jet reconstructed using the EMCal jet framework.
Definition: AliEmcalJet.h:44
Double_t GetZLeadingEmc(const AliEmcalJet *jet) const
Float_t fMaxTrackPt
maximum track constituent pt to accept the jet
Double_t GetFractionSharedPt(const AliEmcalJet *jet, AliParticleContainer *cont2=0x0) const
void SetMaxClusterPt(Float_t b)
void SetTpcHoleWidth(Double_t b)
AliRhoParameter * GetRhoMassParameter()
void SetJetAcceptanceType(UInt_t type)
DCal fiducial acceptance (each eta, phi edge narrowed by jet R)
Definition: AliEmcalJet.h:63
const AliJetIterableContainer accepted() const
bool Bool_t
Definition: External.C:53
Float_t fNEFMaxCut
minimum NEF in a jet
Bool_t GetMomentumFromJet(TLorentzVector &mom, const AliEmcalJet *jet, Double_t mass) const
void ConnectClusterContainer(AliClusterContainer *c)
void SetMaxTrackPt(Float_t b)
void SetJetEtaLimits(Float_t min, Float_t max)
AliClusterContainer * fClusterContainer
particle container (jet constituents)
Bool_t GetNextMomentum(TLorentzVector &mom)
Container structure for EMCAL clusters.
void SetZLeadingCut(Float_t zemc, Float_t zch)
EMCal fiducial acceptance (each eta, phi edge narrowed by jet R)
Definition: AliEmcalJet.h:61
Int_t fMinNConstituents
how many jets are to be considered the leading jet(s)
Container for jet within the EMCAL jet framework.
void SetFlavourCut(Int_t myflavour)
void SetJetPtCutMax(Float_t cut)
Double_t GetZ(const AliEmcalJet *jet, const TLorentzVector &mom) const
void SetJetAreaCut(Float_t cut)
void SetNEFCut(Float_t min=0., Float_t max=1.)
TString fRhoName
jet radius
virtual Bool_t AcceptObject(const TObject *obj, UInt_t &rejectionReason) const
AliEmcalJet * GetJet(Int_t i) const
const AliJetIterableContainer all() const
Double_t GetJetPtCorr(Int_t i) const
Int_t fFlavourSelection
Name of rho mass object.