new SM not activate/masked (from Marta)
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliJetContainer.h
CommitLineData
421b12a3 1#ifndef AliJetContainer_H
2#define AliJetContainer_H
3
4//
5// container with name, TClonesArray and cuts for jets
6//
7
8class TObjArray;
9class TClonesArray;
10class TString;
11class TList;
12class AliEmcalParticle;
13class AliMCParticle;
14class AliVCluster;
15class AliVTrack;
16class AliVParticle;
17class AliVCaloCells;
18class TH1F;
19class AliEMCALGeometry;
20class AliEmcalJet;
21class AliVEvent;
22
23#include "Rtypes.h"
24#include <TArrayS.h>
25#include "TString.h"
26#include "AliLog.h"
27#include "AliRhoParameter.h"
28#include "AliEmcalContainer.h"
29
30
31class AliJetContainer : public AliEmcalContainer {
32 public:
33 enum JetAcceptanceType {
34 kTPC = 0, // TPC acceptance
35 kEMCAL = 1, // EMCal acceptance
36 kUser = 2, // User defined acceptance
37 };
38
39
40 AliJetContainer();
41 AliJetContainer(const char *name);
42 virtual ~AliJetContainer();
43
44 void SetJetArray(AliVEvent *event);
45 void SetEMCALGeometry();
46 void SetEMCALGeometry(AliEMCALGeometry *p) {fGeom = p;}
47 void LoadRho(AliVEvent *event);
48
49 void SetJetAcceptanceType(JetAcceptanceType type) { fJetAcceptanceType = type ; }
50
51 void ResetCuts();
52
53 void SetJetEtaPhiEMCAL() ;
54 void SetJetEtaPhiTPC() ;
55
56 void SetJetEtaLimits(Float_t min, Float_t max) { fJetMinEta = min, fJetMaxEta = max ; }
57 void SetJetPhiLimits(Float_t min, Float_t max) { fJetMinPhi = min, fJetMaxPhi = max ; }
58 void SetJetAreaCut(Float_t cut) { fJetAreaCut = cut ; }
59 void SetPercAreaCut(Float_t p) { if(fJetRadius==0.) AliWarning("JetRadius not set. Area cut will be 0"); fJetAreaCut = p*TMath::Pi()*fJetRadius*fJetRadius; }
60
61 void SetAreaEmcCut(Double_t a = 0.99) { fAreaEmcCut = a ; }
62 void SetJetPtCut(Float_t cut) { fJetPtCut = cut ; }
63 void SetJetRadius(Float_t r) { fJetRadius = r ; }
64 virtual void SetRhoName(const char *n) { fRhoName = n ; }
65 void SetMaxClusterPt(Float_t b) { fMaxClusterPt = b ; }
66 void SetMaxTrackPt(Float_t b) { fMaxTrackPt = b ; }
67 void SetPtBiasJetClus(Float_t b) { fPtBiasJetClus = b ; }
68 void SetNLeadingJets(Int_t t) { fNLeadingJets = t ; }
69 void SetPtBiasJetTrack(Float_t b) { fPtBiasJetTrack = b ; }
70
71 void SetLeadingHadronType(Int_t t) { fLeadingHadronType = t ; }
72 void SetJetBitMap(UInt_t m) { fJetBitMap = m ; }
73
74 AliEmcalJet *GetJet(Int_t i) const;
75 AliEmcalJet *GetAcceptJet(Int_t i) const;
76 virtual Bool_t AcceptJet(AliEmcalJet* jet) const;
77 Bool_t AcceptBiasJet(AliEmcalJet* jet) const;
78 Int_t GetNJets() const {return GetNEntries();}
79 Double_t GetLeadingHadronPt(AliEmcalJet* jet) const;
80 AliRhoParameter *GetRhoParameter() {return fRho;}
81 Double_t GetRhoVal() const {return fRho->GetVal();}
82 const TString& GetRhoName() const {return fRhoName;}
83 Double_t GetJetPtCorr(Int_t i) const;
84
85 protected:
86 JetAcceptanceType fJetAcceptanceType; // acceptance type
87 Float_t fJetRadius; // jet radius
88 TString fRhoName; // Name of rho object
89 Float_t fPtBiasJetTrack; // select jets with a minimum pt track
90 Float_t fPtBiasJetClus; // select jets with a minimum pt cluster
91 Float_t fJetPtCut; // cut on jet pt
92 Float_t fJetAreaCut; // cut on jet area
93 Float_t fAreaEmcCut; // minimum cut on jet emcal area
94 Float_t fJetMinEta; // minimum eta jet acceptance
95 Float_t fJetMaxEta; // maximum eta jet acceptance
96 Float_t fJetMinPhi; // minimum phi jet acceptance
97 Float_t fJetMaxPhi; // maximum phi jet acceptance
98 Float_t fMaxClusterPt; // maximum cluster constituent pt to accept the jet
99 Float_t fMaxTrackPt; // maximum track constituent pt to accept the jet
100 Int_t fLeadingHadronType; // 0 = charged, 1 = neutral, 2 = both
101 Int_t fNLeadingJets; // how many jets are to be considered the leading jet(s)
102 UInt_t fJetBitMap; // bit map of accepted jets
103
104 AliRhoParameter *fRho; //!event rho for these jets
105
106 AliEMCALGeometry *fGeom; //!emcal geometry
107
108 private:
109 AliJetContainer(const AliJetContainer& obj); // copy constructor
110 AliJetContainer& operator=(const AliJetContainer& other); // assignment
111
112 ClassDef(AliJetContainer,1);
113
114};
115
116#endif
117
118