]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/macros/AddTaskGammaConvDalitz.C
Reader: Add option to remove or not event with primary vertex not reconstructed
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskGammaConvDalitz.C
CommitLineData
fd05b495 1
2AliAnalysisTaskGammaConvDalitz* AddTaskGammaConvDalitz(
3 AliV0Reader *v0Reader,
4 Bool_t computeBkg,
5 Bool_t standalone = kFALSE
6 ){
7
8
9 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
10 if (!mgr) {
11 ::Error("AddGammaConvDalitz", "No analysis manager to connect to.");
12 return 0;
13 }
14
15 // Check the analysis type using the event handlers connected to the analysis manager.
16 //==============================================================================
17 if (!mgr->GetInputEventHandler()) {
18 ::Error("AddGammaConvDalitz", "This task requires an input event handler");
19 return 0;
20 }
21
22
23 //------------------------- Dalitz task ---------------------------------
24 AliGammaConversionHistograms* histogramsD = new AliGammaConversionHistograms();
25 AddHistogramsDalitz( histogramsD );
26
27 AliAnalysisTaskGammaConvDalitz* dalitzTask = new AliAnalysisTaskGammaConvDalitz("GammaConversionTaskDalitz");
28 AliV0Reader* v0ReaderD = v0Reader;
29
30 dalitzTask->AdoptHistograms( histogramsD );
31 dalitzTask->SetComputeBackground( computeBkg );
32 dalitzTask->SetUseBayesPID( kGCUseBayesPID );
33 dalitzTask->SetNSigmasElecTPC( kGCNSigmaBelowElecTPCbethe, kGCNSigmaAboveElecTPCbethe);
34 dalitzTask->SetNSigmasPionTPC( kGCNSigmaAbovePionTPCbethe );
35 dalitzTask->SetNSigmasKaonTPC( kGCNSigmaAboveKaonTPCbethe );
36 dalitzTask->SetNSigmasProtonTPC( kGCNSigmaAboveProtonTPCbethe );
37
38 dalitzTask->SetUseESDtrackIndexCut( kGCUseTrackIndexCut );
39 dalitzTask->SetUsePsiPairCut( kGCUsePsiPairCut );
40 dalitzTask->SetPsiPairCut( kGCPsiPairCut, kGCDeltaPhiCutMin, kGCDeltaPhiCutMax, kGCReadMagFieldSign);
41 dalitzTask->SetUseMassCut( kGCUseMassCut );
42 dalitzTask->SetUseGammaCut( kGCUseGammaCut );
43 dalitzTask->SetUseAliKF( kGCUseAliKF );
44
45 dalitzTask->SetTrackSelectionCriteria(kGCTrkSelectionCriteria);
46
47 // track selection
48 // -----------------------------
49
50 AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts("track cuts for pi0 Dalitz decay");
51
52 esdTrackCuts->SetEtaRange( -0.9, 0.9 );
53 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
54
55 esdTrackCuts->SetMinNClustersITS(2);
56 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kFirst);
57 esdTrackCuts->SetRequireITSRefit(kTRUE);
58
59 //esdTrackCuts->SetRequireSigmaToVertex(kTRUE);
60 //esdTrackCuts->SetMaxNsigmaToVertex(3);
61
62 esdTrackCuts->SetMaxDCAToVertexXY(1.);
63 esdTrackCuts->SetMaxDCAToVertexZ(3.);
64 esdTrackCuts->SetDCAToVertex2D(kTRUE);
65
66 // ITSsa
67 AliESDtrackCuts* esdITSsaTrackCuts = new AliESDtrackCuts(*esdTrackCuts);
68 esdITSsaTrackCuts->SetRequireITSStandAlone(kTRUE);
69
70 dalitzTask->AdoptITSsaTrackCuts( esdITSsaTrackCuts );
71
72 esdTrackCuts->SetMinNClustersTPC(80);
73 esdTrackCuts->SetMaxChi2PerClusterTPC(4.);
74 esdTrackCuts->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);
75 esdTrackCuts->SetRequireTPCRefit(kTRUE);
76
77 dalitzTask->AdoptESDtrackCuts( esdTrackCuts );
78
79 // --------------------- electrons pid cuts -----------------------------
7811d09e 80 esdPidCuts = new AliESDpidCuts("Electrons", "Electron PID cuts");
81 // esdPidCuts->SetTPCnSigmaCut(AliPID::kElectron, 3.);
82 esdPidCuts->SetTPCnSigmaCut(AliPID::kElectron, -3., 3.);
83 //esdPidCuts->SetTPCnSigmaCut(AliPID::kPion, -1000., 0.);
fd05b495 84
85 dalitzTask->AdoptESDpidCuts( esdPidCuts );
86
87 if( standalone )
88 {
89 v0ReaderD = new AliV0Reader( *v0Reader ); // Copy constructor
90 v0ReaderD->SetHistograms( histogramsD );
91 v0ReaderD->SetDoMCTruth( kGCdoMCTruth ); // NOTE: not copied in Copy constructor!!!
92 v0ReaderD->SetESDtrackCuts( esdTrackCuts );
93 dalitzTask->SetRunStandalone( kTRUE );
94 }
95
96 dalitzTask->SetV0Reader( v0ReaderD );
97 dalitzTask->SetDoMC(kGCdoMCTruth);
98
99 dalitzTask->SetDebugLevel(AliLog::kFatal);
100
101 // Select triggers events (needs AliPhysicsSelectionTask in the train)
102 dalitzTask->SelectCollisionCandidates();
103
104 // Add task to the manager
105 mgr->AddTask( dalitzTask );
106
107 // Connect I/O to the task
108 TString outputfile = AliAnalysisManager::GetCommonFileName();
109 outputfile += ":PWG4_GammaConversion";
110 outputfile += Form("_%s",kGCAnalysisCutSelectionId.Data());
111 AliAnalysisDataContainer *coutput3 = mgr->CreateContainer("histogramsAliGammaConversionDalitz", TList::Class(),AliAnalysisManager::kOutputContainer, outputfile);
112 mgr->ConnectInput ( dalitzTask, 0, mgr->GetCommonInputContainer() );
113 mgr->ConnectOutput( dalitzTask, 1, coutput3 );
114
115 return dalitzTask;
116}
117
118//----------------------------------------------------------------------------------
119
120// Table_MC
121Int_t kGCnElementsPi0Table = 5;
122const char* kGCPi0Table[] = {
123 "Events", // 0
124 "\\pi^{0}->\\gamma\\gamma", // 1
125 "\\pi^{0}->e+e-\\gamma", // 2
126 "\\pi^{0}->e+e-\\gamma acceptance", // 3
127 "\\pi^{0}->e+e-\\gamma converted" // 4
128};
129
130//----------------------------------------------------------------------------------
131// Table_PID
132Int_t kGCnElementsPidTable = 6;
133const char* kGCPidTable[] = { "e", "\\mu", "\\pi", "K", "p", "sum" };
134
135//----------------------------------------------------------------------------------
136
137// Table_ElectronDalitz (ESD cuts)
138Int_t kGCnElementsElectronDalitzTable = 8;
139const char * kGCElectronDalitzTable[] = {
140 "Events", // 0
141 "e+ candidates", // 1
142 "e- candidates", // 2
143 "e+ Dalitz", // 3
144 "e- Dalitz", // 4
145 "dalitz pairs", // 5
146 "\\gamma \\pi^{0}", // 6
147 "\\pi^{0} Dalitz" // 7
148};
149
150//----------------------------------------------------------------------------------
151// Table_ElectronDalitz (ESD cuts)
152Int_t kGCnElementsCutsTable = 6;
153const char * kGCCutsTable[] = {
154 "Events", //0
155 "No cut", //1
156 "Index cut", //2
157 "PsiPair cut", //3
158 "Mass cut", //4
159 "Angle cut" //5
160};
161
162//----------------------------------------------------------------------------------
163void AddHistogramsDalitz( AliGammaConversionHistograms *histograms )
164{
165 // Generation
166 //
167 if(kGCdoMCTruth)
168 {
169 // pi0
170 histograms->AddHistogram("MC_Pi0Dalitz_P", "\\pi^{0} Dalitz decay", kGCnXBinsPt, kGCfirstXBinPt, kGClastXBinPt/5., "p (GeV/c)", "");
171 histograms->AddHistogram("MC_Pi0Dalitz_Pt", "\\pi^{0} Dalitz decay", kGCnXBinsPt, kGCfirstXBinPt, kGClastXBinPt/5., "p_{t} (GeV/c)", "");
172 histograms->AddHistogram("MC_Pi0Dalitz_Eta", "\\pi^{0} Dalitz decay", kGCnXBinsEta, kGCfirstXBinEta, kGClastXBinEta, "\\eta" , "");
173 histograms->AddHistogram("MC_Pi0Dalitz_Pt_vs_Y", "\\pi^{0} Dalitz decay", kGCnXBinsRapid, kGCfirstXBinRapid, kGClastXBinRapid, kGCnXBinsPt, kGCfirstXBinPt, kGClastXBinPt/5., "y","p_{t} (GeV/c)");
174 histograms->AddHistogram("MC_Acceptance_Pi0Dalitz_Pt_vs_Y", "\\pi^{0} Acceptance", kGCnXBinsRapid, kGCfirstXBinRapid, kGClastXBinRapid, kGCnXBinsPt, kGCfirstXBinPt, kGClastXBinPt/5., "y","p_{t} (GeV/c)");
175 histograms->AddHistogram("MC_Acceptance_GC_Pi0Dalitz_Pt_vs_Y", "\\pi^{0} Acceptance with converted \\gamma", kGCnXBinsRapid, kGCfirstXBinRapid, kGClastXBinRapid, kGCnXBinsPt, kGCfirstXBinPt, kGClastXBinPt/5., "y","p_{t} (GeV/c)");
176
177 // e+ from pi0
178 histograms->AddHistogram("MC_EposDalitz_Pt", "e+ from Dalitz pair", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
179 histograms->AddHistogram("MC_EposDalitz_Eta", "e+ from Dalitz pair", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
180
181 // e- from pi0
182 histograms->AddHistogram("MC_EnegDalitz_Pt", "e- from Dalitz pair", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
183 histograms->AddHistogram("MC_EnegDalitz_Eta", "e- from Dalitz pair", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
184
185 // gamma from pi0
186 histograms->AddHistogram("MC_GammaPi0Dalitz_Pt", "\\gamma from \\pi^{0} Dalitz decay", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
187 histograms->AddHistogram("MC_GammaPi0Dalitz_Eta", "\\gamma from \\pi^{0} Dalitz decay", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
188
189 // angles
190 // e+e-
191 histograms->AddHistogram("MC_EposEnegDalitz_Angle", "e+e- Dalitz pair", kGCnXBinsEPosNegAngle,kGCfirstXBinEPosNegAngle,kGClastXBinEPosNegAngle,"Angle(e+,e-) (rad)","");
192 // e+e- gamma
193 histograms->AddHistogram("MC_EposEnegDalitz_GammaPi0_Angle", "Angle between the plane e+e- and \\gamma from Pi0 Dalitz decay", kGCnXBinsEPosNegAngle,kGCfirstXBinEPosNegAngle,kGClastXBinEPosNegAngle,"\\theta (rad)","");
194 histograms->AddHistogram("MC_EposEnegDalitz_GammaPi0_Angle_vs_P","Angle between the plane e+e- and \\gamma from Pi0 Dalitz decay",kGCnXBinsEPosNegAngle,kGCfirstXBinEPosNegAngle,kGClastXBinEPosNegAngle,kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"\\theta (rad)","p(\\pi^{0}) (GeV/c)");
195 histograms->AddHistogram("MC_EposEnegDalitz_GammaPi0_Angle_vs_Pt","Angle between the plane e+e- and \\gamma from Pi0 Dalitz decay",kGCnXBinsEPosNegAngle,kGCfirstXBinEPosNegAngle,kGClastXBinEPosNegAngle,kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"\\theta (rad)","p_{t}(\\pi^{0}) (GeV/c)");
196
197 // Pi0 within acceptance
198 histograms->AddHistogram("MC_Acceptance_Pi0Dalitz_Pt", "\\pi^{0} Dalitz decay within acceptance", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
199 histograms->AddHistogram("MC_Acceptance_Pi0Dalitz_Eta", "\\pi^{0} Dalitz decay within acceptance", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
200 histograms->AddHistogram("MC_Acceptance_Pi0Dalitz_Radius", "\\pi^{0} Dalitz decay within acceptance", kGCnXBinsR,kGCfirstXBinR,kGClastXBinR,"Radius(XY) cm","");
201
202 histograms->AddHistogram("MC_Acceptance_GammaPi0Dalitz_Pt", "\\gamma from \\pi^{0} Dalitz, \\pi^{0} within acceptance ", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
203 histograms->AddHistogram("MC_Acceptance_GammaPi0Dalitz_Eta", "\\gamma from \\pi^{0} Dalitz, \\pi^{0} within acceptance ", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
204
7811d09e 205 // e+
206 histograms->AddHistogram("MC_Acceptance_EposPi0Dalitz_Pt", "e+ from \\pi^{0} Dalitz, \\pi^{0} within acceptance", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
207 histograms->AddHistogram("MC_Acceptance_EposPi0Dalitz_Eta", "e+ from \\pi^{0} Dalitz, \\pi^{0} within acceptance", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
208
209 // e-
210 histograms->AddHistogram("MC_Acceptance_EnegPi0Dalitz_Pt", "e- from \\pi^{0} Dalitz, \\pi^{0} within acceptance", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
211 histograms->AddHistogram("MC_Acceptance_EnegPi0Dalitz_Eta", "e- from \\pi^{0} Dalitz, \\pi^{0} within acceptance", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
212
213
fd05b495 214 histograms->AddHistogram("MC_Acceptance_DalitzPair_OpeningAngle", "Dalitz pair within acceptance", kGCnXBinsEPosNegAngle,kGCfirstXBinEPosNegAngle,kGClastXBinEPosNegAngle,"Angle(e+,e-) (rad)","");
215 histograms->AddHistogram("MC_GC_GammaPi0Dalitz_All_Z_vs_R", "\\gamma from \\pi^{0} Dalitz decay", kGCnXBinsZR, kGCfirstXBinZR, kGClastXBinZR, kGCnYBinsZR, kGCfirstYBinZR, kGClastYBinZR, "Z (cm)"," R (cm)");
216
217 // e+ within acceptance
218 histograms->AddHistogram("MC_Acceptance_EposDalitz_Pt", "e+ from Dalitz pair within acceptance", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
219 histograms->AddHistogram("MC_Acceptance_EposDalitz_Eta", "e+ from Dalitz pair within acceptance", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
220
221 // e-
222 histograms->AddHistogram("MC_Acceptance_EnegDalitz_Pt", "e- from Dalitz pair within acceptance", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
223 histograms->AddHistogram("MC_Acceptance_EnegDalitz_Eta", "e- from Dalitz pair within acceptance", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
224 // e+e-
225 histograms->AddHistogram("MC_Acceptance_DalitzPair_EposPt_vs_EnegPt","Dalitz pair within acceptance", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t}(e+) (GeV/c)","p_{t}(e-) (GeV/c)");
226
227 // within acceptance with gamma converted
228 histograms->AddHistogram("MC_Acceptance_GC_Pi0Dalitz_Pt", "\\pi^{0} Dalitz decay within acceptance with \\gamma converted", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
229 histograms->AddHistogram("MC_Acceptance_GC_Pi0Dalitz_Eta", "\\pi^{0} Dalitz decay within acceptance with \\gamma converted", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
230
231 histograms->AddHistogram("MC_Acceptance_GC_EposPi0Dalitz_Pt", "e+ from Dalitz pair, \\pi^{0} within acceptance with \\gamma converted", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
232 histograms->AddHistogram("MC_Acceptance_GC_EposPi0Dalitz_Eta", "e+ from Dalitz pair, \\pi^{0} within acceptance with \\gamma converted", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
233
234 histograms->AddHistogram("MC_Acceptance_GC_EnegPi0Dalitz_Pt", "e- from Dalitz pair, \\pi^{0} within acceptance with \\gamma converted", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
235 histograms->AddHistogram("MC_Acceptance_GC_EnegPi0Dalitz_Eta", "e- from Dalitz pair, \\pi^{0} within acceptance with \\gamma converted", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
236
237 histograms->AddHistogram("MC_Acceptance_GC_GammaPi0Dalitz_Pt", "\\gamma from \\pi^{0} Dalitz, \\pi^{0} within acceptance with \\gamma converted", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
238 histograms->AddHistogram("MC_Acceptance_GC_GammaPi0Dalitz_Eta", "\\gamma from \\pi^{0} Dalitz, \\pi^{0} within acceptance with \\gamma converted", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
239 histograms->AddHistogram("MC_Acceptance_GC_GammaPi0Dalitz_Z_vs_R", "\\gamma from \\pi^{0} Dalitz decay within acceptance GC", kGCnXBinsZR, kGCfirstXBinZR, kGClastXBinZR, kGCnYBinsZR, kGCfirstYBinZR, kGClastYBinZR, "Z (cm)","R (cm)");
240 }
241 // Reconstruction
242 // ---------------------------------------------------------------------------
243
244 // reconstructed epos
7811d09e 245 histograms->AddHistogram("ESD_Debug_Table","Table Debug",10,-5,5,"Quality","");
fd05b495 246 histograms->AddHistogram("ESD_EposCandidates_Pt", "Reconstructed e+ candidates", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
247 histograms->AddHistogram("ESD_EposCandidates_Eta", "Reconstructed e+ candidates", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
248
249 // reconstructed eneg
250 histograms->AddHistogram("ESD_EnegCandidates_Pt", "Reconstructed e- candidates", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
251 histograms->AddHistogram("ESD_EnegCandidates_Eta", "Reconstructed e- candidates", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
252
253 // Reconstructed dalitz pair
254 histograms->AddHistogram("ESD_DalitzPairCandidates_Pt", "Reconstructed Dalitz pair candidates", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
255 histograms->AddHistogram("ESD_DalitzPairCandidates_Mass", "Reconstructed Dalitz pair candidates", kGCnXBinsDalitzMass, kGCfirstXBinDalitzMass, kGClastXBinDalitzMass, "M(e+,e-) (GeV/c^{2})","");
256
257 // gammas
258 histograms->AddHistogram("ESD_GammaCandidates_Pt", "Reconstructed \\gamma candidates", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
259 histograms->AddHistogram("ESD_GammaCandidates_Eta", "Reconstructed \\gamma candidates", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
260
261 histograms->AddHistogram("ESD_EposEneg_GammaCandidates_Angle", "Angle between e+, e- candidates and \\gamma candidates", kGCnXBinsEPosNegAngle,kGCfirstXBinEPosNegAngle,kGClastXBinEPosNegAngle,"Angle(e+e-, \\gamma) (rad)","");
262
263 // Reconstructed pi0
264 //
265 histograms->AddHistogram("ESD_Pi0_P", "\\pi^{0} Dalitz decay", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p (GeV/c)","");
266 histograms->AddHistogram("ESD_Pi0_Pt", "\\pi^{0} Dalitz decay", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
267 histograms->AddHistogram("ESD_Pi0_Eta", "\\pi^{0} Dalitz decay", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
268 histograms->AddHistogram("ESD_Pi0_Y", "\\pi^{0} Dalitz decay", kGCnXBinsRapid,kGCfirstXBinRapid,kGClastXBinRapid,"y","");
269 histograms->AddHistogram("ESD_Pi0_Phi", "\\pi^{0} Dalitz decay", kGCnXBinsPhi,kGCfirstXBinPhi,kGClastXBinPhi," \\phi (rad)","");
270 histograms->AddHistogram("ESD_Pi0_Mass", "\\pi^{0} Dalitz decay", kGCnXBinsPi0DalitzMass, kGCfirstXBinPi0DalitzMass, kGClastXBinPi0DalitzMass,"M(e+,e-,\\gamma) (GeV/c^{2})","");
271 histograms->AddHistogram("ESD_Pi0_Pt_vs_Y","\\pi^{0} Dalitz decay", kGCnXBinsRapid, kGCfirstXBinRapid, kGClastXBinRapid, kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"y","p_{t} (GeV/c)");
272 histograms->AddHistogram("ESD_Pi0_Mass_vs_Pt","\\pi^{0} Dalitz decay", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5., kGCnXBinsPi0DalitzMass, kGCfirstXBinPi0DalitzMass, kGClastXBinPi0DalitzMass,"p_{t} (GeV/c)","M(e+,e-,\\gamma) (GeV/c^{2})");
273 histograms->AddHistogram("ESD_Pi0_Mass_vs_Eta","\\pi^{0} Dalitz decay", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta, kGCnXBinsPi0DalitzMass, kGCfirstXBinPi0DalitzMass, kGClastXBinPi0DalitzMass,"\\eta","M(e+,e-,\\gamma) (GeV/c^{2})");
274 histograms->AddHistogram("ESD_Pi0_Mass_vs_Y","\\pi^{0} Dalitz decay", kGCnXBinsRapid, kGCfirstXBinRapid, kGClastXBinRapid, kGCnXBinsPi0DalitzMass, kGCfirstXBinPi0DalitzMass, kGClastXBinPi0DalitzMass, "y","M(e+,e-,\\gamma) (GeV/c^{2})");
275
276 // Background
277 histograms->AddHistogram("ESD_BKG_EposEneg", "Like sign background", kGCnXBinsDalitzMass, kGCfirstXBinDalitzMass, kGClastXBinDalitzMass,"M(e+,e+) & M(e-,e-) (GeV/c^{2})","");
278 histograms->AddHistogram("ESD_BKG_PrevGamma", "e+e- with \\gamma used in the signal", kGCnXBinsPi0DalitzMass, kGCfirstXBinPi0DalitzMass, kGClastXBinPi0DalitzMass,"M(e+,e-,\\gamma) (GeV/c^{2})","");
279 histograms->AddHistogram("ESD_BKG_PrevGamma_vs_Pt", "Backgroud: \\gamma used in the signal", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5., kGCnXBinsPi0DalitzMass, kGCfirstXBinPi0DalitzMass, kGClastXBinPi0DalitzMass, "p_{t} (GeV/c)", "M(e+,e-,\\gamma) (GeV/c^{2})");
280
281 histograms->AddHistogram("ESD_BKG_BGHandler", "e+e- with \\gamma from a pool of events", kGCnXBinsPi0DalitzMass, kGCfirstXBinPi0DalitzMass, kGClastXBinPi0DalitzMass,"M(e+,e-,\\gamma) (GeV/c^{2})","");
282 histograms->AddHistogram("ESD_BKG_BGHandler_vs_Pt", "e+e- with \\gamma from a pool of events", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5., kGCnXBinsPi0DalitzMass, kGCfirstXBinPi0DalitzMass, kGClastXBinPi0DalitzMass,"p_{t} (GeV/c)","M(e+,e-,\\gamma) (GeV/c^{2})");
283
284 histograms->AddHistogram("ESD_BKG_Electron", "e+ with e-,\\gamma from a pool of events", kGCnXBinsPi0DalitzMass, kGCfirstXBinPi0DalitzMass, kGClastXBinPi0DalitzMass,"M(e+,e-,\\gamma) (GeV/c^{2})","");
285 histograms->AddHistogram("ESD_BKG_Electron_vs_Pt", "e+ with e-,\\gamma from a pool of events", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5., kGCnXBinsPi0DalitzMass, kGCfirstXBinPi0DalitzMass, kGClastXBinPi0DalitzMass,"p_{t} (GeV/c)","M(e+,e-,\\gamma) (GeV/c^{2})");
286
287
288 // GEANT
289 // ---------------------
290 if(kGCdoMCTruth)
291 {
292 histograms->AddHistogram("MC_ESD_EposDalitz_Pt", "Reconstructed e+ from Dalitz pair (MC)", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
293 histograms->AddHistogram("MC_ESD_EposDalitz_Eta", "Reconstructed e+ from Dalitz pair (MC)", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
294
295 // reconstructed eneg
296 histograms->AddHistogram("MC_ESD_EnegDalitz_Pt", "Reconstructed e- from Dalitz pair (MC)", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
297 histograms->AddHistogram("MC_ESD_EnegDalitz_Eta", "Reconstructed e- from Dalitz pair (MC)", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
298
299 // Reconstructed dalitz pair
300 histograms->AddHistogram("MC_ESD_DalitzPair_Pt", "Reconstructed Dalitz pair (MC)", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
301 histograms->AddHistogram("MC_ESD_DalitzPair_Mass", "Reconstructed Dalitz pair (MC)", kGCnXBinsPi0DalitzMass, kGCfirstXBinPi0DalitzMass, kGClastXBinPi0DalitzMass,"M(e+,e-) (GeV/c^{2})","");
302
303 // reconstructed gammas
304 histograms->AddHistogram("MC_ESD_Gamma_Pt", "Reconstructed \\gamma (MC)", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
305 histograms->AddHistogram("MC_ESD_Gamma_Eta", "Reconstructed \\gamma (MC)", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
306
307 // gamma from Dalitz
308 histograms->AddHistogram("MC_ESD_GammaPi0Dalitz_Pt", "Reconstructed \\gamma from \\pi^{0} Dalitz (MC)", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
309 histograms->AddHistogram("MC_ESD_GammaPi0Dalitz_Eta", "Reconstructed \\gamma from \\pi^{0} Dalitz (MC)", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
310
311 // Reconstructed pi0 (MC)
312 histograms->AddHistogram("MC_ESD_Pi0_P", "\\pi^{0} Dalitz decay (MC)", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p (GeV/c)","");
313 histograms->AddHistogram("MC_ESD_Pi0_Pt", "\\pi^{0} Dalitz decay (MC)", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"p_{t} (GeV/c)","");
314 histograms->AddHistogram("MC_ESD_Pi0_Eta", "\\pi^{0} Dalitz decay (MC)", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta,"\\eta","");
315 histograms->AddHistogram("MC_ESD_Pi0_Y", "\\pi^{0} Dalitz decay (MC)", kGCnXBinsRapid,kGCfirstXBinRapid,kGClastXBinRapid,"y","");
316 histograms->AddHistogram("MC_ESD_Pi0_Phi", "\\pi^{0} Dalitz decay (MC)", kGCnXBinsPhi,kGCfirstXBinPhi,kGClastXBinPhi," \\phi (rad)","");
317 histograms->AddHistogram("MC_ESD_Pi0_Mass", "\\pi^{0} Dalitz decay (MC)", kGCnXBinsPi0DalitzMass, kGCfirstXBinPi0DalitzMass, kGClastXBinPi0DalitzMass,"M(e+,e-,\\gamma) (GeV/c^{2})","");
318
319 histograms->AddHistogram("MC_ESD_Pi0_Pt_vs_Y","\\pi^{0} Dalitz decay (MC)", kGCnXBinsRapid, kGCfirstXBinRapid, kGClastXBinRapid, kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5.,"y","p_{t} (GeV/c)");
320 histograms->AddHistogram("MC_ESD_Pi0_Mass_vs_Pt","\\pi^{0} Dalitz decay (MC)", kGCnXBinsPt,kGCfirstXBinPt,kGClastXBinPt/5., kGCnXBinsPi0DalitzMass, kGCfirstXBinPi0DalitzMass, kGClastXBinPi0DalitzMass,"p_{t} (GeV/c)","M(e+,e-,\\gamma) (GeV/c^{2})");
321 histograms->AddHistogram("MC_ESD_Pi0_Mass_vs_Eta","\\pi^{0} Dalitz decay (MC)", kGCnXBinsEta,kGCfirstXBinEta,kGClastXBinEta, kGCnXBinsPi0DalitzMass, kGCfirstXBinPi0DalitzMass, kGClastXBinPi0DalitzMass,"\\eta","M(e+,e-,\\gamma) (GeV/c^{2})");
322 histograms->AddHistogram("MC_ESD_Pi0_Mass_vs_Y","\\pi^{0} Dalitz decay (MC)", kGCnXBinsRapid, kGCfirstXBinRapid, kGClastXBinRapid, kGCnXBinsPi0DalitzMass, kGCfirstXBinPi0DalitzMass, kGClastXBinPi0DalitzMass, "y","M(e+,e-,\\gamma) (GeV/c^{2})");
323 }
324
325 //if(kGCTrkSelectionCriteria != 1)
326 // ITS standalone
327 histograms->AddHistogram("ESD_ITSsa_dEdx_vs_P", "ITS standalone tracks", kGCnXBinsP*5, kGCfirstXBinP, kGClastXBinP/5.,kGCnYBinsdEdx, kGCfirstYBindEdx, kGClastYBindEdx,"p (GeV/c)","ITS Signal (a.u.)");
328 histograms->AddHistogram("ESD_ITSsa_PidCut_dEdx_vs_P", "ITS standalone tracks after PID", kGCnXBinsP*5, kGCfirstXBinP, kGClastXBinP/5.,kGCnYBinsdEdx, kGCfirstYBindEdx, kGClastYBindEdx,"p (GeV/c)","ITS Signal (a.u.)");
329
330 if(kGCdoMCTruth)
331 {
332 histograms->AddHistogram("MC_ESD_ITSsa_PidCut_dEdx_vs_P", "ITS standalone tracks after PID (MC)", kGCnXBinsP*5, kGCfirstXBinP, kGClastXBinP/5.,kGCnYBinsdEdx, kGCfirstYBindEdx, kGClastYBindEdx,"p (GeV/c)","ITS Signal (a.u.)");
333 histograms->AddHistogram("MC_ESD_ITSsa_Electron_dEdx_vs_P", "ITS standalone electrons", kGCnXBinsP*5, kGCfirstXBinP, kGClastXBinP/5.,kGCnYBinsdEdx, kGCfirstYBindEdx, kGClastYBindEdx,"p (GeV/c)","ITS Signal (a.u.)");
334 }
335 // TPC dEdx
336 histograms->AddHistogram("ESD_TPC_dEdx_vs_P" , "Global tracks", kGCnXBinsP*5, kGCfirstXBinP, kGClastXBinP/5.,kGCnYBinsdEdx, kGCfirstYBindEdx, kGClastYBindEdx,"p (GeV/c)","TPC Signal (a.u.)");
337 histograms->AddHistogram("ESD_TPC_PidCut_dEdx_vs_P", "Global tracks after PID", kGCnXBinsP*5, kGCfirstXBinP, kGClastXBinP/5.,kGCnYBinsdEdx, kGCfirstYBindEdx, kGClastYBindEdx,"p (GeV/c)","TPC Signal (a.u.)");
338
339 if(kGCdoMCTruth)
340 {
341 histograms->AddHistogram("MC_ESD_TPC_Electron_dEdx_vs_P" , "Electron global tracks", kGCnXBinsP*5, kGCfirstXBinP, kGClastXBinP/5.,kGCnYBinsdEdx, kGCfirstYBindEdx, kGClastYBindEdx,"p (GeV/c)","TPC Signal (a.u.)");
342 histograms->AddHistogram("MC_ESD_TPC_PidCut_dEdx_vs_P", "Global tracks after PID (MC)", kGCnXBinsP*5, kGCfirstXBinP, kGClastXBinP/5.,kGCnYBinsdEdx, kGCfirstYBindEdx, kGClastYBindEdx,"p (GeV/c)","TPC Signal (a.u.)");
343 }
344
345// psi pair
346 histograms->AddHistogram("ESD_EposEneg_PsiPair_vs_DPhi", "e+e- candidates", 2*kGCnXBinsOpeningAngle, -1*kGClastXBinOpeningAngle, kGClastXBinOpeningAngle, 2*kGCnXBinsOpeningAngle, -1*kGClastXBinOpeningAngle, kGClastXBinOpeningAngle, "\\Delta\\phi (rad)","\\psi_{pair}");
347
348 if(kGCdoMCTruth)
349 {
350 histograms->AddHistogram("MC_ESD_DalitzPair_PsiPair_vs_DPhi", "Dalitz pairs (MC)", 2*kGCnXBinsOpeningAngle, -1*kGClastXBinOpeningAngle, kGClastXBinOpeningAngle, 2*kGCnXBinsOpeningAngle, -1*kGClastXBinOpeningAngle, kGClastXBinOpeningAngle, "\\Delta\\phi (rad)","\\psi_{pair}");
351
352 histograms->AddHistogram("MC_ESD_EposEnegGamma_PsiPair_vs_DPhi", "e+e- from \\gamma conversion (MC)", 2*kGCnXBinsOpeningAngle, -1*kGClastXBinOpeningAngle, kGClastXBinOpeningAngle, 2*kGCnXBinsOpeningAngle, -1*kGClastXBinOpeningAngle, kGClastXBinOpeningAngle, "\\Delta\\phi (rad)","\\psi_{pair}");
353 }
354
355 // Tables
356 if(kGCdoMCTruth)
357 {
358 histograms->AddTable("Table_Generation","Generation",kGCnElementsPi0Table,kGCPi0Table);
359 histograms->AddTable("Table_PID","particle table (Row: PID, Col: MC)", kGCnElementsPidTable, kGCPidTable, kGCnElementsPidTable, kGCPidTable);
360 }
361 histograms->AddTable("Table_Reconstruction","Reconstruction",kGCnElementsElectronDalitzTable,kGCElectronDalitzTable);
362 histograms->AddTable("Table_Cuts","Number of \\pi^{0}->e+e-\\gamma after cuts",kGCnElementsCutsTable,kGCCutsTable);
363}
364
365
366 /*
367 // NOTE: We should use fESDpid from fV0Reader (right now it is private)
368 // Better parameters for MonteCarlo from A. Kalweit 2010/01/8
369
370
371 fESDpid->GetTPCResponse().SetBetheBlochParameters( 4.23232575531564326e+00/50.,
372 8.68482806165147636e+00,
373 1.34000000000000005e-05,
374 2.30445734159456084e+00,
375 2.25624744086878559e+00);//Trujillo
376
377
378 fESDpid->GetTPCResponse().SetBetheBlochParameters( 2.49397e+00,
379 1.46884e+01,
380 7.44848e-04,
381 2.24803e+00,
382 4.85791e+00); //AliRoot v4-18-Rev-10 //Dalitz Generation*/
383
384
385/* fESDpid->GetTPCResponse().SetBetheBlochParameters( 2.15898e+00/50.,
386 1.75295e+01,
387 3.40030e-09,
388 1.96178e+00,
389 3.91720e+00 );
390
391 //MC-CERN
392
393
394 }
395 else {
396 // Better parameters for data from A. Kalweit 2010/01/8
397 fESDpid->GetTPCResponse().SetBetheBlochParameters( 0.0283086,
398 2.63394e+01,
399 5.04114e-11,
400 2.12543e+00,
401 4.88663e+00 );
402 */