]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - PWGJE/EMCALJetTasks/AliJetContainer.h
Protection against re-initialization of histograms if not already
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliJetContainer.h
... / ...
CommitLineData
1#ifndef AliJetContainer_H
2#define AliJetContainer_H
3
4// $Id$
5
6class TClonesArray;
7class TString;
8
9class AliEMCALGeometry;
10class AliEmcalJet;
11class AliVEvent;
12class AliParticleContainer;
13class AliClusterContainer;
14class AliLocalRhoParameter;
15
16#include "AliRhoParameter.h"
17
18#include "AliEmcalContainer.h"
19
20class AliJetContainer : public AliEmcalContainer {
21 public:
22
23 enum JetAcceptanceType {
24 kTPC = 0, // TPC acceptance
25 kEMCAL = 1, // EMCal acceptance
26 kUser = 2 // User defined acceptance
27 };
28
29
30 AliJetContainer();
31 AliJetContainer(const char *name);
32 virtual ~AliJetContainer() {;}
33
34 void SetEMCALGeometry();
35 void SetEMCALGeometry(AliEMCALGeometry *p) {fGeom = p;}
36 void LoadRho(AliVEvent *event);
37 void LoadLocalRho(AliVEvent *event);
38
39 void SetJetAcceptanceType(JetAcceptanceType type) { fJetAcceptanceType = type ; }
40 void ResetCuts();
41 void SetJetEtaPhiEMCAL() ;
42 void SetJetEtaPhiTPC() ;
43 void SetRunNumber(Int_t r) { fRunNumber = r; }
44 void SetJetEtaLimits(Float_t min, Float_t max) { fJetMinEta = min, fJetMaxEta = max ; }
45 void SetJetPhiLimits(Float_t min, Float_t max) { fJetMinPhi = min, fJetMaxPhi = max ; }
46 void SetJetAreaCut(Float_t cut) { fJetAreaCut = cut ; }
47 void SetPercAreaCut(Float_t p) { if(fJetRadius==0.) AliWarning("JetRadius not set. Area cut will be 0");
48 fJetAreaCut = p*TMath::Pi()*fJetRadius*fJetRadius; }
49 void SetZLeadingCut(Float_t zemc, Float_t zch) { fZLeadingEmcCut = zemc; fZLeadingChCut = zch ; }
50 void SetNEFCut(Float_t min = 0., Float_t max = 1.) { fNEFMinCut = min; fNEFMaxCut = max; }
51 void SetAreaEmcCut(Double_t a = 0.99) { fAreaEmcCut = a ; }
52 void SetJetPtCut(Float_t cut) { fJetPtCut = cut ; }
53 void SetJetRadius(Float_t r) { fJetRadius = r ; }
54 virtual void SetRhoName(const char *n) { fRhoName = n ; }
55 virtual void SetLocalRhoName(const char *n) { fLocalRhoName = n ; }
56 void SetFlavourCut(Int_t myflavour) { fFlavourSelection = myflavour;}
57 void SetMaxClusterPt(Float_t b) { fMaxClusterPt = b ; }
58 void SetMaxTrackPt(Float_t b) { fMaxTrackPt = b ; }
59 void SetPtBiasJetClus(Float_t b) { fPtBiasJetClus = b ; }
60 void SetNLeadingJets(Int_t t) { fNLeadingJets = t ; }
61 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 ; }
65 void ConnectParticleContainer(AliParticleContainer *c) { fParticleContainer = c ; }
66 void ConnectClusterContainer(AliClusterContainer *c) { fClusterContainer = c ; }
67 AliEmcalJet *GetLeadingJet(const char* opt="") ;
68 AliEmcalJet *GetJet(Int_t i) const;
69 AliEmcalJet *GetAcceptJet(Int_t i) const;
70 AliEmcalJet *GetJetWithLabel(Int_t lab) const;
71 AliEmcalJet *GetAcceptJetWithLabel(Int_t lab) const;
72 AliEmcalJet *GetNextAcceptJet(Int_t i=-1) ;
73 AliEmcalJet *GetNextJet(Int_t i=-1) ;
74 void GetMomentum(TLorentzVector &mom, Int_t i) const;
75 Bool_t AcceptJet(AliEmcalJet* jet) const;
76 Bool_t AcceptBiasJet(AliEmcalJet* jet) const;
77 Int_t GetFlavourCut() const {return fFlavourSelection;}
78 Int_t GetNJets() const {return GetNEntries();}
79 Double_t GetLeadingHadronPt(AliEmcalJet* jet) const;
80 void GetLeadingHadronMomentum(TLorentzVector &mom, AliEmcalJet* jet) const;
81 Double_t GetZ(AliEmcalJet *jet, TLorentzVector mom) const;
82 Double_t GetZLeadingEmc(AliEmcalJet *jet) const;
83 Double_t GetZLeadingCharged(AliEmcalJet *jet) const;
84 AliRhoParameter *GetRhoParameter() {return fRho;}
85 Double_t GetRhoVal() const {if (fRho) return fRho->GetVal(); else return 0;}
86 const TString& GetRhoName() const {return fRhoName;}
87 AliLocalRhoParameter *GetLocalRhoParameter() const {return fLocalRho;}
88 const TString& GetLocalRhoName() const {return fLocalRhoName;}
89 Double_t GetJetPtCorr(Int_t i) const;
90 Double_t GetJetPtCorrLocal(Int_t i) const;
91 Float_t GetJetRadius() const {return fJetRadius;}
92 Float_t GetJetEtaMin() const {return fJetMinEta;}
93 Float_t GetJetEtaMax() const {return fJetMaxEta;}
94 Float_t GetJetPhiMin() const {return fJetMinPhi;}
95 Float_t GetJetPhiMax() const {return fJetMaxPhi;}
96 void SetClassName(const char *clname);
97 void SetArray(AliVEvent *event);
98 AliParticleContainer *GetParticleContainer() {return fParticleContainer;}
99 AliClusterContainer *GetClusterContainer() {return fClusterContainer;}
100
101 protected:
102 JetAcceptanceType fJetAcceptanceType; // acceptance type
103 Float_t fJetRadius; // jet radius
104 TString fRhoName; // Name of rho object
105 TString fLocalRhoName; // Name of local rho object
106 Int_t fFlavourSelection; // selection on jet flavour
107 Float_t fPtBiasJetTrack; // select jets with a minimum pt track
108 Float_t fPtBiasJetClus; // select jets with a minimum pt cluster
109 Float_t fJetPtCut; // cut on jet pt
110 Float_t fJetAreaCut; // cut on jet area
111 Float_t fAreaEmcCut; // minimum cut on jet emcal area
112 Float_t fJetMinEta; // minimum eta jet acceptance
113 Float_t fJetMaxEta; // maximum eta jet acceptance
114 Float_t fJetMinPhi; // minimum phi jet acceptance
115 Float_t fJetMaxPhi; // maximum phi jet acceptance
116 Float_t fMaxClusterPt; // maximum cluster constituent pt to accept the jet
117 Float_t fMaxTrackPt; // maximum track constituent pt to accept the jet
118 Float_t fZLeadingEmcCut; // maximum z,leading neutral
119 Float_t fZLeadingChCut; // maximum z,leading charged
120 Float_t fNEFMinCut; // minimum NEF in a jet
121 Float_t fNEFMaxCut; // maximum NEF in a jet
122 Int_t fLeadingHadronType; // 0 = charged, 1 = neutral, 2 = both
123 Int_t fNLeadingJets; // how many jets are to be considered the leading jet(s)
124 UInt_t fJetBitMap; // bit map of accepted jets
125 UInt_t fJetTrigger; // jet trigger
126 AliParticleContainer *fParticleContainer; // particle container (jet constituents)
127 AliClusterContainer *fClusterContainer; // cluster container (jet constituents)
128
129 AliRhoParameter *fRho; //! event rho for these jets
130 AliLocalRhoParameter *fLocalRho; //! event local rho for these jets
131 AliEMCALGeometry *fGeom; //! emcal geometry
132 Int_t fRunNumber; //! run number
133
134 private:
135 AliJetContainer(const AliJetContainer& obj); // copy constructor
136 AliJetContainer& operator=(const AliJetContainer& other); // assignment
137
138 ClassDef(AliJetContainer,6);
139
140};
141
142#endif