major dielectron update (included also the data and plotting macros for paper)
[u/mrichter/AliRoot.git] / PWG3 / 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   "kNaccTrcklts",
120   "Centrality",
121   "Nevents"
122 };
123
124
125 const char* AliDielectronVarContainer::fgkParticleNamesMC[AliDielectronVarContainer::kNMaxValues_MC] = {
126   // Leg specific variables
127   "Px_MC",
128   "Py_MC",
129   "Pz_MC",
130   "Pt_MC",
131   "P_MC",
132   "Xv_MC",
133   "Yv_MC",
134   "Zv_MC",
135   "OneOverPt_MC",
136   "Phi_MC",
137   "Theta_MC",
138   "Eta_MC",
139   "Y_MC",
140   "E_MC",
141   "M_MC",
142   "Charge_MC",
143   "ImpactParXY_MC",
144   "ImpactParZ_MC",
145   "PdgCode",
146   "PdgCodeMother",
147   "PdgCodeGrandMother",
148   "NumberOfDaughters",
149   "HaveSameMother",
150   "IsJpsiPrimary",
151   // Pair specific variables
152   "DecayLength_MC",
153   "R_MC",
154   "OpeningAngle_MC",
155   "ThetaHE_MC",
156   "PhiHE_MC",
157   "ThetaCS_MC",
158   "PhiCS_MC",
159   "LegDistance_MC",
160   "LegDistanceXY_MC",
161   "DeltaEta_MC",
162   "DeltaPhi_MC",
163   "DCA_MC",
164   "PairType_MC",
165   "PseudoProperTime_MC",
166   // Event specific variables
167   "X_MC",
168   "Y_MC",
169   "Z_MC",
170   "kNch",
171   "Centrality_MC",
172   "Nevents"
173 };
174
175
176 AliPIDResponse* AliDielectronVarContainer::fgPIDResponse = 0x0;
177 AliKFVertex*    AliDielectronVarContainer::fgKFVertex    = 0x0;
178 AliAODVertex*   AliDielectronVarContainer::fgAODVertex   = 0x0;
179 Double_t        AliDielectronVarContainer::fgData[AliDielectronVarContainer::kNMaxValues] = {};
180 Double_t        AliDielectronVarContainer::fgDataMC[AliDielectronVarContainer::kNMaxValues_MC] = {};
181
182
183 //________________________________________________________________
184 AliDielectronVarContainer::AliDielectronVarContainer() :
185   TNamed("AliDielectronVarContainer","AliDielectronVarContainer")
186 {
187   //
188   // Default constructor
189   //
190 }
191
192
193 //________________________________________________________________
194 AliDielectronVarContainer::AliDielectronVarContainer(const char* name, const char* title) :
195   TNamed(name,title)
196 {
197   //
198   // Named constructor
199   //
200 }
201
202
203 //________________________________________________________________
204 AliDielectronVarContainer::~AliDielectronVarContainer()
205 {
206   //
207   // Default destructor
208   //
209
210   if (fgKFVertex) delete fgKFVertex;
211   fgKFVertex = 0x0;
212   if (fgAODVertex) delete fgAODVertex;
213   fgAODVertex = 0x0;
214   if (fgPIDResponse) delete fgPIDResponse;
215   fgPIDResponse = 0x0;
216 }
217