2 // Calculate the multiplicity in the forward regions event-by-event
4 #ifndef ALIFORWARDMULTIPLICITYTASK_H
5 #define ALIFORWARDMULTIPLICITYTASK_H
7 * @file AliForwardMultiplicityTask.h
8 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
9 * @date Wed Mar 23 14:06:42 2011
14 * @ingroup pwg2_forward_aod
16 #include "AliForwardMultiplicityBase.h"
17 #include "AliForwardUtil.h"
18 #include "AliFMDEventInspector.h"
19 #include "AliFMDSharingFilter.h"
20 #include "AliFMDDensityCalculator.h"
21 #include "AliFMDCorrector.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
41 * @par Corrections used
43 * @ingroup pwg2_forward_tasks
44 * @ingroup pwg2_forward_aod
47 class AliForwardMultiplicityTask : public AliForwardMultiplicityBase
53 * @param name Name of task
55 AliForwardMultiplicityTask(const char* name);
59 AliForwardMultiplicityTask();
63 * @param o Object to copy from
65 AliForwardMultiplicityTask(const AliForwardMultiplicityTask& o);
69 * @param o Object to assign from
71 * @return Reference to this object
73 AliForwardMultiplicityTask& operator=(const AliForwardMultiplicityTask& o);
76 * @name Interface methods
79 * Create output objects
82 virtual void UserCreateOutputObjects();
86 * @param option Not used
88 virtual void UserExec(Option_t* option);
92 * @param option Not used
94 virtual void Terminate(Option_t* option);
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 SharingFilter algorithm
111 * @return Reference to AliFMDSharingFilter object
113 AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
115 * Get reference to the DensityCalculator algorithm
117 * @return Reference to AliFMDDensityCalculator object
119 AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
121 * Get reference to the Corrections algorithm
123 * @return Reference to AliFMDCorrector object
125 AliFMDCorrector& GetCorrections() { return fCorrections; }
127 * Get reference to the HistCollector algorithm
129 * @return Reference to AliFMDHistCollector object
131 AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
133 * Get reference to the EventInspector algorithm
135 * @return Reference to AliFMDEventInspector object
137 const AliFMDEventInspector& GetEventInspector() const { return fEventInspector; }
139 * Get reference to the SharingFilter algorithm
141 * @return Reference to AliFMDSharingFilter object
143 const AliFMDSharingFilter& GetSharingFilter() const { return fSharingFilter; }
145 * Get reference to the DensityCalculator algorithm
147 * @return Reference to AliFMDDensityCalculator object
149 const AliFMDDensityCalculator& GetDensityCalculator() const { return fDensityCalculator; }
151 * Get reference to the Corrections algorithm
153 * @return Reference to AliFMDCorrector object
155 const AliFMDCorrector& GetCorrections() const { return fCorrections; }
157 * Get reference to the HistCollector algorithm
159 * @return Reference to AliFMDHistCollector object
161 const AliFMDHistCollector& GetHistCollector() const { return fHistCollector; }
168 * @param dbg Debug level
170 void SetDebug(Int_t dbg);
173 * Initialise the sub objects and stuff. Called on first event
176 virtual void InitializeSubs();
178 TH2D* fHData; // Summed 1/Nd^2N_{ch}/dphideta
179 AliESDFMD fESDFMD; // Sharing corrected ESD object
180 AliForwardUtil::Histos fHistos; // Cache histograms
181 AliAODForwardMult fAODFMD; // Output object
182 AliForwardUtil::Histos fRingSums; // Cache histograms
184 AliFMDEventInspector fEventInspector; // Algorithm
185 AliFMDSharingFilter fSharingFilter; // Algorithm
186 AliFMDDensityCalculator fDensityCalculator; // Algorithm
187 AliFMDCorrector fCorrections; // Algorithm
188 AliFMDHistCollector fHistCollector; // Algorithm
190 TList* fList; // Output list
192 ClassDef(AliForwardMultiplicityTask,1) // Forward multiplicity class