Further update of the mu-h correlation task.
[u/mrichter/AliRoot.git] / PWGCF / Correlations / DPhi / MuonHadron / AliAnalysisTaskMuonHadronCorrelations.h
1 #ifndef AliAnalysisTaskMuonHadronCorrelations_H
2 #define AliAnalysisTaskMuonHadronCorrelations_H
3
4 #include "AliAnalysisTaskSE.h"
5 #include "TString.h"
6 #include "AliAODEvent.h"
7 #include "AliAODTrack.h"
8 #include "TAxis.h"
9 #include "TH1D.h"
10 #include "TClonesArray.h"
11 #include "TH2D.h"
12
13 class AliEventPoolManager;
14
15 //====================================================================================================================================================
16
17 class  AliAnalysisTaskMuonHadronCorrelations : public AliAnalysisTaskSE {
18
19  public:
20  
21   enum {kSingleEvent, kMixedEvent};
22
23   AliAnalysisTaskMuonHadronCorrelations();
24   AliAnalysisTaskMuonHadronCorrelations(const Char_t *name);
25   virtual ~AliAnalysisTaskMuonHadronCorrelations();
26
27   virtual void UserCreateOutputObjects();
28   virtual void UserExec(Option_t *option);
29   virtual void Terminate(Option_t *);
30
31   // ------------- Cuts -----------------
32
33   void SetFilterBitCentralBarrel(Int_t filter) { fFilterBitCentralBarrel = filter; }
34   void SetMaxEtaCentralBarrel(Double_t eta) { fMaxEtaCentralBarrel = eta; }
35   void SetTriggerMatchLevelMuon(Short_t level) { fTriggerMatchLevelMuon = level; }
36   //  void SetMaxChi2Muon(Double_t chi2Max) { fMaxChi2Muon = chi2Max; }
37   void SetRAbsRangeMuon (Double_t rAbsMin,Double_t rAbsMax) { fMinRAbsMuon = rAbsMin; fMaxRAbsMuon = rAbsMax; }
38
39   // ------------- Analysis -------------
40
41   Float_t GetV0Multiplicity();
42   Double_t GetITSMultiplicity();
43   Bool_t IsTriggerFired();
44   TObjArray* GetAcceptedTracksCentralBarrel(AliAODEvent *aodEvent);
45   TObjArray* GetAcceptedTracksMuonArm(AliAODEvent *aodEvent, Int_t centBin);
46   void SetPtBinning(Int_t nBins, Double_t *limits);
47   void SetCentBinning(Int_t nBins, Double_t *limits);
48   void SetCentMethod(const Char_t *method) { fCentMethod = method; }
49   void FillHistograms(Int_t centrality, Int_t option);
50   Int_t GetCentBin();
51
52  private:
53
54   static const Int_t fNMaxBinsCentrality = 20;
55   static const Int_t fNMaxBinsPt = 10;
56
57   AliAODEvent *fAOD; //!
58   AliEventPoolManager *fPoolMgr; //! event pool manager
59   AliAODTrack *fTrackCB; //!
60   AliAODTrack *fTrackMA; //!
61   
62   Int_t fFilterBitCentralBarrel;
63   Double_t fMaxEtaCentralBarrel;
64
65   Double_t fMaxChi2Muon, fMinRAbsMuon, fMaxRAbsMuon;
66   Short_t fTriggerMatchLevelMuon;
67
68   Int_t fNbinsCent, fNbinsPt;
69   
70   TAxis *fCentAxis;
71   TAxis *fPtAxis;
72
73   TH1D *fHistDeltaPhi[fNMaxBinsCentrality][fNMaxBinsPt][fNMaxBinsPt]; //!
74   TH1D *fHistDeltaPhiMix[fNMaxBinsCentrality][fNMaxBinsPt][fNMaxBinsPt]; //!
75   TH2D *fHistNTracksCB_vs_NTracksMA[fNMaxBinsCentrality]; //!
76   TH2D *fHistNTracksCB_vs_NTracksMAmixed[fNMaxBinsCentrality]; //!
77   TH1D *fHistSingleMuonsPt[fNMaxBinsCentrality]; //!
78   TH1D *fHistSingleMuonsPtmixed[fNMaxBinsCentrality]; //!
79
80   TH1D *fHistV0Multiplicity; //!
81   TH1D *fHistITSMultiplicity; //!
82   TH1D *fHistCentrality; //!
83   TH1D *fHistEvStat; //!
84
85   TH2D *fHistSingleMuonsEtaVsPt[fNMaxBinsCentrality]; //!
86   TH2D *fHistSingleMuonsEtaVsRAbs[fNMaxBinsCentrality]; //!
87
88   TString fCentMethod;
89
90   TList *fOutputList; //!
91
92   AliAnalysisTaskMuonHadronCorrelations(const AliAnalysisTaskMuonHadronCorrelations&);//not implimented
93   AliAnalysisTaskMuonHadronCorrelations& operator=(const AliAnalysisTaskMuonHadronCorrelations&);//not implimnted
94   
95   ClassDef(AliAnalysisTaskMuonHadronCorrelations, 1)  // example of analysis
96
97 };
98
99 //====================================================================================================================================================
100
101 #endif