957cf328575a89c31227ab01075a31a40052b1d2
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliAnalysisTaskJetResponse.h
1 #ifndef ALIANALYSISTASKJETRESPONSE_H
2 #define ALIANALYSISTASKJETRESPONSE_H
3
4 class TH1F;
5 class TH2F;
6 class AliESDEvent;
7 class AliAODEvent;
8
9 #include "AliAnalysisTaskSE.h"
10 #include "AliVEvent.h"
11
12 class AliAnalysisTaskJetResponse : public AliAnalysisTaskSE {
13  public:
14   AliAnalysisTaskJetResponse();
15   AliAnalysisTaskJetResponse(const char *name);
16   virtual ~AliAnalysisTaskJetResponse();
17
18   virtual void     LocalInit() {Init();}
19   virtual void     Init();
20   virtual void     UserCreateOutputObjects();
21   virtual void     UserExec(Option_t *option);
22   virtual void     Terminate(const Option_t*);
23
24   virtual AliVEvent::EOfflineTriggerTypes GetOfflineTrgMask() const { return fOfflineTrgMask; }
25   virtual void     GetBranchNames(TString &branch1, TString &branch2) const { branch1 = fJetBranchName[0]; branch2 = fJetBranchName[1]; }
26   virtual Float_t  GetVtxZMin() const { return fVtxZMin; }
27   virtual Float_t  GetVtxZMax() const { return fVtxZMax; }
28   virtual Int_t    GetEvtClassMin() const { return fEvtClassMin; }
29   virtual Int_t    GetEvtClassMax() const { return fEvtClassMax; }
30   virtual Float_t  GetCentMin() const { return fCentMin; }
31   virtual Float_t  GetCentMax() const { return fCentMax; }
32   virtual Float_t  GetJetEtaMin() const { return fJetEtaMin; }
33   virtual Float_t  GetJetEtaMax() const { return fJetEtaMax; }
34   virtual Float_t  GetJetDeltaEta() const { return fJetDeltaEta; }
35   virtual Float_t  GetJetDeltaPhi() const { return fJetDeltaPhi; }
36
37   virtual void     SetBranchNames(const TString &branch1, const TString &branch2);
38   virtual void     SetOfflineTrgMask(AliVEvent::EOfflineTriggerTypes mask) { fOfflineTrgMask = mask; }
39   virtual void     SetVtxZMin(Float_t z) { fVtxZMin = z; }
40   virtual void     SetVtxZMax(Float_t z) { fVtxZMax = z; }
41   virtual void     SetEvtClassMin(Int_t evtClass) { fEvtClassMin = evtClass; }
42   virtual void     SetEvtClassMax(Int_t evtClass) { fEvtClassMax = evtClass; }
43   virtual void     SetCentMin(Float_t cent) { fCentMin = cent; }
44   virtual void     SetCentMax(Float_t cent) { fCentMax = cent; }
45   virtual void     SetJetEtaMin(Float_t eta) { fJetEtaMin = eta; }
46   virtual void     SetJetEtaMax(Float_t eta) { fJetEtaMax = eta; }
47   virtual void     SetJetDeltaEta(Float_t eta) { fJetDeltaEta = eta; }
48   virtual void     SetJetDeltaPhi(Float_t phi) { fJetDeltaPhi = phi; }
49
50  private:
51   // ESD/AOD events
52   AliESDEvent *fESD;    //! ESD object
53   AliAODEvent *fAOD;    //! AOD event
54
55   // jets to compare
56   TString fJetBranchName[2]; //  name of jet branches to compare
57   TList *fListJets[2];       //! jet lists
58
59   // event selection
60   AliVEvent::EOfflineTriggerTypes fOfflineTrgMask; // mask of offline triggers to accept
61   Int_t   fMinContribVtx; // minimum number of track contributors for primary vertex
62   Float_t fVtxZMin;       // lower bound on vertex z
63   Float_t fVtxZMax;       // upper bound on vertex z
64   Int_t   fEvtClassMin;   // lower bound on event class
65   Int_t   fEvtClassMax;   // upper bound on event class
66   Float_t fCentMin;       // lower bound on centrality
67   Float_t fCentMax;       // upper bound on centrality
68   Float_t fJetEtaMin;     // lower bound on eta for found jets
69   Float_t fJetEtaMax;     // upper bound on eta for found jets
70   Float_t fJetDeltaEta;   // max difference in eta to match leading jets
71   Float_t fJetDeltaPhi;   // max difference in phi to match leading jets
72
73   // output objects
74   const Int_t fkNbranches;                   //! number of branches to be read
75   const Int_t fkEvtClasses;                  //! number of event classes
76   TList *fOutputList;                        //! output data container
77   TH1F *fHistEvtSelection;                   //! event selection statistic
78   TH1F **fHistPtLeadingJet;                  //! pt of leading jet
79   TH2F **fHistEtaPhiLeadingJet;              //! eta-phi of leading jet
80   TH2F  *fHistDeltaEtaDeltaPhiLeadingJet;    //! delta eta vs. delta phi of leading jets
81   TH2F  *fHistPtPtExtra;                     //! jet pt response
82   TH2F **fHistPtResponse;                    //! histograms per event class
83   TH2F **fHistPtSmearing;                    //! histograms per event class
84
85   AliAnalysisTaskJetResponse(const AliAnalysisTaskJetResponse&); // not implemented
86   AliAnalysisTaskJetResponse& operator=(const AliAnalysisTaskJetResponse&); // not implemented
87
88   ClassDef(AliAnalysisTaskJetResponse, 1);
89 };
90
91 #endif