2 // This class calculates the exclusive charged particle density
3 // in each for the 5 FMD rings.
5 #ifndef ALIFMDMCCORRECTOR_H
6 #define ALIFMDMCCORRECTOR_H
8 * @file AliFMDMCCorrector.h
9 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
10 * @date Wed Mar 23 14:03:15 2011
15 * @ingroup pwglf_forward_aod
17 #include "AliFMDCorrector.h"
23 * @defgroup pwglf_forward_mc Monte-carlo code
25 * Sub-algorithms specific to Monte-carlo (simulation) productions
27 * @ingroup pwglf_forward
30 * This class calculates the exclusive charged particle density
31 * in each for the 5 FMD rings.
34 * - 5 RingHistos objects - each with a number of vertex dependent
35 * 2D histograms of the inclusive charge particle density
38 * - 5 RingHistos objects - each with a number of vertex dependent
39 * 2D histograms of the exclusive charge particle density
41 * @par Corrections used:
42 * - AliFMDCorrSecondaryMap;
43 * - AliFMDCorrVertexBias
44 * - AliFMDCorrMergingEfficiency
46 * @ingroup pwglf_forward_algo
47 * @ingroup pwglf_forward_mc
48 * @ingroup pwglf_forward_aod
50 class AliFMDMCCorrector : public AliFMDCorrector
69 * @param name Name of object
71 AliFMDMCCorrector(const char* name)
72 : AliFMDCorrector(name),
84 * @param o Object to copy from
86 AliFMDMCCorrector(const AliFMDMCCorrector& o)
94 fSecondaryForMC(o.fSecondaryForMC)
99 virtual ~AliFMDMCCorrector();
101 * Assignement operator
103 * @param o Object to assign from
105 * @return Reference to this object
107 AliFMDMCCorrector& operator=(const AliFMDMCCorrector&);
109 * If set, then do not do the secondary correction for MC data
113 void SetSecondaryForMC(Bool_t use) { fSecondaryForMC = use; }
115 * Initialize this object
117 * @param etaAxis Eta axis to use
119 void SetupForData(const TAxis& etaAxis);
121 * Do the calculations
123 * @param hists Cache of histograms
124 * @param vtxBin Vertex bin
126 * @return true on successs
128 virtual Bool_t CorrectMC(AliForwardUtil::Histos& hists, UShort_t vtxBin);
130 * Compare the result of analysing the ESD for
131 * the inclusive charged particle density to analysing
139 virtual Bool_t CompareResults(AliForwardUtil::Histos& esd,
140 AliForwardUtil::Histos& mc);
142 * Output diagnostic histograms to directory
144 * @param dir List to write in
146 void CreateOutputObjects(TList* dir);
151 * @param option Not used
153 void Print(Option_t* option="") const;
156 * MAke comparison profiles
160 * @param axis Eta axis
162 * @return Newly allocated profile object
164 TProfile2D* Make(UShort_t d, Char_t r, const TAxis& axis) const;
166 * Fill comparison profiles
170 * @param esd ESD histogram
171 * @param mc MC histogram
173 void Fill(UShort_t d, Char_t r, TH2* esd, TH2* mc);
175 TProfile2D* fFMD1i; // Comparison
176 TProfile2D* fFMD2i; // Comparison
177 TProfile2D* fFMD2o; // Comparison
178 TProfile2D* fFMD3i; // Comparison
179 TProfile2D* fFMD3o; // Comparison
180 TList* fComps; // List of comparisons
181 Bool_t fSecondaryForMC; // Whether to correct MC data
183 ClassDef(AliFMDMCCorrector,2); // Calculate Nch density