]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/AliAnalysisTaskEmcalJet.h
new cuts on energy fraction
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / AliAnalysisTaskEmcalJet.h
1 #ifndef ALIANALYSISTASKEMCALJET_H
2 #define ALIANALYSISTASKEMCALJET_H
3
4 // $Id$
5
6 class TClonesArray;
7 class TList;
8 class TString;
9 class AliEmcalJet;
10 class AliRhoParameter;
11 class AliLocalRhoParameter;
12 class AliVCluster;
13 class AliVParticle;
14
15 #include "AliVEvent.h"
16 #include "AliAnalysisTaskEmcal.h"
17
18 class AliAnalysisTaskEmcalJet : public AliAnalysisTaskEmcal {
19  public:
20   AliAnalysisTaskEmcalJet();
21   AliAnalysisTaskEmcalJet(const char *name, Bool_t histo=kFALSE); 
22   virtual ~AliAnalysisTaskEmcalJet();
23
24   void                        SetJetEtaLimits(Float_t min, Float_t max)            { fJetMinEta = min, fJetMaxEta = max ; }
25   void                        SetJetPhiLimits(Float_t min, Float_t max)            { fJetMinPhi = min, fJetMaxPhi = max ; }
26   void                        SetJetAreaCut(Float_t cut)                           { fJetAreaCut     = cut              ; }
27   void                        SetPercAreaCut(Float_t p)                            { fPercAreaCut    = p                ; }
28   void                        SetAreaEmcCut(Double_t a = 0.99)                     { fAreaEmcCut     = a                ; }
29   void                        SetJetPtCut(Float_t cut)                             { fJetPtCut       = cut              ; }
30   void                        SetJetRadius(Float_t r)                              { fJetRadius      = r                ; } 
31   void                        SetJetsName(const char *n)                           { fJetsName       = n                ; }
32   virtual void                SetRhoName(const char *n)                            { fRhoName        = n                ; }
33   virtual void                SetLocalRhoName(const char *n)                       { fLocalRhoName   = n                ; }
34   void                        SetMaxClusterPt(Float_t b)                           { fMaxClusterPt   = b                ; }
35   void                        SetMaxTrackPt(Float_t b)                             { fMaxTrackPt     = b                ; }
36   void                        SetPtBiasJetClus(Float_t b)                          { fPtBiasJetClus  = b                ; }
37   void                        SetPtBiasJetTrack(Float_t b)                         { fPtBiasJetTrack = b                ; }
38   void                        SetLeadingHadronType(Int_t t)                        { fLeadingHadronType = t             ; }
39   void                        SetNLeadingJets(Int_t t)                             { fNLeadingJets   = t                ; }
40   void                        SetJetBitMap(UInt_t m)                               { fJetBitMap      = m                ; }
41   void                        SetJetTrigger(UInt_t t=AliVEvent::kEMCEJE)           { fJetTrigger     = t                ; }
42  
43  protected:
44   Float_t*                    GenerateFixedBinArray(Int_t n, Float_t min, Float_t max) const;
45   virtual Bool_t              AcceptJet(AliEmcalJet* jet)                                              const;
46   Bool_t                      AcceptBiasJet(AliEmcalJet* jet)                                          const;
47   Double_t                    GetLeadingHadronPt(AliEmcalJet* jet)                                     const;
48   void                        ExecOnce()                                                                    ;
49   AliRhoParameter            *GetRhoFromEvent(const char *name)                                             ;
50   AliLocalRhoParameter       *GetLocalRhoFromEvent(const char *name)                                        ;
51   Int_t                       GetSortedArray(Int_t indexes[], TClonesArray *array, Double_t rho=0)     const;
52   Bool_t                      IsJetTrack(AliEmcalJet* jet, Int_t itrack, Bool_t sorted = kFALSE)       const;
53   Bool_t                      IsJetCluster(AliEmcalJet* jet, Int_t iclus, Bool_t sorted = kFALSE)      const;
54   Bool_t                      RetrieveEventObjects()                                                        ;
55
56   Float_t                     fJetRadius;                  // jet radius
57   TString                     fJetsName;                   // name of jet collection
58   TString                     fRhoName;                    // Name of rho object
59   TString                     fLocalRhoName;               // Name of local rho object
60   Float_t                     fPtBiasJetTrack;             // select jets with a minimum pt track
61   Float_t                     fPtBiasJetClus;              // select jets with a minimum pt cluster
62   Float_t                     fJetPtCut;                   // cut on jet pt
63   Float_t                     fJetAreaCut;                 // cut on jet area
64   Float_t                     fPercAreaCut;                // cut on jet area as a percentage of average jet area
65   Float_t                     fAreaEmcCut;                 // minimum cut on jet emcal area
66   Float_t                     fJetMinEta;                  // minimum eta jet acceptance
67   Float_t                     fJetMaxEta;                  // maximum eta jet acceptance
68   Float_t                     fJetMinPhi;                  // minimum phi jet acceptance
69   Float_t                     fJetMaxPhi;                  // maximum phi jet acceptance  
70   Float_t                     fMaxClusterPt;               // maximum cluster constituent pt to accept the jet
71   Float_t                     fMaxTrackPt;                 // maximum track constituent pt to accept the jet
72   Int_t                       fLeadingHadronType;          // 0 = charged, 1 = neutral, 2 = both
73   Int_t                       fNLeadingJets;               // how many jets are to be considered the leading jet(s)
74   UInt_t                      fJetBitMap;                  // bit map of accepted jets
75   UInt_t                      fJetTrigger;                 // jet trigger
76   TClonesArray               *fJets;                       //!jets
77   AliRhoParameter            *fRho;                        //!event rho
78   AliLocalRhoParameter       *fLocalRho;                   //!local event rho
79   Double_t                    fRhoVal;                     //!event rho value, same for local rho
80
81  private:
82   AliAnalysisTaskEmcalJet(const AliAnalysisTaskEmcalJet&);            // not implemented
83   AliAnalysisTaskEmcalJet &operator=(const AliAnalysisTaskEmcalJet&); // not implemented
84
85   ClassDef(AliAnalysisTaskEmcalJet, 10) // EMCAL Jet base analysis task
86 };
87 #endif