]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/NetParticle/AliAnalysisNetParticleDistribution.h
Fixing bug in NetParticle
[u/mrichter/AliRoot.git] / PWGCF / EBYE / NetParticle / AliAnalysisNetParticleDistribution.h
1 //-*- Mode: C++ -*-
2
3 #ifndef ALIANALYSISNETPARTICLEDISTRIBUTION_H
4 #define ALIANALYSISNETPARTICLEDISTRIBUTION_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  * -- Create input for distributions
12  * Authors: Jochen Thaeder <jochen@thaeder.de>
13  *          Michael Weber <m.weber@cern.ch>
14  */
15
16 #include "THnSparse.h"
17 #include "TList.h"
18
19 #include "AliAnalysisNetParticleBase.h"
20
21 class AliAnalysisNetParticleDistribution : public AliAnalysisNetParticleBase {
22
23  public:
24
25   AliAnalysisNetParticleDistribution();
26   virtual ~AliAnalysisNetParticleDistribution();
27
28   /*
29    * ---------------------------------------------------------------------------------
30    *                                 Public Methods
31    * ---------------------------------------------------------------------------------
32    */
33
34   /** Process Event - implements purely virtual method */
35   virtual void Process();
36
37   /*
38    * ---------------------------------------------------------------------------------
39    *                                 Setter/Getter
40    * ---------------------------------------------------------------------------------
41    */
42
43   void SetOutList(TList* l) {fOutList = l;}
44
45   ///////////////////////////////////////////////////////////////////////////////////
46
47  private:
48
49   AliAnalysisNetParticleDistribution(const AliAnalysisNetParticleDistribution&); // not implemented
50   AliAnalysisNetParticleDistribution& operator=(const AliAnalysisNetParticleDistribution&); // not implemented
51
52   /*
53    * ---------------------------------------------------------------------------------
54    *                                Methods - private
55    * ---------------------------------------------------------------------------------
56    */
57
58   /** Event-wise Initialization - implements virtual method */
59   virtual void Init();
60
61   /** Event-wise Reset - implements virtual method */
62   virtual void Reset();
63
64   /** HistSet-wise Reset */
65  void ResetHistSet();
66
67   /** Create the efficiency / contamination THnSparseD  - implements virtual method */
68   virtual void CreateHistograms();
69
70   // -----------------------------------------------------------------------
71
72    /** Process ESD/AOD tracks and fill histograms */
73   Int_t ProcessTracks();
74
75   /** Process primary particles from the stack and fill histograms */
76   Int_t ProcessParticles();
77   
78   /*
79    * ---------------------------------------------------------------------------------
80    *                            Helper Methods - private
81    * ---------------------------------------------------------------------------------
82    */
83
84   /** Add set of histograms */
85   void AddHistSetCent(const Char_t *name, const Char_t *title);
86   void AddHistSetCentPt(const Char_t *name, const Char_t *title);
87
88   /** Fill set of histograms */
89   void FillHistSetCent(const Char_t *name, Int_t idx, Bool_t isMC);
90   void FillHistSetCentPt(const Char_t *name, Int_t idx, Bool_t isMC);
91
92   /*
93    * ---------------------------------------------------------------------------------
94    *                             Members - private
95    * ---------------------------------------------------------------------------------
96    */
97
98   // =======================================================================
99   TList                *fOutList;               //! Output data container
100   // =======================================================================
101   Int_t                 fOrder;                 //  Max order of higher order distributions
102   // -----------------------------------------------------------------------
103   Int_t                 fNNp;                   //  N sets of arrays of particle/anti-particle counts
104   Int_t               **fNp;                    //  Array of particle/anti-particle counts
105   Int_t              ***fNpPt;                  //  Array of particle/anti-particle per ptBin counts
106
107   Int_t                 fNMCNp;                 //  N sets of arrays of MC particle/anti-particle counts
108   Int_t               **fMCNp;                  //  Array of MC particle/anti-particle counts
109   Int_t              ***fMCNpPt;                //  Array of MC particle/anti-particle per ptBin counts
110   // -----------------------------------------------------------------------
111   Double_t            **fRedFactp;              //  Array of particle/anti-particle reduced factorial
112   // =======================================================================
113   THnSparseD           *fHnTrackUnCorr;         //  THnSparseD : uncorrected probe particles
114   // -----------------------------------------------------------------------
115
116   ClassDef(AliAnalysisNetParticleDistribution, 1);
117 };
118
119 #endif