]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FORWARD/analysis2/AliForwardMultiplicityTask.h
Small updates
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / AliForwardMultiplicityTask.h
CommitLineData
9d99b0dd 1#ifndef ALIROOT_PWG2_FORWARD_ALIFORWARDMULTIPLICITY_H
2#define ALIROOT_PWG2_FORWARD_ALIFORWARDMULTIPLICITY_H
7e4038b5 3#include <AliAnalysisTaskSE.h>
4#include "AliForwardUtil.h"
fffea31d 5#include "AliFMDEventInspector.h"
6#include "AliFMDEnergyFitter.h"
7e4038b5 7#include "AliFMDSharingFilter.h"
8#include "AliFMDDensityCalculator.h"
9#include "AliFMDCorrections.h"
10#include "AliFMDHistCollector.h"
11#include "AliAODForwardMult.h"
fffea31d 12#include "AliFMDEnergyFitter.h"
7e4038b5 13#include <AliESDFMD.h>
14#include <TH1I.h>
15class AliFMDAnaParameters;
16class AliESDEvent;
17class TH2D;
18class TList;
19class TTree;
20
21
22/**
23 * @mainpage ALICE PWG2 Forward Multiplcity Analysis
24 */
25/**
7c1a1f1d 26 * @defgroup pwg2_forward PWG2 Forward analysis
7e4038b5 27 *
28 * Code to do the multiplicity analysis in the forward psuedo-rapidity
29 * regions
30 *
31 */
7c1a1f1d 32/**
33 * @defgroup pwg2_forward_tasks Tasks
34 *
35 * Code to do the multiplicity analysis in the forward psuedo-rapidity
36 * regions
37 *
38 * @ingroup pwg2_forward
39 */
7e4038b5 40/**
41 * Calculate the multiplicity in the forward regions event-by-event
42 *
43 * @par Inputs:
44 * - AliESDEvent
45 *
46 * @par Outputs:
47 * - AliAODForwardMult
48 *
49 * @par Histograms
50 *
51 * @par Corrections used
52 *
7c1a1f1d 53 * @ingroup pwg2_forward_tasks
7e4038b5 54 *
55 */
0bd4b00f 56class AliForwardMultiplicityTask : public AliAnalysisTaskSE
7e4038b5 57{
58public:
59 /**
60 * Constructor
61 *
62 * @param name Name of task
63 */
0bd4b00f 64 AliForwardMultiplicityTask(const char* name);
7e4038b5 65 /**
66 * Constructor
67 */
0bd4b00f 68 AliForwardMultiplicityTask();
7e4038b5 69 /**
70 * Copy constructor
71 *
72 * @param o Object to copy from
73 */
0bd4b00f 74 AliForwardMultiplicityTask(const AliForwardMultiplicityTask& o);
7e4038b5 75 /**
76 * Assignment operator
77 *
78 * @param o Object to assign from
79 *
80 * @return Reference to this object
81 */
0bd4b00f 82 AliForwardMultiplicityTask& operator=(const AliForwardMultiplicityTask& o);
7e4038b5 83 /**
84 * @{
85 * @name Interface methods
86 */
87 /**
88 * Initialize the task
89 *
90 */
91 virtual void Init();
92 /**
93 * Create output objects
94 *
95 */
96 virtual void UserCreateOutputObjects();
97 /**
98 * Process each event
99 *
100 * @param option Not used
101 */
102 virtual void UserExec(Option_t* option);
103 /**
104 * End of job
105 *
106 * @param option Not used
107 */
108 virtual void Terminate(Option_t* option);
109 /**
110 * @}
111 */
0bd4b00f 112 /**
113 * Print information
114 *
115 * @param option Not used
116 */
fffea31d 117 void Print(Option_t* option="") const;
0bd4b00f 118 /**
119 * Whether to enable low-flux code
120 *
121 * @param use IF true, enable low-flux code
122 */
123 void SetEnableLowFlux(Bool_t use=true) { fEnableLowFlux = use; }
fea27ee0 124 /**
fffea31d 125 * @{
126 * @name Access to sub-algorithms
127 */
128 /**
129 * Get reference to the EventInspector algorithm
fea27ee0 130 *
fffea31d 131 * @return Reference to AliFMDEventInspector object
fea27ee0 132 */
fffea31d 133 AliFMDEventInspector& GetEventInspector() { return fEventInspector; }
134 /**
135 * Get reference to the EnergyFitter algorithm
136 *
137 * @return Reference to AliFMDEnergyFitter object
138 */
139 AliFMDEnergyFitter& GetEnergyFitter() { return fEnergyFitter; }
7e4038b5 140 /**
141 * Get reference to the SharingFilter algorithm
142 *
143 * @return Reference to AliFMDSharingFilter object
144 */
145 AliFMDSharingFilter& GetSharingFilter() { return fSharingFilter; }
146 /**
147 * Get reference to the DensityCalculator algorithm
148 *
149 * @return Reference to AliFMDDensityCalculator object
150 */
151 AliFMDDensityCalculator& GetDensityCalculator() { return fDensityCalculator; }
152 /**
153 * Get reference to the Corrections algorithm
154 *
155 * @return Reference to AliFMDCorrections object
156 */
157 AliFMDCorrections& GetCorrections() { return fCorrections; }
158 /**
159 * Get reference to the HistCollector algorithm
160 *
161 * @return Reference to AliFMDHistCollector object
162 */
163 AliFMDHistCollector& GetHistCollector() { return fHistCollector; }
fffea31d 164 /**
165 * @}
166 */
167 void SetDebug(Int_t dbg);
7e4038b5 168protected:
169 /**
170 * Initialise the sub objects and stuff. Called on first event
171 *
172 */
173 virtual void InitializeSubs();
174 /**
175 * Mark this event as one to store in the AOD
176 *
177 */
178 virtual void MarkEventForStore() const;
7e4038b5 179
0bd4b00f 180 Bool_t fEnableLowFlux;// Whether to use low-flux specific code
7e4038b5 181 TH2D* fHData; // Summed 1/Nd^2N_{ch}/dphideta
182 Bool_t fFirstEvent; // Whether the event is the first seen
7e4038b5 183 AliESDFMD fESDFMD; // Sharing corrected ESD object
184 AliForwardUtil::Histos fHistos; // Cache histograms
185 AliAODForwardMult fAODFMD; // Output object
186
fffea31d 187 AliFMDEventInspector fEventInspector; // Algorithm
188 AliFMDEnergyFitter fEnergyFitter; // Algorithm
7e4038b5 189 AliFMDSharingFilter fSharingFilter; // Algorithm
190 AliFMDDensityCalculator fDensityCalculator; // Algorithm
191 AliFMDCorrections fCorrections; // Algorithm
192 AliFMDHistCollector fHistCollector; // Algorithm
193
194 TList* fList; // Output list
7e4038b5 195
0bd4b00f 196 ClassDef(AliForwardMultiplicityTask,1) // Forward multiplicity class
7e4038b5 197};
198
199#endif
200// Local Variables:
201// mode: C++
202// End:
203