]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/SPECTRA/Nuclei/B2/macros/CreateHistograms.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGLF / SPECTRA / Nuclei / B2 / macros / CreateHistograms.C
CommitLineData
6b91e8c0 1/**************************************************************************
2 * Copyright(c) 1998-1999, 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// macro for creating histograms
17// author: Eulogio Serradilla <eulogio.serradilla@cern.ch>
18
7aea16ca 19#if !defined(__CINT__) || defined(__MAKECINT__)
20#include <TH1D.h>
21#include <TH2D.h>
22#include <TMath.h>
23#include <TString.h>
24#include "AliLnHistoMap.h"
25#endif
26
5b88d60e 27AliLnHistoMap* CreateHistograms(const TString& species, const TString& binSize, Bool_t simulation, Double_t maxDCAxy, Double_t maxEta, Double_t maxY, Bool_t heavyIons)
6b91e8c0 28{
29//
30// Define an create the histograms for the analysis
31//
32 AliLnHistoMap* hMap = new AliLnHistoMap();
33
34 Int_t A = 1;
35 if(species == "Deuteron") A = 2;
36 else if(species == "Triton") A = 3;
37 else if(species == "He3") A = 3;
38 else if(species == "Alpha") A = 4;
39
ec499c6d 40 TString particle[] = { Form("Anti%s",species.Data()), species };
41
6b91e8c0 42 // pt
5b88d60e 43 Int_t nptbins = 100;
44 Double_t* ptbins;
45
1522858c 46 if(binSize == "d_900GeV")
5b88d60e 47 {
48 nptbins = 11;
49 ptbins = new Double_t[nptbins+1];
50 Double_t bin[] = { 0., 0.3, 0.4, 0.5, 0.7, 0.9, 1.1, 1.3, 1.5, 1.7, 1.9, 2.1 };
51 for(Int_t i=0; i<nptbins+1; ++i) ptbins[i] = A*bin[i];
52 }
1522858c 53 else if(binSize == "d_2.76TeV")
5b88d60e 54 {
55 nptbins = 22;
56 ptbins = new Double_t[nptbins+1];
57 Double_t bin[] = { 0., 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4, 2.6, 2.8, 3.0, 3.2, 3.4 };
58 for(Int_t i=0; i<nptbins+1; ++i) ptbins[i] = A*bin[i];
59 }
1522858c 60 else if(binSize == "d_7TeV")
5b88d60e 61 {
62 nptbins = 48;
63 ptbins = new Double_t[nptbins+1];
64 Double_t bin[] = { 0., 0.05, 0.10, 0.15, 0.20, 0.25, 0.30, 0.35, 0.40, 0.45, 0.50, 0.55, 0.60, 0.65, 0.70, 0.75, 0.80, 0.85, 0.90, 0.95, 1.00, 1.05, 1.10, 1.15, 1.20, 1.25, 1.30, 1.40, 1.50, 1.60, 1.70, 1.80, 1.90, 2.00, 2.10, 2.20, 2.30, 2.40, 2.50, 2.60, 2.70, 2.80, 2.90, 3.00, 3.10, 3.20, 3.30, 3.40, 3.50 };
65 for(Int_t i=0; i<nptbins+1; ++i) ptbins[i] = A*bin[i];
66 }
1522858c 67 else if(binSize=="He3_7TeV")
68 {
69 nptbins = 5;
70 ptbins = new Double_t[nptbins+1];
71 Double_t bin[] = { 0., 0.4, 0.6, 1.0, 2.0, 3.0 };
72 for(Int_t i=0; i<nptbins+1; ++i) ptbins[i] = A*bin[i];
73 }
5b88d60e 74 else
75 {
76 nptbins = 100;
77 ptbins = new Double_t[nptbins+1];
78 Double_t binwidth = 0.1;
79 for(Int_t i=0; i<nptbins+1; ++i) ptbins[i] = 0 + (A*binwidth)*i;
80 }
6b91e8c0 81
82 // eta and rapidity
83 Int_t etaBins = 300;
84 Double_t etaMin = -1.5;
85 Double_t etaMax = 1.5;
86
87 // phi
88 Int_t phiBins = 180;
89 Double_t phiMin = 0.;
90 Double_t phiMax = 2.*TMath::Pi();
91
92 // DCA distribution bin width = 0.001 cm
93 Int_t dcaxyBins = 2.*maxDCAxy/0.001;
94 Double_t dcaxyMin = -maxDCAxy;
95 Double_t dcaxyMax = maxDCAxy;
96
97 Int_t dcazBins = 1300;
98 Double_t dcazMin = -3.25;
99 Double_t dcazMax = 3.25;
100
101 // m2 bins
77dac0a6 102 Int_t m2Bins = 400;
6b91e8c0 103 Double_t m2Min = 0;
77dac0a6 104 Double_t m2Max = 20;
5b88d60e 105 Double_t dm2Min = -10;
106 Double_t dm2Max = 10;
6b91e8c0 107
067aa49d 108 // t bins
109 Int_t tBins = 500;
110 Double_t tMin = 0;
111 Double_t tMax = 100;
112 Double_t dtMin = -10;
113 Double_t dtMax = 10;
114
6b91e8c0 115 // track multiplicity
116 Int_t ntrkBins = 200;
117 Double_t ntrkMin = 0;
118 Double_t ntrkMax = 200;
067aa49d 119
120 Int_t zmultBins = 150;
5b88d60e 121 Double_t zmultMin = 0;
067aa49d 122 Double_t zmultMax = 15;
6b91e8c0 123
124 if(heavyIons)
125 {
126 ntrkBins = 2000;
127 ntrkMin = 0;
128 ntrkMax = 2000;
067aa49d 129
130 zmultBins = 2000;
5b88d60e 131 zmultMin = 0;
067aa49d 132 zmultMax = 200;
6b91e8c0 133 }
134
ec499c6d 135 // ITS and TPC dE/dx
136 Int_t dEdxBins = 3000;
137 Double_t mindEdx = 0.001;
138 Double_t maxdEdx = 3000.001;
139
6b91e8c0 140 // stats
141
142 TH1D* hStats = new TH1D(species + "_Stats", "Stats", 8, 0, 8);
143
144 hStats->GetXaxis()->SetBinLabel(1,"Events");
145 hStats->GetXaxis()->SetBinLabel(2,"Trig");
146 hStats->GetXaxis()->SetBinLabel(3,"Ana");
147 hStats->GetXaxis()->SetBinLabel(4,"Vtx");
148 hStats->GetXaxis()->SetBinLabel(5,"Vz");
149 hStats->GetXaxis()->SetBinLabel(6,"Vxy");
150 hStats->GetXaxis()->SetBinLabel(7,"VertexerZ");
151 hStats->GetXaxis()->SetBinLabel(8,"NoPileUp");
152
153 hStats->SetStats(0);
154 hMap->Add( species + "_Stats", (TObject*)hStats);
155
156 if(simulation)
157 {
158 // PID table
159
160 TH2D* hPidTable = new TH2D(species + "_Stats_PID_Table", "Particle table (Row: PID, Col: MC)", 10,0,10,10,0,10);
161
162 hPidTable->GetXaxis()->SetBinLabel(1,"e");
163 hPidTable->GetXaxis()->SetBinLabel(2,"#mu");
164 hPidTable->GetXaxis()->SetBinLabel(3,"#pi");
165 hPidTable->GetXaxis()->SetBinLabel(4,"K");
166 hPidTable->GetXaxis()->SetBinLabel(5,"p");
167 hPidTable->GetXaxis()->SetBinLabel(6,"d");
168 hPidTable->GetXaxis()->SetBinLabel(7,"t");
169 hPidTable->GetXaxis()->SetBinLabel(8,"h");
170 hPidTable->GetXaxis()->SetBinLabel(9,"#alpha");
171 hPidTable->GetXaxis()->SetBinLabel(10,"sum");
172
173 hPidTable->GetYaxis()->SetBinLabel(1,"e");
174 hPidTable->GetYaxis()->SetBinLabel(2,"#mu");
175 hPidTable->GetYaxis()->SetBinLabel(3,"#pi");
176 hPidTable->GetYaxis()->SetBinLabel(4,"K");
177 hPidTable->GetYaxis()->SetBinLabel(5,"p");
178 hPidTable->GetYaxis()->SetBinLabel(6,"d");
179 hPidTable->GetYaxis()->SetBinLabel(7,"t");
180 hPidTable->GetYaxis()->SetBinLabel(8,"h");
181 hPidTable->GetYaxis()->SetBinLabel(9,"#alpha");
182 hPidTable->GetYaxis()->SetBinLabel(10,"sum");
183
184 hPidTable->SetStats(0);
185 hMap->Add( species + "_Stats_PID_Table", (TObject*)hPidTable);
186 }
187
188 TH1D* hStatsPid = new TH1D(species + "_Stats_PID", "Stats PID", 9, 0, 9);
189 hStatsPid->GetXaxis()->SetBinLabel(1,"e");
ab0f9c92 190 hStatsPid->GetXaxis()->SetBinLabel(2,"#mu");
191 hStatsPid->GetXaxis()->SetBinLabel(3,"#pi");
6b91e8c0 192 hStatsPid->GetXaxis()->SetBinLabel(4,"K");
193 hStatsPid->GetXaxis()->SetBinLabel(5,"p");
194 hStatsPid->GetXaxis()->SetBinLabel(6,"d");
195 hStatsPid->GetXaxis()->SetBinLabel(7,"t");
196 hStatsPid->GetXaxis()->SetBinLabel(8,"h");
ab0f9c92 197 hStatsPid->GetXaxis()->SetBinLabel(9,"#alpha");
6b91e8c0 198 hStatsPid->SetStats(0);
199 hMap->Add( species + "_Stats_PID", (TObject*)hStatsPid);
200
6b91e8c0 201 // multiplicity
202
68a84436 203 hMap->Add( species + "_Event_Ntrk", ntrkBins, ntrkMin, ntrkMax, Form("Track multiplicity (all events, |#eta|< %.1f)",maxEta), "N_{trk}", "Events");
067aa49d 204 hMap->Add( species + "_Event_Zmult", zmultBins, zmultMin, zmultMax, Form("KNO multiplicity (all events, |#eta|< %.1f)", maxEta), "N_{trk}/<N_{trk}>", "Events");
68a84436 205 hMap->Add( species + "_Ana_Event_Ntrk", ntrkBins, ntrkMin, ntrkMax, Form("Track multiplicity (|#eta|< %.1f)", maxEta), "N_{trk}", "Events");
067aa49d 206 hMap->Add( species + "_Ana_Event_Zmult", zmultBins, zmultMin, zmultMax, Form("KNO multiplicity (|#eta|< %.1f)", maxEta), "N_{trk}/<N_{trk}>", "Events");
6b91e8c0 207
ec499c6d 208 for(Int_t i=0; i<2; ++i)
209 {
5b88d60e 210 hMap->Add( particle[i] + "_PID_Ntrk_pTPC", nptbins, ptbins, ntrkBins, ntrkMin, ntrkMax, particle[i] + " candidates " + Form("(|#eta|< %.1f)", maxEta), "p_{TPC}/Z (GeV/c)", "N_{trk}");
ec499c6d 211
067aa49d 212 hMap->Add( particle[i] + "_PID_Zmult_pTPC", nptbins, ptbins, zmultBins, zmultMin, zmultMax, particle[i] + " candidates " + Form("(|#eta|< %.1f)", maxEta), "p_{TPC}/Z (GeV/c)", "z_{mult}");
ec499c6d 213
214 if(simulation)
215 {
68a84436 216 hMap->Add( particle[i] + "_Gen_Nch", ntrkBins, ntrkMin, ntrkMax, Form("Primary %ss (|#eta|< %.1f)", particle[i].Data(), maxEta), "N_{ch}");
ec499c6d 217
68a84436 218 hMap->Add( particle[i] + "_Sim_Ntrk", ntrkBins, ntrkMin, ntrkMax, particle[i] + Form("s (|#eta|< %.1f)", maxEta), "N_{trk}");
ec499c6d 219 }
220 }
221
6b91e8c0 222 if(simulation)
223 {
1a9524cf 224 hMap->Add( species + "_Ana_Event_Nch_Ntrk", ntrkBins, ntrkMin, ntrkMax, ntrkBins, ntrkMin, ntrkMax, Form("Track multiplicity (|#eta|< %.1f)", maxEta), "N_{trk}", "N_{ch}");
6b91e8c0 225 }
226
227 hMap->Add( species + "_Vertex_XZ", 500, -50., 50., 800, -1., 1., "Primary Vertex", "Z (cm)", "X (cm)");
228 hMap->Add( species + "_Vertex_YZ", 500, -50., 50., 800, -1., 1., "Primary Vertex", "Z (cm)", "Y (cm)");
229 hMap->Add( species + "_Vertex_YX", 800, -1., 1., 800, -1., 1., "Primary Vertex", "X (cm)", "Y (cm)");
230
231 hMap->Add( species + "_Ana_Vertex_XZ", 500, -50., 50., 800, -1., 1., "Primary Vertex", "Z (cm)", "X (cm)");
232 hMap->Add( species + "_Ana_Vertex_YZ", 500, -50., 50., 800, -1., 1., "Primary Vertex", "Z (cm)", "Y (cm)");
233 hMap->Add( species + "_Ana_Vertex_YX", 800, -1., 1., 800, -1., 1., "Primary Vertex", "X (cm)", "Y (cm)");
234
235 if(heavyIons)
236 {
237 hMap->Add( species + "_V0_Mult", 1000, 0, 100000., "Corrected V0 Multiplicity", "V0M", "Events");
238 hMap->Add( species + "_V0_Scaled_Mult", 1000, 0, 10000., "Corrected Scaled V0 Multiplicity", "V0SM", "Events");
239
240 hMap->Add( species + "_Ana_V0_Mult", 1000, 0, 100000., "Corrected V0 Multiplicity (after centrality sel.)", "V0M", "Events");
241 hMap->Add( species + "_Ana_V0_Scaled_Mult", 1000, 0, 10000., "Corrected Scaled V0 Multiplicity (after centrality sel.)", "V0SM", "Events");
242 }
243
244 // positive and negative
245
ec499c6d 246 Bool_t logx = 1;
247 Bool_t logy = 1;
6b91e8c0 248
249 for(Int_t i=0; i<2; ++i)
250 {
ec499c6d 251 // detector signals
252
253 hMap->Add( particle[i] + "_ITS_dEdx_P", 1000, 0.001, 10.001, dEdxBins, mindEdx, maxdEdx, "", "p/Z (GeV/c)", "dE/dx",logx,logy);
254 hMap->Add( particle[i] + "_TPC_dEdx_P", 1000, 0.001, 10.001, dEdxBins, mindEdx, maxdEdx, "", "p_{TPC}/Z (GeV/c)", "dE/dx",logx,logy);
255 hMap->Add( particle[i] + "_TOF_Beta_P", 1000, 0.001, 10.001, 1200, 0.001, 1.2, "", "p_{TOF}/Z (GeV/c)", "#beta",logx,logy);
ec499c6d 256 hMap->Add( particle[i] + "_TOF_Mass_P", 1000, 0.001, 10.001, 500, 0.01, 5., "", "p_{TOF}/Z (GeV/c)", "Mass (GeV/c^{2})");
257
258 // TrackCuts
259
260 hMap->Add( particle[i] + "_TrackCuts_DCAxy", 200, -4, 4, "Track cuts", "DCA_{xy} (cm)");
261 hMap->Add( particle[i] + "_TrackCuts_DCAz", 200, -6, 6, "Track cuts", "DCA_{z} (cm)");
262 hMap->Add( particle[i] + "_TrackCuts_NSigma", 200, 0, 10, "Track cuts", "N_{#sigma}");
263
264 hMap->Add( particle[i] + "_TrackCuts_ITSchi2PerCls", 200, 0, 40, "Track cuts", "ITS #chi^{2} / Cluster");
265
266 hMap->Add( particle[i] + "_TrackCuts_TPCncls", 200, 0, 200, "Track cuts", "TPC clusters");
b3f10f7e 267 hMap->Add( particle[i] + "_TrackCuts_TPCxRowsOverF", 200, 0, 2, "Track cuts", "TPC crossedRows/Findable");
ec499c6d 268 hMap->Add( particle[i] + "_TrackCuts_TPCxRows", 200, 0, 200, "Track cuts", "TPC crossed rows");
269 hMap->Add( particle[i] + "_TrackCuts_TPCchi2PerCls", 200, 0, 20, "Track cuts", "TPC #chi^{2} / Cluster");
270 hMap->Add( particle[i] + "_TrackCuts_TPCchi2Global", 200, -2, 38, "Track cuts", "#chi^{2} of constrained TPC vs global track");
271
052278a6 272 hMap->Add( particle[i] + "_Before_Phi_Eta", 400, -2, 2, 360, 0, 2.*TMath::Pi(), "Global tracks (before track cuts)", "#eta", "#phi (rad)");
ec499c6d 273
052278a6 274 hMap->Add( particle[i] + "_After_Phi_Eta", 400, -2, 2, 360, 0, 2.*TMath::Pi(), "Global tracks (after track cuts)", "#eta", "#phi (rad)");
ec499c6d 275
7421dabb 276 // TRD and TOF absorption
277
5b88d60e 278 hMap->Add( particle[i] + "_PID_TRDin_Pt", nptbins, ptbins, particle[i] + " candidates (TRDin)", "p_{T} (GeV/c)");
7421dabb 279
5b88d60e 280 hMap->Add( particle[i] + "_PID_TOFin_Pt", nptbins, ptbins, particle[i] + " candidates (TOFin)", "p_{T} (GeV/c)");
7421dabb 281
5b88d60e 282 hMap->Add( particle[i] + "_PID_TRDin_TRDout_Pt", nptbins, ptbins, particle[i] + " candidates (TRDin-TRDout)", "p_{T} (GeV/c)");
7421dabb 283
5b88d60e 284 hMap->Add( particle[i] + "_PID_TRDin_TOFout_Pt", nptbins, ptbins, particle[i] + " candidates (TRDin-TOFout)", "p_{T} (GeV/c)");
7421dabb 285
5b88d60e 286 hMap->Add( particle[i] + "_PID_TOFin_TOFout_Pt", nptbins, ptbins, particle[i] + " candidates (TOFin-TOFout)", "p_{T} (GeV/c)");
7421dabb 287
288
6b91e8c0 289 // pid with TOF
290
5b88d60e 291 hMap->Add( particle[i] + "_PID_M2_Pt", nptbins, ptbins, m2Bins, m2Min, m2Max, particle[i] + " candidates", "p_{T} (GeV/c)", "m^{2} (GeV^{2}/c^{4})");
292
293 hMap->Add( particle[i] + "_PID_DM2_Pt", nptbins, ptbins, m2Bins, dm2Min, dm2Max, particle[i] + " candidates", "p_{T} (GeV/c)", "#Deltam^{2} (GeV^{2}/c^{4})");
6b91e8c0 294
067aa49d 295 hMap->Add( particle[i] + "_PID_Time_Pt", nptbins, ptbins, tBins, tMin, tMax, particle[i] + " candidates", "p_{T} (GeV/c)", "t - t_{0} (ns)");
296
297 hMap->Add( particle[i] + "_PID_DTime_Pt", nptbins, ptbins, tBins, dtMin, dtMax, particle[i] + " candidates", "p_{T} (GeV/c)", "t - <t> (ns)");
298
6b91e8c0 299 // as a function of momentum
5b88d60e 300 hMap->Add( particle[i] + "_PID_DCAxy_Pt", nptbins, ptbins, dcaxyBins, dcaxyMin, dcaxyMax, particle[i] + " candidates", "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)");
6b91e8c0 301
5b88d60e 302 hMap->Add( particle[i] + "_PID_DCAz_Pt", nptbins, ptbins, dcazBins, dcazMin, dcazMax, particle[i] + " candidates", "p_{T} (GeV/c)", "sign #times DCA_{z} (cm)");
6b91e8c0 303
ab0f9c92 304 hMap->Add( particle[i] + "_PID_NSigma_Pt", nptbins, ptbins, 200, 0., 10., particle[i] + " candidates", "p_{T} (GeV/c)", "N#sigma");
6b91e8c0 305
306 if(simulation)
307 {
5b88d60e 308 hMap->Add( particle[i] + "_Sim_PID_M2_Pt", nptbins, ptbins, m2Bins, m2Min, m2Max, Form("%s after PID", particle[i].Data()), "p_{T} (GeV/c)", "m^{2} (GeV^{2}/c^{4})");
6b91e8c0 309
5b88d60e 310 hMap->Add( particle[i] + "_Sim_Prim_DCAxy_Pt", nptbins, ptbins, dcaxyBins, dcaxyMin, dcaxyMax, Form("Primary %s", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)");
6b91e8c0 311
5b88d60e 312 hMap->Add( particle[i] + "_Sim_Fdwn_DCAxy_Pt", nptbins, ptbins, dcaxyBins, dcaxyMin, dcaxyMax, Form("Feed-down %s", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)");
6b91e8c0 313
5b88d60e 314 hMap->Add( particle[i] + "_Sim_Mat_DCAxy_Pt", nptbins, ptbins, dcaxyBins, dcaxyMin, dcaxyMax, Form("%s from materials", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)");
6b91e8c0 315
316 // primaries
5b88d60e 317 hMap->Add( particle[i] + "_Sim_PID_Prim_DCAxy_Pt", nptbins, ptbins, dcaxyBins, dcaxyMin, dcaxyMax, Form("Primary %s after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)");
6b91e8c0 318
5b88d60e 319 hMap->Add( particle[i] + "_Sim_PID_Prim_DCAz_Pt", nptbins, ptbins, dcazBins, dcazMin, dcazMax, Form("Primary %s after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{z} (cm)");
6b91e8c0 320
ab0f9c92 321 hMap->Add( particle[i] + "_Sim_PID_Prim_NSigma_Pt", nptbins, ptbins, 200, 0., 10., Form("Primary %s after PID", particle[i].Data()), "p_{T} (GeV/c)", "N#sigma");
6b91e8c0 322
323 // feed-down
5b88d60e 324 hMap->Add( particle[i] + "_Sim_PID_Fdwn_DCAxy_Pt", nptbins, ptbins, dcaxyBins, dcaxyMin, dcaxyMax, Form("Feed-down %s after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)");
6b91e8c0 325
5b88d60e 326 hMap->Add( particle[i] + "_Sim_PID_Fdwn_DCAz_Pt", nptbins, ptbins, dcazBins, dcazMin, dcazMax, Form("Feed-down %s after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{z} (cm)");
6b91e8c0 327
ab0f9c92 328 hMap->Add( particle[i] + "_Sim_PID_Fdwn_NSigma_Pt", nptbins, ptbins, 200, 0., 10., Form("Feed-down %s after PID", particle[i].Data()), "p_{T} (GeV/c)", "N#sigma");
6b91e8c0 329
330 // secondaries from materials
5b88d60e 331 hMap->Add( particle[i] + "_Sim_PID_Mat_DCAxy_Pt", nptbins, ptbins, dcaxyBins, dcaxyMin, dcaxyMax, Form("%s from materials after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)");
6b91e8c0 332
5b88d60e 333 hMap->Add( particle[i] + "_Sim_PID_Mat_DCAz_Pt", nptbins, ptbins, dcazBins, dcazMin, dcazMax, Form("%s from materials after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{z} (cm)");
6b91e8c0 334
ab0f9c92 335 hMap->Add( particle[i] + "_Sim_PID_Mat_NSigma_Pt", nptbins, ptbins, 200, 0., 10., Form("%s from materials after PID", particle[i].Data()), "p_{T} (GeV/c)", "N#sigma");
6b91e8c0 336
337 // fake tracks
5b88d60e 338 hMap->Add( particle[i] + "_Sim_PID_Fake_Prim_DCAxy_Pt", nptbins, ptbins, dcaxyBins, dcaxyMin, dcaxyMax, Form("Fake Primary %s after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)");
6b91e8c0 339
5b88d60e 340 hMap->Add( particle[i] + "_Sim_PID_Fake_Fdwn_DCAxy_Pt", nptbins, ptbins, dcaxyBins, dcaxyMin, dcaxyMax, Form("Fake feed-down %s after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)");
6b91e8c0 341
5b88d60e 342 hMap->Add( particle[i] + "_Sim_PID_Fake_Mat_DCAxy_Pt", nptbins, ptbins, dcaxyBins, dcaxyMin, dcaxyMax, Form("Fake %s from materials after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)");
6b91e8c0 343 }
344
345 // identification
346
ec499c6d 347 hMap->Add( particle[i] + "_PID_ITSdEdx_P", 1000, 0.001, 10.001, 1500, mindEdx, maxdEdx, particle[i] + " candidates", "p/Z (GeV/c)", "dE/dx",logx,logy);
6b91e8c0 348
ec499c6d 349 hMap->Add( particle[i] + "_PID_TPCdEdx_P", 1000, 0.001, 10.001, 1500, mindEdx, maxdEdx, particle[i] + " candidates", "p_{TPC}/Z (GeV/c)", "dE/dx",logx,logy);
6b91e8c0 350
ab0f9c92 351 hMap->Add( particle[i] + "_PID_Beta_P", 1000, 0.001, 10.001, 1200, 1.e-3, 1.2, particle[i] + " candidates", "p_{TOF}/Z (GeV/c)", "#beta",logx,logy);
6b91e8c0 352
ec499c6d 353 hMap->Add( particle[i] + "_PID_Mass_P", 1000, 0.001, 10.001, 500, 0.01, 5., particle[i] + " candidates", "p_{TOF}/Z (GeV/c)", "m (GeV/c^{2})");
6b91e8c0 354
355 if(simulation)
356 {
357 hMap->Add( particle[i] + "_Sim_PID_Mass", 500, 0.01, 5., Form("%s after PID", particle[i].Data()), "m (GeV/c^{2})");
358 }
359
360 // results
361
5b88d60e 362 hMap->Add( particle[i] + "_PID_Pt_Y", etaBins, etaMin, etaMax, nptbins, ptbins, particle[i] + " candidates", "y", "p_{T} (GeV/c)");
6b91e8c0 363
ab0f9c92 364 hMap->Add( particle[i] + "_PID_Pt", nptbins, ptbins, Form("%s candidates (|y| < %0.1f, 0 < #phi < 2#pi)", particle[i].Data(),maxY), "p_{T} (GeV/c)");
6b91e8c0 365
5b88d60e 366 hMap->Add( particle[i] + "_PID_TOFmatch_Pt", nptbins, ptbins, Form("%s candidates (|y| < %0.1f, TOFmatch)", particle[i].Data(),maxY), "p_{T} (GeV/c)");
7421dabb 367
ab0f9c92 368 hMap->Add( Form("%s_PID_Y",particle[i].Data()), etaBins, etaMin, etaMax, Form("%s candidates (p_{T} > 0, 0 < #phi < 2#pi)",particle[i].Data()), "y");
6b91e8c0 369
ab0f9c92 370 hMap->Add( particle[i] + "_PID_Phi", phiBins, phiMin, phiMax, Form("%s candidates (p_{T} > 0, |y| < %0.1f)",particle[i].Data(),maxY), "#phi (rad)");
6b91e8c0 371
372 if(simulation)
373 {
ab0f9c92 374 hMap->Add( particle[i] + "_Sim_Pt", nptbins, ptbins, Form("%s (|y| < %0.1f, 0 < #phi < 2#pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)");
6b91e8c0 375
ab0f9c92 376 hMap->Add( particle[i] + "_Sim_Prim_Pt", nptbins, ptbins, Form("Primary %s (|y| < %0.1f, 0 < #phi < 2#pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)");
052278a6 377
ab0f9c92 378 hMap->Add( particle[i] + "_Sim_Prim_Rec_Pt", nptbins, ptbins, Form("Primary %s (|y| < %0.1f, 0 < #phi < 2#pi, rec. pt)",particle[i].Data(),maxY), "p_{T} (GeV/c)");
6b91e8c0 379
ab0f9c92 380 hMap->Add( particle[i] + "_Sim_Prim_Phi", phiBins, phiMin, phiMax, Form("Primary %s (p_{T} > 0, |y| < %0.1f)",particle[i].Data(),maxY), "#phi (rad)");
6b91e8c0 381
ab0f9c92 382 hMap->Add( particle[i] + "_Sim_Prim_Y", etaBins, etaMin, etaMax, Form("Primary %s (p_{T} > 0, 0 < #phi < 2#pi)",particle[i].Data()), "y");
6b91e8c0 383
ab0f9c92 384 hMap->Add( particle[i] + "_Sim_Fdwn_Pt", nptbins, ptbins, Form("Feed-down %s (|y| < %0.1f, 0 < #phi < 2#pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)");
6b91e8c0 385
ab0f9c92 386 hMap->Add( particle[i] + "_Sim_Mat_Pt", nptbins, ptbins, Form("%s from materials (|y| < %0.1f, 0 < #phi < 2#pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)");
6b91e8c0 387
ab0f9c92 388 hMap->Add( particle[i] + "_Sim_PID_Prim_Pt", nptbins, ptbins, Form("Primary %s after PID (|y| < %0.1f, 0 < #phi < 2#pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)");
6b91e8c0 389
ab0f9c92 390 hMap->Add( particle[i] + "_Sim_PID_Pt", nptbins, ptbins, Form("%s after PID (|y| < %0.1f, 0 < #phi < 2#pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)");
6b91e8c0 391
5b88d60e 392 hMap->Add( particle[i] + "_Sim_PtY", etaBins, etaMin, etaMax, nptbins, ptbins, particle[i].Data(), "y", "p_{T} (GeV/c)");
6b91e8c0 393
ab0f9c92 394 hMap->Add( particle[i] + "_Sim_Prim_M2_P", nptbins, ptbins, m2Bins, m2Min, m2Max, Form("Primary %s (|y| < %0.1f, 0 < #phi < 2#pi)",particle[i].Data(),maxY), "p (GeV/c)", "m^{2} (GeV^{2}/c^{4})");
6b91e8c0 395
ab0f9c92 396 hMap->Add( particle[i] + "_Sim_Prim_M2_Pt", nptbins, ptbins, m2Bins, m2Min, m2Max, Form("Primary %s (|y| < %0.1f, 0 < #phi < 2#pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)", "m^{2} (GeV^{2}/c^{4})");
6b91e8c0 397
398 // unfolding
399
5b88d60e 400 hMap->Add( particle[i] + "_Response_Matrix", nptbins, ptbins, nptbins, ptbins, particle[i].Data(), "Measured p_{T} (GeV/c)", "True p_{T} (GeV/c)");
6b91e8c0 401
5b88d60e 402 hMap->Add( particle[i] + "_Prim_Response_Matrix", nptbins, ptbins, nptbins, ptbins, Form("Primary %s",particle[i].Data()), "Measured p_{T} (GeV/c)", "True p_{T} (GeV/c)");
6b91e8c0 403
5b88d60e 404 hMap->Add( particle[i] + "_Prim_DiffPt_RecPt", 400,0.,10., 1000, -0.5, 0.5, Form("Primary %s",particle[i].Data()), "p_{T}^{rec} (GeV/c)", "p_{T}^{gen}-p_{T}^{rec} (GeV/c)");
6b91e8c0 405
406 // fake tracks
ab0f9c92 407 hMap->Add( particle[i] + "_Sim_Fake_Pt", nptbins, ptbins, Form("Fake %s (|y| < %0.1f, 0 < #phi < 2#pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)");
6b91e8c0 408
ab0f9c92 409 hMap->Add( particle[i] + "_Sim_Fake_Prim_Pt", nptbins, ptbins, Form("Fake Primary %s (|y| < %0.1f, 0 < #phi < 2#pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)");
6b91e8c0 410
ab0f9c92 411 hMap->Add( particle[i] + "_Sim_Fake_Fdwn_Pt", nptbins, ptbins, Form("Fake Feed-down %s (|y| < %0.1f, 0 < #phi < 2#pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)");
6b91e8c0 412
ab0f9c92 413 hMap->Add( particle[i] + "_Sim_Fake_Mat_Pt", nptbins, ptbins, Form("Fake %s from materials (|y| < %0.1f, 0 < #phi < 2#pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)");
6b91e8c0 414
ab0f9c92 415 hMap->Add( particle[i] + "_Sim_PID_Fake_Pt", nptbins, ptbins, Form("Fake %s after PID (|y| < %0.1f, 0 < #phi < 2#pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)");
6b91e8c0 416 }
417 }
418
419 // generation
420
421 if(simulation)
422 {
77dac0a6 423 for(Int_t i=0; i<2; ++i)
6b91e8c0 424 {
5b88d60e 425 hMap->Add( particle[i] + "_Gen_Prim_P", nptbins, ptbins, Form("Primary %s", particle[i].Data()), "p (GeV/c)");
6b91e8c0 426
5b88d60e 427 hMap->Add( particle[i] + "_Gen_Prim_Pt", nptbins, ptbins, Form("Primary %s", particle[i].Data()), "p_{T} (GeV/c)");
6b91e8c0 428
429 hMap->Add( particle[i] + "_Gen_Prim_Y", 600, -12, 12, Form("Primary %s", particle[i].Data()), "y");
430
431 hMap->Add( particle[i] + "_Gen_Prim_Eta", 600, -12, 12, Form("Primary %s", particle[i].Data()), "#eta");
432
ab0f9c92 433 hMap->Add( particle[i] + "_Gen_Prim_Phi", phiBins, phiMin, phiMax, Form("Primary %s", particle[i].Data()), "#phi (rad)");
6b91e8c0 434
5b88d60e 435 hMap->Add( particle[i] + "_Gen_Prim_PtY", etaBins, etaMin, etaMax, nptbins, ptbins, Form("Primary %s", particle[i].Data()), "y", "p_{T} (GeV/c)");
6b91e8c0 436
437 hMap->Add( particle[i] + "_Gen_Prim_EtaY", etaBins, etaMin, etaMax, etaBins, etaMin, etaMax, Form("Primary %s", particle[i].Data()), "y", "#eta");
438
6b91e8c0 439 // in the phase space within the acceptance
440
5b88d60e 441 hMap->Add( particle[i] + "_Gen_PhS_Prim_P", nptbins, ptbins, Form("Primary %s (mult. events, |y| < %0.1f)",particle[i].Data(),maxY), "p (GeV/c)");
ec499c6d 442
5b88d60e 443 hMap->Add( particle[i] + "_Gen_PhS_Prim_Pt", nptbins, ptbins, Form("Primary %s (mult. events, |y| < %0.1f)",particle[i].Data(),maxY), "p_{T} (GeV/c)");
6b91e8c0 444
5b88d60e 445 hMap->Add( particle[i] + "_Gen_Trig_Prim_Pt", nptbins, ptbins, Form("Primary %s (triggering events, |y| < %0.1f)", particle[i].Data(), maxY), "p_{T} (GeV/c)");
6b91e8c0 446
5b88d60e 447 hMap->Add( particle[i] + "_Gen_Vtx_Prim_Pt", nptbins, ptbins, Form("Primary %s (good vertex, |y| < %0.1f)", particle[i].Data(), maxY), "p_{T} (GeV/c)");
6b91e8c0 448
5b88d60e 449 hMap->Add( particle[i] + "_Gen_NoTrig_Prim_Pt", nptbins, ptbins, Form("Primary %s (non-triggering events, |y| < %0.1f)", particle[i].Data(), maxY), "p_{T} (GeV/c)");
6b91e8c0 450
5b88d60e 451 hMap->Add( particle[i] + "_Gen_NoVtx_Prim_Pt", nptbins, ptbins, Form("Primary %s (no reconstructed vertex, |y| < %0.1f)", particle[i].Data(), maxY), "p_{T} (GeV/c)");
6b91e8c0 452
453 // within the acceptance
454
ab0f9c92 455 hMap->Add( particle[i] + "_Gen_Acc_Prim_P", nptbins, ptbins, Form("Primary %s (|y| < %0.1f and |#eta| < %0.1f)",particle[i].Data(),maxY,maxEta), "p (GeV/c)");
6b91e8c0 456
ab0f9c92 457 hMap->Add( particle[i] + "_Gen_Acc_Prim_Pt", nptbins, ptbins, Form("Primary %s (|y| < %0.1f and |#eta| < %0.1f)",particle[i].Data(),maxY,maxEta), "p_{T} (GeV/c)");
6b91e8c0 458
ab0f9c92 459 hMap->Add( particle[i] + "_Gen_Acc_Prim_Y", etaBins, etaMin, etaMax, Form("Primary %s (|#eta| < %0.1f)",particle[i].Data(),maxEta), "y");
6b91e8c0 460
ab0f9c92 461 hMap->Add( particle[i] + "_Gen_Acc_Prim_Phi", phiBins, phiMin, phiMax, Form("Primary %s (|y|< %0.1f and |#eta| < %0.1f)",particle[i].Data(),maxY,maxEta), "#phi (rad)");
6b91e8c0 462
5b88d60e 463 hMap->Add( particle[i] + "_Gen_Acc_Prim_PtY", etaBins, etaMin, etaMax, nptbins, ptbins, Form("Primary %s",particle[i].Data()), "y", "p_{T} (GeV/c)");
6b91e8c0 464 }
465 }
466
5b88d60e 467 delete [] ptbins;
468
6b91e8c0 469 return hMap;
470}