Net Particle fluctuation task including efficiency correction (by Jochen Thaeder)
[u/mrichter/AliRoot.git] / PWGCF / EBYE / NetParticle / AliAnalysisNetParticleDCA.h
1 //-*- Mode: C++ -*-
2
3 #ifndef ALIANALYSISNETPARTICLEDCA_H
4 #define ALIANALYSISNETPARTICLEDCA_H
5
6 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
7  * See cxx source for full Copyright notice                               */
8  
9 // Efficiency and Contaminations for NetParticle Distributions
10 // Authors: Jochen Thaeder <jochen@thaeder.de>
11
12 #include "THnSparse.h"
13
14 #include "AliAnalysisNetParticleHelper.h"
15
16 class AliESDEvent;
17 class AliESDInputHandler;
18 class AliMCEvent;
19 class AliStack;
20
21 class AliAnalysisNetParticleDCA : public TNamed {
22
23  public:
24
25   /*
26    * ---------------------------------------------------------------------------------
27    *                            Constructor / Destructor
28    * ---------------------------------------------------------------------------------
29    */
30
31   AliAnalysisNetParticleDCA();
32   virtual ~AliAnalysisNetParticleDCA();
33
34   /*
35    * ---------------------------------------------------------------------------------
36    *                                 Public Methods
37    * ---------------------------------------------------------------------------------
38    */
39
40   /** Initialize */
41   void Initialize(AliESDtrackCuts *cuts, AliESDtrackCuts *cutsBkg, AliAnalysisNetParticleHelper* helper);
42
43   /** Setup Event */
44   Int_t SetupEvent(AliESDInputHandler *esdHandler, AliMCEvent *mcEvent);
45
46   /** Reset Event */
47   void ResetEvent();
48
49   /** Process Event */
50   void Process();
51
52   /*
53    * ---------------------------------------------------------------------------------
54    *                                    Getter
55    * ---------------------------------------------------------------------------------
56    */
57
58   /** Get Ptr to DCA THnSparse */
59   THnSparseF* GetHnDCA() {return fHnDCA;}
60
61   ///////////////////////////////////////////////////////////////////////////////////
62
63  private:
64
65   AliAnalysisNetParticleDCA(const AliAnalysisNetParticleDCA&); // not implemented
66   AliAnalysisNetParticleDCA& operator=(const AliAnalysisNetParticleDCA&); // not implemented
67
68
69 #if 0
70   /*
71    * ---------------------------------------------------------------------------------
72    *                                Methods - private
73    * ---------------------------------------------------------------------------------
74    */
75
76   /** Create the efficiency / contamination THnSparseF */
77   void CreateHistograms();
78
79   /** Fill DCA ThnSparse */
80   void FillDCA(); 
81
82   /** Check if particle is contamination */
83   void CheckDCATrack(Int_t label, Float_t sign, Int_t idxTrack);
84       
85   /*
86    * ---------------------------------------------------------------------------------
87    *                             Members - private
88    * ---------------------------------------------------------------------------------
89    */
90 #endif
91   AliAnalysisNetParticleHelper *fHelper;      //! Ptr to helper class
92
93   // --- ESD only ----------------------------------------------------------
94
95   AliESDEvent        *fESD;                   //! ESD object
96   AliESDtrackCuts    *fESDTrackCuts;          //! ESD cuts  
97   AliESDtrackCuts    *fESDTrackCutsBkg;       //! ESD cuts  
98   
99   // --- MC only -----------------------------------------------------------
100
101   AliStack           *fStack;                 //! Ptr to stack
102   AliMCEvent         *fMCEvent;               //! Ptr to MC event
103
104   // -----------------------------------------------------------------------
105
106   THnSparseF         *fHnDCA;                 //  THnSparseF contamination DCA
107
108   // -----------------------------------------------------------------------
109
110   ClassDef(AliAnalysisNetParticleDCA, 1);
111 };
112
113 #endif