3 #ifndef ALIANALYSISNETPARTICLEEFFCONT_H
4 #define ALIANALYSISNETPARTICLEEFFCONT_H
6 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7 * See cxx source for full Copyright notice */
9 // Efficiency and Contaminations for NetParticle Distributions
10 // Authors: Jochen Thaeder <jochen@thaeder.de>
12 #include "THnSparse.h"
14 #include "AliAnalysisNetParticleHelper.h"
17 class AliESDInputHandler;
18 class AliAODInputHandler;
21 class AliAnalysisNetParticleEffCont : public TNamed {
26 * ---------------------------------------------------------------------------------
27 * Constructor / Destructor
28 * ---------------------------------------------------------------------------------
31 AliAnalysisNetParticleEffCont();
32 virtual ~AliAnalysisNetParticleEffCont();
35 * ---------------------------------------------------------------------------------
37 * ---------------------------------------------------------------------------------
41 void Initialize(AliESDtrackCuts *cuts, AliAnalysisNetParticleHelper* helper, Int_t trackCutBit);
44 Int_t SetupEvent(AliESDInputHandler *esdHandler, AliMCEvent *mcEvent);
45 Int_t SetupEvent(AliAODInputHandler *esdHandler); // MC particles are stored in AOD
54 * ---------------------------------------------------------------------------------
56 * ---------------------------------------------------------------------------------
59 /** Get Ptr to efficiency THnSparse */
60 THnSparseF* GetHnEff() {return fHnEff;}
62 /** Get Ptr to contaminiation THnSparse */
63 THnSparseF* GetHnCont() {return fHnCont;}
65 ///////////////////////////////////////////////////////////////////////////////////
69 AliAnalysisNetParticleEffCont(const AliAnalysisNetParticleEffCont&); // not implemented
70 AliAnalysisNetParticleEffCont& operator=(const AliAnalysisNetParticleEffCont&); // not implemented
74 * ---------------------------------------------------------------------------------
76 * ---------------------------------------------------------------------------------
79 /** Create the efficiency / contamination THnSparseF */
80 void CreateHistograms();
84 void FillMCLabelsAOD();
86 /** Fill efficiency THnSparse */
88 void FillMCEffHistAOD();
90 /** Check if particle is contamination */
91 void CheckContTrack(Int_t label, Float_t sign, Int_t idxTrack);
92 void CheckContTrackAOD(Int_t label, Float_t sign, Int_t idxTrack);
95 * ---------------------------------------------------------------------------------
97 * ---------------------------------------------------------------------------------
100 AliAnalysisNetParticleHelper *fHelper; //! Ptr to helper class
102 // -----------------------------------------------------------------------
104 Int_t fPdgCode; // PDG code of particle to be found
106 // --- ESD only ----------------------------------------------------------
108 AliESDEvent *fESD; //! ESD object
109 AliESDtrackCuts *fESDTrackCuts; //! ESD cuts
111 // --- AOD only ----------------------------------------------------------
113 AliAODEvent *fAOD; //! AOD object
114 TClonesArray *fArrayMC; //! array of MC particles
116 // -----------------------------------------------------------------------
118 Float_t fCentralityBin; // Centrality of current event
119 Int_t fNTracks; // N Tracks in the current event
121 Int_t fAODtrackCutBit; // Track filter bit for AOD tracks
123 // --- MC only -----------------------------------------------------------
125 AliStack *fStack; //! Ptr to stack
126 AliMCEvent *fMCEvent; //! Ptr to MC event
128 Int_t **fLabelsRec; //! 2x nTracks large array with labels for MC particles
130 // -----------------------------------------------------------------------
132 THnSparseF *fHnEff; // THnSparseF efficiency
133 THnSparseF *fHnCont; // THnSparseF contamination
135 // -----------------------------------------------------------------------
137 ClassDef(AliAnalysisNetParticleEffCont, 1);