ROOT logo
#ifndef AliAnalysisTaskDiMuonCorrelations_H
#define AliAnalysisTaskDiMuonCorrelations_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  AliAnalysisTaskDiMuonCorrelations : public AliAnalysisTaskSE {

 public:
 
  enum {kSingleEvent, kMixedEvent};

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

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

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

  void SetLikeSign(Bool_t likeSign) { fLikeSign = likeSign; }
  void SetTriggerMatchLevelMuon(Short_t level) { fTriggerMatchLevelMuon = level; }
  //  void SetMaxChi2Muon(Double_t chi2Max) { fMaxChi2Muon = chi2Max; }
  void SetEtaRangeMuon (Double_t etaMin, Double_t etaMax) { fMinEtaMuon = etaMin; fMaxEtaMuon = etaMax; }

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

  Float_t GetV0Multiplicity();
  Double_t GetITSMultiplicity();
  Bool_t IsTriggerFired();
  TObjArray* GetAcceptedTracksMuonArm(AliAODEvent *aodEvent);
  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 *fMuonTrack[2]; //!

  Bool_t fLikeSign;
  
  Double_t fMaxChi2Muon, fMinEtaMuon, fMaxEtaMuon;
  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 *fHistNMuons_vs_NMuons[fNMaxBinsCentrality]; //!
  TH2D *fHistNMuons_vs_NMuons_Mixed[fNMaxBinsCentrality]; //!
  TH2D *fHistTracksEtavsEta[fNMaxBinsCentrality]; //!
  TH2D *fHistTracksEtavsEta_Mixed[fNMaxBinsCentrality]; //!
  TH1D *fHistSingleMuonsPt[fNMaxBinsCentrality]; //!
  TH1D *fHistSingleMuonsPt_Mixed[fNMaxBinsCentrality]; //!
  TH2D *fHistSingleMuonsEtaPt[fNMaxBinsCentrality]; //!
  TH2D *fHistSingleMuonsEtaPt_Mixed[fNMaxBinsCentrality]; //!

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

  TString fCentMethod;

  TList *fOutputList; //!

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

};

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

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