1 #ifndef ALIROOT_PWG2_FORWARD_ALIFORWARDMULTIPLICITY_H
2 #define ALIROOT_PWG2_FORWARD_ALIFORWARDMULTIPLICITY_H
3 #include <AliAnalysisTaskSE.h>
4 #include "AliForwardUtil.h"
5 #include "AliFMDEventInspector.h"
6 #include "AliFMDEnergyFitter.h"
7 #include "AliFMDSharingFilter.h"
8 #include "AliFMDDensityCalculator.h"
9 #include "AliFMDCorrections.h"
10 #include "AliFMDHistCollector.h"
11 #include "AliAODForwardMult.h"
12 #include "AliFMDEnergyFitter.h"
13 #include <AliESDFMD.h>
15 class AliFMDAnaParameters;
23 * @mainpage ALICE PWG2 Forward Multiplcity Analysis
26 * @defgroup pwg2_forward_analysis PWG2 Forward analysis
28 * Code to do the multiplicity analysis in the forward psuedo-rapidity
33 * Calculate the multiplicity in the forward regions event-by-event
43 * @par Corrections used
45 * @ingroup pwg2_forward_analysis
48 class AliForwardMultiplicity : public AliAnalysisTaskSE
54 * @param name Name of task
56 AliForwardMultiplicity(const char* name);
60 AliForwardMultiplicity();
64 * @param o Object to copy from
66 AliForwardMultiplicity(const AliForwardMultiplicity& o);
70 * @param o Object to assign from
72 * @return Reference to this object
74 AliForwardMultiplicity& operator=(const AliForwardMultiplicity& o);
77 * @name Interface methods
85 * Create output objects
88 virtual void UserCreateOutputObjects();
92 * @param option Not used
94 virtual void UserExec(Option_t* option);
98 * @param option Not used
100 virtual void Terminate(Option_t* option);
104 void Print(Option_t* option="") const;
108 * @name Access to sub-algorithms
111 * Get reference to the EventInspector algorithm
113 * @return Reference to AliFMDEventInspector object
115 AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
117 * Get reference to the EnergyFitter algorithm
119 * @return Reference to AliFMDEnergyFitter object
121 AliFMDEnergyFitter& GetEnergyFitter() { return fEnergyFitter; }
123 * Get reference to the SharingFilter algorithm
125 * @return Reference to AliFMDSharingFilter object
127 AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
129 * Get reference to the DensityCalculator algorithm
131 * @return Reference to AliFMDDensityCalculator object
133 AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
135 * Get reference to the Corrections algorithm
137 * @return Reference to AliFMDCorrections object
139 AliFMDCorrections& GetCorrections() { return fCorrections; }
141 * Get reference to the HistCollector algorithm
143 * @return Reference to AliFMDHistCollector object
145 AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
149 void SetDebug(Int_t dbg);
152 * Initialise the sub objects and stuff. Called on first event
155 virtual void InitializeSubs();
157 * Mark this event as one to store in the AOD
160 virtual void MarkEventForStore() const;
162 TH2D* fHData; // Summed 1/Nd^2N_{ch}/dphideta
163 Bool_t fFirstEvent; // Whether the event is the first seen
164 AliESDFMD fESDFMD; // Sharing corrected ESD object
165 AliForwardUtil::Histos fHistos; // Cache histograms
166 AliAODForwardMult fAODFMD; // Output object
168 AliFMDEventInspector fEventInspector; // Algorithm
169 AliFMDEnergyFitter fEnergyFitter; // Algorithm
170 AliFMDSharingFilter fSharingFilter; // Algorithm
171 AliFMDDensityCalculator fDensityCalculator; // Algorithm
172 AliFMDCorrections fCorrections; // Algorithm
173 AliFMDHistCollector fHistCollector; // Algorithm
175 TList* fList; // Output list
177 ClassDef(AliForwardMultiplicity,1) // Forward multiplicity class