]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/Correlations/DPhi/FourierDecomposition/AliMuonEffMC.h
coverity fixes (Saehanseul Oh <saehanseul.oh@cern.ch>)
[u/mrichter/AliRoot.git] / PWGCF / Correlations / DPhi / FourierDecomposition / AliMuonEffMC.h
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;
16 class AliStack;
17
18 class AliAODEvent;
19 class AliESDEvent;
20 class AliESDtrackCuts;
21 class AliEvtPoolManager;
22 class AliMCEvent;
23 class AliESDMuonTrack;
24 class AliAODTrack;
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 *);
37  
38   void         SetMcAna(Bool_t IsMc)               { fIsMc = IsMc;               }
39   void         SetMDProcess(Bool_t kMDProcess)     { fMDProcess = kMDProcess;    }
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;       }
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);
48
49  protected:
50   Bool_t       VertexOk(TObject* obj) const;
51   Bool_t       IsGoodMUONtrack(AliESDMuonTrack &track);
52   Bool_t       IsGoodMUONtrack(AliAODTrack &track);
53
54  private:
55   AliESDEvent *fESD;               //! ESD object
56   AliAODEvent *fAOD;               //! AOD object 
57   AliMCEvent  *fMC;                //! MC object
58   AliStack    *fStack;             //! MC stack
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
65   Bool_t       fIsMc;              //
66   Bool_t       fMDProcess;         // (mother hadron) : (daughter muon) QA 
67
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
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
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
102   AliMuonEffMC(const AliMuonEffMC&);            // not implemented
103   AliMuonEffMC &operator=(const AliMuonEffMC&); // not implemented
104
105   ClassDef(AliMuonEffMC, 6);
106 };
107
108 #endif