2 // Calculate the corrections in the forward regions
4 #ifndef ALIFORWARDMCCORRECTIONS_H
5 #define ALIFORWARDMCCORRECTIONS_H
6 #include <AliAnalysisTaskSE.h>
7 #include "AliForwardUtil.h"
8 #include "AliFMDSharingFilter.h"
9 #include "AliFMDDensityCalculator.h"
10 #include "AliFMDCorrector.h"
11 #include "AliFMDHistCollector.h"
12 #include "AliAODForwardMult.h"
13 #include <AliESDFMD.h>
15 class AliFMDAnaParameters;
24 * Calculate the corrections in the forward regions
34 * @par Corrections used
36 * @ingroup pwg2_forward_tasks
37 * @ingroup pwg2_forward_mc
40 class AliForwardMCCorrectionsTask : public AliAnalysisTaskSE
46 * @param name Name of task
48 AliForwardMCCorrectionsTask(const char* name);
52 AliForwardMCCorrectionsTask();
56 * @param o Object to copy from
58 AliForwardMCCorrectionsTask(const AliForwardMCCorrectionsTask& o);
62 * @param o Object to assign from
64 * @return Reference to this object
66 AliForwardMCCorrectionsTask& operator=(const AliForwardMCCorrectionsTask& o);
69 * @name Interface methods
77 * Create output objects
80 virtual void UserCreateOutputObjects();
84 * @param option Not used
86 virtual void UserExec(Option_t* option);
90 * @param option Not used
92 virtual void Terminate(Option_t* option);
99 * @param option Not used
101 void Print(Option_t* option="") const;
104 * Set the vertex axis to use
106 * @param nBins Number of bins
107 * @param vzMin Least @f$z@f$ coordinate of interation point
108 * @param vzMax Largest @f$z@f$ coordinate of interation point
110 void SetVertexAxis(Int_t nBins, Double_t vzMin, Double_t vzMax=-1000000);
112 * Set the vertex axis to use
116 void SetVertexAxis(const TAxis& axis);
118 * Set the eta axis to use
120 * @param nBins Number of bins
121 * @param vzMin Least @f$\eta@f$
122 * @param vzMax Largest @f$\eta@f$
124 void SetEtaAxis(Int_t nBins, Double_t etaMin, Double_t etaMax=-1000000);
126 * Set the eta axis to use
130 void SetEtaAxis(const TAxis& axis);
135 * @param v Vertex bin
136 * @param src Source 3D histogram
138 * @return 2D projection of the V'th bin
140 TH2D* GetVertexProj(Int_t v, TH3D* src) const;
142 * Make a 3D histogram
146 * @param nPhi Number of phi bins
150 TH3D* Make3D(const char* name, const char* title, Int_t nPhi) const;
159 TH1D* Make1D(const char* name, const char* title) const;
161 * Fill in primary information
163 * @param gotInel Got INEL trigger from ESD
164 * @param gotVtx Got vertex Z from ESD
165 * @param vz @f$z@f$ coordinate of interation point
166 * @param eta Pseudo rapidity
167 * @param phi Azimuthal angle
169 void FillPrimary(Bool_t gotInel, Bool_t gotVtx,
170 Double_t vz, Double_t eta, Double_t phi);
172 * Fill in per-strip information
176 * @param vz @f$z@f$ coordinate of interation point
177 * @param eta Pseudo rapidity
178 * @param phi Azimuthal angle
179 * @param first First fill in this event
181 void FillStrip(UShort_t d, Char_t r,
182 Double_t vz, Double_t eta, Double_t phi,
184 TH1I* fHEvents; // All Events
185 TH1I* fHEventsTr; // Histogram of events w/trigger
186 TH1I* fHEventsTrVtx; // Events w/trigger and vertex
187 TH1I* fHEventsVtx; // Events w/vertex
188 TH1I* fHTriggers; // Triggers
189 TH3D* fPrimaryInnerAll; // Distribution of primaries - all events
190 TH3D* fPrimaryOuterAll; // Distribution of primaries - all events
191 TH3D* fPrimaryInnerTrVtx; // Distribution of primaries - trg+vtx events
192 TH3D* fPrimaryOuterTrVtx; // Distribution of primaries - trg+vtx events
193 TH3D* fHitsFMD1i; // Distribution of FMD1i hits
194 TH3D* fHitsFMD2i; // Distribution of FMD2i hits
195 TH3D* fHitsFMD2o; // Distribution of FMD2o hits
196 TH3D* fHitsFMD3i; // Distribution of FMD3i hits
197 TH3D* fHitsFMD3o; // Distribution of FMD3o hits
198 TH1D* fStripsFMD1i; // Distribution of FMD1i # strips hit
199 TH1D* fStripsFMD2i; // Distribution of FMD2i # strips hit
200 TH1D* fStripsFMD2o; // Distribution of FMD2o # strips hit
201 TH1D* fStripsFMD3i; // Distribution of FMD3i # strips hit
202 TH1D* fStripsFMD3o; // Distribution of FMD3o # strips hit
203 TAxis fVtxAxis; // Vertex axis
204 TAxis fEtaAxis; // Eta axis
206 TList* fList; // Output list
208 ClassDef(AliForwardMCCorrectionsTask,1) // Forward corrections class