AliPhysics  608b256 (608b256)
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 {
45  };
46 
47  enum EJetAlgo_t {
56  };
57 
59  E_scheme = 0,
60  pt_scheme = 1,
62  Et_scheme = 3,
68  };
69 
87  };
88 
90  AliJetContainer(const char *name);
91  AliJetContainer(EJetType_t jetType, EJetAlgo_t jetAlgo, ERecoScheme_t recoScheme, Double_t radius, AliParticleContainer* partCont, AliClusterContainer* clusCont, TString tag = "Jet");
92  virtual ~AliJetContainer() {;}
93 
94  void LoadRho(const AliVEvent *event);
95  void LoadLocalRho(const AliVEvent *event);
96  void LoadRhoMass(const AliVEvent *event);
97 
99  void PrintCuts();
100  void ResetCuts();
101  void SetJetEtaLimits(Float_t min, Float_t max) { SetEtaLimits(min, max) ; }
102  void SetJetPhiLimits(Float_t min, Float_t max) { SetPhiLimits(min, max) ; }
103  void SetJetPtCut(Float_t cut) { SetMinPt(cut) ; }
104  void SetJetPtCutMax(Float_t cut) { SetMaxPt(cut) ; }
105  void SetRunNumber(Int_t r) { fRunNumber = r; }
106  void SetJetRadius(Float_t r) { fJetRadius = r ; }
107  void SetJetType(EJetType_t type) { fJetType = type ; }
108  void SetJetAreaCut(Float_t cut) { fJetAreaCut = cut ; }
109  void SetPercAreaCut(Float_t p) { if(fJetRadius==0.) AliWarning("JetRadius not set. Area cut will be 0");
110  fJetAreaCut = p*TMath::Pi()*fJetRadius*fJetRadius; }
111  void SetAreaEmcCut(Double_t a = 0.99) { fAreaEmcCut = a ; }
112  void SetZLeadingCut(Float_t zemc, Float_t zch) { fZLeadingEmcCut = zemc; fZLeadingChCut = zch ; }
113  void SetNEFCut(Float_t min = 0., Float_t max = 1.) { fNEFMinCut = min; fNEFMaxCut = max; }
114  void SetFlavourCut(Int_t myflavour) { fFlavourSelection = myflavour;}
124  void SetJetTrigger(UInt_t t=AliVEvent::kEMCEJE) { fJetTrigger = t ; }
125  void SetTagStatus(Int_t i) { fTagStatus = i ; }
126 
127  void SetRhoName(const char *n) { fRhoName = n ; }
128  void SetLocalRhoName(const char *n) { fLocalRhoName = n ; }
129  void SetRhoMassName(const char *n) { fRhoMassName = n ; }
130 
133 
134 
137 
138  AliEmcalJet *GetLeadingJet(const char* opt="") ;
139  AliEmcalJet *GetJet(Int_t i) const;
140  AliEmcalJet *GetAcceptJet(Int_t i) const;
143  Bool_t GetMomentumFromJet(TLorentzVector &mom, const AliEmcalJet* jet, Double_t mass) const;
144  Bool_t GetMomentumFromJet(TLorentzVector &mom, const AliEmcalJet* jet) const;
145  Bool_t GetMomentum(TLorentzVector &mom, Int_t i) const;
146  Bool_t GetAcceptMomentum(TLorentzVector &mom, Int_t i) const;
147  Bool_t GetNextMomentum(TLorentzVector &mom);
148  Bool_t GetNextAcceptMomentum(TLorentzVector &mom);
149  virtual Bool_t AcceptObject(Int_t i, UInt_t &rejectionReason) const { return AcceptJet(i, rejectionReason);}
150  virtual Bool_t AcceptObject(const TObject* obj, UInt_t &rejectionReason) const { return AcceptJet(dynamic_cast<const AliEmcalJet*>(obj), rejectionReason);}
151  virtual Bool_t AcceptJet(Int_t i, UInt_t &rejectionReason) const;
152  virtual Bool_t AcceptJet(const AliEmcalJet* jet, UInt_t &rejectionReason) const;
153  virtual Bool_t ApplyJetCuts(const AliEmcalJet* clus, UInt_t &rejectionReason) const;
154  virtual Bool_t CheckTpcHolesOverlap(const AliEmcalJet* clus,UInt_t &rejectionReason) const;
156  Int_t GetNJets() const {return GetNEntries();}
158 
159  Double_t GetLeadingHadronPt(const AliEmcalJet* jet) const;
160  void GetLeadingHadronMomentum(TLorentzVector &mom, const AliEmcalJet* jet) const;
161  Double_t GetZ(const AliEmcalJet *jet, const TLorentzVector& mom) const;
162  Double_t GetZLeadingEmc(const AliEmcalJet *jet) const;
163  Double_t GetZLeadingCharged(const AliEmcalJet *jet) const;
165  Double_t GetRhoVal() const {if (fRho) return fRho->GetVal(); else return 0;}
166  const TString& GetRhoName() const {return fRhoName;}
168  const TString& GetLocalRhoName() const {return fLocalRhoName;}
170  Double_t GetRhoMassVal() const {if (fRhoMass) return fRhoMass->GetVal(); else return 0;}
171  const TString& GetRhoMassName() const {return fRhoMassName;}
172  Double_t GetJetPtCorr(Int_t i) const;
174  Float_t GetJetRadius() const {return fJetRadius ; }
175  Double_t GetJetEtaMin() const {return GetMinEta(); }
176  Double_t GetJetEtaMax() const {return GetMaxEta(); }
177  Double_t GetJetPhiMin() const {return GetMinPhi(); }
178  Double_t GetJetPhiMax() const {return GetMaxPhi(); }
179  Double_t GetJetPtCut() const {return GetMinPt() ; }
180  Double_t GetJetPtCutMax() const {return GetMaxPt() ; }
181 
183  EJetType_t GetJetType() const {return fJetType; }
186 
187  void SetArray(const AliVEvent *event);
190  Double_t GetFractionSharedPt(const AliEmcalJet *jet, AliParticleContainer *cont2 = 0x0) const;
191 
192  const char* GetTitle() const;
193 
194  static TString GenerateJetName(EJetType_t jetType, EJetAlgo_t jetAlgo, ERecoScheme_t recoScheme, Double_t radius, AliParticleContainer* partCont, AliClusterContainer* clusCont, TString tag);
195 
196 #if !(defined(__CINT__) || defined(__MAKECINT__))
197  const AliJetIterableContainer all() const;
198  const AliJetIterableContainer accepted() const;
199 
202 #endif
203 
204  protected:
234  AliEMCALGeometry *fGeom;
238  private:
239  AliJetContainer(const AliJetContainer& obj); // copy constructor
240  AliJetContainer& operator=(const AliJetContainer& other); // assignment
241 
242  ClassDef(AliJetContainer, 19);
243 };
244 
245 #endif
void SetAreaEmcCut(Double_t a=0.99)
EMCal fiducial acceptance (each eta, phi edge narrowed by jet R)
UInt_t fJetTrigger
jet trigger
UInt_t fJetAcceptanceType
Jet acceptance type cut, see AliEmcalJet::JetAcceptanceType.
PHOS fiducial acceptance (each eta, phi edge narrowed by jet R)
Float_t fMinTrackPt
maximum track constituent pt to accept the jet
ERecoScheme_t GetRecombinationScheme() const
Float_t fJetAreaCut
cut on jet area
Double_t GetRhoVal() const
Float_t fJetRadius
jet radius
const TString & GetRhoName() const
double Double_t
Definition: External.C:58
Double_t fTpcHolePos
position(in radians) of the malfunctioning TPC sector
void LoadRho(const AliVEvent *event)
PHOS acceptance.
Double_t GetJetEtaMin() const
AliRhoParameter * fRhoMass
! event rho mass for these jets
Double_t GetMinPhi() const
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
! event rho for these jets
Double_t GetJetPhiMax() const
Double_t GetMaxEta() 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
minimum NEF in a jet
Double_t GetJetEtaMax() const
AliClusterContainer * GetClusterContainer() const
void SetMinPt(Double_t min)
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
ERecoScheme_t fRecombinationScheme
Recombination scheme.
void LoadRhoMass(const AliVEvent *event)
Full acceptance, i.e. no acceptance cut applied – left to user.
void SetPercAreaCut(Float_t p)
AliParticleContainer * fParticleContainer
particle container (jet constituents)
EJetType_t fJetType
Jet type.
virtual Bool_t CheckTpcHolesOverlap(const AliEmcalJet *clus, UInt_t &rejectionReason) const
void SetEtaLimits(Double_t min, Double_t max)
void SetPtBiasJetClus(Float_t b)
Bool_t GetMomentum(TLorentzVector &mom, Int_t i) const
EJetType_t GetJetType() 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
minimum cut on jet emcal 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
0 = charged, 1 = neutral, 2 = both
AliParticleContainer * GetParticleContainer() const
Double_t fTpcHoleWidth
width of the malfunctioning TPC area
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 GetMaxPhi() const
Double_t GetJetPhiMin() const
EJetAlgo_t fJetAlgorithm
Jet algorithm.
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)
Double_t GetMinEta() const
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)
Double_t GetMinPt() const
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
maximum cluster constituent pt to accept the jet
void SetMaxPt(Double_t max)
EMCal acceptance.
void SetRhoMassName(const char *n)
TString fLocalRhoName
Name of local rho object.
void SetTpcHolePos(Double_t b)
Double_t GetJetPtCut() const
Double_t GetRhoMassVal() const
Float_t fZLeadingChCut
maximum z,leading charged
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
how many jets are to be considered the leading jet(s)
TString fRhoMassName
Name of rho mass 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 tag status
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 z,leading neutral
void SetTagStatus(Int_t i)
AliEmcalJet * GetAcceptJet(Int_t i) const
void SetRunNumber(Int_t r)
EJetAlgo_t GetJetAlgorithm() const
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()
Int_t GetNEntries() const
void SetJetAcceptanceType(UInt_t type)
void SetPhiLimits(Double_t min, Double_t max)
DCal fiducial acceptance (each eta, phi edge narrowed by jet R)
Definition: AliEmcalJet.h:72
UInt_t GetAcceptanceType() const
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
maximum 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
cluster container (jet constituents)
Bool_t GetNextMomentum(TLorentzVector &mom)
Container structure for EMCAL clusters.
Double_t GetMaxPt() const
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
minimum number of constituents in jet
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
Name of rho object.
virtual Bool_t AcceptObject(const TObject *obj, UInt_t &rejectionReason) const
void SetJetType(EJetType_t type)
AliEmcalJet * GetJet(Int_t i) const
const AliJetIterableContainer all() const
Double_t GetJetPtCorr(Int_t i) const
Int_t fFlavourSelection
selection on jet flavour