]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/AliDielectronVarManager.cxx
54588a663939b21288f3c02ce8c69f2008251913
[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] = {
30   "Px",
31   "Py",
32   "Pz",
33   "Pt",
34   "P",
35   "Xv",
36   "Yv",
37   "Zv",
38   "OneOverPt",
39   "Phi",
40   "Theta",
41   "Eta",
42   "Y",
43   "E",
44   "M",
45   "Charge",
46   "NclsITS",
47   "ITSchi2PerCluster",
48   "NclsTPC",
49   "NclsSTPC",
50   "NclsSFracTPC",
51   "NclsTPCiter1",
52   "NFclsTPC",
53   "NFclsTPCrobust",
54   "NFclsTPCrobustFraction",
55   "TPCsignalN",
56   "TPCsignalNfrac",
57   "TPCchi2PerCluster",
58   "TPCclsDiff",
59   "TrackStatus",
60     
61   "NclsTRD",
62   "TRDntracklets",
63   "TRDpidQuality",
64   "TRDpidProb_Electrons",
65   "TRDpidProb_Pions",
66   "TRDphi",
67   "TRDpidEffLeg",
68
69   "ImpactParXY",
70   "ImpactParZ",
71   "TrackLength",
72
73   "PdgCode",
74   "PdgCodeMother",
75   "PdgCodeGrandMother",
76   "NumberOfDaughters",
77   "HaveSameMother",
78   "IsJpsiPrimary",
79   "NumberOfJPsisIncl",
80   "NumberOfJPsisPrompt",
81   "NumberOfJPsisNPrompt",
82   
83   "ITS_signal",
84   "SSD1_signal",
85   "SSD2_signal",
86   "SDD1_signal",
87   "SDD2_signal",
88   "ITS_clusterMap",
89   "ITSLayerFirstCls",
90   "ITS_nSigma_Electrons",
91   "ITS_nSigma_Pions",
92   "ITS_nSigma_Muons",
93   "ITS_nSigma_Kaons",
94   "ITS_nSigma_Protons",
95
96   "P_InnerParam",
97   "P_OuterParam",
98   "Y_signed_InnerParam",
99   "TPC_signal",
100   "TOF_signal",
101   "TOF_beta",
102   "TOF_PIDbit",
103   
104   "TPC_nSigma_Electrons",
105   "TPC_nSigma_Pions",
106   "TPC_nSigma_Muons",
107   "TPC_nSigma_Kaons",
108   "TPC_nSigma_Protons",
109
110   "TOF_nSigma_Electrons",
111   "TOF_nSigma_Pions",
112   "TOF_nSigma_Muons",
113   "TOF_nSigma_Kaons",
114   "TOF_nSigma_Protons",
115
116   "EMCAL_nSigma_Electrons",
117
118   "KinkIndex0",
119   //
120   "Chi2NDF",
121   "DecayLength",
122   "R",
123   "OpeningAngle",
124   "ThetaHE",
125   "PhiHE",
126   "Cos2PhiHE",
127   "ThetaCS",
128   "PhiCS",
129   "Cos2PhiCS",
130   "DeltaPhiV0ArpH2",        
131   "DeltaPhiV0CrpH2",        
132   "DeltaPhiV0ACrpH2",       
133   "V0ArpH2FlowV2",         
134   "V0CrpH2FlowV2",      
135   "V0ACrpH2FlowV2",
136   "LegDistance",
137   "LegDistanceXY",
138   "DeltaEta",
139   "DeltaPhi",
140   "Merr",
141   "DCA",
142   "PairType",
143   "PseudoProperTime",
144   "PseudoProperTimeResolution",
145   "PseudoProperTimePull",
146   "TRDpidEffPair",
147   //
148   "X",
149   "Y",
150   "Z",
151   "XRes",
152   "YRes",
153   "ZRes",
154
155   "v0ArpH2",
156   "v0CrpH2",
157   "v0ACrpH2",
158   "v0ATPCDiffH2",
159   "v0CTPCDiffH2",
160   "v0Av0CDiffH2",
161
162   "MultV0A", 
163   "MultV0C",
164   "MultV0",
165   "AdcV0A",
166   "AdcV0C",
167   "AdcV0",  
168   "VZERO_ch0",  "VZERO_ch1",  "VZERO_ch2",  "VZERO_ch3",  "VZERO_ch4",  "VZERO_ch5",  "VZERO_ch6",  "VZERO_ch7",  "VZERO_ch8",  "VZERO_ch9",
169   "VZERO_ch10", "VZERO_ch11", "VZERO_ch12", "VZERO_ch13", "VZERO_ch14", "VZERO_ch15", "VZERO_ch16", "VZERO_ch17", "VZERO_ch18", "VZERO_ch19",
170   "VZERO_ch20", "VZERO_ch21", "VZERO_ch22", "VZERO_ch23", "VZERO_ch24", "VZERO_ch25", "VZERO_ch26", "VZERO_ch27", "VZERO_ch28", "VZERO_ch29",
171   "VZERO_ch30", "VZERO_ch31", "VZERO_ch32", "VZERO_ch33", "VZERO_ch34", "VZERO_ch35", "VZERO_ch36", "VZERO_ch37", "VZERO_ch38", "VZERO_ch39",
172   "VZERO_ch40", "VZERO_ch41", "VZERO_ch42", "VZERO_ch43", "VZERO_ch44", "VZERO_ch45", "VZERO_ch46", "VZERO_ch47", "VZERO_ch48", "VZERO_ch49",
173   "VZERO_ch50", "VZERO_ch51", "VZERO_ch52", "VZERO_ch53", "VZERO_ch54", "VZERO_ch55", "VZERO_ch56", "VZERO_ch57", "VZERO_ch58", "VZERO_ch59",
174   "VZERO_ch60", "VZERO_ch61", "VZERO_ch62", "VZERO_ch63",
175   "V0AxH2", 
176   "V0AyH2",
177   "V0ArpH2",
178   "V0CxH2",
179   "V0CyH2",
180   "V0CrpH2",
181   "V0ACxH2",
182   "V0ACyH2",
183   "V0ACrpH2",
184   "V0ArpResH2",
185   "V0CrpResH2",
186   "V0ACrpResH2",
187   "V0XaXcH2",
188   "V0XaYaH2",
189   "V0XaYcH2",
190   "V0YaXcH2",
191   "V0YaYcH2",
192   "V0XcYcH2",
193   "V0ATPCDiffH2",
194   "V0CTPCDiffH2",
195   "V0AV0CDiffH2",
196   "TPCxH2",
197   "TPCyH2",
198   "TPCrpH2",
199   "TPCsub1xH2",
200   "TPCsub1yH2",
201   "TPCsub1rpH2",
202   "TPCsub2xH2",
203   "TPCsub2yH2",
204   "TPCsub2rpH2",
205   "TPCsub12DiffH2",
206   "TPCsub12DiffH2Sin",
207
208   "TPCxH2uc",
209   "TPCyH2uc",
210   "TPCrpH2uc",
211   "TPCsub1xH2uc",
212   "TPCsub1yH2uc",
213   "TPCsub1rpH2uc",
214   "TPCsub2xH2uc",
215   "TPCsub2yH2uc",
216   "TPCsub2rpH2uc",
217   "TPCsub12DiffH2uc",
218
219   "NTrk",
220   "Tracks",
221   "Nacc",
222   "NaccTrcklts",
223   "NaccTrcklts0916",
224   
225   "NaccTrckltsEsd05",
226   "NaccTrckltsEsd10",
227   "NaccTrckltsEsd16",
228   "NaccTrckltsEsd05Corr",
229   "NaccTrckltsEsd10Corr",
230   "NaccTrckltsEsd16Corr",
231   "NaccItsTpcEsd05",
232   "NaccItsTpcEsd10",
233   "NaccItsTpcEsd16",
234   "NaccItsTpcEsd05Corr",
235   "NaccItsTpcEsd10Corr",
236   "NaccItsTpcEsd16Corr",
237   "NaccItsPureEsd05",
238   "NaccItsPureEsd10",
239   "NaccItsPureEsd16",
240   "NaccItsPureEsd05Corr",
241   "NaccItsPureEsd10Corr",
242   "NaccItsPureEsd16Corr",  
243     
244   "Nch",                    // Number of charged MC tracks in |eta|<1.6
245   "Nch05",                  // Number of charged MC tracks in |eta|<0.5
246   "Nch10",                  // Number of charged MC tracks in |eta|<1.0
247   "Centrality",
248   "Nevents",
249   "RunNumber",
250   "MixingBin"
251 };
252
253 AliPIDResponse* AliDielectronVarManager::fgPIDResponse      = 0x0;
254 AliVEvent*      AliDielectronVarManager::fgEvent            = 0x0;
255 AliEventplane*  AliDielectronVarManager::fgTPCEventPlane    = 0x0;
256 AliKFVertex*    AliDielectronVarManager::fgKFVertex         = 0x0;
257 TProfile*       AliDielectronVarManager::fgMultEstimatorAvg[4][9] = {{0x0}};
258 TH3D*           AliDielectronVarManager::fgTRDpidEff[10][4] = {{0x0}};
259 Double_t        AliDielectronVarManager::fgTRDpidEffCentRanges[10][4] = {{0.0}};
260 Double_t        AliDielectronVarManager::fgData[AliDielectronVarManager::kNMaxValues] = {};
261 //________________________________________________________________
262 AliDielectronVarManager::AliDielectronVarManager() :
263   TNamed("AliDielectronVarManager","AliDielectronVarManager")
264 {
265   //
266   // Default constructor
267   //
268   for(Int_t i=0; i<4; ++i)
269     for(Int_t j=0; j<9; ++j)
270       fgMultEstimatorAvg[i][j] = 0x0;
271   for(Int_t i=0; i<10; ++i)
272     for(Int_t j=0; j<4; ++j)
273       fgTRDpidEff[i][j] = 0x0;
274 }
275
276 //________________________________________________________________
277 AliDielectronVarManager::AliDielectronVarManager(const char* name, const char* title) :
278   TNamed(name,title)
279 {
280   //
281   // Named constructor
282   //
283   for(Int_t i=0; i<4; ++i)
284     for(Int_t j=0; j<9; ++j)
285       fgMultEstimatorAvg[i][j] = 0x0;
286   for(Int_t i=0; i<10; ++i)
287     for(Int_t j=0; j<4; ++j)
288       fgTRDpidEff[i][j] = 0x0;  
289 }
290
291 //________________________________________________________________
292 AliDielectronVarManager::~AliDielectronVarManager()
293 {
294   //
295   // Default destructor
296   //
297   for(Int_t i=0; i<4; ++i)
298     for(Int_t j=0; j<9; ++j)
299       if(fgMultEstimatorAvg[i][j]) delete fgMultEstimatorAvg[i][j];
300   for(Int_t i=0; i<10; ++i)
301     for(Int_t j=0; j<4; ++j)
302       if(fgTRDpidEff[i][j]) delete fgTRDpidEff[i][j];    
303 }
304