]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/NetParticle/AliAnalysisNetParticleEffCont.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / EBYE / NetParticle / AliAnalysisNetParticleEffCont.h
1 //-*- Mode: C++ -*-
2
3 #ifndef ALIANALYSISNETPARTICLEEFFCONT_H
4 #define ALIANALYSISNETPARTICLEEFFCONT_H
5
6 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7  * See cxx source for full Copyright notice                               */
8  
9 /**
10  * Class for NetParticle Distributions
11  * -- Efficiency and contaminations for netParticle distributions
12  * Authors: Jochen Thaeder <jochen@thaeder.de>
13  *          Michael Weber <m.weber@cern.ch>
14  */
15
16 class AliVTrack;
17
18 #include "THnSparse.h"
19
20 #include "AliAnalysisNetParticleBase.h"
21
22 class AliAnalysisNetParticleEffCont: public AliAnalysisNetParticleBase {
23
24  public:
25
26   AliAnalysisNetParticleEffCont();
27   virtual ~AliAnalysisNetParticleEffCont();
28   
29   /*
30    * ---------------------------------------------------------------------------------
31    *                                 Public Methods
32    * ---------------------------------------------------------------------------------
33    */
34
35   /** Process Event - implements purely virtual method */
36   virtual void Process();
37
38   /*
39    * ---------------------------------------------------------------------------------
40    *                                 Setter/Getter
41    * ---------------------------------------------------------------------------------
42    */
43
44   /** Get Ptr to efficiency THnSparse */
45   THnSparseF* GetHnEff()  {return fHnEff;}
46
47   /** Get Ptr to contaminiation THnSparse */
48   THnSparseF* GetHnCont() {return fHnCont;}
49
50   ///////////////////////////////////////////////////////////////////////////////////
51
52  private:
53
54   AliAnalysisNetParticleEffCont(const AliAnalysisNetParticleEffCont&); // not implemented
55   AliAnalysisNetParticleEffCont& operator=(const AliAnalysisNetParticleEffCont&); // not implemented
56
57   /*
58    * ---------------------------------------------------------------------------------
59    *                                Methods - private
60    * ---------------------------------------------------------------------------------
61    */
62
63   /** Event-wise Initialization - Can be implemented by every class */
64   virtual void Init();
65
66   /** Create the efficiency / contamination THnSparse */
67   virtual void CreateHistograms();
68
69   /** Event-wise Reset - Can be implemented by every class */
70   virtual void Reset();
71
72   /** Event-wise Setup - Can be implemented by every class */
73   virtual Int_t Setup();
74
75   // -----------------------------------------------------------------------
76
77   /** Fill MC labels */
78   void FillMCLabels(); 
79
80   /** Fill efficiency THnSparse */
81   void FillMCEffHist();
82
83   /** Check if particle is contamination */
84   void CheckContTrack(AliVTrack* track);
85       
86   /*
87    * ---------------------------------------------------------------------------------
88    *                             Members - private
89    * ---------------------------------------------------------------------------------
90    */
91
92   // =======================================================================
93   Int_t             **fLabelsRec;             //! 2x nTracks large array with labels for MC particles
94   // =======================================================================
95   THnSparseF         *fHnEff;                 //  THnSparseF efficiency 
96   THnSparseF         *fHnCont;                //  THnSparseF contamination
97   // -----------------------------------------------------------------------
98
99   ClassDef(AliAnalysisNetParticleEffCont, 1);
100 };
101
102 #endif