]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/AliDielectronVarManager.cxx
including switch to set on/off iso-track core removal, cleaning and bug fix
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / AliDielectronVarManager.cxx
1 /*************************************************************************
2 * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
3 *                                                                        *
4 * Author: The ALICE Off-line Project.                                    *
5 * Contributors are mentioned in the code where appropriate.              *
6 *                                                                        *
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 **************************************************************************/
15
16 ///////////////////////////////////////////////////////////////////////////
17 //                Dielectron Variables Manager class                     //
18 //                                                                       //
19 /*
20
21 */
22 //                                                                       //
23 ///////////////////////////////////////////////////////////////////////////
24
25 #include "AliDielectronVarManager.h"
26
27 ClassImp(AliDielectronVarManager)
28
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.)"},
42   {"Eta",                    "#eta",                                               ""},
43   {"Y",                      "#it{y}",                                             ""},
44   {"E",                      "E",                                                  "(GeV)"},
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",                                     ""},
66     
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.)"},
78
79   {"ImpactParXY",            "#it{dca}_{xy}",                                      "(cm)"},
80   {"ImpactParZ",             "#it{dca}_{z}",                                       "(cm)"},
81   {"TrackLength",            "#it{l}_{track}",                                     "(cm)"},
82   
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",                   ""},
88
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}",                           ""},
95   
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}",                                  ""},
108
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"                            ""},
117
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}",                                  ""},
124
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}",                                  ""},
130
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.",                            ""},
138
139   {"EffLeg",                 "A#times#varepsilon",                                    ""},
140   {"OneOverEffLeg",          "(A#times#varepsilon)^{-1}",                             ""},
141   {"V0Index0",               "V0Index0",                                           ""},
142   {"KinkIndex0",             "KinkIndex0",                                         ""},
143   //
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}",                                ""},
179
180   {"PairPlaneMagInPro",      "cos(#Phi)"                                           ""},
181
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",                                        ""},
220   //
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})"},
229
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}))",    ""},
255
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}",                                        ""},
338
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}))",              ""},
365
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.)",    ""},
377
378   {"ZDCArpH1",               "#Psi^{ZDCA}"                                         ""},
379   {"ZDCCrpH1",               "#Psi^{ZDCA}"                                         ""},
380   {"ZDCACrpH1",              "#Psi^{ZDCA}"                                         ""},
381   {"kZDCrpResH1",            ""                                                    ""},
382   {"kv0ZDCrpRes",            ""                                                    ""},
383
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}",""},
392   
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)",  ""},
411
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",                                         ""}
425 };
426
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")
448 {
449   //
450   // Default constructor
451   //
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;
461   }
462   for(Int_t i=0; i<3; ++i)
463     for(Int_t j=0; j<2; ++j) fgZDCRecentering[i][j] = 0x0;
464
465   gRandom->SetSeed();
466 }
467
468 //________________________________________________________________
469 AliDielectronVarManager::AliDielectronVarManager(const char* name, const char* title) :
470   TNamed(name,title)
471 {
472   //
473   // Named constructor
474   //
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;
487
488
489   gRandom->SetSeed();
490 }
491
492 //________________________________________________________________
493 AliDielectronVarManager::~AliDielectronVarManager()
494 {
495   //
496   // Default destructor
497   //
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];
512
513 }
514
515 //________________________________________________________________
516 UInt_t AliDielectronVarManager::GetValueType(const char* valname) {
517   //
518   // Get value type by value name
519   //
520
521   TString name(valname);
522   for(UInt_t i=0; i<AliDielectronVarManager::kNMaxValues; i++) {
523     if(!name.CompareTo(fgkParticleNames[i][0])) return i;
524   }
525   return -1;
526 }