coverity fixes (Saehanseul Oh <saehanseul.oh@cern.ch>)
[u/mrichter/AliRoot.git] / PWGCF / Correlations / DPhi / FourierDecomposition / AliMuonEffMC.h
CommitLineData
7e990b20 1// MUON tracking efficiency + (mother hadron) : (daughter muon) kinematic relation
2// Author : Saehanseul Oh
3
4
5#ifndef AliMuonEffMC_h
6#define AliMuonEffMC_h
7
8class TH1F;
9class TH1D;
10class TH2F;
11class TH3F;
12class THn;
13class TList;
14class TObjArray;
15class TObject;
15b0d1bb 16class AliStack;
7e990b20 17
18class AliAODEvent;
19class AliESDEvent;
20class AliESDtrackCuts;
21class AliEvtPoolManager;
22class AliMCEvent;
23class AliESDMuonTrack;
b673a083 24class AliAODTrack;
7e990b20 25#include "AliAnalysisTaskSE.h"
26
27
28class AliMuonEffMC : public AliAnalysisTaskSE {
29 public:
30 AliMuonEffMC();
31 AliMuonEffMC(const char *name);
32 virtual ~AliMuonEffMC();
33
34 void UserCreateOutputObjects();
35 void UserExec(Option_t *option);
36 void Terminate(Option_t *);
15b0d1bb 37
7e990b20 38 void SetMcAna(Bool_t IsMc) { fIsMc = IsMc; }
15b0d1bb 39 void SetMDProcess(Bool_t kMDProcess) { fMDProcess = kMDProcess; }
7e990b20 40 void SetCentEstimator(TString Cent) { fCentralityEstimator = Cent;}
41 void SetNEtaBins(Int_t NEtaBins) { fNEtaBins = NEtaBins; }
42 void SetNpTBins(Int_t NpTBins) { fNpTBins = NpTBins; }
43 void SetNCentBins(Int_t NCentBins) { fNCentBins = NCentBins; }
44 void SetNZvtxBins(Int_t NZvtxBins) { fNZvtxBins = NZvtxBins; }
45 void SetNPhiBins(Int_t NPhiBins) { fNPhiBins = NPhiBins; }
15b0d1bb 46 void MDProcess(Int_t motherpdg, Double_t mcpt, Double_t mcphi, Double_t mceta, Double_t trackpt, Double_t trackphi, Double_t tracketa, Double_t motherpt, Double_t motherphi, Double_t mothereta, Double_t dcavalue);
47 Double_t deltaphi(Double_t phi);
7e990b20 48
49 protected:
50 Bool_t VertexOk(TObject* obj) const;
51 Bool_t IsGoodMUONtrack(AliESDMuonTrack &track);
b673a083 52 Bool_t IsGoodMUONtrack(AliAODTrack &track);
7e990b20 53
54 private:
55 AliESDEvent *fESD; //! ESD object
56 AliAODEvent *fAOD; //! AOD object
57 AliMCEvent *fMC; //! MC object
15b0d1bb 58 AliStack *fStack; //! MC stack
7e990b20 59 Double_t fCentrality; //! Of current event
60 Double_t fZVertex; //! Of current event
61 TList *fOutputList; //! Output list
62 TH1D *fHEventStat; //! statistics histo
63 TH2F *fHEvt; //! Cent, vtx
64
b673a083 65 Bool_t fIsMc; //
66 Bool_t fMDProcess; // (mother hadron) : (daughter muon) QA
7e990b20 67
b673a083 68 TString fCentralityEstimator;//
69 Int_t fNEtaBins; // number of eta bins
70 Int_t fNpTBins; // number of p_T bins
71 Int_t fNCentBins; // number of centrality bins
72 Int_t fNZvtxBins; // number of Z-vertex bins
73 Int_t fNPhiBins; // number of phi bins
7e990b20 74
75 THn *fHMuonParGen; //! truth muon track eta, p_T, Centrality, Z-vertex, phi
76 THn *fHMuonDetGen; //! detector level muon track generated eta, p_T, Centrality, Z-vertex, phi
77 THn *fHMuonDetRec; //! reconstructed muon track eta, p_T, Centrality, Z-vertex, phi
78 THn *fHEtcDetRec; //! particle reconstructed at MUON detector, but not muon
79
80 TH2F *fHMuMotherGenPt[4]; //! particle-level muon p_T vs. mother p_T
81 TH2F *fHMuMotherRecPt[4]; //! detector-level muon p_T vs. mother p_T
82 TH2F *fHMuMotherGenPhi[4];//! particle-level muon phi vs. mother phi
83 TH2F *fHMuMotherRecPhi[4];//! detector-level muon phi vs. mother phi
84 TH2F *fHMuMotherGenEta[4];//! particle-level muon eta vs. mother eta
85 TH2F *fHMuMotherRecEta[4];//! detector-level muon eta vs. mother eta
86 TH1F *fHMuDCA[4]; //! muon DCA
87
15b0d1bb 88 TH1F *fHMuMohterPhiDifGen[4][3]; //!
89 TH1F *fHMuMohterPhiDifRec[4][3]; //!
90 TH1F *fHMuMohterEtaDifGen[4][3]; //!
91 TH1F *fHMuMohterEtaDifRec[4][3]; //!
92
93 TH1F *fHFXu; //!
94 TH1F *fHFXantiu; //!
95 TH1F *fHFXd; //!
96 TH1F *fHFXantid; //!
97 TH1F *fHFXg; //!
98 TH1F *fHFXetc; //!
99 TH1F *fHFXmuonP; //!
100 TH1F *fHFXmuonM; //!
101
7e990b20 102 AliMuonEffMC(const AliMuonEffMC&); // not implemented
103 AliMuonEffMC &operator=(const AliMuonEffMC&); // not implemented
104
a3cd18eb 105 ClassDef(AliMuonEffMC, 6);
7e990b20 106};
107
108#endif