1 #ifndef ALIFORWARDMCMULTIPLICITYTASK_H
2 #define ALIFORWARDMCMULTIPLICITYTASK_H
3 #include "AliForwardMultiplicityBase.h"
4 #include "AliForwardUtil.h"
5 #include "AliFMDEventInspector.h"
6 #include "AliFMDEnergyFitter.h"
7 #include "AliFMDMCSharingFilter.h"
8 #include "AliFMDMCDensityCalculator.h"
9 #include "AliFMDMCCorrections.h"
10 #include "AliFMDHistCollector.h"
11 #include "AliAODForwardMult.h"
12 #include "AliFMDEnergyFitter.h"
13 #include <AliESDFMD.h>
19 * Calculate the multiplicity in the forward regions event-by-event
29 * @par Corrections used
31 * @ingroup pwg2_forward_tasks
32 * @ingroup pwg2_forward_mc
35 class AliForwardMCMultiplicityTask : public AliForwardMultiplicityBase
41 * @param name Name of task
43 AliForwardMCMultiplicityTask(const char* name);
47 AliForwardMCMultiplicityTask();
51 * @param o Object to copy from
53 AliForwardMCMultiplicityTask(const AliForwardMCMultiplicityTask& o);
57 * @param o Object to assign from
59 * @return Reference to this object
61 AliForwardMCMultiplicityTask&
62 operator=(const AliForwardMCMultiplicityTask& o);
65 * @name Interface methods
68 * Create output objects
71 virtual void UserCreateOutputObjects();
75 * @param option Not used
77 virtual void UserExec(Option_t* option);
81 * @param option Not used
83 virtual void Terminate(Option_t* option);
90 * @param option Not used
92 void Print(Option_t* option="") const;
95 * @name Access to sub-algorithms
98 * Get reference to the EventInspector algorithm
100 * @return Reference to AliFMDEventInspector object
102 AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
104 * Get reference to the EnergyFitter algorithm
106 * @return Reference to AliFMDEnergyFitter object
108 AliFMDEnergyFitter& GetEnergyFitter() { return fEnergyFitter; }
110 * Get reference to the SharingFilter algorithm
112 * @return Reference to AliFMDSharingFilter object
114 AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
116 * Get reference to the DensityCalculator algorithm
118 * @return Reference to AliFMDDensityCalculator object
120 AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
122 * Get reference to the Corrections algorithm
124 * @return Reference to AliFMDCorrections object
126 AliFMDCorrections& GetCorrections() { return fCorrections; }
128 * Get reference to the HistCollector algorithm
130 * @return Reference to AliFMDHistCollector object
132 AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
136 void SetDebug(Int_t dbg);
139 * Initialise the sub objects and stuff. Called on first event
142 virtual void InitializeSubs();
144 TH2D* fHData; // Summed 1/Nd^2N_{ch}/dphideta
145 AliESDFMD fESDFMD; // Sharing corrected ESD object
146 AliForwardUtil::Histos fHistos; // Cache histograms
147 AliAODForwardMult fAODFMD; // Output object
148 AliESDFMD fMCESDFMD; // MC 'Sharing corrected' ESD object
149 AliForwardUtil::Histos fMCHistos; // MC Cache histograms
150 AliAODForwardMult fMCAODFMD; // MC Output object
152 AliFMDEventInspector fEventInspector; // Algorithm
153 AliFMDEnergyFitter fEnergyFitter; // Algorithm
154 AliFMDMCSharingFilter fSharingFilter; // Algorithm
155 AliFMDMCDensityCalculator fDensityCalculator; // Algorithm
156 AliFMDMCCorrections fCorrections; // Algorithm
157 AliFMDHistCollector fHistCollector; // Algorithm
159 TList* fList; // Output list
161 ClassDef(AliForwardMCMultiplicityTask,1) // Forward multiplicity class