]>
Commit | Line | Data |
---|---|---|
cb68eb1d | 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 | ||
4918c45f | 9 | /** |
10 | * Class for for NetParticle Distributions | |
11 | * -- Create input for distributions | |
12 | * Authors: Jochen Thaeder <jochen@thaeder.de> | |
13 | * Michael Weber <m.weber@cern.ch> | |
14 | */ | |
cb68eb1d | 15 | |
16 | #include "THnSparse.h" | |
17 | #include "TH1F.h" | |
18 | #include "TF1.h" | |
19 | ||
20 | #include "AliAnalysisNetParticleHelper.h" | |
21 | ||
22 | class AliESDtrack; | |
23 | class AliMCEvent; | |
24 | class AliStack; | |
25 | class AliPIDResponse; | |
26 | class AliESDInputHandler; | |
27 | class AliESDtrackCuts; | |
9be43c8e | 28 | class AliAODInputHandler; |
cb68eb1d | 29 | |
30 | class AliAnalysisNetParticleDistribution : public TNamed { | |
31 | ||
32 | public: | |
33 | ||
34 | /* | |
35 | * --------------------------------------------------------------------------------- | |
36 | * Constructor / Destructor | |
37 | * --------------------------------------------------------------------------------- | |
38 | */ | |
39 | ||
40 | AliAnalysisNetParticleDistribution(); | |
41 | virtual ~AliAnalysisNetParticleDistribution(); | |
42 | ||
43 | /* | |
44 | * --------------------------------------------------------------------------------- | |
45 | * Public Methods | |
46 | * --------------------------------------------------------------------------------- | |
47 | */ | |
48 | ||
49 | /** Initialize */ | |
4918c45f | 50 | Int_t Initialize(AliAnalysisNetParticleHelper* helper, AliESDtrackCuts* cuts, Bool_t isMC, Float_t *ptRange, Float_t etaMax, Int_t trackCutBit); |
cb68eb1d | 51 | |
52 | /** Add histograms to outlist */ | |
53 | void CreateHistograms(TList *outList); | |
54 | ||
55 | /** Setup Event */ | |
9be43c8e | 56 | Int_t SetupEvent(AliESDInputHandler *esdHandler, AliAODInputHandler *aodHandler, AliMCEvent *mcEvent); |
cb68eb1d | 57 | |
478c95cf | 58 | /** Reset Event */ |
cb68eb1d | 59 | void ResetEvent(); |
60 | ||
61 | /** Process NetParticle Distributions */ | |
62 | Int_t Process(); | |
63 | ||
64 | /////////////////////////////////////////////////////////////////////////////////// | |
65 | ||
66 | private: | |
67 | ||
68 | AliAnalysisNetParticleDistribution(const AliAnalysisNetParticleDistribution&); // not implemented | |
69 | AliAnalysisNetParticleDistribution& operator=(const AliAnalysisNetParticleDistribution&); // not implemented | |
70 | ||
71 | /* | |
72 | * --------------------------------------------------------------------------------- | |
73 | * Process - Private | |
74 | * --------------------------------------------------------------------------------- | |
75 | */ | |
76 | /** Process ESD tracks and fill histograms */ | |
77 | Int_t ProcessESDTracks(); | |
78 | ||
9be43c8e | 79 | /** Process AOD tracks and fill histograms */ |
80 | Int_t ProcessAODTracks(); | |
81 | ||
cb68eb1d | 82 | /** Process primary particles from the stack and fill histograms */ |
83 | Int_t ProcessStackParticles(); | |
cb68eb1d | 84 | |
478c95cf | 85 | /* |
cb68eb1d | 86 | * --------------------------------------------------------------------------------- |
87 | * Helper Methods - private | |
88 | * --------------------------------------------------------------------------------- | |
89 | */ | |
90 | ||
91 | /** Add set of histograms */ | |
92 | void AddHistSet(const Char_t *name, const Char_t *title); | |
93 | ||
94 | /** Fill set of histograms */ | |
4918c45f | 95 | void FillHistSet(const Char_t *name, Float_t *np); |
96 | ||
97 | /** Calculate ingredient for faktorial moment */ | |
98 | Double_t GetF(Int_t ii, Int_t kk, Float_t *np); | |
cb68eb1d | 99 | |
100 | /* | |
101 | * --------------------------------------------------------------------------------- | |
102 | * Members - private | |
103 | * --------------------------------------------------------------------------------- | |
104 | */ | |
105 | ||
106 | AliAnalysisNetParticleHelper *fHelper; //! Ptr to helper class | |
107 | ||
108 | TList *fOutList; //! Output data container | |
109 | // ----------------------------------------------------------------------- | |
110 | AliESDInputHandler *fESDHandler; //! Ptr to ESD handler | |
111 | AliPIDResponse *fPIDResponse; //! Ptr to PID response Object | |
112 | AliESDEvent *fESD; //! Ptr to ESD event | |
113 | ||
9be43c8e | 114 | AliAODInputHandler *fAODHandler; //! Ptr to AOD handler |
115 | AliAODEvent *fAOD; //! Ptr to AOD event | |
116 | ||
cb68eb1d | 117 | Bool_t fIsMC; // Is MC event |
118 | ||
119 | AliMCEvent *fMCEvent; //! Ptr to MC event | |
120 | AliStack *fStack; //! Ptr to stack | |
121 | ||
122 | AliESDtrackCuts *fESDTrackCuts; //! ESD cuts | |
123 | // ----------------------------------------------------------------------- | |
124 | Float_t fEtaMax; // Max, absolut eta | |
125 | Float_t *fPtRange; // Array of pt [min,max] | |
9be43c8e | 126 | |
4918c45f | 127 | Int_t fOrder; // Max order of higher order distributions |
128 | ||
9be43c8e | 129 | Int_t fAODtrackCutBit; // Track filter bit for AOD tracks |
cb68eb1d | 130 | // ----------------------------------------------------------------------- |
4918c45f | 131 | Int_t fNNp; // N sets of arrays of particle/anti-particle counts |
132 | Float_t **fNp; // Array of particle/anti-particle counts | |
cb68eb1d | 133 | |
134 | Int_t fNMCNp; // N sets of arrays of MC particle/anti-particle counts | |
135 | Float_t **fMCNp; // Array of MC particle/anti-particle counts | |
cb68eb1d | 136 | // ----------------------------------------------------------------------- |
137 | THnSparseF *fHnTrackUnCorr; // THnSparseF : uncorrected probe particles | |
138 | // ----------------------------------------------------------------------- | |
139 | ||
140 | ClassDef(AliAnalysisNetParticleDistribution, 1); | |
141 | }; | |
142 | ||
143 | #endif |