]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/AliJetContainer.h
DiJet analysis updates (Marta)
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliJetContainer.h
1 #ifndef AliJetContainer_H
2 #define AliJetContainer_H
3
4 //
5 // container with name, TClonesArray and cuts for jets
6 //
7
8 class TObjArray;
9 class TClonesArray;
10 class TString;
11 class TList;
12 class AliEmcalParticle;
13 class AliMCParticle;
14 class AliVCluster;
15 class AliVTrack;
16 class AliVParticle;
17 class AliVCaloCells;
18 class TH1F;
19 class AliEMCALGeometry;
20 class AliEmcalJet;
21 class 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
31 class 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   void                        SetRunNumber(Int_t r)                                { fRunNumber = r;                      }
56
57   void                        SetJetEtaLimits(Float_t min, Float_t max)            { fJetMinEta = min, fJetMaxEta = max ; }
58   void                        SetJetPhiLimits(Float_t min, Float_t max)            { fJetMinPhi = min, fJetMaxPhi = max ; }
59   void                        SetJetAreaCut(Float_t cut)                           { fJetAreaCut     = cut              ; }
60   void                        SetPercAreaCut(Float_t p)                            { if(fJetRadius==0.) AliWarning("JetRadius not set. Area cut will be 0"); fJetAreaCut = p*TMath::Pi()*fJetRadius*fJetRadius; }
61
62   void                        SetAreaEmcCut(Double_t a = 0.99)                     { fAreaEmcCut     = a                ; }
63   void                        SetJetPtCut(Float_t cut)                             { fJetPtCut       = cut              ; }
64   void                        SetJetRadius(Float_t r)                              { fJetRadius      = r                ; } 
65   virtual void                SetRhoName(const char *n)                            { fRhoName        = n                ; }
66   void                        SetMaxClusterPt(Float_t b)                           { fMaxClusterPt   = b                ; }
67   void                        SetMaxTrackPt(Float_t b)                             { fMaxTrackPt     = b                ; }
68   void                        SetPtBiasJetClus(Float_t b)                          { fPtBiasJetClus  = b                ; }
69   void                        SetNLeadingJets(Int_t t)                             { fNLeadingJets   = t                ; }
70   void                        SetPtBiasJetTrack(Float_t b)                         { fPtBiasJetTrack = b                ; }
71
72   void                        SetLeadingHadronType(Int_t t)                        { fLeadingHadronType = t             ; }
73   void                        SetJetBitMap(UInt_t m)                               { fJetBitMap      = m                ; }
74
75   AliEmcalJet                *GetJet(Int_t i) const;
76   AliEmcalJet                *GetAcceptJet(Int_t i)                 const;
77   virtual Bool_t              AcceptJet(AliEmcalJet* jet)           const;
78   Bool_t                      AcceptBiasJet(AliEmcalJet* jet)       const; 
79   Int_t                       GetNJets()                            const    {return GetNEntries();}
80   Double_t                    GetLeadingHadronPt(AliEmcalJet* jet)  const;
81   AliRhoParameter            *GetRhoParameter()                              {return fRho;}
82   Double_t                    GetRhoVal()                           const    {return fRho->GetVal();}
83   const TString&              GetRhoName()                          const    {return fRhoName;}
84   Double_t                    GetJetPtCorr(Int_t i)                 const;
85   Float_t                     GetJetRadius()                        const    {return fJetRadius;}
86   Float_t                     GetJetEtaMin()                        const    {return fJetMinEta;}
87   Float_t                     GetJetEtaMax()                        const    {return fJetMaxEta;}
88   Float_t                     GetJetPhiMin()                        const    {return fJetMinPhi;}
89   Float_t                     GetJetPhiMax()                        const    {return fJetMaxPhi;}
90
91  protected:
92   JetAcceptanceType           fJetAcceptanceType;    //  acceptance type
93   Float_t                     fJetRadius;            //  jet radius
94   TString                     fRhoName;              //  Name of rho object
95   Float_t                     fPtBiasJetTrack;       //  select jets with a minimum pt track
96   Float_t                     fPtBiasJetClus;        //  select jets with a minimum pt cluster
97   Float_t                     fJetPtCut;             //  cut on jet pt
98   Float_t                     fJetAreaCut;           //  cut on jet area
99   Float_t                     fAreaEmcCut;           //  minimum cut on jet emcal area
100   Float_t                     fJetMinEta;            //  minimum eta jet acceptance
101   Float_t                     fJetMaxEta;            //  maximum eta jet acceptance
102   Float_t                     fJetMinPhi;            //  minimum phi jet acceptance
103   Float_t                     fJetMaxPhi;            //  maximum phi jet acceptance  
104   Float_t                     fMaxClusterPt;         //  maximum cluster constituent pt to accept the jet
105   Float_t                     fMaxTrackPt;           //  maximum track constituent pt to accept the jet
106   Int_t                       fLeadingHadronType;    //  0 = charged, 1 = neutral, 2 = both
107   Int_t                       fNLeadingJets;         //  how many jets are to be considered the leading jet(s)
108   UInt_t                      fJetBitMap;            //  bit map of accepted jets
109
110   AliRhoParameter            *fRho;                  //!event rho for these jets
111
112   AliEMCALGeometry           *fGeom;                 //!emcal geometry
113   Int_t                       fRunNumber;            //  run number
114
115  private:
116   AliJetContainer(const AliJetContainer& obj); // copy constructor
117   AliJetContainer& operator=(const AliJetContainer& other); // assignment
118
119   ClassDef(AliJetContainer,1);
120
121 };
122
123 #endif
124
125