]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/AliDielectronVarManager.cxx
o update dielectron package
[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 };
251
252 AliPIDResponse* AliDielectronVarManager::fgPIDResponse      = 0x0;
253 AliVEvent*      AliDielectronVarManager::fgEvent            = 0x0;
254 AliEventplane*  AliDielectronVarManager::fgTPCEventPlane    = 0x0;
255 AliKFVertex*    AliDielectronVarManager::fgKFVertex         = 0x0;
256 TProfile*       AliDielectronVarManager::fgMultEstimatorAvg[4][9] = {{0x0}};
257 TH3D*           AliDielectronVarManager::fgTRDpidEff[10][4] = {{0x0}};
258 Double_t        AliDielectronVarManager::fgTRDpidEffCentRanges[10][4] = {{0.0}};
259 Double_t        AliDielectronVarManager::fgData[AliDielectronVarManager::kNMaxValues] = {};
260 //________________________________________________________________
261 AliDielectronVarManager::AliDielectronVarManager() :
262   TNamed("AliDielectronVarManager","AliDielectronVarManager")
263 {
264   //
265   // Default constructor
266   //
267   for(Int_t i=0; i<4; ++i)
268     for(Int_t j=0; j<9; ++j)
269       fgMultEstimatorAvg[i][j] = 0x0;
270   for(Int_t i=0; i<10; ++i)
271     for(Int_t j=0; j<4; ++j)
272       fgTRDpidEff[i][j] = 0x0;
273 }
274
275 //________________________________________________________________
276 AliDielectronVarManager::AliDielectronVarManager(const char* name, const char* title) :
277   TNamed(name,title)
278 {
279   //
280   // Named constructor
281   //
282   for(Int_t i=0; i<4; ++i)
283     for(Int_t j=0; j<9; ++j)
284       fgMultEstimatorAvg[i][j] = 0x0;
285   for(Int_t i=0; i<10; ++i)
286     for(Int_t j=0; j<4; ++j)
287       fgTRDpidEff[i][j] = 0x0;  
288 }
289
290 //________________________________________________________________
291 AliDielectronVarManager::~AliDielectronVarManager()
292 {
293   //
294   // Default destructor
295   //
296   for(Int_t i=0; i<4; ++i)
297     for(Int_t j=0; j<9; ++j)
298       if(fgMultEstimatorAvg[i][j]) delete fgMultEstimatorAvg[i][j];
299   for(Int_t i=0; i<10; ++i)
300     for(Int_t j=0; j<4; ++j)
301       if(fgTRDpidEff[i][j]) delete fgTRDpidEff[i][j];    
302 }
303