1 #ifndef ALIROOT_PWG2_FORWARD_ANALYSIS2_ALIFMDCORRECTIONS_H
2 #define ALIROOT_PWG2_FORWARD_ANALYSIS2_ALIFMDCORRECTIONS_H
5 #include "AliForwardUtil.h"
9 * @defgroup pwg2_forward_algo Algorithms
11 * @ingroup pwg2_forward
14 * This class calculates the exclusive charged particle density
15 * in each for the 5 FMD rings.
18 * - 5 RingHistos objects - each with a number of vertex dependent
19 * 2D histograms of the inclusive charge particle density
22 * - 5 RingHistos objects - each with a number of vertex dependent
23 * 2D histograms of the exclusive charge particle density
25 * @par Corrections used:
26 * - AliFMDCorrSecondaryMap;
27 * - AliFMDCorrVertexBias
28 * - AliFMDCorrMergingEfficiency
30 * @ingroup pwg2_forward_algo
32 class AliFMDCorrections : public TNamed
42 * @param name Name of object
44 AliFMDCorrections(const char* name);
48 * @param o Object to copy from
50 AliFMDCorrections(const AliFMDCorrections& o);
54 virtual ~AliFMDCorrections();
56 * Assignement operator
58 * @param o Object to assign from
60 * @return Reference to this object
62 AliFMDCorrections& operator=(const AliFMDCorrections&);
66 * @param hists Cache of histograms
67 * @param vtxBin Vertex bin
69 * @return true on successs
71 virtual Bool_t Correct(AliForwardUtil::Histos& hists, UShort_t vtxBin);
73 * Scale the histograms to the total number of events
75 * @param dir Where the output is stored
76 * @param nEvents Number of events
78 virtual void ScaleHistograms(TList* dir, Int_t nEvents);
80 * Output diagnostic histograms to directory
82 * @param dir List to write in
84 virtual void DefineOutput(TList* dir);
86 * Set the debug level. The higher the value the more output
88 * @param dbg Debug level
90 void SetDebug(Int_t dbg=1) { fDebug = dbg; }
94 * @param option Not used
96 void Print(Option_t* option="") const;
99 * Internal data structure to keep track of the histograms
101 struct RingHistos : public AliForwardUtil::RingHistos
113 RingHistos(UShort_t d, Char_t r);
117 * @param o Object to copy from
119 RingHistos(const RingHistos& o);
121 * Assignment operator
123 * @param o Object to assign from
125 * @return Reference to this
127 RingHistos& operator=(const RingHistos& o);
135 * @param dir Where to put it
137 void Output(TList* dir);
139 * Scale the histograms to the total number of events
141 * @param dir where the output is stored
142 * @param nEvents Number of events
144 void ScaleHistograms(TList* dir, Int_t nEvents);
145 TH2D* fDensity; // Distribution primary Nch
146 ClassDef(RingHistos,1);
149 * Get the ring histogram container
154 * @return Ring histogram container
156 RingHistos* GetRingHistos(UShort_t d, Char_t r) const;
158 TList fRingHistos; // List of histogram containers
159 Int_t fDebug; // Debug level
161 ClassDef(AliFMDCorrections,1); // Calculate Nch density