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 pwg2_forward_aod
16 #include "AliForwardMultiplicityBase.h"
17 #include "AliForwardUtil.h"
18 #include "AliFMDMCEventInspector.h"
19 #include "AliFMDEnergyFitter.h"
20 #include "AliFMDMCSharingFilter.h"
21 #include "AliFMDMCDensityCalculator.h"
22 #include "AliFMDMCCorrector.h"
23 #include "AliFMDHistCollector.h"
24 #include "AliAODForwardMult.h"
25 #include "AliFMDEnergyFitter.h"
26 #include <AliESDFMD.h>
32 * Calculate the multiplicity in the forward regions event-by-event
44 * @par Corrections used
46 * @ingroup pwg2_forward_tasks
47 * @ingroup pwg2_forward_mc
48 * @ingroup pwg2_forward_aod
51 class AliForwardMCMultiplicityTask : public AliForwardMultiplicityBase
57 * @param name Name of task
59 AliForwardMCMultiplicityTask(const char* name);
63 AliForwardMCMultiplicityTask();
67 * @param o Object to copy from
69 AliForwardMCMultiplicityTask(const AliForwardMCMultiplicityTask& o);
73 * @param o Object to assign from
75 * @return Reference to this object
77 AliForwardMCMultiplicityTask&
78 operator=(const AliForwardMCMultiplicityTask& o);
81 * @name Interface methods
84 * Create output objects
87 virtual void UserCreateOutputObjects();
91 * @param option Not used
93 virtual void UserExec(Option_t* option);
97 * @param option Not used
99 virtual void Terminate(Option_t* option);
105 * @name Access to sub-algorithms
108 * Get reference to the EventInspector algorithm
110 * @return Reference to AliFMDEventInspector object
112 AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
114 * Get reference to the EnergyFitter algorithm
116 * @return Reference to AliFMDEnergyFitter object
118 AliFMDEnergyFitter& GetEnergyFitter() { return fEnergyFitter; }
120 * Get reference to the SharingFilter algorithm
122 * @return Reference to AliFMDSharingFilter object
124 AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
126 * Get reference to the DensityCalculator algorithm
128 * @return Reference to AliFMDDensityCalculator object
130 AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
132 * Get reference to the Corrections algorithm
134 * @return Reference to AliFMDCorrector object
136 AliFMDCorrector& GetCorrections() { return fCorrections; }
138 * Get reference to the HistCollector algorithm
140 * @return Reference to AliFMDHistCollector object
142 AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
144 * Get reference to the EventInspector algorithm
146 * @return Reference to AliFMDEventInspector object
148 const AliFMDEventInspector& GetEventInspector() const { return fEventInspector; }
150 * Get reference to the EnergyFitter algorithm
152 * @return Reference to AliFMDEnergyFitter object
154 const AliFMDEnergyFitter& GetEnergyFitter() const { return fEnergyFitter; }
156 * Get reference to the SharingFilter algorithm
158 * @return Reference to AliFMDSharingFilter object
160 const AliFMDSharingFilter& GetSharingFilter() const { return fSharingFilter; }
162 * Get reference to the DensityCalculator algorithm
164 * @return Reference to AliFMDDensityCalculator object
166 const AliFMDDensityCalculator& GetDensityCalculator() const { return fDensityCalculator; }
168 * Get reference to the Corrections algorithm
170 * @return Reference to AliFMDCorrector object
172 const AliFMDCorrector& GetCorrections() const { return fCorrections; }
174 * Get reference to the HistCollector algorithm
176 * @return Reference to AliFMDHistCollector object
178 const AliFMDHistCollector& GetHistCollector() const { return fHistCollector; }
185 * @param dbg debug level
187 void SetDebug(Int_t dbg);
190 * Initialise the sub objects and stuff. Called on first event
193 virtual void InitializeSubs();
195 TH2D* fHData; // Summed 1/Nd^2N_{ch}/dphideta
196 AliESDFMD fESDFMD; // Sharing corrected ESD object
197 AliForwardUtil::Histos fHistos; // Cache histograms
198 AliAODForwardMult fAODFMD; // Output object
199 AliESDFMD fMCESDFMD; // MC 'Sharing corrected' ESD object
200 AliForwardUtil::Histos fMCHistos; // MC Cache histograms
201 AliAODForwardMult fMCAODFMD; // MC Output object
202 TH2D* fPrimary; // Per event primary particles
204 AliFMDMCEventInspector fEventInspector; // Algorithm
205 AliFMDEnergyFitter fEnergyFitter; // Algorithm
206 AliFMDMCSharingFilter fSharingFilter; // Algorithm
207 AliFMDMCDensityCalculator fDensityCalculator; // Algorithm
208 AliFMDMCCorrector fCorrections; // Algorithm
209 AliFMDHistCollector fHistCollector; // Algorithm
211 TList* fList; // Output list
213 ClassDef(AliForwardMCMultiplicityTask,1) // Forward multiplicity class