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 pwg2_forward_aod
17 #include "AliFMDCorrector.h"
23 * @defgroup pwg2_forward_mc Monte-carlo code
25 * @ingroup pwg2_forward
28 * This class calculates the exclusive charged particle density
29 * in each for the 5 FMD rings.
32 * - 5 RingHistos objects - each with a number of vertex dependent
33 * 2D histograms of the inclusive charge particle density
36 * - 5 RingHistos objects - each with a number of vertex dependent
37 * 2D histograms of the exclusive charge particle density
39 * @par Corrections used:
40 * - AliFMDCorrSecondaryMap;
41 * - AliFMDCorrVertexBias
42 * - AliFMDCorrMergingEfficiency
44 * @ingroup pwg2_forward_algo
45 * @ingroup pwg2_forward_mc
46 * @ingroup pwg2_forward_aod
48 class AliFMDMCCorrector : public AliFMDCorrector
67 * @param name Name of object
69 AliFMDMCCorrector(const char* name)
70 : AliFMDCorrector(name),
82 * @param o Object to copy from
84 AliFMDMCCorrector(const AliFMDMCCorrector& o)
92 fSecondaryForMC(o.fSecondaryForMC)
97 virtual ~AliFMDMCCorrector();
99 * Assignement operator
101 * @param o Object to assign from
103 * @return Reference to this object
105 AliFMDMCCorrector& operator=(const AliFMDMCCorrector&);
107 * If set, then do not do the secondary correction for MC data
111 void SetSecondaryForMC(Bool_t use) { fSecondaryForMC = use; }
113 * Initialize this object
115 * @param etaAxis Eta axis to use
117 void Init(const TAxis& etaAxis);
119 * Do the calculations
121 * @param hists Cache of histograms
122 * @param vtxBin Vertex bin
124 * @return true on successs
126 virtual Bool_t CorrectMC(AliForwardUtil::Histos& hists, UShort_t vtxBin);
128 * Compare the result of analysing the ESD for
129 * the inclusive charged particle density to analysing
137 virtual Bool_t CompareResults(AliForwardUtil::Histos& esd,
138 AliForwardUtil::Histos& mc);
140 * Output diagnostic histograms to directory
142 * @param dir List to write in
144 void DefineOutput(TList* dir);
149 * @param option Not used
151 void Print(Option_t* option="") const;
154 * MAke comparison profiles
158 * @param axis Eta axis
160 * @return Newly allocated profile object
162 TProfile2D* Make(UShort_t d, Char_t r, const TAxis& axis) const;
164 * Fill comparison profiles
168 * @param esd ESD histogram
169 * @param mc MC histogram
171 void Fill(UShort_t d, Char_t r, TH2* esd, TH2* mc);
173 TProfile2D* fFMD1i; // Comparison
174 TProfile2D* fFMD2i; // Comparison
175 TProfile2D* fFMD2o; // Comparison
176 TProfile2D* fFMD3i; // Comparison
177 TProfile2D* fFMD3o; // Comparison
178 TList* fComps; // List of comparisons
179 Bool_t fSecondaryForMC; // Whether to correct MC data
181 ClassDef(AliFMDMCCorrector,1); // Calculate Nch density