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 "AliFMDMCSharingFilter.h"
20 #include "AliFMDMCDensityCalculator.h"
21 #include "AliFMDMCCorrector.h"
22 #include "AliFMDHistCollector.h"
23 #include "AliAODForwardMult.h"
24 #include "AliFMDEnergyFitter.h"
25 #include <AliESDFMD.h>
31 * Calculate the multiplicity in the forward regions event-by-event
43 * @par Corrections used
45 * @ingroup pwg2_forward_tasks
46 * @ingroup pwg2_forward_mc
47 * @ingroup pwg2_forward_aod
50 class AliForwardMCMultiplicityTask : public AliForwardMultiplicityBase
56 * @param name Name of task
58 AliForwardMCMultiplicityTask(const char* name);
62 AliForwardMCMultiplicityTask();
66 * @param o Object to copy from
68 AliForwardMCMultiplicityTask(const AliForwardMCMultiplicityTask& o);
72 * @param o Object to assign from
74 * @return Reference to this object
76 AliForwardMCMultiplicityTask&
77 operator=(const AliForwardMCMultiplicityTask& o);
80 * @name Interface methods
83 * Create output objects
86 virtual void UserCreateOutputObjects();
90 * @param option Not used
92 virtual void UserExec(Option_t* option);
96 * @param option Not used
98 virtual void Terminate(Option_t* option);
103 * Process only primary MC tracks
107 void SetOnlyPrimary(Bool_t use);
110 * @name Access to sub-algorithms
113 * Get reference to the EventInspector algorithm
115 * @return Reference to AliFMDEventInspector object
117 AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
119 * Get reference to the SharingFilter algorithm
121 * @return Reference to AliFMDSharingFilter object
123 AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
125 * Get reference to the DensityCalculator algorithm
127 * @return Reference to AliFMDDensityCalculator object
129 AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
131 * Get reference to the Corrections algorithm
133 * @return Reference to AliFMDCorrector object
135 AliFMDCorrector& GetCorrections() { return fCorrections; }
137 * Get reference to the HistCollector algorithm
139 * @return Reference to AliFMDHistCollector object
141 AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
143 * Get reference to the EventInspector algorithm
145 * @return Reference to AliFMDEventInspector object
147 const AliFMDEventInspector& GetEventInspector() const { return fEventInspector; }
149 * Get reference to the SharingFilter algorithm
151 * @return Reference to AliFMDSharingFilter object
153 const AliFMDSharingFilter& GetSharingFilter() const { return fSharingFilter; }
155 * Get reference to the DensityCalculator algorithm
157 * @return Reference to AliFMDDensityCalculator object
159 const AliFMDDensityCalculator& GetDensityCalculator() const { return fDensityCalculator; }
161 * Get reference to the Corrections algorithm
163 * @return Reference to AliFMDCorrector object
165 const AliFMDCorrector& GetCorrections() const { return fCorrections; }
167 * Get reference to the HistCollector algorithm
169 * @return Reference to AliFMDHistCollector object
171 const AliFMDHistCollector& GetHistCollector() const { return fHistCollector; }
178 * @param dbg debug level
180 void SetDebug(Int_t dbg);
183 * Initialise the sub objects and stuff. Called on first event
186 virtual void InitializeSubs();
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
195 AliForwardUtil::Histos fRingSums; // Cache histograms
196 AliForwardUtil::Histos fMCRingSums; // Cache histograms
197 TH2D* fPrimary; // Per event primary particles
199 AliFMDMCEventInspector fEventInspector; // Algorithm
200 AliFMDMCSharingFilter fSharingFilter; // Algorithm
201 AliFMDMCDensityCalculator fDensityCalculator; // Algorithm
202 AliFMDMCCorrector fCorrections; // Algorithm
203 AliFMDHistCollector fHistCollector; // Algorithm
205 TList* fList; // Output list
207 ClassDef(AliForwardMCMultiplicityTask,1) // Forward multiplicity class