1 #ifndef ALIROOT_PWG2_FORWARD_ALIFORWARDCORRECTIONS_H
2 #define ALIROOT_PWG2_FORWARD_ALIFORWARDCORRECTIONS_H
3 #include <AliAnalysisTaskSE.h>
4 #include "AliForwardUtil.h"
5 #include "AliFMDSharingFilter.h"
6 #include "AliFMDDensityCalculator.h"
7 #include "AliFMDCorrections.h"
8 #include "AliFMDHistCollector.h"
9 #include "AliAODForwardMult.h"
10 #include <AliESDFMD.h>
12 class AliFMDAnaParameters;
21 * Calculate the corrections in the forward regions
31 * @par Corrections used
33 * @ingroup pwg2_forward_tasks
36 class AliForwardMCCorrectionsTask : public AliAnalysisTaskSE
42 * @param name Name of task
44 AliForwardMCCorrectionsTask(const char* name);
48 AliForwardMCCorrectionsTask();
52 * @param o Object to copy from
54 AliForwardMCCorrectionsTask(const AliForwardMCCorrectionsTask& o);
58 * @param o Object to assign from
60 * @return Reference to this object
62 AliForwardMCCorrectionsTask& operator=(const AliForwardMCCorrectionsTask& o);
65 * @name Interface methods
73 * Create output objects
76 virtual void UserCreateOutputObjects();
80 * @param option Not used
82 virtual void UserExec(Option_t* option);
86 * @param option Not used
88 virtual void Terminate(Option_t* option);
92 void Print(Option_t* option="") const;
94 void SetVertexAxis(Int_t nBins, Double_t vzMin, Double_t vzMax=-1000000);
95 void SetVertexAxis(const TAxis& axis);
96 void SetEtaAxis(Int_t nBins, Double_t etaMin, Double_t etaMax=-1000000);
97 void SetEtaAxis(const TAxis& axis);
99 TH2D* GetVertexProj(Int_t v, TH3D* src) const;
100 TH3D* Make3D(const char* name, const char* title, Int_t nPhi) const;
101 TH1D* Make1D(const char* name, const char* title) const;
102 void FillPrimary(Bool_t gotInel, Bool_t gotVtx,
103 Double_t vz, Double_t eta, Double_t phi);
104 void FillStrip(UShort_t d, Char_t r,
105 Double_t vz, Double_t eta, Double_t phi,
107 TH1I* fHEvents; // All Events
108 TH1I* fHEventsTr; // Histogram of events w/trigger
109 TH1I* fHEventsTrVtx; // Events w/trigger and vertex
110 TH1I* fHEventsVtx; // Events w/vertex
111 TH1I* fHTriggers; // Triggers
112 TH3D* fPrimaryInnerAll; // Distribution of primaries - all events
113 TH3D* fPrimaryOuterAll; // Distribution of primaries - all events
114 TH3D* fPrimaryInnerTrVtx; // Distribution of primaries - trg+vtx events
115 TH3D* fPrimaryOuterTrVtx; // Distribution of primaries - trg+vtx events
116 TH3D* fHitsFMD1i; // Distribution of FMD1i hits
117 TH3D* fHitsFMD2i; // Distribution of FMD2i hits
118 TH3D* fHitsFMD2o; // Distribution of FMD2o hits
119 TH3D* fHitsFMD3i; // Distribution of FMD3i hits
120 TH3D* fHitsFMD3o; // Distribution of FMD3o hits
121 TH1D* fStripsFMD1i; // Distribution of FMD1i # strips hit
122 TH1D* fStripsFMD2i; // Distribution of FMD2i # strips hit
123 TH1D* fStripsFMD2o; // Distribution of FMD2o # strips hit
124 TH1D* fStripsFMD3i; // Distribution of FMD3i # strips hit
125 TH1D* fStripsFMD3o; // Distribution of FMD3o # strips hit
126 TAxis fVtxAxis; // Vertex axis
127 TAxis fEtaAxis; // Eta axis
129 TList* fList; // Output list
131 ClassDef(AliForwardMCCorrectionsTask,1) // Forward corrections class