AliPhysics  1811c8f (1811c8f)
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 
85  };
86 
88  AliJetContainer(const char *name);
89  AliJetContainer(EJetType_t jetType, EJetAlgo_t jetAlgo, ERecoScheme_t recoScheme, Double_t radius, AliParticleContainer* partCont, AliClusterContainer* clusCont, TString tag = "Jet");
90  virtual ~AliJetContainer() {;}
91 
92  void LoadRho(const AliVEvent *event);
93  void LoadLocalRho(const AliVEvent *event);
94  void LoadRhoMass(const AliVEvent *event);
95 
97  void PrintCuts();
98  void ResetCuts();
99  void SetJetEtaLimits(Float_t min, Float_t max) { SetEtaLimits(min, max) ; }
100  void SetJetPhiLimits(Float_t min, Float_t max) { SetPhiLimits(min, max) ; }
101  void SetJetPtCut(Float_t cut) { SetMinPt(cut) ; }
102  void SetJetPtCutMax(Float_t cut) { SetMaxPt(cut) ; }
103  void SetRunNumber(Int_t r) { fRunNumber = r; }
104  void SetJetRadius(Float_t r) { fJetRadius = r ; }
105  void SetJetAreaCut(Float_t cut) { fJetAreaCut = cut ; }
106  void SetPercAreaCut(Float_t p) { if(fJetRadius==0.) AliWarning("JetRadius not set. Area cut will be 0");
107  fJetAreaCut = p*TMath::Pi()*fJetRadius*fJetRadius; }
108  void SetAreaEmcCut(Double_t a = 0.99) { fAreaEmcCut = a ; }
109  void SetZLeadingCut(Float_t zemc, Float_t zch) { fZLeadingEmcCut = zemc; fZLeadingChCut = zch ; }
110  void SetNEFCut(Float_t min = 0., Float_t max = 1.) { fNEFMinCut = min; fNEFMaxCut = max; }
111  void SetFlavourCut(Int_t myflavour) { fFlavourSelection = myflavour;}
121  void SetJetTrigger(UInt_t t=AliVEvent::kEMCEJE) { fJetTrigger = t ; }
122  void SetTagStatus(Int_t i) { fTagStatus = i ; }
123 
124  void SetRhoName(const char *n) { fRhoName = n ; }
125  void SetLocalRhoName(const char *n) { fLocalRhoName = n ; }
126  void SetRhoMassName(const char *n) { fRhoMassName = n ; }
127 
130 
131 
134 
135  AliEmcalJet *GetLeadingJet(const char* opt="") ;
136  AliEmcalJet *GetJet(Int_t i) const;
137  AliEmcalJet *GetAcceptJet(Int_t i) const;
140  Bool_t GetMomentumFromJet(TLorentzVector &mom, const AliEmcalJet* jet, Double_t mass) const;
141  Bool_t GetMomentumFromJet(TLorentzVector &mom, const AliEmcalJet* jet) const;
142  Bool_t GetMomentum(TLorentzVector &mom, Int_t i) const;
143  Bool_t GetAcceptMomentum(TLorentzVector &mom, Int_t i) const;
144  Bool_t GetNextMomentum(TLorentzVector &mom);
145  Bool_t GetNextAcceptMomentum(TLorentzVector &mom);
146  virtual Bool_t AcceptObject(Int_t i, UInt_t &rejectionReason) const { return AcceptJet(i, rejectionReason);}
147  virtual Bool_t AcceptObject(const TObject* obj, UInt_t &rejectionReason) const { return AcceptJet(dynamic_cast<const AliEmcalJet*>(obj), rejectionReason);}
148  virtual Bool_t AcceptJet(Int_t i, UInt_t &rejectionReason) const;
149  virtual Bool_t AcceptJet(const AliEmcalJet* jet, UInt_t &rejectionReason) const;
150  virtual Bool_t ApplyJetCuts(const AliEmcalJet* clus, UInt_t &rejectionReason) const;
151  virtual Bool_t CheckTpcHolesOverlap(const AliEmcalJet* clus,UInt_t &rejectionReason) const;
153  Int_t GetNJets() const {return GetNEntries();}
155 
156  Double_t GetLeadingHadronPt(const AliEmcalJet* jet) const;
157  void GetLeadingHadronMomentum(TLorentzVector &mom, const AliEmcalJet* jet) const;
158  Double_t GetZ(const AliEmcalJet *jet, const TLorentzVector& mom) const;
159  Double_t GetZLeadingEmc(const AliEmcalJet *jet) const;
160  Double_t GetZLeadingCharged(const AliEmcalJet *jet) const;
162  Double_t GetRhoVal() const {if (fRho) return fRho->GetVal(); else return 0;}
163  const TString& GetRhoName() const {return fRhoName;}
165  const TString& GetLocalRhoName() const {return fLocalRhoName;}
167  Double_t GetRhoMassVal() const {if (fRhoMass) return fRhoMass->GetVal(); else return 0;}
168  const TString& GetRhoMassName() const {return fRhoMassName;}
169  Double_t GetJetPtCorr(Int_t i) const;
171  Float_t GetJetRadius() const {return fJetRadius ; }
172  Double_t GetJetEtaMin() const {return GetMinEta(); }
173  Double_t GetJetEtaMax() const {return GetMaxEta(); }
174  Double_t GetJetPhiMin() const {return GetMinPhi(); }
175  Double_t GetJetPhiMax() const {return GetMaxPhi(); }
176  Double_t GetJetPtCut() const {return GetMinPt() ; }
177  Double_t GetJetPtCutMax() const {return GetMaxPt() ; }
178 
179  void SetArray(const AliVEvent *event);
182  Double_t GetFractionSharedPt(const AliEmcalJet *jet, AliParticleContainer *cont2 = 0x0) const;
183 
184  const char* GetTitle() const;
185 
186  static TString GenerateJetName(EJetType_t jetType, EJetAlgo_t jetAlgo, ERecoScheme_t recoScheme, Double_t radius, AliParticleContainer* partCont, AliClusterContainer* clusCont, TString tag);
187 
188 #if !(defined(__CINT__) || defined(__MAKECINT__))
189  const AliJetIterableContainer all() const;
190  const AliJetIterableContainer accepted() const;
191 
194 #endif
195 
196  protected:
223  AliEMCALGeometry *fGeom;
227  private:
228  AliJetContainer(const AliJetContainer& obj); // copy constructor
229  AliJetContainer& operator=(const AliJetContainer& other); // assignment
230 
231  ClassDef(AliJetContainer, 18);
232 };
233 
234 #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
PHOS fiducial acceptance (each eta, phi edge narrowed by jet R)
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)
PHOS acceptance.
Double_t GetJetEtaMin() const
AliRhoParameter * fRhoMass
! event rho mass for these jets
PHOS acceptance.
Definition: AliEmcalJet.h:75
virtual Bool_t ApplyJetCuts(const AliEmcalJet *clus, UInt_t &rejectionReason) const
DCal acceptance – spans entire rectangular region in eta-phi (including most of PHOS) ...
Definition: AliEmcalJet.h:71
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
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:77
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:68
DCal acceptance – spans ONLY DCal (no PHOS or gap)
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:67
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 – spans entire rectangular region in eta-phi (including most of PHOS) ...
Double_t GetLeadingHadronPt(const AliEmcalJet *jet) const
float Float_t
Definition: External.C:68
void SetNLeadingJets(Int_t t)
PHOS fiducial acceptance (each eta, phi edge narrowed by jet R)
Definition: AliEmcalJet.h:76
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:69
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:51
Double_t GetZLeadingEmc(const AliEmcalJet *jet) const
DCal fiducial acceptance (each eta, phi edge narrowed by jet R)
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:72
const AliJetIterableContainer accepted() const
bool Bool_t
Definition: External.C:53
DCal acceptance – spans ONLY DCal (no PHOS or gap)
Definition: AliEmcalJet.h:73
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.
DCal fiducial acceptance (each eta, phi edge narrowed by jet R)
Definition: AliEmcalJet.h:74
void SetZLeadingCut(Float_t zemc, Float_t zch)
EMCal fiducial acceptance (each eta, phi edge narrowed by jet R)
Definition: AliEmcalJet.h:70
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.