]>
Commit | Line | Data |
---|---|---|
7984e5f7 | 1 | // |
2 | // This class calculates the exclusive charged particle density | |
3 | // in each for the 5 FMD rings. | |
4 | // | |
72cc12cd | 5 | #ifndef ALIFMDMCCORRECTOR_H |
6 | #define ALIFMDMCCORRECTOR_H | |
ffca499d | 7 | /** |
8 | * @file AliFMDMCCorrector.h | |
9 | * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk> | |
10 | * @date Wed Mar 23 14:03:15 2011 | |
11 | * | |
12 | * @brief | |
13 | * | |
14 | * | |
bd6f5206 | 15 | * @ingroup pwglf_forward_aod |
ffca499d | 16 | */ |
72cc12cd | 17 | #include "AliFMDCorrector.h" |
886dd429 | 18 | #include <TList.h> |
19 | class TProfile2D; | |
20 | class TH2; | |
21 | ||
22 | /** | |
bd6f5206 | 23 | * @defgroup pwglf_forward_mc Monte-carlo code |
886dd429 | 24 | * |
290052e7 | 25 | * Sub-algorithms specific to Monte-carlo (simulation) productions |
26 | * | |
bd6f5206 | 27 | * @ingroup pwglf_forward |
886dd429 | 28 | */ |
29 | /** | |
30 | * This class calculates the exclusive charged particle density | |
31 | * in each for the 5 FMD rings. | |
32 | * | |
33 | * @par Input: | |
34 | * - 5 RingHistos objects - each with a number of vertex dependent | |
35 | * 2D histograms of the inclusive charge particle density | |
36 | * | |
37 | * @par Output: | |
38 | * - 5 RingHistos objects - each with a number of vertex dependent | |
39 | * 2D histograms of the exclusive charge particle density | |
40 | * | |
41 | * @par Corrections used: | |
42 | * - AliFMDCorrSecondaryMap; | |
43 | * - AliFMDCorrVertexBias | |
44 | * - AliFMDCorrMergingEfficiency | |
45 | * | |
bd6f5206 | 46 | * @ingroup pwglf_forward_algo |
47 | * @ingroup pwglf_forward_mc | |
48 | * @ingroup pwglf_forward_aod | |
886dd429 | 49 | */ |
72cc12cd | 50 | class AliFMDMCCorrector : public AliFMDCorrector |
886dd429 | 51 | { |
52 | public: | |
53 | /** | |
54 | * Constructor | |
55 | */ | |
72cc12cd | 56 | AliFMDMCCorrector() |
57 | : AliFMDCorrector(), | |
886dd429 | 58 | fFMD1i(0), |
59 | fFMD2i(0), | |
60 | fFMD2o(0), | |
61 | fFMD3i(0), | |
62 | fFMD3o(0), | |
5bb5d1f6 | 63 | fComps(0), |
64 | fSecondaryForMC(true) | |
886dd429 | 65 | {} |
66 | /** | |
67 | * Constructor | |
68 | * | |
69 | * @param name Name of object | |
70 | */ | |
72cc12cd | 71 | AliFMDMCCorrector(const char* name) |
72 | : AliFMDCorrector(name), | |
886dd429 | 73 | fFMD1i(0), |
74 | fFMD2i(0), | |
75 | fFMD2o(0), | |
76 | fFMD3i(0), | |
77 | fFMD3o(0), | |
5bb5d1f6 | 78 | fComps(0), |
79 | fSecondaryForMC(true) | |
886dd429 | 80 | {} |
81 | /** | |
82 | * Copy constructor | |
83 | * | |
84 | * @param o Object to copy from | |
85 | */ | |
72cc12cd | 86 | AliFMDMCCorrector(const AliFMDMCCorrector& o) |
87 | : AliFMDCorrector(o), | |
886dd429 | 88 | fFMD1i(o.fFMD1i), |
89 | fFMD2i(o.fFMD2i), | |
90 | fFMD2o(o.fFMD2o), | |
91 | fFMD3i(o.fFMD3i), | |
92 | fFMD3o(o.fFMD3o), | |
5bb5d1f6 | 93 | fComps(0), |
94 | fSecondaryForMC(o.fSecondaryForMC) | |
886dd429 | 95 | {} |
96 | /** | |
97 | * Destructor | |
98 | */ | |
72cc12cd | 99 | virtual ~AliFMDMCCorrector(); |
886dd429 | 100 | /** |
101 | * Assignement operator | |
102 | * | |
103 | * @param o Object to assign from | |
104 | * | |
105 | * @return Reference to this object | |
106 | */ | |
72cc12cd | 107 | AliFMDMCCorrector& operator=(const AliFMDMCCorrector&); |
5bb5d1f6 | 108 | /** |
109 | * If set, then do not do the secondary correction for MC data | |
110 | * | |
111 | * @param use | |
112 | */ | |
113 | void SetSecondaryForMC(Bool_t use) { fSecondaryForMC = use; } | |
886dd429 | 114 | /** |
115 | * Initialize this object | |
116 | * | |
117 | * @param etaAxis Eta axis to use | |
118 | */ | |
5934a3e3 | 119 | void SetupForData(const TAxis& etaAxis); |
886dd429 | 120 | /** |
121 | * Do the calculations | |
122 | * | |
123 | * @param hists Cache of histograms | |
124 | * @param vtxBin Vertex bin | |
125 | * | |
126 | * @return true on successs | |
127 | */ | |
128 | virtual Bool_t CorrectMC(AliForwardUtil::Histos& hists, UShort_t vtxBin); | |
129 | /** | |
130 | * Compare the result of analysing the ESD for | |
131 | * the inclusive charged particle density to analysing | |
132 | * MC truth | |
133 | * | |
134 | * @param esd | |
135 | * @param mc | |
136 | * | |
137 | * @return | |
138 | */ | |
139 | virtual Bool_t CompareResults(AliForwardUtil::Histos& esd, | |
140 | AliForwardUtil::Histos& mc); | |
141 | /** | |
142 | * Output diagnostic histograms to directory | |
143 | * | |
144 | * @param dir List to write in | |
145 | */ | |
5934a3e3 | 146 | void CreateOutputObjects(TList* dir); |
5bb5d1f6 | 147 | |
148 | /** | |
149 | * Print information | |
150 | * | |
151 | * @param option Not used | |
152 | */ | |
153 | void Print(Option_t* option="") const; | |
886dd429 | 154 | protected: |
155 | /** | |
156 | * MAke comparison profiles | |
157 | * | |
158 | * @param d Detector | |
159 | * @param r Ring | |
160 | * @param axis Eta axis | |
161 | * | |
162 | * @return Newly allocated profile object | |
163 | */ | |
164 | TProfile2D* Make(UShort_t d, Char_t r, const TAxis& axis) const; | |
165 | /** | |
166 | * Fill comparison profiles | |
167 | * | |
168 | * @param d Detector | |
169 | * @param r Ring | |
170 | * @param esd ESD histogram | |
171 | * @param mc MC histogram | |
172 | */ | |
173 | void Fill(UShort_t d, Char_t r, TH2* esd, TH2* mc); | |
174 | ||
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 | |
5bb5d1f6 | 181 | Bool_t fSecondaryForMC; // Whether to correct MC data |
182 | ||
5934a3e3 | 183 | ClassDef(AliFMDMCCorrector,2); // Calculate Nch density |
886dd429 | 184 | }; |
185 | ||
186 | #endif | |
187 | // Local Variables: | |
188 | // mode: C++ | |
189 | // End: | |
190 |