Change Mult binning scheme
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / AliDielectronVarContainer.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 Container Class                   //
18 //                                                                       //
19 /*
20
21 */
22 //                                                                       //
23 ///////////////////////////////////////////////////////////////////////////
24
25 #include "AliDielectronVarContainer.h"
26
27 ClassImp(AliDielectronVarContainer)
28
29 const char* AliDielectronVarContainer::fgkParticleNames[AliDielectronVarContainer::kNMaxValues] = {
30   // Leg specific variables
31   "Px",
32   "Py",
33   "Pz",
34   "Pt",
35   "P",
36   "Xv",
37   "Yv",
38   "Zv",
39   "OneOverPt",
40   "Phi",
41   "Theta",
42   "Eta",
43   "Y",
44   "E",
45   "M",
46   "Charge",
47   "NclsITS",
48   "NclsTPC",
49   "NclsTPCiter1",
50   "NFclsTPC",
51   "NFclsTPCrobust",
52   "NFclsTPCrobustFraction",
53   "TPCsignalN",
54   "TPCsignalNfrac",
55   "TPCchi2PerCluster",
56   "TrackStatus",
57   "NclsTRD",
58   "TRDntracklets",
59   "TRDpidQuality",
60   "TRDpidProb_Electrons",
61   "TRDpidProb_Pions",
62   "ImpactParXY",
63   "ImpactParZ",
64   "TrackLength",
65   "ITS_signal",
66   "SSD1_signal",
67   "SSD2_signal",
68   "SDD1_signal",
69   "SDD2_signal",
70   "ITS_clusterMap",
71   "ITS_nSigma_Electrons",
72   "ITS_nSigma_Pions",
73   "ITS_nSigma_Muons",
74   "ITS_nSigma_Kaons",
75   "ITS_nSigma_Protons",
76   "P_InnerParam",
77   "TPC_signal",
78   "TOF_signal",
79   "TOF_beta",
80   "TPC_nSigma_Electrons",
81   "TPC_nSigma_Pions",
82   "TPC_nSigma_Muons",
83   "TPC_nSigma_Kaons",
84   "TPC_nSigma_Protons",
85   "TOF_nSigma_Electrons",
86   "TOF_nSigma_Pions",
87   "TOF_nSigma_Muons",
88   "TOF_nSigma_Kaons",
89   "TOF_nSigma_Protons",
90   "KinkIndex0",
91   // Pair specific variables
92   "Chi2NDF",
93   "DecayLength",
94   "R",
95   "OpeningAngle",
96   "ThetaHE",
97   "PhiHE",
98   "ThetaCS",
99   "PhiCS",
100   "LegDistance",
101   "LegDistanceXY",
102   "DeltaEta",
103   "DeltaPhi",
104   "Merr",
105   "DCA",
106   "PairType",
107   "PseudoProperTime",
108   // Event specific variables
109   "X",
110   "Y",
111   "Z",
112   "XRes",
113   "YRes",
114   "ZRes",
115   "NContributors",
116   "BzkG",
117   "NTrk",
118   "Nacc",
119   "NaccTrcklts",
120   "NaccTrckltsCorr",
121   "NaccTrcklts05",
122   "NaccTrcklts10",
123   "NaccTrckltsEsd05",
124   "NaccTrckltsEsd10",
125   "NaccTrckltsEsd16",
126   "NaccItsTpcEsd05",
127   "NaccItsTpcEsd10",
128   "NaccItsTpcEsd16",
129   "NaccItsPureEsd05",
130   "NaccItsPureEsd10",
131   "NaccItsPureEsd16",
132   
133   "MultV0A", 
134   "MultV0C",
135   "MultV0",
136   "AdcV0A",
137   "AdcV0C",
138   "AdcV0",
139   "Centrality",
140   "Nevents"
141 };
142
143
144 const char* AliDielectronVarContainer::fgkParticleNamesMC[AliDielectronVarContainer::kNMaxValues_MC] = {
145   // Leg specific variables
146   "Px_MC",
147   "Py_MC",
148   "Pz_MC",
149   "Pt_MC",
150   "P_MC",
151   "Xv_MC",
152   "Yv_MC",
153   "Zv_MC",
154   "OneOverPt_MC",
155   "Phi_MC",
156   "Theta_MC",
157   "Eta_MC",
158   "Y_MC",
159   "E_MC",
160   "M_MC",
161   "Charge_MC",
162   "ImpactParXY_MC",
163   "ImpactParZ_MC",
164   "PdgCode",
165   "PdgCodeMother",
166   "PdgCodeGrandMother",
167   "NumberOfDaughters",
168   "HaveSameMother",
169   "IsJpsiPrimary",
170   // Pair specific variables
171   "DecayLength_MC",
172   "R_MC",
173   "OpeningAngle_MC",
174   "ThetaHE_MC",
175   "PhiHE_MC",
176   "ThetaCS_MC",
177   "PhiCS_MC",
178   "LegDistance_MC",
179   "LegDistanceXY_MC",
180   "DeltaEta_MC",
181   "DeltaPhi_MC",
182   "DCA_MC",
183   "PairType_MC",
184   "PseudoProperTime_MC",
185   // Event specific variables
186   "X_MC",
187   "Y_MC",
188   "Z_MC",
189   "Nch_MC",
190   "Nch05_MC",
191   "Nch10_MC",
192   "Centrality_MC",
193   "Nevents"
194 };
195
196
197 AliPIDResponse* AliDielectronVarContainer::fgPIDResponse = 0x0;
198 AliKFVertex*    AliDielectronVarContainer::fgKFVertex    = 0x0;
199 AliAODVertex*   AliDielectronVarContainer::fgAODVertex   = 0x0;
200 Double_t        AliDielectronVarContainer::fgData[AliDielectronVarContainer::kNMaxValues] = {};
201 Double_t        AliDielectronVarContainer::fgDataMC[AliDielectronVarContainer::kNMaxValues_MC] = {};
202
203
204 //________________________________________________________________
205 AliDielectronVarContainer::AliDielectronVarContainer() :
206   TNamed("AliDielectronVarContainer","AliDielectronVarContainer")
207 {
208   //
209   // Default constructor
210   //
211 }
212
213
214 //________________________________________________________________
215 AliDielectronVarContainer::AliDielectronVarContainer(const char* name, const char* title) :
216   TNamed(name,title)
217 {
218   //
219   // Named constructor
220   //
221 }
222
223
224 //________________________________________________________________
225 AliDielectronVarContainer::~AliDielectronVarContainer()
226 {
227   //
228   // Default destructor
229   //
230
231   if (fgKFVertex) delete fgKFVertex;
232   fgKFVertex = 0x0;
233   if (fgAODVertex) delete fgAODVertex;
234   fgAODVertex = 0x0;
235   if (fgPIDResponse) delete fgPIDResponse;
236   fgPIDResponse = 0x0;
237 }
238