2 // Calculate the qa in the forward regions event-by-event
4 #ifndef ALIFORWARDQATASK_H
5 #define ALIFORWARDQATASK_H
7 * @file AliForwardQATask.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 <AliAnalysisTaskSE.h>
17 #include "AliFMDEventInspector.h"
18 #include "AliFMDSharingFilter.h"
19 #include "AliFMDDensityCalculator.h"
20 #include "AliFMDEnergyFitter.h"
21 #include <AliESDFMD.h>
22 class AliForwardCorrectionManager;
29 * Calculate the QA in the forward regions
39 * @par Corrections used
41 * @ingroup pwg2_forward_tasks
44 class AliForwardQATask : public AliAnalysisTaskSE
50 * @param name Name of task
52 AliForwardQATask(const char* name);
60 * @param o Object to copy from
62 AliForwardQATask(const AliForwardQATask& o);
66 * @param o Object to assign from
68 * @return Reference to this object
70 AliForwardQATask& operator=(const AliForwardQATask& o);
73 * @name Interface methods
76 * Create output objects
79 virtual void UserCreateOutputObjects();
83 * @param option Not used
85 virtual void UserExec(Option_t* option);
89 * @param option Not used
91 virtual void Terminate(Option_t* option);
97 * @name Access to sub-algorithms
100 * Get reference to the EventInspector algorithm
102 * @return Reference to AliFMDEventInspector object
104 AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
106 * Get reference to the EnergyFitter algorithm
108 * @return Reference to AliFMDEnergyFitter object
110 AliFMDEnergyFitter& GetEnergyFitter() { return fEnergyFitter; }
112 * Get reference to the SharingFilter algorithm
114 * @return Reference to AliFMDSharingFilter object
116 AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
118 * Get reference to the DensityCalculator algorithm
120 * @return Reference to AliFMDDensityCalculator object
122 AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
124 * Get reference to the EventInspector algorithm
126 * @return Reference to AliFMDEventInspector object
128 const AliFMDEventInspector& GetEventInspector() const { return fEventInspector; }
130 * Get reference to the EnergyFitter algorithm
132 * @return Reference to AliFMDEnergyFitter object
134 const AliFMDEnergyFitter& GetEnergyFitter() const { return fEnergyFitter; }
136 * Get reference to the SharingFilter algorithm
138 * @return Reference to AliFMDSharingFilter object
140 const AliFMDSharingFilter& GetSharingFilter() const { return fSharingFilter; }
142 * Get reference to the DensityCalculator algorithm
144 * @return Reference to AliFMDDensityCalculator object
146 const AliFMDDensityCalculator& GetDensityCalculator() const { return fDensityCalculator; }
153 * @param dbg Debug level
155 void SetDebug(Int_t dbg);
156 void Print(Option_t* option="") const;
159 * Check if all needed corrections are there and accounted for. If not,
162 * @param what Which corrections is needed
164 * @return true if all present, false otherwise
166 Bool_t CheckCorrections(UInt_t what) const;
171 virtual Bool_t ReadCorrections(const TAxis*& pe,
175 * Get the ESD event. IF this is the first event, initialise. If
176 * initialisation failes, return a null pointer.
178 virtual AliESDEvent* GetESDEvent();
180 * Initialise the sub objects and stuff. Called on first event
181 * @return false on error.
183 virtual Bool_t InitializeSubs();
185 Bool_t fEnableLowFlux;// Whether to use low-flux specific code
186 Bool_t fFirstEvent; // Whether the event is the first seen
188 * A pointer to the corrections manager. This is here to make the
189 * corrections manager persistent - that is, when we write the
190 * analysis train to a file (as done in PROOF) we should also write
191 * down the corrections mananger. This pointer ensures that.
193 AliForwardCorrectionManager* fCorrManager; // Pointer to corrections manager
195 AliESDFMD fESDFMD; // Sharing corrected ESD object
196 AliForwardUtil::Histos fHistos; // Cache histograms
198 AliFMDEventInspector fEventInspector; // Algorithm
199 AliFMDEnergyFitter fEnergyFitter; // Algorithm
200 AliFMDSharingFilter fSharingFilter; // Algorithm
201 AliFMDDensityCalculator fDensityCalculator; // Algorithm
203 TList* fList; // Output list
205 ClassDef(AliForwardQATask,1) // Forward QA class