2 // Calculate the corrections in the forward regions
4 #ifndef ALIFORWARDMCCORRECTIONS_H
5 #define ALIFORWARDMCCORRECTIONS_H
6 #include <AliAnalysisTaskSE.h>
9 class AliFMDAnaParameters;
18 * Calculate the corrections in the forward regions
28 * @par Corrections used
30 * @ingroup pwg2_forward_tasks
31 * @ingroup pwg2_forward_mc
34 class AliForwardMCCorrectionsTask : public AliAnalysisTaskSE
40 * @param name Name of task
42 AliForwardMCCorrectionsTask(const char* name);
46 AliForwardMCCorrectionsTask();
50 * @param o Object to copy from
52 AliForwardMCCorrectionsTask(const AliForwardMCCorrectionsTask& o);
56 * @param o Object to assign from
58 * @return Reference to this object
60 AliForwardMCCorrectionsTask& operator=(const AliForwardMCCorrectionsTask& o);
63 * @name Interface methods
71 * Create output objects
74 virtual void UserCreateOutputObjects();
78 * @param option Not used
80 virtual void UserExec(Option_t* option);
84 * @param option Not used
86 virtual void Terminate(Option_t* option);
93 * @param option Not used
95 void Print(Option_t* option="") const;
98 * Set the vertex axis to use
100 * @param nBins Number of bins
101 * @param vzMin Least @f$z@f$ coordinate of interation point
102 * @param vzMax Largest @f$z@f$ coordinate of interation point
104 void SetVertexAxis(Int_t nBins, Double_t vzMin, Double_t vzMax=-1000000);
106 * Set the vertex axis to use
110 void SetVertexAxis(const TAxis& axis);
112 * Set the eta axis to use
114 * @param nBins Number of bins
115 * @param vzMin Least @f$\eta@f$
116 * @param vzMax Largest @f$\eta@f$
118 void SetEtaAxis(Int_t nBins, Double_t etaMin, Double_t etaMax=-1000000);
120 * Set the eta axis to use
124 void SetEtaAxis(const TAxis& axis);
129 * @param v Vertex bin
130 * @param src Source 3D histogram
132 * @return 2D projection of the V'th bin
134 TH2D* GetVertexProj(Int_t v, TH3D* src) const;
136 * Make a 3D histogram
140 * @param nPhi Number of phi bins
144 TH3D* Make3D(const char* name, const char* title, Int_t nPhi) const;
153 TH1D* Make1D(const char* name, const char* title) const;
155 * Fill in primary information
157 * @param gotInel Got INEL trigger from ESD
158 * @param gotVtx Got vertex Z from ESD
159 * @param vz @f$z@f$ coordinate of interation point
160 * @param eta Pseudo rapidity
161 * @param phi Azimuthal angle
163 void FillPrimary(Bool_t gotInel, Bool_t gotVtx,
164 Double_t vz, Double_t eta, Double_t phi);
166 * Fill in per-strip information
170 * @param vz @f$z@f$ coordinate of interation point
171 * @param eta Pseudo rapidity
172 * @param phi Azimuthal angle
173 * @param first First fill in this event
175 void FillStrip(UShort_t d, Char_t r,
176 Double_t vz, Double_t eta, Double_t phi,
178 TH1I* fHEvents; // All Events
179 TH1I* fHEventsTr; // Histogram of events w/trigger
180 TH1I* fHEventsTrVtx; // Events w/trigger and vertex
181 TH1I* fHEventsVtx; // Events w/vertex
182 TH1I* fHTriggers; // Triggers
183 TH3D* fPrimaryInnerAll; // Distribution of primaries - all events
184 TH3D* fPrimaryOuterAll; // Distribution of primaries - all events
185 TH3D* fPrimaryInnerTrVtx; // Distribution of primaries - trg+vtx events
186 TH3D* fPrimaryOuterTrVtx; // Distribution of primaries - trg+vtx events
187 TH3D* fHitsFMD1i; // Distribution of FMD1i hits
188 TH3D* fHitsFMD2i; // Distribution of FMD2i hits
189 TH3D* fHitsFMD2o; // Distribution of FMD2o hits
190 TH3D* fHitsFMD3i; // Distribution of FMD3i hits
191 TH3D* fHitsFMD3o; // Distribution of FMD3o hits
192 TH1D* fStripsFMD1i; // Distribution of FMD1i # strips hit
193 TH1D* fStripsFMD2i; // Distribution of FMD2i # strips hit
194 TH1D* fStripsFMD2o; // Distribution of FMD2o # strips hit
195 TH1D* fStripsFMD3i; // Distribution of FMD3i # strips hit
196 TH1D* fStripsFMD3o; // Distribution of FMD3o # strips hit
197 TAxis fVtxAxis; // Vertex axis
198 TAxis fEtaAxis; // Eta axis
200 TList* fList; // Output list
202 ClassDef(AliForwardMCCorrectionsTask,1) // Forward corrections class