setter to assume pion mass for clusters
[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 class AliJetContainer;
15
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   //these should all point to the jet container
25   void                        SetAnaType(UInt_t t, Int_t c = 0) { SetJetAcceptanceType(t,c); }
26   void                        SetJetAcceptanceType(UInt_t t, Int_t c = 0);
27   void                        SetJetAcceptanceType(TString cutType, Int_t c = 0);
28   void                        SetJetEtaLimits(Float_t min, Float_t max, Int_t c = 0);
29   void                        SetJetPhiLimits(Float_t min, Float_t max, Int_t c = 0);
30   void                        SetJetAreaCut(Float_t cut, Int_t c = 0);
31   void                        SetPercAreaCut(Float_t p, Int_t c = 0);
32   void                        SetZLeadingCut(Float_t zemc, Float_t zch, Int_t c = 0);
33   void                        SetNEFCut(Float_t min, Float_t max, Int_t c = 0);
34   void                        SetAreaEmcCut(Double_t a = 0.99, Int_t c = 0);
35   void                        SetJetPtCut(Float_t cut, Int_t c = 0);
36   void                        SetJetRadius(Float_t r, Int_t c = 0);
37   void                        SetMaxClusterPt(Float_t b, Int_t c = 0);
38   void                        SetMaxTrackPt(Float_t b, Int_t c = 0);
39   void                        SetPtBiasJetClus(Float_t b, Int_t c = 0);
40   void                        SetPtBiasJetTrack(Float_t b, Int_t c = 0);
41   void                        SetLeadingHadronType(Int_t t, Int_t c = 0);
42   void                        SetNLeadingJets(Int_t t, Int_t c = 0);
43   void                        SetJetBitMap(UInt_t m, Int_t c = 0);
44   void                        SetJetTrigger(UInt_t t, Int_t c = 0);
45   void                        SetIsParticleLevel(Bool_t b, Int_t c = 0);
46   void                        SetJetsName(const char *n)                   { AddJetContainer(n); }
47   virtual void                SetRhoName(const char *n, Int_t c = 0);
48   virtual void                SetLocalRhoName(const char *n)               { fLocalRhoName   = n; }
49   const TString&              GetRhoName(Int_t c = 0) const;
50   AliJetContainer            *AddJetContainer(const char *n, TString defaultCutType = "", Float_t jetRadius = 0.4);
51   void                        RemoveJetContainer(Int_t i)                        { fJetCollArray.RemoveAt(i);} 
52   AliJetContainer            *GetJetContainer(Int_t i=0)                                               const;
53   AliJetContainer            *GetJetContainer(const char* name)                                        const;
54
55  protected:
56   virtual Bool_t              AcceptJet(AliEmcalJet* jet, Int_t c =0);
57   Bool_t                      AcceptBiasJet(AliEmcalJet* jet, Int_t c =0);
58   Double_t                    GetLeadingHadronPt(AliEmcalJet* jet, Int_t c =0);
59   void                        ExecOnce()                                                                    ;
60
61   AliRhoParameter            *GetRhoFromEvent(const char *name)                                             ;
62   AliLocalRhoParameter       *GetLocalRhoFromEvent(const char *name)                                        ;
63   Bool_t                      IsJetTrack(AliEmcalJet* jet, Int_t itrack, Bool_t sorted = kFALSE)       const;
64   Bool_t                      IsJetCluster(AliEmcalJet* jet, Int_t iclus, Bool_t sorted = kFALSE)      const;
65   Bool_t                      RetrieveEventObjects()                                                        ;
66   Double_t                    GetJetRadius(Int_t i=0)                                                  const;
67   TClonesArray               *GetJetArray(Int_t i=0)                                                   const;
68   AliEmcalJet                *GetJetFromArray(Int_t j, Int_t c=0)                                      const;
69   AliEmcalJet                *GetAcceptJetFromArray(Int_t j, Int_t c=0)                                const;
70   Int_t                       GetNJets(Int_t i=0)                                                      const;
71   Double_t                    GetRhoVal(Int_t i=0)                                                     const;
72
73   TString                     fRhoName;                    // rho name
74   TString                     fLocalRhoName;               // name for local rho
75   TObjArray                   fJetCollArray;               // jet collection array
76
77   TClonesArray               *fJets;                       //!jets
78   AliRhoParameter            *fRho;                        //!event rho
79   AliLocalRhoParameter       *fLocalRho;                   //!local event rho
80   Double_t                    fRhoVal;                     //!event rho value, same for local rho
81
82  private:
83   AliAnalysisTaskEmcalJet(const AliAnalysisTaskEmcalJet&);            // not implemented
84   AliAnalysisTaskEmcalJet &operator=(const AliAnalysisTaskEmcalJet&); // not implemented
85
86   ClassDef(AliAnalysisTaskEmcalJet, 3) // EMCAL Jet base analysis task
87 };
88 #endif