1 #ifndef ALIROOT_PWG2_FORWARD_ANALYSIS2_ALIFMDCORRECTIONS_H
2 #define ALIROOT_PWG2_FORWARD_ANALYSIS2_ALIFMDCORRECTIONS_H
5 #include "AliForwardUtil.h"
10 * This class calculates the inclusive charged particle density
11 * in each for the 5 FMD rings.
14 * - AliESDFMD object possibly corrected for sharing
17 * - 5 RingHistos objects - each with a number of vertex dependent
18 * 2D histograms of the inclusive charge particle density
20 * @par Corrections used:
21 * - AliFMDAnaCalibBackgroundCorrection
22 * - AliFMDAnaCalibEventSelectionEfficiency
23 * - AliFMDAnaCalibSharingEfficiency
25 * @ingroup pwg2_forward
27 class AliFMDCorrections : public TNamed
37 * @param name Name of object
39 AliFMDCorrections(const char* name);
43 * @param o Object to copy from
45 AliFMDCorrections(const AliFMDCorrections& o);
49 virtual ~AliFMDCorrections();
51 * Assignement operator
53 * @param o Object to assign from
55 * @return Reference to this object
57 AliFMDCorrections& operator=(const AliFMDCorrections&);
61 * @param hists Cache of histograms
62 * @param vtxBin Vertex bin
64 * @return true on successs
66 virtual Bool_t Correct(AliForwardUtil::Histos& hists, UShort_t vtxBin);
68 * Scale the histograms to the total number of events
70 * @param dir Where the output is stored
71 * @param nEvents Number of events
73 void ScaleHistograms(TList* dir, Int_t nEvents);
75 * Output diagnostic histograms to directory
77 * @param dir List to write in
79 void DefineOutput(TList* dir);
81 * Set the debug level. The higher the value the more output
83 * @param dbg Debug level
85 void SetDebug(Int_t dbg=1) { fDebug = dbg; }
89 * @param option Not used
91 void Print(Option_t* option="") const;
94 * Internal data structure to keep track of the histograms
96 struct RingHistos : public AliForwardUtil::RingHistos
108 RingHistos(UShort_t d, Char_t r);
112 * @param o Object to copy from
114 RingHistos(const RingHistos& o);
116 * Assignment operator
118 * @param o Object to assign from
120 * @return Reference to this
122 RingHistos& operator=(const RingHistos& o);
130 * @param dir Where to put it
132 void Output(TList* dir);
134 * Scale the histograms to the total number of events
136 * @param dir where the output is stored
137 * @param nEvents Number of events
139 void ScaleHistograms(TList* dir, Int_t nEvents);
140 TH2D* fDensity; // Distribution primary Nch
141 ClassDef(RingHistos,1);
144 * Get the ring histogram container
149 * @return Ring histogram container
151 RingHistos* GetRingHistos(UShort_t d, Char_t r) const;
153 TList fRingHistos; // List of histogram containers
154 Int_t fDebug; // Debug level
156 ClassDef(AliFMDCorrections,1); // Calculate Nch density