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);
95 * @param option Not used
97 void Print(Option_t* option="") const;
100 * @name Access to sub-algorithms
103 * Get reference to the EventInspector algorithm
105 * @return Reference to AliFMDEventInspector object
107 AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
109 * Get reference to the EnergyFitter algorithm
111 * @return Reference to AliFMDEnergyFitter object
113 AliFMDEnergyFitter& GetEnergyFitter() { return fEnergyFitter; }
115 * Get reference to the SharingFilter algorithm
117 * @return Reference to AliFMDSharingFilter object
119 AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
121 * Get reference to the DensityCalculator algorithm
123 * @return Reference to AliFMDDensityCalculator object
125 AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
127 * Get reference to the Corrections algorithm
129 * @return Reference to AliFMDCorrections object
131 AliFMDCorrections& GetCorrections() { return fCorrections; }
133 * Get reference to the HistCollector algorithm
135 * @return Reference to AliFMDHistCollector object
137 AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
144 * @param dbg debug level
146 void SetDebug(Int_t dbg);
149 * Initialise the sub objects and stuff. Called on first event
152 virtual void InitializeSubs();
154 TH2D* fHData; // Summed 1/Nd^2N_{ch}/dphideta
155 AliESDFMD fESDFMD; // Sharing corrected ESD object
156 AliForwardUtil::Histos fHistos; // Cache histograms
157 AliAODForwardMult fAODFMD; // Output object
158 AliESDFMD fMCESDFMD; // MC 'Sharing corrected' ESD object
159 AliForwardUtil::Histos fMCHistos; // MC Cache histograms
160 AliAODForwardMult fMCAODFMD; // MC Output object
162 AliFMDEventInspector fEventInspector; // Algorithm
163 AliFMDEnergyFitter fEnergyFitter; // Algorithm
164 AliFMDMCSharingFilter fSharingFilter; // Algorithm
165 AliFMDMCDensityCalculator fDensityCalculator; // Algorithm
166 AliFMDMCCorrections fCorrections; // Algorithm
167 AliFMDHistCollector fHistCollector; // Algorithm
169 TList* fList; // Output list
171 ClassDef(AliForwardMCMultiplicityTask,1) // Forward multiplicity class