]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/FORWARD/analysis2/AliForwardMCMultiplicityTask.h
Merge branch 'TPCdev' of https://git.cern.ch/reps/AliRoot into TPCdev
[u/mrichter/AliRoot.git] / PWGLF / 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 *
bd6f5206 14 * @ingroup pwglf_forward_aod
ffca499d 15 */
285e7b27 16#include "AliForwardMultiplicityBase.h"
e1f47419 17#include "AliFMDMCEventInspector.h"
285e7b27 18#include "AliFMDMCSharingFilter.h"
19#include "AliFMDMCDensityCalculator.h"
72cc12cd 20#include "AliFMDMCCorrector.h"
285e7b27 21#include "AliFMDHistCollector.h"
0b7de667 22// #include "AliFMDEnergyFitter.h"
2b556440 23#include "AliFMDEventPlaneFinder.h"
285e7b27 24#include <AliESDFMD.h>
25class AliESDEvent;
26class TH2D;
27class TList;
28
29/**
30 * Calculate the multiplicity in the forward regions event-by-event
31 *
32 * @par Inputs:
33 * - AliESDEvent
7984e5f7 34 * - Kinematics
35 * - Track references
285e7b27 36 *
37 * @par Outputs:
38 * - AliAODForwardMult
39 *
40 * @par Histograms
41 *
42 * @par Corrections used
43 *
bd6f5206 44 * @ingroup pwglf_forward_tasks
45 * @ingroup pwglf_forward_mc
46 * @ingroup pwglf_forward_aod
285e7b27 47 *
48 */
49class AliForwardMCMultiplicityTask : public AliForwardMultiplicityBase
50{
51public:
52 /**
53 * Constructor
54 *
55 * @param name Name of task
56 */
57 AliForwardMCMultiplicityTask(const char* name);
58 /**
59 * Constructor
60 */
61 AliForwardMCMultiplicityTask();
62 /**
c8b1a7db 63 * @{
64 * @name Interface methods
285e7b27 65 */
285e7b27 66 /**
c8b1a7db 67 * Called before processing a single event - should not do anything
68 * but clear data, etc.
285e7b27 69 *
c8b1a7db 70 * @return true on success
285e7b27 71 */
c8b1a7db 72 virtual Bool_t PreEvent();
285e7b27 73 /**
74 * Process each event
75 *
c8b1a7db 76 * @param esd ESD event
285e7b27 77 */
c8b1a7db 78 virtual Bool_t Event(AliESDEvent& esd);
285e7b27 79 /**
80 * @}
81 */
5bb5d1f6 82 /**
83 * Process only primary MC tracks
84 *
85 * @param use
86 */
87 void SetOnlyPrimary(Bool_t use);
285e7b27 88 /**
89 * @{
90 * @name Access to sub-algorithms
91 */
92 /**
93 * Get reference to the EventInspector algorithm
94 *
95 * @return Reference to AliFMDEventInspector object
96 */
97 AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
285e7b27 98 /**
99 * Get reference to the SharingFilter algorithm
100 *
101 * @return Reference to AliFMDSharingFilter object
102 */
103 AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
104 /**
105 * Get reference to the DensityCalculator algorithm
106 *
107 * @return Reference to AliFMDDensityCalculator object
108 */
109 AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
110 /**
111 * Get reference to the Corrections algorithm
112 *
72cc12cd 113 * @return Reference to AliFMDCorrector object
285e7b27 114 */
72cc12cd 115 AliFMDCorrector& GetCorrections() { return fCorrections; }
285e7b27 116 /**
117 * Get reference to the HistCollector algorithm
118 *
119 * @return Reference to AliFMDHistCollector object
120 */
121 AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
1174780f 122 /**
123 * Get reference to the EventInspector algorithm
124 *
125 * @return Reference to AliFMDEventInspector object
126 */
127 const AliFMDEventInspector& GetEventInspector() const { return fEventInspector; }
1174780f 128 /**
129 * Get reference to the SharingFilter algorithm
130 *
131 * @return Reference to AliFMDSharingFilter object
132 */
133 const AliFMDSharingFilter& GetSharingFilter() const { return fSharingFilter; }
134 /**
135 * Get reference to the DensityCalculator algorithm
136 *
137 * @return Reference to AliFMDDensityCalculator object
138 */
139 const AliFMDDensityCalculator& GetDensityCalculator() const { return fDensityCalculator; }
140 /**
141 * Get reference to the Corrections algorithm
142 *
72cc12cd 143 * @return Reference to AliFMDCorrector object
1174780f 144 */
72cc12cd 145 const AliFMDCorrector& GetCorrections() const { return fCorrections; }
1174780f 146 /**
147 * Get reference to the HistCollector algorithm
148 *
149 * @return Reference to AliFMDHistCollector object
150 */
151 const AliFMDHistCollector& GetHistCollector() const { return fHistCollector; }
2b556440 152 /**
153 * Get reference to the EventPlaneFinder algorithm
154 *
155 * @return Reference to AliFMDEventPlaneFinder object
156 */
157 AliFMDEventPlaneFinder& GetEventPlaneFinder() { return fEventPlaneFinder; }
158 /**
159 * Get reference to the EventPlaneFinder algorithm
160 *
161 * @return Reference to AliFMDEventPlaneFinder object
162 */
163 const AliFMDEventPlaneFinder& GetEventPlaneFinder() const { return fEventPlaneFinder; }
285e7b27 164 /**
165 * @}
166 */
8449e3e0 167protected:
c8b1a7db 168 /**
169 * Copy constructor
170 *
171 * @param o Object to copy from
172 */
173 AliForwardMCMultiplicityTask(const AliForwardMCMultiplicityTask& o);
174 /**
175 * Assignment operator
176 *
177 * @param o Object to assign from
178 *
179 * @return Reference to this object
180 */
181 AliForwardMCMultiplicityTask&
182 operator=(const AliForwardMCMultiplicityTask& o);
7984e5f7 183 /**
8449e3e0 184 * Initialize members based on eta and vertex axis - only available
185 * after first event - called from SetupForData.
7984e5f7 186 *
8449e3e0 187 * @param pe @f$\eta@f$ axis
188 * @param pv Interaction point Z-coordinate axis
7984e5f7 189 */
c8b1a7db 190 virtual void InitMembers(const TAxis& pe, const TAxis& pv);
8449e3e0 191 /**
192 * Create output branches - called from UserCreateOutputObjects
193 */
194 virtual void CreateBranches(AliAODHandler* ah);
285e7b27 195 /**
8449e3e0 196 * Do estimates of @f$dN/d\eta@f$ - called at Terminate
285e7b27 197 *
8449e3e0 198 * @param input Input list
199 * @param output Output list
285e7b27 200 */
8449e3e0 201 virtual void EstimatedNdeta(const TList* input, TList* output) const;
285e7b27 202
285e7b27 203 AliESDFMD fESDFMD; // Sharing corrected ESD object
285e7b27 204 AliESDFMD fMCESDFMD; // MC 'Sharing corrected' ESD object
205 AliForwardUtil::Histos fMCHistos; // MC Cache histograms
206 AliAODForwardMult fMCAODFMD; // MC Output object
5bb5d1f6 207 AliForwardUtil::Histos fMCRingSums; // Cache histograms
4cbdf467 208 TH2D* fPrimary; // Per event primary particles
285e7b27 209
e1f47419 210 AliFMDMCEventInspector fEventInspector; // Algorithm
285e7b27 211 AliFMDMCSharingFilter fSharingFilter; // Algorithm
212 AliFMDMCDensityCalculator fDensityCalculator; // Algorithm
72cc12cd 213 AliFMDMCCorrector fCorrections; // Algorithm
285e7b27 214 AliFMDHistCollector fHistCollector; // Algorithm
2b556440 215 AliFMDEventPlaneFinder fEventPlaneFinder; // Algorithm
285e7b27 216
8449e3e0 217 ClassDef(AliForwardMCMultiplicityTask,4) // Forward multiplicity class
285e7b27 218};
219
220#endif
221// Local Variables:
222// mode: C++
223// End:
224