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