1 #ifndef ALIFORWARDMULTIPLICITYBASE_H
2 #define ALIFORWARDMULTIPLICITYBASE_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 AliFMDEventInspector;
16 class AliFMDEnergyFitter;
17 class AliFMDSharingFilter;
18 class AliFMDDensityCalculator;
19 class AliFMDCorrections;
20 class AliFMDHistCollector;
28 * @mainpage ALICE PWG2 Forward Multiplcity Analysis
31 * @defgroup pwg2_forward PWG2 Forward analysis
33 * Code to do the multiplicity analysis in the forward psuedo-rapidity
38 * @defgroup pwg2_forward_tasks Tasks
40 * Code to do the multiplicity analysis in the forward psuedo-rapidity
43 * @ingroup pwg2_forward
46 * Calculate the multiplicity in the forward regions event-by-event
56 * @par Corrections used
58 * @ingroup pwg2_forward_tasks
61 class AliForwardMultiplicityBase : public AliAnalysisTaskSE
66 * @name Interface methods
72 virtual void Init() { fFirstEvent = true; }
74 * Create output objects
77 virtual void UserCreateOutputObjects() = 0;
81 * @param option Not used
83 virtual void UserExec(Option_t* option) = 0;
87 * @param option Not used
89 virtual void Terminate(Option_t* option) = 0;
96 * @param option Not used
98 virtual void Print(Option_t* option="") const;
100 * Whether to enable low-flux code
102 * @param use IF true, enable low-flux code
104 virtual void SetEnableLowFlux(Bool_t use=true) { fEnableLowFlux = use; }
107 * @name Access to sub-algorithms
110 * Get reference to the EventInspector algorithm
112 * @return Reference to AliFMDEventInspector object
114 virtual AliFMDEventInspector& GetEventInspector() = 0;
116 * Get reference to the EnergyFitter algorithm
118 * @return Reference to AliFMDEnergyFitter object
120 virtual AliFMDEnergyFitter& GetEnergyFitter() = 0;
122 * Get reference to the SharingFilter algorithm
124 * @return Reference to AliFMDSharingFilter object
126 virtual AliFMDSharingFilter& GetSharingFilter() = 0;
128 * Get reference to the DensityCalculator algorithm
130 * @return Reference to AliFMDDensityCalculator object
132 virtual AliFMDDensityCalculator& GetDensityCalculator() = 0;
134 * Get reference to the Corrections algorithm
136 * @return Reference to AliFMDCorrections object
138 virtual AliFMDCorrections& GetCorrections() = 0;
140 * Get reference to the HistCollector algorithm
142 * @return Reference to AliFMDHistCollector object
144 virtual AliFMDHistCollector& GetHistCollector() = 0;
148 virtual void SetDebug(Int_t dbg) = 0;
153 * @param name Name of task
155 AliForwardMultiplicityBase(const char* name)
156 : AliAnalysisTaskSE(name),
157 fEnableLowFlux(true),
163 AliForwardMultiplicityBase() : AliAnalysisTaskSE(),
164 fEnableLowFlux(true),
170 * @param o Object to copy from
172 AliForwardMultiplicityBase(const AliForwardMultiplicityBase& o)
173 : AliAnalysisTaskSE(o),
174 fEnableLowFlux(o.fEnableLowFlux),
175 fFirstEvent(o.fFirstEvent)
178 * Assignment operator
180 * @param o Object to assign from
182 * @return Reference to this object
184 AliForwardMultiplicityBase& operator=(const AliForwardMultiplicityBase& o)
186 fEnableLowFlux = o.fEnableLowFlux;
187 fFirstEvent = o.fFirstEvent;
191 * Mark this event as one to store in the AOD
194 virtual void MarkEventForStore() const;
196 Bool_t fEnableLowFlux;// Whether to use low-flux specific code
197 Bool_t fFirstEvent; // Whether the event is the first seen
199 ClassDef(AliForwardMultiplicityBase,1) // Forward multiplicity class