2 // Calculate the multiplicity in the forward regions event-by-event
4 #ifndef ALIFORWARDMCMULTIPLICITYTASK_H
5 #define ALIFORWARDMCMULTIPLICITYTASK_H
7 * @file AliForwardMCMultiplicityTask.h
8 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
9 * @date Wed Mar 23 14:06:13 2011
14 * @ingroup pwglf_forward_aod
16 #include "AliForwardMultiplicityBase.h"
17 #include "AliFMDMCEventInspector.h"
18 #include "AliFMDMCSharingFilter.h"
19 #include "AliFMDMCDensityCalculator.h"
20 #include "AliFMDMCCorrector.h"
21 #include "AliFMDHistCollector.h"
22 #include "AliFMDEnergyFitter.h"
23 #include "AliFMDEventPlaneFinder.h"
24 #include <AliESDFMD.h>
30 * Calculate the multiplicity in the forward regions event-by-event
42 * @par Corrections used
44 * @ingroup pwglf_forward_tasks
45 * @ingroup pwglf_forward_mc
46 * @ingroup pwglf_forward_aod
49 class AliForwardMCMultiplicityTask : public AliForwardMultiplicityBase
55 * @param name Name of task
57 AliForwardMCMultiplicityTask(const char* name);
61 AliForwardMCMultiplicityTask();
65 * @param o Object to copy from
67 AliForwardMCMultiplicityTask(const AliForwardMCMultiplicityTask& o);
71 * @param o Object to assign from
73 * @return Reference to this object
75 AliForwardMCMultiplicityTask&
76 operator=(const AliForwardMCMultiplicityTask& o);
79 * @name Interface methods
84 * @param option Not used
86 virtual void UserExec(Option_t* option);
91 * Process only primary MC tracks
95 void SetOnlyPrimary(Bool_t use);
98 * @name Access to sub-algorithms
101 * Get reference to the EventInspector algorithm
103 * @return Reference to AliFMDEventInspector object
105 AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
107 * Get reference to the SharingFilter algorithm
109 * @return Reference to AliFMDSharingFilter object
111 AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
113 * Get reference to the DensityCalculator algorithm
115 * @return Reference to AliFMDDensityCalculator object
117 AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
119 * Get reference to the Corrections algorithm
121 * @return Reference to AliFMDCorrector object
123 AliFMDCorrector& GetCorrections() { return fCorrections; }
125 * Get reference to the HistCollector algorithm
127 * @return Reference to AliFMDHistCollector object
129 AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
131 * Get reference to the EventInspector algorithm
133 * @return Reference to AliFMDEventInspector object
135 const AliFMDEventInspector& GetEventInspector() const { return fEventInspector; }
137 * Get reference to the SharingFilter algorithm
139 * @return Reference to AliFMDSharingFilter object
141 const AliFMDSharingFilter& GetSharingFilter() const { return fSharingFilter; }
143 * Get reference to the DensityCalculator algorithm
145 * @return Reference to AliFMDDensityCalculator object
147 const AliFMDDensityCalculator& GetDensityCalculator() const { return fDensityCalculator; }
149 * Get reference to the Corrections algorithm
151 * @return Reference to AliFMDCorrector object
153 const AliFMDCorrector& GetCorrections() const { return fCorrections; }
155 * Get reference to the HistCollector algorithm
157 * @return Reference to AliFMDHistCollector object
159 const AliFMDHistCollector& GetHistCollector() const { return fHistCollector; }
161 * Get reference to the EventPlaneFinder algorithm
163 * @return Reference to AliFMDEventPlaneFinder object
165 AliFMDEventPlaneFinder& GetEventPlaneFinder() { return fEventPlaneFinder; }
167 * Get reference to the EventPlaneFinder algorithm
169 * @return Reference to AliFMDEventPlaneFinder object
171 const AliFMDEventPlaneFinder& GetEventPlaneFinder() const { return fEventPlaneFinder; }
177 * Initialize members based on eta and vertex axis - only available
178 * after first event - called from SetupForData.
180 * @param pe @f$\eta@f$ axis
181 * @param pv Interaction point Z-coordinate axis
183 virtual void InitMembers(const TAxis* pe, const TAxis* pv);
185 * Create output branches - called from UserCreateOutputObjects
187 virtual void CreateBranches(AliAODHandler* ah);
189 * Do estimates of @f$dN/d\eta@f$ - called at Terminate
191 * @param input Input list
192 * @param output Output list
194 virtual void EstimatedNdeta(const TList* input, TList* output) const;
196 AliESDFMD fESDFMD; // Sharing corrected ESD object
197 AliESDFMD fMCESDFMD; // MC 'Sharing corrected' ESD object
198 AliForwardUtil::Histos fMCHistos; // MC Cache histograms
199 AliAODForwardMult fMCAODFMD; // MC Output object
200 AliForwardUtil::Histos fMCRingSums; // Cache histograms
201 TH2D* fPrimary; // Per event primary particles
203 AliFMDMCEventInspector fEventInspector; // Algorithm
204 AliFMDMCSharingFilter fSharingFilter; // Algorithm
205 AliFMDMCDensityCalculator fDensityCalculator; // Algorithm
206 AliFMDMCCorrector fCorrections; // Algorithm
207 AliFMDHistCollector fHistCollector; // Algorithm
208 AliFMDEventPlaneFinder fEventPlaneFinder; // Algorithm
210 ClassDef(AliForwardMCMultiplicityTask,4) // Forward multiplicity class