]>
Commit | Line | Data |
---|---|---|
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 |