ROOT logo
#ifndef AliAnalysisTaskMuonHadronCorrelations_H
#define AliAnalysisTaskMuonHadronCorrelations_H

#include "AliAnalysisTaskSE.h"
#include "TString.h"
#include "AliAODEvent.h"
#include "AliAODTrack.h"
#include "TAxis.h"
#include "TH1D.h"
#include "TClonesArray.h"
#include "TH2D.h"

class AliEventPoolManager;

//====================================================================================================================================================

class  AliAnalysisTaskMuonHadronCorrelations : public AliAnalysisTaskSE {

 public:
 
  enum {kSingleEvent, kMixedEvent};

  AliAnalysisTaskMuonHadronCorrelations();
  AliAnalysisTaskMuonHadronCorrelations(const Char_t *name);
  virtual ~AliAnalysisTaskMuonHadronCorrelations();

  virtual void UserCreateOutputObjects();
  virtual void UserExec(Option_t *option);
  virtual void Terminate(Option_t *);

  // ------------- Cuts -----------------

  void SetFilterBitCentralBarrel(Int_t filter) { fFilterBitCentralBarrel = filter; }
  void SetMaxEtaCentralBarrel(Double_t eta) { fMaxEtaCentralBarrel = eta; }
  void SetMinEtaCentralBarrel(Double_t eta) { fMinEtaCentralBarrel = eta; }
  void SetTriggerMatchLevelMuon(Short_t level) { fTriggerMatchLevelMuon = level; }
  //  void SetMaxChi2Muon(Double_t chi2Max) { fMaxChi2Muon = chi2Max; }
  void SetRAbsRangeMuon (Double_t rAbsMin,Double_t rAbsMax) { fMinRAbsMuon = rAbsMin; fMaxRAbsMuon = rAbsMax; }

  // ------------- Analysis -------------

  Float_t GetV0Multiplicity();
  Double_t GetITSMultiplicity();
  Bool_t IsTriggerFired();
  TObjArray* GetAcceptedTracksCentralBarrel(AliAODEvent *aodEvent);
  TObjArray* GetAcceptedTracksMuonArm(AliAODEvent *aodEvent, Int_t centBin);
  void SetPtBinning(Int_t nBins, Double_t *limits);
  void SetCentBinning(Int_t nBins, Double_t *limits);
  void SetEtaBinning(Int_t nBins, Double_t *limits);
  void SetCentMethod(const Char_t *method) { fCentMethod = method; }
  void FillHistograms(Int_t centrality, Int_t option);
  Int_t GetCentBin();

 private:

  static const Int_t fNMaxBinsCentrality = 20;
  static const Int_t fNMaxBinsPt = 10;
  static const Int_t fNMaxBinsEta = 10;

  AliAODEvent *fAOD; //!
  AliEventPoolManager *fPoolMgr; //! event pool manager
  AliAODTrack *fTrackCB; //!
  AliAODTrack *fTrackMA; //!
  
  Int_t fFilterBitCentralBarrel;
  Double_t fMaxEtaCentralBarrel;
  Double_t fMinEtaCentralBarrel;

  Double_t fMaxChi2Muon, fMinRAbsMuon, fMaxRAbsMuon;
  Short_t fTriggerMatchLevelMuon;

  Int_t fNbinsCent, fNbinsPt;
  
  TAxis *fCentAxis;
  TAxis *fPtAxis;
  TAxis *fEtaAxis;

  TH1D *fHistDeltaPhi[fNMaxBinsCentrality][fNMaxBinsPt][fNMaxBinsPt]; //!
  TH1D *fHistDeltaPhiMix[fNMaxBinsCentrality][fNMaxBinsPt][fNMaxBinsPt]; //!
  TH2D *fHistEtaDeltaPhi[fNMaxBinsCentrality][fNMaxBinsPt][fNMaxBinsPt]; //!
  TH2D *fHistEtaDeltaPhiMix[fNMaxBinsCentrality][fNMaxBinsPt][fNMaxBinsPt]; //!
  TH2D *fHistNTracksCB_vs_NTracksMA[fNMaxBinsCentrality]; //!
  TH2D *fHistNTracksCB_vs_NTracksMAmixed[fNMaxBinsCentrality]; //!
  TH2D *fHistTracksEtaMAvsEtaCB[fNMaxBinsCentrality]; //!
  TH2D *fHistTracksEtaMAvsEtaCBmixed[fNMaxBinsCentrality]; //!
  TH1D *fHistSingleMuonsPt[fNMaxBinsCentrality]; //!
  TH1D *fHistSingleMuonsPtmixed[fNMaxBinsCentrality]; //!
  TH2D *fHistSingleMuonsEtaPt[fNMaxBinsCentrality]; //!
  TH2D *fHistSingleMuonsEtaPtmixed[fNMaxBinsCentrality]; //!

  TH1D *fHistV0Multiplicity; //!
  TH1D *fHistITSMultiplicity; //!
  TH1D *fHistCentrality; //!
  TH1D *fHistEvStat; //!

  TH1D *fHistSingleMuonsTrigMatch[fNMaxBinsCentrality]; //!
  TH1D *fHistSingleMuonsChi2[fNMaxBinsCentrality]; //!
  TH2D *fHistSingleMuonsEtaVsPt[fNMaxBinsCentrality]; //!
  TH2D *fHistSingleMuonsEtaVsRAbs[fNMaxBinsCentrality]; //!

  TString fCentMethod;

  TList *fOutputList; //!

  AliAnalysisTaskMuonHadronCorrelations(const AliAnalysisTaskMuonHadronCorrelations&);//not implimented
  AliAnalysisTaskMuonHadronCorrelations& operator=(const AliAnalysisTaskMuonHadronCorrelations&);//not implimnted
  
  ClassDef(AliAnalysisTaskMuonHadronCorrelations, 2)  // example of analysis

};

//====================================================================================================================================================

#endif
 AliAnalysisTaskMuonHadronCorrelations.h:1
 AliAnalysisTaskMuonHadronCorrelations.h:2
 AliAnalysisTaskMuonHadronCorrelations.h:3
 AliAnalysisTaskMuonHadronCorrelations.h:4
 AliAnalysisTaskMuonHadronCorrelations.h:5
 AliAnalysisTaskMuonHadronCorrelations.h:6
 AliAnalysisTaskMuonHadronCorrelations.h:7
 AliAnalysisTaskMuonHadronCorrelations.h:8
 AliAnalysisTaskMuonHadronCorrelations.h:9
 AliAnalysisTaskMuonHadronCorrelations.h:10
 AliAnalysisTaskMuonHadronCorrelations.h:11
 AliAnalysisTaskMuonHadronCorrelations.h:12
 AliAnalysisTaskMuonHadronCorrelations.h:13
 AliAnalysisTaskMuonHadronCorrelations.h:14
 AliAnalysisTaskMuonHadronCorrelations.h:15
 AliAnalysisTaskMuonHadronCorrelations.h:16
 AliAnalysisTaskMuonHadronCorrelations.h:17
 AliAnalysisTaskMuonHadronCorrelations.h:18
 AliAnalysisTaskMuonHadronCorrelations.h:19
 AliAnalysisTaskMuonHadronCorrelations.h:20
 AliAnalysisTaskMuonHadronCorrelations.h:21
 AliAnalysisTaskMuonHadronCorrelations.h:22
 AliAnalysisTaskMuonHadronCorrelations.h:23
 AliAnalysisTaskMuonHadronCorrelations.h:24
 AliAnalysisTaskMuonHadronCorrelations.h:25
 AliAnalysisTaskMuonHadronCorrelations.h:26
 AliAnalysisTaskMuonHadronCorrelations.h:27
 AliAnalysisTaskMuonHadronCorrelations.h:28
 AliAnalysisTaskMuonHadronCorrelations.h:29
 AliAnalysisTaskMuonHadronCorrelations.h:30
 AliAnalysisTaskMuonHadronCorrelations.h:31
 AliAnalysisTaskMuonHadronCorrelations.h:32
 AliAnalysisTaskMuonHadronCorrelations.h:33
 AliAnalysisTaskMuonHadronCorrelations.h:34
 AliAnalysisTaskMuonHadronCorrelations.h:35
 AliAnalysisTaskMuonHadronCorrelations.h:36
 AliAnalysisTaskMuonHadronCorrelations.h:37
 AliAnalysisTaskMuonHadronCorrelations.h:38
 AliAnalysisTaskMuonHadronCorrelations.h:39
 AliAnalysisTaskMuonHadronCorrelations.h:40
 AliAnalysisTaskMuonHadronCorrelations.h:41
 AliAnalysisTaskMuonHadronCorrelations.h:42
 AliAnalysisTaskMuonHadronCorrelations.h:43
 AliAnalysisTaskMuonHadronCorrelations.h:44
 AliAnalysisTaskMuonHadronCorrelations.h:45
 AliAnalysisTaskMuonHadronCorrelations.h:46
 AliAnalysisTaskMuonHadronCorrelations.h:47
 AliAnalysisTaskMuonHadronCorrelations.h:48
 AliAnalysisTaskMuonHadronCorrelations.h:49
 AliAnalysisTaskMuonHadronCorrelations.h:50
 AliAnalysisTaskMuonHadronCorrelations.h:51
 AliAnalysisTaskMuonHadronCorrelations.h:52
 AliAnalysisTaskMuonHadronCorrelations.h:53
 AliAnalysisTaskMuonHadronCorrelations.h:54
 AliAnalysisTaskMuonHadronCorrelations.h:55
 AliAnalysisTaskMuonHadronCorrelations.h:56
 AliAnalysisTaskMuonHadronCorrelations.h:57
 AliAnalysisTaskMuonHadronCorrelations.h:58
 AliAnalysisTaskMuonHadronCorrelations.h:59
 AliAnalysisTaskMuonHadronCorrelations.h:60
 AliAnalysisTaskMuonHadronCorrelations.h:61
 AliAnalysisTaskMuonHadronCorrelations.h:62
 AliAnalysisTaskMuonHadronCorrelations.h:63
 AliAnalysisTaskMuonHadronCorrelations.h:64
 AliAnalysisTaskMuonHadronCorrelations.h:65
 AliAnalysisTaskMuonHadronCorrelations.h:66
 AliAnalysisTaskMuonHadronCorrelations.h:67
 AliAnalysisTaskMuonHadronCorrelations.h:68
 AliAnalysisTaskMuonHadronCorrelations.h:69
 AliAnalysisTaskMuonHadronCorrelations.h:70
 AliAnalysisTaskMuonHadronCorrelations.h:71
 AliAnalysisTaskMuonHadronCorrelations.h:72
 AliAnalysisTaskMuonHadronCorrelations.h:73
 AliAnalysisTaskMuonHadronCorrelations.h:74
 AliAnalysisTaskMuonHadronCorrelations.h:75
 AliAnalysisTaskMuonHadronCorrelations.h:76
 AliAnalysisTaskMuonHadronCorrelations.h:77
 AliAnalysisTaskMuonHadronCorrelations.h:78
 AliAnalysisTaskMuonHadronCorrelations.h:79
 AliAnalysisTaskMuonHadronCorrelations.h:80
 AliAnalysisTaskMuonHadronCorrelations.h:81
 AliAnalysisTaskMuonHadronCorrelations.h:82
 AliAnalysisTaskMuonHadronCorrelations.h:83
 AliAnalysisTaskMuonHadronCorrelations.h:84
 AliAnalysisTaskMuonHadronCorrelations.h:85
 AliAnalysisTaskMuonHadronCorrelations.h:86
 AliAnalysisTaskMuonHadronCorrelations.h:87
 AliAnalysisTaskMuonHadronCorrelations.h:88
 AliAnalysisTaskMuonHadronCorrelations.h:89
 AliAnalysisTaskMuonHadronCorrelations.h:90
 AliAnalysisTaskMuonHadronCorrelations.h:91
 AliAnalysisTaskMuonHadronCorrelations.h:92
 AliAnalysisTaskMuonHadronCorrelations.h:93
 AliAnalysisTaskMuonHadronCorrelations.h:94
 AliAnalysisTaskMuonHadronCorrelations.h:95
 AliAnalysisTaskMuonHadronCorrelations.h:96
 AliAnalysisTaskMuonHadronCorrelations.h:97
 AliAnalysisTaskMuonHadronCorrelations.h:98
 AliAnalysisTaskMuonHadronCorrelations.h:99
 AliAnalysisTaskMuonHadronCorrelations.h:100
 AliAnalysisTaskMuonHadronCorrelations.h:101
 AliAnalysisTaskMuonHadronCorrelations.h:102
 AliAnalysisTaskMuonHadronCorrelations.h:103
 AliAnalysisTaskMuonHadronCorrelations.h:104
 AliAnalysisTaskMuonHadronCorrelations.h:105
 AliAnalysisTaskMuonHadronCorrelations.h:106
 AliAnalysisTaskMuonHadronCorrelations.h:107
 AliAnalysisTaskMuonHadronCorrelations.h:108
 AliAnalysisTaskMuonHadronCorrelations.h:109
 AliAnalysisTaskMuonHadronCorrelations.h:110
 AliAnalysisTaskMuonHadronCorrelations.h:111
 AliAnalysisTaskMuonHadronCorrelations.h:112
 AliAnalysisTaskMuonHadronCorrelations.h:113
 AliAnalysisTaskMuonHadronCorrelations.h:114