2 // Calculate the multiplicity in the forward regions event-by-event
4 #ifndef ALIFORWARDMCMULTIPLICITYTASK_H
5 #define ALIFORWARDMCMULTIPLICITYTASK_H
6 #include "AliForwardMultiplicityBase.h"
7 #include "AliForwardUtil.h"
8 #include "AliFMDEventInspector.h"
9 #include "AliFMDEnergyFitter.h"
10 #include "AliFMDMCSharingFilter.h"
11 #include "AliFMDMCDensityCalculator.h"
12 #include "AliFMDMCCorrections.h"
13 #include "AliFMDHistCollector.h"
14 #include "AliAODForwardMult.h"
15 #include "AliFMDEnergyFitter.h"
16 #include <AliESDFMD.h>
22 * Calculate the multiplicity in the forward regions event-by-event
34 * @par Corrections used
36 * @ingroup pwg2_forward_tasks
37 * @ingroup pwg2_forward_mc
40 class AliForwardMCMultiplicityTask : public AliForwardMultiplicityBase
46 * @param name Name of task
48 AliForwardMCMultiplicityTask(const char* name);
52 AliForwardMCMultiplicityTask();
56 * @param o Object to copy from
58 AliForwardMCMultiplicityTask(const AliForwardMCMultiplicityTask& o);
62 * @param o Object to assign from
64 * @return Reference to this object
66 AliForwardMCMultiplicityTask&
67 operator=(const AliForwardMCMultiplicityTask& o);
70 * @name Interface methods
73 * Create output objects
76 virtual void UserCreateOutputObjects();
80 * @param option Not used
82 virtual void UserExec(Option_t* option);
86 * @param option Not used
88 virtual void Terminate(Option_t* option);
94 * @name Access to sub-algorithms
97 * Get reference to the EventInspector algorithm
99 * @return Reference to AliFMDEventInspector object
101 AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
103 * Get reference to the EnergyFitter algorithm
105 * @return Reference to AliFMDEnergyFitter object
107 AliFMDEnergyFitter& GetEnergyFitter() { return fEnergyFitter; }
109 * Get reference to the SharingFilter algorithm
111 * @return Reference to AliFMDSharingFilter object
113 AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
115 * Get reference to the DensityCalculator algorithm
117 * @return Reference to AliFMDDensityCalculator object
119 AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
121 * Get reference to the Corrections algorithm
123 * @return Reference to AliFMDCorrections object
125 AliFMDCorrections& GetCorrections() { return fCorrections; }
127 * Get reference to the HistCollector algorithm
129 * @return Reference to AliFMDHistCollector object
131 AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
133 * Get reference to the EventInspector algorithm
135 * @return Reference to AliFMDEventInspector object
137 const AliFMDEventInspector& GetEventInspector() const { return fEventInspector; }
139 * Get reference to the EnergyFitter algorithm
141 * @return Reference to AliFMDEnergyFitter object
143 const AliFMDEnergyFitter& GetEnergyFitter() const { return fEnergyFitter; }
145 * Get reference to the SharingFilter algorithm
147 * @return Reference to AliFMDSharingFilter object
149 const AliFMDSharingFilter& GetSharingFilter() const { return fSharingFilter; }
151 * Get reference to the DensityCalculator algorithm
153 * @return Reference to AliFMDDensityCalculator object
155 const AliFMDDensityCalculator& GetDensityCalculator() const { return fDensityCalculator; }
157 * Get reference to the Corrections algorithm
159 * @return Reference to AliFMDCorrections object
161 const AliFMDCorrections& GetCorrections() const { return fCorrections; }
163 * Get reference to the HistCollector algorithm
165 * @return Reference to AliFMDHistCollector object
167 const AliFMDHistCollector& GetHistCollector() const { return fHistCollector; }
174 * @param dbg debug level
176 void SetDebug(Int_t dbg);
179 * Initialise the sub objects and stuff. Called on first event
182 virtual void InitializeSubs();
184 TH2D* fHData; // Summed 1/Nd^2N_{ch}/dphideta
185 AliESDFMD fESDFMD; // Sharing corrected ESD object
186 AliForwardUtil::Histos fHistos; // Cache histograms
187 AliAODForwardMult fAODFMD; // Output object
188 AliESDFMD fMCESDFMD; // MC 'Sharing corrected' ESD object
189 AliForwardUtil::Histos fMCHistos; // MC Cache histograms
190 AliAODForwardMult fMCAODFMD; // MC Output object
191 TH2D* fPrimary; // Per event primary particles
193 AliFMDEventInspector fEventInspector; // Algorithm
194 AliFMDEnergyFitter fEnergyFitter; // Algorithm
195 AliFMDMCSharingFilter fSharingFilter; // Algorithm
196 AliFMDMCDensityCalculator fDensityCalculator; // Algorithm
197 AliFMDMCCorrections fCorrections; // Algorithm
198 AliFMDHistCollector fHistCollector; // Algorithm
200 TList* fList; // Output list
202 ClassDef(AliForwardMCMultiplicityTask,1) // Forward multiplicity class