2 // Calculate the multiplicity in the forward regions event-by-event
4 #ifndef ALIFORWARDMULTIPLICITYTASK_H
5 #define ALIFORWARDMULTIPLICITYTASK_H
6 #include "AliForwardMultiplicityBase.h"
7 #include "AliForwardUtil.h"
8 #include "AliFMDEventInspector.h"
9 #include "AliFMDEnergyFitter.h"
10 #include "AliFMDSharingFilter.h"
11 #include "AliFMDDensityCalculator.h"
12 #include "AliFMDCorrections.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
32 * @par Corrections used
34 * @ingroup pwg2_forward_tasks
37 class AliForwardMultiplicityTask : public AliForwardMultiplicityBase
43 * @param name Name of task
45 AliForwardMultiplicityTask(const char* name);
49 AliForwardMultiplicityTask();
53 * @param o Object to copy from
55 AliForwardMultiplicityTask(const AliForwardMultiplicityTask& o);
59 * @param o Object to assign from
61 * @return Reference to this object
63 AliForwardMultiplicityTask& operator=(const AliForwardMultiplicityTask& o);
66 * @name Interface methods
69 * Create output objects
72 virtual void UserCreateOutputObjects();
76 * @param option Not used
78 virtual void UserExec(Option_t* option);
82 * @param option Not used
84 virtual void Terminate(Option_t* option);
91 * @param option Not used
93 void Print(Option_t* option="") const;
96 * @name Access to sub-algorithms
99 * Get reference to the EventInspector algorithm
101 * @return Reference to AliFMDEventInspector object
103 AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
105 * Get reference to the EnergyFitter algorithm
107 * @return Reference to AliFMDEnergyFitter object
109 AliFMDEnergyFitter& GetEnergyFitter() { return fEnergyFitter; }
111 * Get reference to the SharingFilter algorithm
113 * @return Reference to AliFMDSharingFilter object
115 AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
117 * Get reference to the DensityCalculator algorithm
119 * @return Reference to AliFMDDensityCalculator object
121 AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
123 * Get reference to the Corrections algorithm
125 * @return Reference to AliFMDCorrections object
127 AliFMDCorrections& GetCorrections() { return fCorrections; }
129 * Get reference to the HistCollector algorithm
131 * @return Reference to AliFMDHistCollector object
133 AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
140 * @param dbg Debug level
142 void SetDebug(Int_t dbg);
145 * Initialise the sub objects and stuff. Called on first event
148 virtual void InitializeSubs();
150 TH2D* fHData; // Summed 1/Nd^2N_{ch}/dphideta
151 AliESDFMD fESDFMD; // Sharing corrected ESD object
152 AliForwardUtil::Histos fHistos; // Cache histograms
153 AliAODForwardMult fAODFMD; // Output object
155 AliFMDEventInspector fEventInspector; // Algorithm
156 AliFMDEnergyFitter fEnergyFitter; // Algorithm
157 AliFMDSharingFilter fSharingFilter; // Algorithm
158 AliFMDDensityCalculator fDensityCalculator; // Algorithm
159 AliFMDCorrections fCorrections; // Algorithm
160 AliFMDHistCollector fHistCollector; // Algorithm
162 TList* fList; // Output list
164 ClassDef(AliForwardMultiplicityTask,1) // Forward multiplicity class