1 /*************************************************************************
2 * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 ///////////////////////////////////////////////////////////////////////////
17 // Dielectron Variables Manager class //
23 ///////////////////////////////////////////////////////////////////////////
25 #include "AliDielectronVarManager.h"
27 ClassImp(AliDielectronVarManager)
29 const char* AliDielectronVarManager::fgkParticleNames[AliDielectronVarManager::kNMaxValues][3] = {
30 {"Px", "#it{p}_{x}", "(GeV/#it{c})"},
31 {"Py", "#it{p}_{y}", "(GeV/#it{c})"},
32 {"Pz", "#it{p}_{z}", "(GeV/#it{c})"},
33 {"Pt", "#it{p}_{T}", "(GeV/#it{c})"},
34 {"PtSq", "#it{p}_{T}^{2}", "((GeV/#it{c})^{2})"},
35 {"P", "#it{p}", "(GeV/#it{c})"},
36 {"Xv", "x_{vtx}", "(cm)"},
37 {"Yv", "y_{vtx}", "(cm)"},
38 {"Zv", "z_{vtx}", "(cm)"},
39 {"OneOverPt", "1/^{}#it{p}_{T}", "(GeV/#it{c})^{-1}"},
40 {"Phi", "#phi", "(rad.)"},
41 {"Theta", "#theta", "(rad.)"},
45 {"M", "m_{inv}", "(GeV/#it{c^{2}})"},
46 {"Charge", "q", "(e)"},
47 {"NclsITS", "N_{cls}^{ITS}", ""},
48 {"ITSchi2PerCluster", "#chi^{2}/^{}N_{cls}^{ITS}", ""},
49 {"NclsTPC", "N_{cls}^{TPC}", ""},
50 {"NclsSTPC", "N_{shar.cls}^{TPC}", ""},
51 {"NclsSFracTPC", "N_{shar.cls}^{TPC}/^{}N_{cls}^{TPC}", ""},
52 {"NclsTPCiter1", "N_{1st.iter.cls}^{TPC}", ""},
53 {"NFclsTPC", "N_{find.cls}^{TPC}", ""},
54 {"NFclsTPCrobust", "N_{cross.rows}^{TPC}", ""},
55 {"NFclsTPCrobustFraction", "N_{cls}^{TPC}/^{}N_{find.cls}^{TPC}", ""},//TODO: check
56 {"NFclsTPCfracCrossedRows","N_{cross.rows}^{TPC}/^{}N_{find.cls}^{TPC}", ""},
57 {"TPCsignalN", "N_{d#it{E}/d#it{x} points}^{TPC}", ""},
58 {"TPCsignalNfrac", "N_{d#it{E}/d#it{x} points}^{TPC}/^{}N_{cls}^{TPC}", ""},
59 {"TPCchi2PerCluster", "#chi^{2}/^{}N_{cls}^{TPC}", ""},
60 {"TPCclsDiff", "N_{d#it{E}/d#it{x} points}^{TPC} - N_{cls}^{TPC}", ""},
61 {"TPCclsSegments", "N_{segments}^{TPC}", ""},
62 {"TPCclsIRO", "N_{clsIRO}^{TPC}", ""},
63 {"TPCclsORO", "N_{clsORO}^{TPC}", ""},
64 {"TrackStatus", "TrackStatus", ""},
65 {"FilterBit", "AOD filter bit", ""},
67 {"NclsTRD", "N_{cls}^{TRD}", ""},
68 {"TRDntracklets", "N_{trkl}^{TRD}", ""},
69 {"TRDpidQuality", "N_{PID.trkl}^{TRD}", ""},
70 {"TRDchi2", "#chi^{2}/^{}N_{cls}^{TRD}", ""},//TODO: check denominator
71 {"TRDpidProb_Electrons", "P(PID_{e}^{TRD})", ""},
72 {"TRDpidProb_Pions", "P(PID_{#pi}^{TRD})", ""},
73 {"TRDpidProb2D_Electrons", "P(2dim. PID_{e}^{TRD})", ""},
74 {"TRDpidProb2D_Pions", "P(2dim. PID_{#pi}^{TRD})", ""},
75 {"TRDphi", "#phi^{TRD}", ""},
76 {"TRDpidEffLeg", "#varepsilon^{TRD legs}(PID)", ""},
77 {"TRD_signal", "TRD d#it{E}/d#it{x} + TR", "(a.u.)"},
79 {"ImpactParXY", "#it{dca}_{xy}", "(cm)"},
80 {"ImpactParZ", "#it{dca}_{z}", "(cm)"},
81 {"TrackLength", "#it{l}_{track}", "(cm)"},
83 {"PdgCode", "PDG code", ""},
84 {"PdgCodeMother", "mothers PDG code", ""},
85 {"PdgCodeGrandMother", "grand mothers PDG code", ""},
86 {"HasCocktailMother", "mother from AliGenCocktail", ""},
87 {"HasCocktailGrandMother", "grand mother from AliGenCocktail", ""},
89 {"NumberOfDaughters", "N_{daughters}", ""},
90 {"HaveSameMother", "HaveSameMother", ""},
91 {"IsJpsiPrimary", "IsJpsiPrimary", ""},
92 {"NumberOfJPsisIncl", "N_{incl. J/^{}#psi}", ""},
93 {"NumberOfJPsisPrompt", "N_{prompt J/^{}#psi}", ""},
94 {"NumberOfJPsisNPrompt", "N_{non prompt J/^{}#psi}", ""},
96 {"ITS_signal", "ITS d#it{E}/d#it{x}", "(keV/^{}300#mum)"},//TODO: check units
97 {"SSD1_signal", "SSD 1st layer d#it{E}/d#it{x}", "(keV/^{}300#mum)"},
98 {"SSD2_signal", "SSD 2nd layer d#it{E}/d#it{x}", "(keV/^{}300#mum)"},
99 {"SDD1_signal", "SDD 1st layer d#it{E}/d#it{x}", "(keV/^{}300#mum)"},
100 {"SDD2_signal", "SDD 2nd layer d#it{E}/d#it{x}", "(keV/^{}300#mum)"},
101 {"ITS_clusterMap", "ITS_clusterMap", ""},
102 {"ITSLayerFirstCls", "1st ITS cluster", "(layer)"},
103 {"ITS_nSigma_Electrons", "n#sigma_{e}^{ITS}", ""},
104 {"ITS_nSigma_Pions", "n#sigma_{#pi}^{ITS}", ""},
105 {"ITS_nSigma_Muons", "n#sigma_{#mu}^{ITS}", ""},
106 {"ITS_nSigma_Kaons", "n#sigma_{K}^{ITS}", ""},
107 {"ITS_nSigma_Protons", "n#sigma_{p}^{ITS}", ""},
109 {"P_InnerParam", "#it{p}_{inner wall}^{TPC}", "(GeV/#it{c})"},
110 {"P_OuterParam", "#it{p}_{outer wall}^{TPC}", "(GeV/#it{c})"},
111 {"Y_signed_InnerParam", "sign. y_{inner wall}^{TPC}", "(GeV/#it{c})"},
112 {"TPC_signal", "TPC d#it{E}/d#it{x}", "(a.u.)"},
113 {"TOF_signal", "TOF signal", "(ps)"},
114 {"TOF_beta", "TOF #beta", "(#it{c})"},
115 {"TOF_PIDbit", "TOF PID bit", ""},
116 {"TOF_mismProb", "TOF mismatch probability" ""},
118 {"TPC_nSigma_ElectronsRaw","n#sigma_{e}^{TPC} (raw)", ""},
119 {"TPC_nSigma_Electrons", "n#sigma_{e}^{TPC}", ""},
120 {"TPC_nSigma_Pions", "n#sigma_{#pi}^{TPC}", ""},
121 {"TPC_nSigma_Muons", "n#sigma_{#mu}^{TPC}", ""},
122 {"TPC_nSigma_Kaons", "n#sigma_{K}^{TPC}", ""},
123 {"TPC_nSigma_Protons", "n#sigma_{p}^{TPC}", ""},
125 {"TOF_nSigma_Electrons", "n#sigma_{e}^{TOF}", ""},
126 {"TOF_nSigma_Pions", "n#sigma_{#pi}^{TOF}", ""},
127 {"TOF_nSigma_Muons", "n#sigma_{#mu}^{TOF}", ""},
128 {"TOF_nSigma_Kaons", "n#sigma_{K}^{TOF}", ""},
129 {"TOF_nSigma_Protons", "n#sigma_{p}^{TOF}", ""},
131 {"EMCAL_nSigma_Electrons", "n#sigma_{e}^{EMCAL}", ""},
132 {"EMCAL_EoverP", "E^{EMCAL}/^{}#it{p}", "(#it{c})"},
133 {"EMCAL_E", "E^{EMCAL}", "(GeV)"},
134 {"EMCAL_NCells", "N_{cell}^{EMCAL}", ""},
135 {"EMCAL_M02", "M02 EMCAL showershape param.", ""},
136 {"EMCAL_M20", "M20 EMCAL showershape param.", ""},
137 {"EMCAL_Dispersion", "EMCAL dispersion param.", ""},
139 {"EffLeg", "A#times#varepsilon", ""},
140 {"OneOverEffLeg", "(A#times#varepsilon)^{-1}", ""},
141 {"V0Index0", "V0Index0", ""},
142 {"KinkIndex0", "KinkIndex0", ""},
144 {"Chi2NDF", "#chi^{2}/^{}ndf", ""},
145 {"DecayLength", "l_{decay}", "(cm)"},
146 {"R", "d(#vec{x}_{vtx},#vec{x}_{part.})", "(cm)"},
147 {"OpeningAngle", "#varphi", "(rad.)"},
148 {"CosPointingAngle", "cos(#theta)", "(rad.)"},
149 {"ArmAlpha", "#alpha^{arm}", ""},
150 {"ArmPt", "#it{p}_{T}^{arm}", "(GeV/#it{c})"},
151 {"ThetaHE", "cos(#theta_{HE})", ""},
152 {"PhiHE", "#phi_{HE}", "(rad.)"},
153 {"ThetaSqHE", "cos^{2}(#theta_{HE})", ""},
154 {"Cos2PhiHE", "cos(2#phi_{HE})", ""},
155 {"CosTilPhiHE", "cos(#phi_{HE})", ""},
156 {"ThetaCS", "cos(#theta_{CS})", ""},
157 {"PhiCS", "#phi_{CS}", "(rad.)"},
158 {"ThetaSqCS", "cos^{2}(#theta_{CS})", ""},
159 {"PsiPair", "#Psi^{pair}", "(rad.)"},
160 {"PhivPair", "#Phi_{v}^{pair}", "(rad.)"},
161 {"PairPlaneAngle1A", "#Phi_{1A}", "(rad.)"},
162 {"PairPlaneAngle2A", "#Phi_{2A}", "(rad.)"},
163 {"PairPlaneAngle3A", "#Phi_{3A}", "(rad.)"},
164 {"PairPlaneAngle4A", "#Phi_{4A}", "(rad.)"},
165 {"PairPlaneAngle1C", "#Phi_{1C}", "(rad.)"},
166 {"PairPlaneAngle2C", "#Phi_{2C}", "(rad.)"},
167 {"PairPlaneAngle3C", "#Phi_{3C}", "(rad.)"},
168 {"PairPlaneAngle4C", "#Phi_{4C}", "(rad.)"},
169 {"PairPlaneAngle1AC", "#Phi_{1AC}", "(rad.)"},
170 {"PairPlaneAngle2AC", "#Phi_{2AC}", "(rad.)"},
171 {"PairPlaneAngle3AC", "#Phi_{3AC}", "(rad.)"},
172 {"PairPlaneAngle4AC", "#Phi_{4AC}", "(rad.)"},
173 {"PairPlaneAngle1Ran", "#Phi_{1Ran}", "(rad.)"},
174 {"PairPlaneAngle2Ran", "#Phi_{2Ran}", "(rad.)"},
175 {"PairPlaneAngle3Ran", "#Phi_{3Ran}", "(rad.)"},
176 {"PairPlaneAngle4Ran", "#Phi_{4Ran}", "(rad.)"},
177 {"RandomRP", "#Phi_{RanRP}", "(rad.)"},
178 {"DeltaPhiRandomRP", "#Delta #Phi_{RanRP}", ""},
180 {"PairPlaneMagInPro", "cos(#Phi)" ""},
182 {"Cos2PhiCS", "cos(2#phi_{CS})", ""},
183 {"CosTilPhiCS", "cos(#phi_{CS})", ""},
184 {"CosPhiH2", "cos(2#phi)", ""},
185 {"SinPhiH2", "sin(2#phi)", ""},
186 {"DeltaPhiV0ArpH2", "#phi^{pair}-#Psi^{V0A}", ""},
187 {"DeltaPhiV0CrpH2", "#phi^{pair}-#Psi^{V0C}", ""},
188 {"DeltaPhiV0ACrpH2", "#phi^{pair}-#Psi^{V0AC}", ""},
189 {"V0ArpH2FlowV2", "cos(2(#phi^{pair}-#Psi^{V0A}))", ""},
190 {"V0CrpH2FlowV2", "cos(2(#phi^{pair}-#Psi^{V0C}))", ""},
191 {"V0ACrpH2FlowV2", "cos(2(#phi^{pair}-#Psi^{V0AC}))", ""},
192 {"DeltaPhiv0ArpH2", "#phi^{pair}-#Psi^{V0A}", ""},
193 {"DeltaPhiv0CrpH2", "#phi^{pair}-#Psi^{V0C}", ""},
194 {"DeltaPhiv0ACrpH2", "#phi^{pair}-#Psi^{V0AC}", ""},
195 {"DeltaPhiTPCrpH2", "#phi^{pair}-#Psi^{TPC}", ""},
196 {"v0ArpH2FlowV2", "cos(2(#phi^{pair}-#Psi^{V0A}))", ""},
197 {"v0CrpH2FlowV2", "cos(2(#phi^{pair}-#Psi^{V0C}))", ""},
198 {"v0ACrpH2FlowV2", "cos(2(#phi^{pair}-#Psi^{V0AC}))", ""},
199 {"TPCrpH2FlowV2", "cos(2(#phi^{pair}-#Psi^{TPC}))", ""},
200 {"TPCrpH2FlowV2Sin", "sin(2(#phi^{pair}-#Psi^{TPC}))", ""},
201 {"LegDistance", "d^{legs}", "(cm)"},
202 {"LegDistanceXY", "d^{legs}_{xy}", "(cm)"},
203 {"DeltaEta", "#Delta #eta", ""},
204 {"DeltaPhi", "#Delta #phi", ""},
205 {"Merr", "m_{inv} error", "(GeV/#it{c}^{2})"},
206 {"DCA", "#it{dca}", "(cm)"},
207 {"PairType", "PairType", ""},
208 {"PseudoProperTime", "#tau", "(#mus)"}, //TODO: check unit
209 {"PseudoProperTimeErr", "#tau error", "(#mus)"},
210 {"PseudoProperTimeResolution", "(#tau-#tau^{MC truth})", "(#mus)"},
211 {"PseudoProperTimePull", "#frac{(#tau-#tau^{MC truth})}{#tau error}", ""},
212 {"TRDpidEffPair", "#varepsilon^{TRD pair}(PID)", ""},
213 {"MomAsymDau1", "#it{p}^{leg1}/#it{p}^{pair}", ""},
214 {"MomAsymDau2", "#it{p}^{leg2}/#it{p}^{pair}", ""},
215 {"EffPair", "A#times#varepsilon", ""},
216 {"OneOverEffPair", "(A#times#varepsilon)^{-1}", ""},
217 {"OneOverEffPairSq", "(A#times#varepsilon)^{-2}", ""},
218 {"RndmPair", "P", ""},
219 {"Pairs", "pairs/event", ""},
221 {"Xprim", "x_{prim.vtx}", "(cm)"},
222 {"Yprim", "y_{prim.vtx}", "(cm)"},
223 {"Z", "z_{prim.vtx}", "(cm)"},
224 {"XRes", "#Delta x_{prim.vtx}", "(cm)"},
225 {"YRes", "#Delta y_{prim.vtx}", "(cm)"},
226 {"ZRes", "#Delta z_{prim.vtx}", "(cm)"},
227 {"PhiMaxPt", "#phi(#it{p}_{T}^{lead})", "(rad.)"},
228 {"MaxPt", "#it{p}_{T}^{lead}", "(GeV/#it{c})"},
230 {"v0ArpH2", "#Psi^{V0A}", ""},
231 {"v0CrpH2", "#Psi^{V0C}", ""},
232 {"v0ACrpH2", "#Psi^{V0AC}", ""},
233 {"v0AxH2", "Q_{x}^{V0A}", ""},
234 {"v0AyH2", "Q_{y}^{V0A}", ""},
235 {"v0CxH2", "Q_{x}^{V0C}", ""},
236 {"v0CyH2", "Q_{y}^{V0C}", ""},
237 {"v0ACxH2", "Q_{x}^{V0AC}", ""},
238 {"v0ACyH2", "Q_{y}^{V0AC}", ""},
239 {"v0AmagH2", "|#vec{Q}^{V0A}|", ""},
240 {"v0CmagH2", "|#vec{Q}^{V0C}|", ""},
241 {"v0ACmagH2", "|#vec{Q}^{V0AC}|", ""},
242 {"v0A0rpH2", "#Psi^{V0A}_{ring 0}", ""},
243 {"v0A3rpH2", "#Psi^{V0A}_{ring 3}", ""},
244 {"v0C0rpH2", "#Psi^{V0C}_{ring 0}", ""},
245 {"v0C3rpH2", "#Psi^{V0C}_{ring 3}", ""},
246 {"v0ATPCDiffH2", "cos(2(#Psi^{V0A}-#Psi^{TPC}))", ""},
247 {"v0CTPCDiffH2", "cos(2(#Psi^{V0C}-#Psi^{TPC}))", ""},
248 {"v0Av0CDiffH2", "cos(2(#Psi^{V0A}-#Psi^{V0C}))", ""},
249 {"v0Av0C0DiffH2", "cos(2(#Psi^{V0A}-#Psi^{V0C}_{ring 0}))", ""},
250 {"v0Av0C3DiffH2", "cos(2(#Psi^{V0A}-#Psi^{V0C}_{ring 3}))", ""},
251 {"v0Cv0A0DiffH2", "cos(2(#Psi^{V0C}-#Psi^{V0A}_{ring 0}))", ""},
252 {"v0Cv0A3DiffH2", "cos(2(#Psi^{V0C}-#Psi^{V0A}_{ring 3}))", ""},
253 {"v0A0v0A3DiffH2", "cos(2(#Psi^{V0A}_{ring 0}-#Psi^{V0A}_{ring 3}))", ""},
254 {"v0C0v0C3DiffH2", "cos(2(#Psi^{V0C}_{ring 0}-#Psi^{V0C}_{ring 3}))", ""},
256 {"MultV0A", "multiplicity V0A", ""},
257 {"MultV0C", "multiplicity V0C", ""},
258 {"MultV0", "multiplicity V0", ""},
259 {"EqMultV0A", "equalized multiplicity V0A", ""},
260 {"EqMultV0C", "equalized multiplicity V0C", ""},
261 {"EqMultV0", "equalized multiplicity V0", ""},
262 {"AdcV0A", "AdcV0A", ""},
263 {"AdcV0C", "AdcV0C", ""},
264 {"AdcV0", "AdcV0", ""},
265 {"VZERO_ch0", "VZERO_ch0", ""},
266 {"VZERO_ch1", "VZERO_ch1", ""},
267 {"VZERO_ch2", "VZERO_ch2", ""},
268 {"VZERO_ch3", "VZERO_ch3", ""},
269 {"VZERO_ch4", "VZERO_ch4", ""},
270 {"VZERO_ch5", "VZERO_ch5", ""},
271 {"VZERO_ch6", "VZERO_ch6", ""},
272 {"VZERO_ch7", "VZERO_ch7", ""},
273 {"VZERO_ch8", "VZERO_ch8", ""},
274 {"VZERO_ch9", "VZERO_ch9", ""},
275 {"VZERO_ch10", "VZERO_ch10", ""},
276 {"VZERO_ch11", "VZERO_ch11", ""},
277 {"VZERO_ch12", "VZERO_ch12", ""},
278 {"VZERO_ch13", "VZERO_ch13", ""},
279 {"VZERO_ch14", "VZERO_ch14", ""},
280 {"VZERO_ch15", "VZERO_ch15", ""},
281 {"VZERO_ch16", "VZERO_ch16", ""},
282 {"VZERO_ch17", "VZERO_ch17", ""},
283 {"VZERO_ch18", "VZERO_ch18", ""},
284 {"VZERO_ch19", "VZERO_ch19", ""},
285 {"VZERO_ch20", "VZERO_ch20", ""},
286 {"VZERO_ch21", "VZERO_ch21", ""},
287 {"VZERO_ch22", "VZERO_ch22", ""},
288 {"VZERO_ch23", "VZERO_ch23", ""},
289 {"VZERO_ch24", "VZERO_ch24", ""},
290 {"VZERO_ch25", "VZERO_ch25", ""},
291 {"VZERO_ch26", "VZERO_ch26", ""},
292 {"VZERO_ch27", "VZERO_ch27", ""},
293 {"VZERO_ch28", "VZERO_ch28", ""},
294 {"VZERO_ch29", "VZERO_ch29", ""},
295 {"VZERO_ch30", "VZERO_ch30", ""},
296 {"VZERO_ch31", "VZERO_ch31", ""},
297 {"VZERO_ch32", "VZERO_ch32", ""},
298 {"VZERO_ch33", "VZERO_ch33", ""},
299 {"VZERO_ch34", "VZERO_ch34", ""},
300 {"VZERO_ch35", "VZERO_ch35", ""},
301 {"VZERO_ch36", "VZERO_ch36", ""},
302 {"VZERO_ch37", "VZERO_ch37", ""},
303 {"VZERO_ch38", "VZERO_ch38", ""},
304 {"VZERO_ch39", "VZERO_ch39", ""},
305 {"VZERO_ch40", "VZERO_ch40", ""},
306 {"VZERO_ch41", "VZERO_ch41", ""},
307 {"VZERO_ch42", "VZERO_ch42", ""},
308 {"VZERO_ch43", "VZERO_ch43", ""},
309 {"VZERO_ch44", "VZERO_ch44", ""},
310 {"VZERO_ch45", "VZERO_ch45", ""},
311 {"VZERO_ch46", "VZERO_ch46", ""},
312 {"VZERO_ch47", "VZERO_ch47", ""},
313 {"VZERO_ch48", "VZERO_ch48", ""},
314 {"VZERO_ch49", "VZERO_ch49", ""},
315 {"VZERO_ch50", "VZERO_ch50", ""},
316 {"VZERO_ch51", "VZERO_ch51", ""},
317 {"VZERO_ch52", "VZERO_ch52", ""},
318 {"VZERO_ch53", "VZERO_ch53", ""},
319 {"VZERO_ch54", "VZERO_ch54", ""},
320 {"VZERO_ch55", "VZERO_ch55", ""},
321 {"VZERO_ch56", "VZERO_ch56", ""},
322 {"VZERO_ch57", "VZERO_ch57", ""},
323 {"VZERO_ch58", "VZERO_ch58", ""},
324 {"VZERO_ch59", "VZERO_ch59", ""},
325 {"VZERO_ch60", "VZERO_ch60", ""},
326 {"VZERO_ch61", "VZERO_ch61", ""},
327 {"VZERO_ch62", "VZERO_ch62", ""},
328 {"VZERO_ch63", "VZERO_ch63", ""},
329 {"V0AxH2", "Q_{x}^{V0A}", ""},
330 {"V0AyH2", "Q_{y}^{V0A}", ""},
331 {"V0ArpH2", "#Psi^{V0A}", ""},
332 {"V0CxH2", "Q_{x}^{V0C}", ""},
333 {"V0CyH2", "Q_{y}^{V0C}", ""},
334 {"V0CrpH2", "#Psi^{V0C}", ""},
335 {"V0ACxH2", "Q_{x}^{V0AC}", ""},
336 {"V0ACyH2", "Q_{y}^{V0AC}", ""},
337 {"V0ACrpH2", "#Psi^{V0AC}", ""},
339 {"V0ArpResH2", "V0ArpResH2", ""},
340 {"V0CrpResH2", "V0CrpResH2", ""},
341 {"V0ACrpResH2", "V0ACrpResH2", ""},
342 {"V0XaXcH2", "Q_{x}^{V0A}#timesQ_{x}^{V0C}", ""},
343 {"V0XaYaH2", "Q_{x}^{V0A}#timesQ_{y}^{V0A}", ""},
344 {"V0XaYcH2", "Q_{x}^{V0A}#timesQ_{y}^{V0C}", ""},
345 {"V0YaXcH2", "Q_{y}^{V0A}#timesQ_{x}^{V0C}", ""},
346 {"V0YaYcH2", "Q_{y}^{V0A}#timesQ_{Y}^{V0C}", ""},
347 {"V0XcYcH2", "Q_{X}^{V0C}#timesQ_{Y}^{V0C}", ""},
348 {"V0ATPCDiffH2", "cos(2(#Psi^{V0A}-#Psi^{TPC}))", ""},
349 {"V0CTPCDiffH2", "cos(2(#Psi^{V0C}-#Psi^{TPC}))", ""},
350 {"V0AV0CDiffH2", "cos(2(#Psi^{V0A}-#Psi^{V0C}))", ""},
351 {"TPCxH2", "Q_{x}^{TPC}", ""},
352 {"TPCyH2", "Q_{y}^{TPC}", ""},
353 {"TPCmagH2", "|#vec{Q}^{TPC}|", ""},
354 {"TPCrpH2", "#Psi^{TPC}", ""},
355 {"CosTPCrpH2", "cos(2#Psi^{TPC})", ""},
356 {"SinTPCrpH2", "sin(2#Psi^{TPC})", ""},
357 {"TPCsub1xH2", "Q_{x}^{TPCsub1}", ""},
358 {"TPCsub1yH2", "Q_{y}^{TPCsub1}", ""},
359 {"TPCsub1rpH2", "#Psi^{TPCsub1}", ""},
360 {"TPCsub2xH2", "Q_{x}^{TPCsub2}", ""},
361 {"TPCsub2yH2", "Q_{y}^{TPCsub2}", ""},
362 {"TPCsub2rpH2", "#Psi^{TPCsub2}", ""},
363 {"TPCsub12DiffH2", "cos(2(#Psi^{TPCsub1}-#Psi^{TPCsub2}))", ""},
364 {"TPCsub12DiffH2Sin", "sin(2(#Psi^{TPCsub1}-#Psi^{TPCsub2}))", ""},
366 {"TPCxH2uc", "Q_{x}^{TPC} (uncorr.)", ""},
367 {"TPCyH2uc", "Q_{y}^{TPC} (uncorr.)", ""},
368 {"TPCmagH2uc", "|#vec{Q}^{TPC}| (uncorr.)", ""},
369 {"TPCrpH2uc", "#Psi^{TPC} (uncorr.)", ""},
370 {"TPCsub1xH2uc", "Q_{x}^{TPCsub1} (uncorr.)", ""},
371 {"TPCsub1yH2uc", "Q_{y}^{TPCsub1} (uncorr.)", ""},
372 {"TPCsub1rpH2uc", "#Psi^{TPCsub1} (uncorr.)", ""},
373 {"TPCsub2xH2uc", "Q_{x}^{TPCsub2} (uncorr.)", ""},
374 {"TPCsub2yH2uc", "Q_{y}^{TPCsub2} (uncorr.)", ""},
375 {"TPCsub2rpH2uc", "#Psi^{TPCsub2} (uncorr.)", ""},
376 {"TPCsub12DiffH2uc", "cos(2(#Psi^{TPCsub1}-#Psi^{TPCsub2})) (uncorr.)", ""},
378 {"ZDCArpH1", "#Psi^{ZDCA}" ""},
379 {"ZDCCrpH1", "#Psi^{ZDCA}" ""},
380 {"ZDCACrpH1", "#Psi^{ZDCA}" ""},
381 {"kZDCrpResH1", "" ""},
382 {"kv0ZDCrpRes", "" ""},
384 {"NTrk", "N_{trk}", ""},
385 {"Tracks", "tracks/per event", ""},
386 {"NVtxContrib", "N_{vtx. contrib.}", ""},
387 {"NVtxContribTPC", "N_{vtx. contrib.}^{TPC}", ""},
388 {"Nacc", "N_{acc} #cbar_{#||{#eta}<0.9}", ""},
389 {"MatchEffITSTPC", "N_{trk}^{TPC}/N_{trk}^{ITS} #cbar_{#||{#eta}<0.9}", ""},
390 {"NaccTrcklts", "N_{acc. trkl} #cbar_{#||{#eta}<1.6}", ""},
391 {"NaccTrcklts0916", "N_{acc. trkl} #cbar_{-1.6<#eta<-0.9}^{0.9<#eta<1.6}",""},
393 {"NaccTrckltsEsd05", "N_{acc. trkl} #cbar_{#||{#eta}<0.5} (SPD)", ""},
394 {"NaccTrckltsEsd10", "N_{acc. trkl} #cbar_{#||{#eta}<1.0} (SPD)", ""},
395 {"NaccTrckltsEsd16", "N_{acc. trkl} #cbar_{#||{#eta}<1.6} (SPD)", ""},
396 {"NaccTrckltsEsd05Corr", "N_{acc. trkl}^{corr.} #cbar_{#||{#eta}<0.5} (SPD)", ""},
397 {"NaccTrckltsEsd10Corr", "N_{acc. trkl}^{corr.} #cbar_{#||{#eta}<1.0} (SPD)", ""},
398 {"NaccTrckltsEsd16Corr", "N_{acc. trkl}^{corr.} #cbar_{#||{#eta}<1.6} (SPD)", ""},
399 {"NaccItsTpcEsd05", "N_{acc. trkl} #cbar_{#||{#eta}<0.5} (ITS+TPC)", ""},
400 {"NaccItsTpcEsd10", "N_{acc. trkl} #cbar_{#||{#eta}<1.0} (ITS+TPC)", ""},
401 {"NaccItsTpcEsd16", "N_{acc. trkl} #cbar_{#||{#eta}<1.6} (ITS+TPC)", ""},
402 {"NaccItsTpcEsd05Corr", "N_{acc. trkl}^{corr.} #cbar_{#||{#eta}<0.5} (ITS+TPC)", ""},
403 {"NaccItsTpcEsd10Corr", "N_{acc. trkl}^{corr.} #cbar_{#||{#eta}<1.0} (ITS+TPC)", ""},
404 {"NaccItsTpcEsd16Corr", "N_{acc. trkl}^{corr.} #cbar_{#||{#eta}<1.6} (ITS+TPC)", ""},
405 {"NaccItsPureEsd05", "N_{acc. trkl} #cbar_{#||{#eta}<0.5} (ITS)", ""},
406 {"NaccItsPureEsd10", "N_{acc. trkl} #cbar_{#||{#eta}<1.0} (ITS)", ""},
407 {"NaccItsPureEsd16", "N_{acc. trkl} #cbar_{#||{#eta}<1.6} (ITS)", ""},
408 {"NaccItsPureEsd05Corr", "N_{acc. trkl}^{corr.} #cbar_{#||{#eta}<0.5} (ITS)", ""},
409 {"NaccItsPureEsd10Corr", "N_{acc. trkl}^{corr.} #cbar_{#||{#eta}<1.0} (ITS)", ""},
410 {"NaccItsPureEsd16Corr", "N_{acc. trkl}^{corr.} #cbar_{#||{#eta}<1.6} (ITS)", ""},
412 {"RefMult", "N_{trk}^{ref}", ""},
413 {"RefMultTPConly", "N_{trk}^{TPConly}", ""},
414 {"Nch", "N_{ch} #cbar_{#||{#eta}<1.6}", ""},
415 {"Nch05", "N_{ch} #cbar_{#||{#eta}<0.5}", ""},
416 {"Nch10", "N_{ch} #cbar_{#||{#eta}<1.0}", ""},
417 {"Centrality", "centrality", "(%)"},
418 {"CentralitySPD", "centrality_{SPD}", "(%)"},
419 {"TriggerInclONL", "online trigger bit (inclusive)", ""},
420 {"TriggerInclOFF", "offline trigger bit (inclusive)", ""},
421 {"TriggerExclOFF", "offline trigger bit (exclusive)", ""},
422 {"Nevents", "N_{evt}", ""},
423 {"RunNumber", "run", ""},
424 {"MixingBin", "mixing bin", ""}
427 AliPIDResponse* AliDielectronVarManager::fgPIDResponse = 0x0;
428 AliVEvent* AliDielectronVarManager::fgEvent = 0x0;
429 AliEventplane* AliDielectronVarManager::fgTPCEventPlane = 0x0;
430 AliKFVertex* AliDielectronVarManager::fgKFVertex = 0x0;
431 TProfile* AliDielectronVarManager::fgMultEstimatorAvg[4][9] = {{0x0}};
432 TH3D* AliDielectronVarManager::fgTRDpidEff[10][4] = {{0x0}};
433 TObject* AliDielectronVarManager::fgLegEffMap = 0x0;
434 TObject* AliDielectronVarManager::fgPairEffMap = 0x0;
435 TBits* AliDielectronVarManager::fgFillMap = 0x0;
436 Double_t AliDielectronVarManager::fgTRDpidEffCentRanges[10][4] = {{0.0}};
437 TString AliDielectronVarManager::fgVZEROCalibrationFile = "";
438 TString AliDielectronVarManager::fgVZERORecenteringFile = "";
439 TString AliDielectronVarManager::fgZDCRecenteringFile = "";
440 TProfile2D* AliDielectronVarManager::fgVZEROCalib[64] = {0x0};
441 TProfile2D* AliDielectronVarManager::fgVZERORecentering[2][2] = {{0x0,0x0},{0x0,0x0}};
442 TProfile3D* AliDielectronVarManager::fgZDCRecentering[3][2] = {{0x0,0x0},{0x0,0x0},{0x0,0x0}};
443 Int_t AliDielectronVarManager::fgCurrentRun = -1;
444 Double_t AliDielectronVarManager::fgData[AliDielectronVarManager::kNMaxValues] = {0.};
445 //________________________________________________________________
446 AliDielectronVarManager::AliDielectronVarManager() :
447 TNamed("AliDielectronVarManager","AliDielectronVarManager")
450 // Default constructor
452 for(Int_t i=0; i<4; ++i)
453 for(Int_t j=0; j<9; ++j)
454 fgMultEstimatorAvg[i][j] = 0x0;
455 for(Int_t i=0; i<10; ++i)
456 for(Int_t j=0; j<4; ++j)
457 fgTRDpidEff[i][j] = 0x0;
458 for(Int_t i=0; i<64; ++i) fgVZEROCalib[i] = 0x0;
459 for(Int_t i=0; i<2; ++i) {
460 for(Int_t j=0; j<2; ++j) fgVZERORecentering[i][j] = 0x0;
462 for(Int_t i=0; i<3; ++i)
463 for(Int_t j=0; j<2; ++j) fgZDCRecentering[i][j] = 0x0;
468 //________________________________________________________________
469 AliDielectronVarManager::AliDielectronVarManager(const char* name, const char* title) :
475 for(Int_t i=0; i<4; ++i)
476 for(Int_t j=0; j<9; ++j)
477 fgMultEstimatorAvg[i][j] = 0x0;
478 for(Int_t i=0; i<10; ++i)
479 for(Int_t j=0; j<4; ++j)
480 fgTRDpidEff[i][j] = 0x0;
481 for(Int_t i=0; i<64; ++i) fgVZEROCalib[i] = 0x0;
482 for(Int_t i=0; i<2; ++i)
483 for(Int_t j=0; j<2; ++j)
484 fgVZERORecentering[i][j] = 0x0;
485 for(Int_t i=0; i<3; ++i)
486 for(Int_t j=0; j<2; ++j) fgZDCRecentering[i][j] = 0x0;
492 //________________________________________________________________
493 AliDielectronVarManager::~AliDielectronVarManager()
496 // Default destructor
498 for(Int_t i=0; i<4; ++i)
499 for(Int_t j=0; j<9; ++j)
500 if(fgMultEstimatorAvg[i][j]) delete fgMultEstimatorAvg[i][j];
501 for(Int_t i=0; i<10; ++i)
502 for(Int_t j=0; j<4; ++j)
503 if(fgTRDpidEff[i][j]) delete fgTRDpidEff[i][j];
504 for(Int_t i=0; i<64; ++i)
505 if(fgVZEROCalib[i]) delete fgVZEROCalib[i];
506 for(Int_t i=0; i<2; ++i)
507 for(Int_t j=0; j<2; ++j)
508 if(fgVZERORecentering[i][j]) delete fgVZERORecentering[i][j];
509 for(Int_t i=0; i<3; ++i)
510 for(Int_t j=0; j<2; ++j)
511 if(fgZDCRecentering[i][j]) delete fgZDCRecentering[i][j];
515 //________________________________________________________________
516 UInt_t AliDielectronVarManager::GetValueType(const char* valname) {
518 // Get value type by value name
521 TString name(valname);
522 for(UInt_t i=0; i<AliDielectronVarManager::kNMaxValues; i++) {
523 if(!name.CompareTo(fgkParticleNames[i][0])) return i;