]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FORWARD/analysis2/AliForwardMCMultiplicityTask.h
MB fix for 2.76 TeV
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / AliForwardMCMultiplicityTask.h
CommitLineData
7984e5f7 1//
2// Calculate the multiplicity in the forward regions event-by-event
3//
285e7b27 4#ifndef ALIFORWARDMCMULTIPLICITYTASK_H
5#define ALIFORWARDMCMULTIPLICITYTASK_H
ffca499d 6/**
7 * @file AliForwardMCMultiplicityTask.h
8 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
9 * @date Wed Mar 23 14:06:13 2011
10 *
11 * @brief
12 *
13 *
14 * @ingroup pwg2_forward_aod
15 */
285e7b27 16#include "AliForwardMultiplicityBase.h"
17#include "AliForwardUtil.h"
e1f47419 18#include "AliFMDMCEventInspector.h"
285e7b27 19#include "AliFMDMCSharingFilter.h"
20#include "AliFMDMCDensityCalculator.h"
72cc12cd 21#include "AliFMDMCCorrector.h"
285e7b27 22#include "AliFMDHistCollector.h"
23#include "AliAODForwardMult.h"
24#include "AliFMDEnergyFitter.h"
25#include <AliESDFMD.h>
26class AliESDEvent;
27class TH2D;
28class TList;
29
30/**
31 * Calculate the multiplicity in the forward regions event-by-event
32 *
33 * @par Inputs:
34 * - AliESDEvent
7984e5f7 35 * - Kinematics
36 * - Track references
285e7b27 37 *
38 * @par Outputs:
39 * - AliAODForwardMult
40 *
41 * @par Histograms
42 *
43 * @par Corrections used
44 *
45 * @ingroup pwg2_forward_tasks
46 * @ingroup pwg2_forward_mc
ffca499d 47 * @ingroup pwg2_forward_aod
285e7b27 48 *
49 */
50class AliForwardMCMultiplicityTask : public AliForwardMultiplicityBase
51{
52public:
53 /**
54 * Constructor
55 *
56 * @param name Name of task
57 */
58 AliForwardMCMultiplicityTask(const char* name);
59 /**
60 * Constructor
61 */
62 AliForwardMCMultiplicityTask();
63 /**
64 * Copy constructor
65 *
66 * @param o Object to copy from
67 */
68 AliForwardMCMultiplicityTask(const AliForwardMCMultiplicityTask& o);
69 /**
70 * Assignment operator
71 *
72 * @param o Object to assign from
73 *
74 * @return Reference to this object
75 */
76 AliForwardMCMultiplicityTask&
77 operator=(const AliForwardMCMultiplicityTask& o);
78 /**
79 * @{
80 * @name Interface methods
81 */
82 /**
83 * Create output objects
84 *
85 */
86 virtual void UserCreateOutputObjects();
87 /**
88 * Process each event
89 *
90 * @param option Not used
91 */
92 virtual void UserExec(Option_t* option);
93 /**
94 * End of job
95 *
96 * @param option Not used
97 */
98 virtual void Terminate(Option_t* option);
99 /**
100 * @}
101 */
5bb5d1f6 102 /**
103 * Process only primary MC tracks
104 *
105 * @param use
106 */
107 void SetOnlyPrimary(Bool_t use);
285e7b27 108 /**
109 * @{
110 * @name Access to sub-algorithms
111 */
112 /**
113 * Get reference to the EventInspector algorithm
114 *
115 * @return Reference to AliFMDEventInspector object
116 */
117 AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
285e7b27 118 /**
119 * Get reference to the SharingFilter algorithm
120 *
121 * @return Reference to AliFMDSharingFilter object
122 */
123 AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
124 /**
125 * Get reference to the DensityCalculator algorithm
126 *
127 * @return Reference to AliFMDDensityCalculator object
128 */
129 AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
130 /**
131 * Get reference to the Corrections algorithm
132 *
72cc12cd 133 * @return Reference to AliFMDCorrector object
285e7b27 134 */
72cc12cd 135 AliFMDCorrector& GetCorrections() { return fCorrections; }
285e7b27 136 /**
137 * Get reference to the HistCollector algorithm
138 *
139 * @return Reference to AliFMDHistCollector object
140 */
141 AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
1174780f 142 /**
143 * Get reference to the EventInspector algorithm
144 *
145 * @return Reference to AliFMDEventInspector object
146 */
147 const AliFMDEventInspector& GetEventInspector() const { return fEventInspector; }
1174780f 148 /**
149 * Get reference to the SharingFilter algorithm
150 *
151 * @return Reference to AliFMDSharingFilter object
152 */
153 const AliFMDSharingFilter& GetSharingFilter() const { return fSharingFilter; }
154 /**
155 * Get reference to the DensityCalculator algorithm
156 *
157 * @return Reference to AliFMDDensityCalculator object
158 */
159 const AliFMDDensityCalculator& GetDensityCalculator() const { return fDensityCalculator; }
160 /**
161 * Get reference to the Corrections algorithm
162 *
72cc12cd 163 * @return Reference to AliFMDCorrector object
1174780f 164 */
72cc12cd 165 const AliFMDCorrector& GetCorrections() const { return fCorrections; }
1174780f 166 /**
167 * Get reference to the HistCollector algorithm
168 *
169 * @return Reference to AliFMDHistCollector object
170 */
171 const AliFMDHistCollector& GetHistCollector() const { return fHistCollector; }
285e7b27 172 /**
173 * @}
174 */
7984e5f7 175 /**
176 * Set debug level
177 *
178 * @param dbg debug level
179 */
285e7b27 180 void SetDebug(Int_t dbg);
181protected:
182 /**
183 * Initialise the sub objects and stuff. Called on first event
184 *
185 */
186 virtual void InitializeSubs();
187
188 TH2D* fHData; // Summed 1/Nd^2N_{ch}/dphideta
189 AliESDFMD fESDFMD; // Sharing corrected ESD object
190 AliForwardUtil::Histos fHistos; // Cache histograms
191 AliAODForwardMult fAODFMD; // Output object
192 AliESDFMD fMCESDFMD; // MC 'Sharing corrected' ESD object
193 AliForwardUtil::Histos fMCHistos; // MC Cache histograms
194 AliAODForwardMult fMCAODFMD; // MC Output object
5bb5d1f6 195 AliForwardUtil::Histos fRingSums; // Cache histograms
196 AliForwardUtil::Histos fMCRingSums; // Cache histograms
4cbdf467 197 TH2D* fPrimary; // Per event primary particles
285e7b27 198
e1f47419 199 AliFMDMCEventInspector fEventInspector; // Algorithm
285e7b27 200 AliFMDMCSharingFilter fSharingFilter; // Algorithm
201 AliFMDMCDensityCalculator fDensityCalculator; // Algorithm
72cc12cd 202 AliFMDMCCorrector fCorrections; // Algorithm
285e7b27 203 AliFMDHistCollector fHistCollector; // Algorithm
204
205 TList* fList; // Output list
206
207 ClassDef(AliForwardMCMultiplicityTask,1) // Forward multiplicity class
208};
209
210#endif
211// Local Variables:
212// mode: C++
213// End:
214