]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/AliDielectronVarManager.cxx
o add Delta vars for flow (Julian)
[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   "TRDchi2",
65   "TRDpidProb_Electrons",
66   "TRDpidProb_Pions",
67   "TRDphi",
68   "TRDpidEffLeg",
69
70   "ImpactParXY",
71   "ImpactParZ",
72   "TrackLength",
73
74   "PdgCode",
75   "PdgCodeMother",
76   "PdgCodeGrandMother",
77   "NumberOfDaughters",
78   "HaveSameMother",
79   "IsJpsiPrimary",
80   "NumberOfJPsisIncl",
81   "NumberOfJPsisPrompt",
82   "NumberOfJPsisNPrompt",
83   
84   "ITS_signal",
85   "SSD1_signal",
86   "SSD2_signal",
87   "SDD1_signal",
88   "SDD2_signal",
89   "ITS_clusterMap",
90   "ITSLayerFirstCls",
91   "ITS_nSigma_Electrons",
92   "ITS_nSigma_Pions",
93   "ITS_nSigma_Muons",
94   "ITS_nSigma_Kaons",
95   "ITS_nSigma_Protons",
96
97   "P_InnerParam",
98   "P_OuterParam",
99   "Y_signed_InnerParam",
100   "TPC_signal",
101   "TOF_signal",
102   "TOF_beta",
103   "TOF_PIDbit",
104   
105   "TPC_nSigma_Electrons",
106   "TPC_nSigma_Pions",
107   "TPC_nSigma_Muons",
108   "TPC_nSigma_Kaons",
109   "TPC_nSigma_Protons",
110
111   "TOF_nSigma_Electrons",
112   "TOF_nSigma_Pions",
113   "TOF_nSigma_Muons",
114   "TOF_nSigma_Kaons",
115   "TOF_nSigma_Protons",
116
117   "EMCAL_nSigma_Electrons",
118   "EMCAL_EoverP",
119   "EMCAL_NCells",
120   "EMCAL_M02",
121   "EMCAL_M20",
122   "EMCAL_Dispersion",
123
124   "V0Index0",
125   "KinkIndex0",
126   //
127   "Chi2NDF",
128   "DecayLength",
129   "R",
130   "OpeningAngle",
131   "CosPointingAngle",
132   "ThetaHE",
133   "PhiHE",
134   "ThetaSqHE",
135   "Cos2PhiHE",
136   "CosTilPhiHE",
137   "ThetaCS",
138   "PhiCS",
139   "ThetaSqCS",
140   "PsiPair",
141   "Cos2PhiCS",
142   "CosTilPhiCS",
143   "DeltaPhiV0ArpH2",        
144   "DeltaPhiV0CrpH2",        
145   "DeltaPhiV0ACrpH2",       
146   "V0ArpH2FlowV2",         
147   "V0CrpH2FlowV2",      
148   "V0ACrpH2FlowV2",
149   "LegDistance",
150   "LegDistanceXY",
151   "DeltaEta",
152   "DeltaPhi",
153   "Merr",
154   "DCA",
155   "PairType",
156   "PseudoProperTime",
157   "PseudoProperTimeErr",
158   "PseudoProperTimeResolution",
159   "PseudoProperTimePull",
160   "TRDpidEffPair",
161   //
162   "X",
163   "Y",
164   "Z",
165   "XRes",
166   "YRes",
167   "ZRes",
168
169   "v0ArpH2",
170   "v0CrpH2",
171   "v0ACrpH2",
172   "DeltaPhiv0ArpH2",        
173   "DeltaPhiv0CrpH2",        
174   "DeltaPhiv0ACrpH2",       
175   "v0ATPCDiffH2",
176   "v0CTPCDiffH2",
177   "v0Av0CDiffH2",
178   "v0ArpH2FlowV2",         
179   "v0CrpH2FlowV2",      
180   "v0ACrpH2FlowV2",
181
182   "MultV0A", 
183   "MultV0C",
184   "MultV0",
185   "AdcV0A",
186   "AdcV0C",
187   "AdcV0",  
188   "VZERO_ch0",  "VZERO_ch1",  "VZERO_ch2",  "VZERO_ch3",  "VZERO_ch4",  "VZERO_ch5",  "VZERO_ch6",  "VZERO_ch7",  "VZERO_ch8",  "VZERO_ch9",
189   "VZERO_ch10", "VZERO_ch11", "VZERO_ch12", "VZERO_ch13", "VZERO_ch14", "VZERO_ch15", "VZERO_ch16", "VZERO_ch17", "VZERO_ch18", "VZERO_ch19",
190   "VZERO_ch20", "VZERO_ch21", "VZERO_ch22", "VZERO_ch23", "VZERO_ch24", "VZERO_ch25", "VZERO_ch26", "VZERO_ch27", "VZERO_ch28", "VZERO_ch29",
191   "VZERO_ch30", "VZERO_ch31", "VZERO_ch32", "VZERO_ch33", "VZERO_ch34", "VZERO_ch35", "VZERO_ch36", "VZERO_ch37", "VZERO_ch38", "VZERO_ch39",
192   "VZERO_ch40", "VZERO_ch41", "VZERO_ch42", "VZERO_ch43", "VZERO_ch44", "VZERO_ch45", "VZERO_ch46", "VZERO_ch47", "VZERO_ch48", "VZERO_ch49",
193   "VZERO_ch50", "VZERO_ch51", "VZERO_ch52", "VZERO_ch53", "VZERO_ch54", "VZERO_ch55", "VZERO_ch56", "VZERO_ch57", "VZERO_ch58", "VZERO_ch59",
194   "VZERO_ch60", "VZERO_ch61", "VZERO_ch62", "VZERO_ch63",
195   "V0AxH2", 
196   "V0AyH2",
197   "V0ArpH2",
198   "V0CxH2",
199   "V0CyH2",
200   "V0CrpH2",
201   "V0ACxH2",
202   "V0ACyH2",
203   "V0ACrpH2",
204   "V0ArpResH2",
205   "V0CrpResH2",
206   "V0ACrpResH2",
207   "V0XaXcH2",
208   "V0XaYaH2",
209   "V0XaYcH2",
210   "V0YaXcH2",
211   "V0YaYcH2",
212   "V0XcYcH2",
213   "V0ATPCDiffH2",
214   "V0CTPCDiffH2",
215   "V0AV0CDiffH2",
216   "TPCxH2",
217   "TPCyH2",
218   "TPCrpH2",
219   "TPCsub1xH2",
220   "TPCsub1yH2",
221   "TPCsub1rpH2",
222   "TPCsub2xH2",
223   "TPCsub2yH2",
224   "TPCsub2rpH2",
225   "TPCsub12DiffH2",
226   "TPCsub12DiffH2Sin",
227
228   "TPCxH2uc",
229   "TPCyH2uc",
230   "TPCrpH2uc",
231   "TPCsub1xH2uc",
232   "TPCsub1yH2uc",
233   "TPCsub1rpH2uc",
234   "TPCsub2xH2uc",
235   "TPCsub2yH2uc",
236   "TPCsub2rpH2uc",
237   "TPCsub12DiffH2uc",
238
239   "NTrk",
240   "Tracks",
241   "NVtxContrib",
242   "Nacc",
243   "NaccTrcklts",
244   "NaccTrcklts0916",
245   
246   "NaccTrckltsEsd05",
247   "NaccTrckltsEsd10",
248   "NaccTrckltsEsd16",
249   "NaccTrckltsEsd05Corr",
250   "NaccTrckltsEsd10Corr",
251   "NaccTrckltsEsd16Corr",
252   "NaccItsTpcEsd05",
253   "NaccItsTpcEsd10",
254   "NaccItsTpcEsd16",
255   "NaccItsTpcEsd05Corr",
256   "NaccItsTpcEsd10Corr",
257   "NaccItsTpcEsd16Corr",
258   "NaccItsPureEsd05",
259   "NaccItsPureEsd10",
260   "NaccItsPureEsd16",
261   "NaccItsPureEsd05Corr",
262   "NaccItsPureEsd10Corr",
263   "NaccItsPureEsd16Corr",  
264     
265   "Nch",
266   "Nch05",
267   "Nch10",
268   "Centrality",
269   "CentralitySPD",
270   "Nevents",
271   "RunNumber",
272   "MixingBin"
273 };
274
275 AliPIDResponse* AliDielectronVarManager::fgPIDResponse      = 0x0;
276 AliVEvent*      AliDielectronVarManager::fgEvent            = 0x0;
277 AliEventplane*  AliDielectronVarManager::fgTPCEventPlane    = 0x0;
278 AliKFVertex*    AliDielectronVarManager::fgKFVertex         = 0x0;
279 TProfile*       AliDielectronVarManager::fgMultEstimatorAvg[4][9] = {{0x0}};
280 TH3D*           AliDielectronVarManager::fgTRDpidEff[10][4] = {{0x0}};
281 Double_t        AliDielectronVarManager::fgTRDpidEffCentRanges[10][4] = {{0.0}};
282 TString         AliDielectronVarManager::fgVZEROCalibrationFile = "";
283 TString         AliDielectronVarManager::fgVZERORecenteringFile = "";
284 TProfile2D*     AliDielectronVarManager::fgVZEROCalib[64] = {0x0};
285 TProfile2D*     AliDielectronVarManager::fgVZERORecentering[2][2] = {{0x0,0x0},{0x0,0x0}};
286 Int_t           AliDielectronVarManager::fgCurrentRun = -1;
287 Double_t        AliDielectronVarManager::fgData[AliDielectronVarManager::kNMaxValues] = {0.};
288 //________________________________________________________________
289 AliDielectronVarManager::AliDielectronVarManager() :
290   TNamed("AliDielectronVarManager","AliDielectronVarManager")
291 {
292   //
293   // Default constructor
294   //
295   for(Int_t i=0; i<4; ++i)
296     for(Int_t j=0; j<9; ++j)
297       fgMultEstimatorAvg[i][j] = 0x0;
298   for(Int_t i=0; i<10; ++i)
299     for(Int_t j=0; j<4; ++j)
300       fgTRDpidEff[i][j] = 0x0;
301   for(Int_t i=0; i<64; ++i) fgVZEROCalib[i] = 0x0;
302   for(Int_t i=0; i<2; ++i) {
303     for(Int_t j=0; j<2; ++j) fgVZERORecentering[i][j] = 0x0;
304   }
305 }
306
307 //________________________________________________________________
308 AliDielectronVarManager::AliDielectronVarManager(const char* name, const char* title) :
309   TNamed(name,title)
310 {
311   //
312   // Named constructor
313   //
314   for(Int_t i=0; i<4; ++i)
315     for(Int_t j=0; j<9; ++j)
316       fgMultEstimatorAvg[i][j] = 0x0;
317   for(Int_t i=0; i<10; ++i)
318     for(Int_t j=0; j<4; ++j)
319       fgTRDpidEff[i][j] = 0x0;  
320   for(Int_t i=0; i<64; ++i) fgVZEROCalib[i] = 0x0;
321   for(Int_t i=0; i<2; ++i)
322     for(Int_t j=0; j<2; ++j) 
323       fgVZERORecentering[i][j] = 0x0;
324 }
325
326 //________________________________________________________________
327 AliDielectronVarManager::~AliDielectronVarManager()
328 {
329   //
330   // Default destructor
331   //
332   for(Int_t i=0; i<4; ++i)
333     for(Int_t j=0; j<9; ++j)
334       if(fgMultEstimatorAvg[i][j]) delete fgMultEstimatorAvg[i][j];
335   for(Int_t i=0; i<10; ++i)
336     for(Int_t j=0; j<4; ++j)
337       if(fgTRDpidEff[i][j]) delete fgTRDpidEff[i][j];    
338   for(Int_t i=0; i<64; ++i) 
339     if(fgVZEROCalib[i]) delete fgVZEROCalib[i];
340   for(Int_t i=0; i<2; ++i)
341     for(Int_t j=0; j<2; ++j) 
342       if(fgVZERORecentering[i][j]) delete fgVZERORecentering[i][j]; 
343 }
344