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 | |
8 | class TH1F; |
9 | class TH1D; |
10 | class TH2F; |
11 | class TH3F; |
12 | class THn; |
13 | class TList; |
14 | class TObjArray; |
15 | class TObject; |
15b0d1bb |
16 | class AliStack; |
7e990b20 |
17 | |
18 | class AliAODEvent; |
19 | class AliESDEvent; |
20 | class AliESDtrackCuts; |
21 | class AliEvtPoolManager; |
22 | class AliMCEvent; |
23 | class AliESDMuonTrack; |
b673a083 |
24 | class AliAODTrack; |
7e990b20 |
25 | #include "AliAnalysisTaskSE.h" |
26 | |
27 | |
28 | class 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 |