]>
Commit | Line | Data |
---|---|---|
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 | ||
19 | AliLnHistoMap* CreateHistograms(const TString& species, Bool_t simulation, Double_t maxDCAxy, Double_t maxEta, Double_t maxY, Bool_t heavyIons) | |
20 | { | |
21 | // | |
22 | // Define an create the histograms for the analysis | |
23 | // | |
24 | AliLnHistoMap* hMap = new AliLnHistoMap(); | |
25 | ||
26 | Int_t A = 1; | |
27 | if(species == "Deuteron") A = 2; | |
28 | else if(species == "Triton") A = 3; | |
29 | else if(species == "He3") A = 3; | |
30 | else if(species == "Alpha") A = 4; | |
31 | ||
32 | // pt | |
33 | Int_t ptBins = 100; | |
34 | Double_t ptMin = 0.*A; | |
35 | Double_t ptMax = 10.*A; | |
36 | ||
37 | // eta and rapidity | |
38 | Int_t etaBins = 300; | |
39 | Double_t etaMin = -1.5; | |
40 | Double_t etaMax = 1.5; | |
41 | ||
42 | // phi | |
43 | Int_t phiBins = 180; | |
44 | Double_t phiMin = 0.; | |
45 | Double_t phiMax = 2.*TMath::Pi(); | |
46 | ||
47 | // DCA distribution bin width = 0.001 cm | |
48 | Int_t dcaxyBins = 2.*maxDCAxy/0.001; | |
49 | Double_t dcaxyMin = -maxDCAxy; | |
50 | Double_t dcaxyMax = maxDCAxy; | |
51 | ||
52 | Int_t dcazBins = 1300; | |
53 | Double_t dcazMin = -3.25; | |
54 | Double_t dcazMax = 3.25; | |
55 | ||
56 | // m2 bins | |
57 | Int_t m2Bins = 200; | |
58 | Double_t m2Min = 0; | |
59 | Double_t m2Max = 10; | |
60 | ||
61 | // track multiplicity | |
62 | Int_t ntrkBins = 200; | |
63 | Double_t ntrkMin = 0; | |
64 | Double_t ntrkMax = 200; | |
65 | ||
66 | if(heavyIons) | |
67 | { | |
68 | ntrkBins = 2000; | |
69 | ntrkMin = 0; | |
70 | ntrkMax = 2000; | |
71 | } | |
72 | ||
73 | // stats | |
74 | ||
75 | TH1D* hStats = new TH1D(species + "_Stats", "Stats", 8, 0, 8); | |
76 | ||
77 | hStats->GetXaxis()->SetBinLabel(1,"Events"); | |
78 | hStats->GetXaxis()->SetBinLabel(2,"Trig"); | |
79 | hStats->GetXaxis()->SetBinLabel(3,"Ana"); | |
80 | hStats->GetXaxis()->SetBinLabel(4,"Vtx"); | |
81 | hStats->GetXaxis()->SetBinLabel(5,"Vz"); | |
82 | hStats->GetXaxis()->SetBinLabel(6,"Vxy"); | |
83 | hStats->GetXaxis()->SetBinLabel(7,"VertexerZ"); | |
84 | hStats->GetXaxis()->SetBinLabel(8,"NoPileUp"); | |
85 | ||
86 | hStats->SetStats(0); | |
87 | hMap->Add( species + "_Stats", (TObject*)hStats); | |
88 | ||
89 | if(simulation) | |
90 | { | |
91 | // PID table | |
92 | ||
93 | TH2D* hPidTable = new TH2D(species + "_Stats_PID_Table", "Particle table (Row: PID, Col: MC)", 10,0,10,10,0,10); | |
94 | ||
95 | hPidTable->GetXaxis()->SetBinLabel(1,"e"); | |
96 | hPidTable->GetXaxis()->SetBinLabel(2,"#mu"); | |
97 | hPidTable->GetXaxis()->SetBinLabel(3,"#pi"); | |
98 | hPidTable->GetXaxis()->SetBinLabel(4,"K"); | |
99 | hPidTable->GetXaxis()->SetBinLabel(5,"p"); | |
100 | hPidTable->GetXaxis()->SetBinLabel(6,"d"); | |
101 | hPidTable->GetXaxis()->SetBinLabel(7,"t"); | |
102 | hPidTable->GetXaxis()->SetBinLabel(8,"h"); | |
103 | hPidTable->GetXaxis()->SetBinLabel(9,"#alpha"); | |
104 | hPidTable->GetXaxis()->SetBinLabel(10,"sum"); | |
105 | ||
106 | hPidTable->GetYaxis()->SetBinLabel(1,"e"); | |
107 | hPidTable->GetYaxis()->SetBinLabel(2,"#mu"); | |
108 | hPidTable->GetYaxis()->SetBinLabel(3,"#pi"); | |
109 | hPidTable->GetYaxis()->SetBinLabel(4,"K"); | |
110 | hPidTable->GetYaxis()->SetBinLabel(5,"p"); | |
111 | hPidTable->GetYaxis()->SetBinLabel(6,"d"); | |
112 | hPidTable->GetYaxis()->SetBinLabel(7,"t"); | |
113 | hPidTable->GetYaxis()->SetBinLabel(8,"h"); | |
114 | hPidTable->GetYaxis()->SetBinLabel(9,"#alpha"); | |
115 | hPidTable->GetYaxis()->SetBinLabel(10,"sum"); | |
116 | ||
117 | hPidTable->SetStats(0); | |
118 | hMap->Add( species + "_Stats_PID_Table", (TObject*)hPidTable); | |
119 | } | |
120 | ||
121 | TH1D* hStatsPid = new TH1D(species + "_Stats_PID", "Stats PID", 9, 0, 9); | |
122 | hStatsPid->GetXaxis()->SetBinLabel(1,"e"); | |
123 | hStatsPid->GetXaxis()->SetBinLabel(2,"\\mu"); | |
124 | hStatsPid->GetXaxis()->SetBinLabel(3,"\\pi"); | |
125 | hStatsPid->GetXaxis()->SetBinLabel(4,"K"); | |
126 | hStatsPid->GetXaxis()->SetBinLabel(5,"p"); | |
127 | hStatsPid->GetXaxis()->SetBinLabel(6,"d"); | |
128 | hStatsPid->GetXaxis()->SetBinLabel(7,"t"); | |
129 | hStatsPid->GetXaxis()->SetBinLabel(8,"h"); | |
130 | hStatsPid->GetXaxis()->SetBinLabel(9,"\\alpha"); | |
131 | hStatsPid->SetStats(0); | |
132 | hMap->Add( species + "_Stats_PID", (TObject*)hStatsPid); | |
133 | ||
134 | // detector signals | |
135 | ||
136 | hMap->Add( species + "_ITS_dEdx_P", 1000, 0.001, 10., 1500, 0.001, 1500., "", "p/Z (GeV/c)", "dE/dx"); | |
137 | hMap->Add( species + "_TPC_dEdx_P", 1000, 0.001, 10., 1500, 0.001, 1500., "", "p/Z (GeV/c)", "dE/dx"); | |
138 | hMap->Add( species + "_TOF_Beta_P", 1000, 0.001, 10., 1200, 0.001, 1.2, "", "p/Z (GeV/c)", "#beta"); | |
139 | hMap->Add( species + "_TOF_Mass_P", 1000, 0.001, 10., 500, 0.01, 5., "", "p/Z (GeV/c)", "Mass (GeV/c^{2})"); | |
140 | ||
141 | // TrackCuts | |
142 | ||
143 | hMap->Add( species + "_TrackCuts_DCAxy", 200, -4, 4, "Track cuts", "DCA_{xy} (cm)"); | |
144 | hMap->Add( species + "_TrackCuts_DCAz", 200, -6, 6, "Track cuts", "DCA_{z} (cm)"); | |
145 | hMap->Add( species + "_TrackCuts_NSigma", 200, 0, 10, "Track cuts", "N_{#sigma}"); | |
146 | ||
147 | hMap->Add( species + "_TrackCuts_ITSchi2PerCls", 200, 0, 40, "Track cuts", "ITS #chi^{2} / Cluster"); | |
148 | ||
149 | hMap->Add( species + "_TrackCuts_TPCncls", 200, 0, 200, "Track cuts", "TPC clusters"); | |
150 | hMap->Add( species + "_TrackCuts_TPCclsOverF", 200, 0, 2, "Track cuts", "TPC clusters/Findable"); | |
151 | hMap->Add( species + "_TrackCuts_TPCxRows", 200, 0, 200, "Track cuts", "TPC crossed rows"); | |
152 | hMap->Add( species + "_TrackCuts_TPCchi2PerCls", 200, 0, 20, "Track cuts", "TPC #chi^{2} / Cluster"); | |
153 | hMap->Add( species + "_TrackCuts_TPCchi2Global", 200, -2, 38, "Track cuts", "#chi^{2} of constrained TPC vs global track"); | |
154 | ||
155 | hMap->Add( species + "_Before_Phi_Theta", 180, 0, TMath::Pi(), 360, 0, 2.*TMath::Pi(), "Global tracks (before track cuts)", "#theta (rad)", "#phi (rad)"); | |
156 | ||
157 | hMap->Add( species + "_After_Phi_Theta", 180, 0, TMath::Pi(), 360, 0, 2.*TMath::Pi(), "Global tracks (after track cuts)", "#theta (rad)", "#phi (rad)"); | |
158 | ||
159 | // multiplicity | |
160 | ||
161 | hMap->Add( species + "_Event_Ntrk", ntrkBins, ntrkMin, ntrkMax, "Track multiplicity (all events)", "N_{trk}", "Events"); | |
162 | hMap->Add( species + "_Ana_Event_Ntrk", ntrkBins, ntrkMin, ntrkMax, "Track multiplicity", "N_{trk}", "Events"); | |
163 | ||
164 | if(simulation) | |
165 | { | |
166 | hMap->Add( species + "_Ana_Event_Nch_Ntrk", 200, 0., 200., 200, 0., 200., "Track multiplicity", "N_{trk}", "N_{ch}"); | |
167 | } | |
168 | ||
169 | hMap->Add( species + "_Vertex_XZ", 500, -50., 50., 800, -1., 1., "Primary Vertex", "Z (cm)", "X (cm)"); | |
170 | hMap->Add( species + "_Vertex_YZ", 500, -50., 50., 800, -1., 1., "Primary Vertex", "Z (cm)", "Y (cm)"); | |
171 | hMap->Add( species + "_Vertex_YX", 800, -1., 1., 800, -1., 1., "Primary Vertex", "X (cm)", "Y (cm)"); | |
172 | ||
173 | hMap->Add( species + "_Ana_Vertex_XZ", 500, -50., 50., 800, -1., 1., "Primary Vertex", "Z (cm)", "X (cm)"); | |
174 | hMap->Add( species + "_Ana_Vertex_YZ", 500, -50., 50., 800, -1., 1., "Primary Vertex", "Z (cm)", "Y (cm)"); | |
175 | hMap->Add( species + "_Ana_Vertex_YX", 800, -1., 1., 800, -1., 1., "Primary Vertex", "X (cm)", "Y (cm)"); | |
176 | ||
177 | if(heavyIons) | |
178 | { | |
179 | hMap->Add( species + "_V0_Mult", 1000, 0, 100000., "Corrected V0 Multiplicity", "V0M", "Events"); | |
180 | hMap->Add( species + "_V0_Scaled_Mult", 1000, 0, 10000., "Corrected Scaled V0 Multiplicity", "V0SM", "Events"); | |
181 | ||
182 | hMap->Add( species + "_Ana_V0_Mult", 1000, 0, 100000., "Corrected V0 Multiplicity (after centrality sel.)", "V0M", "Events"); | |
183 | hMap->Add( species + "_Ana_V0_Scaled_Mult", 1000, 0, 10000., "Corrected Scaled V0 Multiplicity (after centrality sel.)", "V0SM", "Events"); | |
184 | } | |
185 | ||
186 | // positive and negative | |
187 | ||
188 | TString particle[] = { Form("Anti%s",species.Data()), species }; | |
189 | ||
190 | for(Int_t i=0; i<2; ++i) | |
191 | { | |
192 | // pid with TOF | |
193 | ||
194 | hMap->Add( particle[i] + "_PID_M2_Pt", ptBins, ptMin, ptMax, m2Bins, m2Min, m2Max, Form("%s candidate",particle[i].Data()), "p_{T} (GeV/c)", "m^{2} (GeV^{2}/c^{4})"); | |
195 | ||
196 | // as a function of momentum | |
197 | hMap->Add( particle[i] + "_PID_DCAxy_Pt", ptBins, ptMin, ptMax, dcaxyBins, dcaxyMin, dcaxyMax, Form("%s candidate",particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)"); | |
198 | ||
199 | hMap->Add( particle[i] + "_PID_DCAz_Pt", ptBins, ptMin, ptMax, dcazBins, dcazMin, dcazMax, Form("%s candidate",particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{z} (cm)"); | |
200 | ||
201 | hMap->Add( particle[i] + "_PID_NSigma_Pt", ptBins, ptMin, ptMax, 200, 0., 10., Form("%s candidate",particle[i].Data()), "p_{T} (GeV/c)", "N\\sigma"); | |
202 | ||
203 | if(simulation) | |
204 | { | |
205 | hMap->Add( particle[i] + "_Sim_PID_M2_Pt", ptBins, ptMin, ptMax, m2Bins, m2Min, m2Max, Form("%s after PID", particle[i].Data()), "p_{T} (GeV/c)", "m^{2} (GeV^{2}/c^{4})"); | |
206 | ||
207 | hMap->Add( particle[i] + "_Sim_Prim_DCAxy_Pt", ptBins, ptMin, ptMax, dcaxyBins, dcaxyMin, dcaxyMax, Form("Primary %s", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)"); | |
208 | ||
209 | hMap->Add( particle[i] + "_Sim_Fdwn_DCAxy_Pt", ptBins, ptMin, ptMax, dcaxyBins, dcaxyMin, dcaxyMax, Form("Feed-down %s", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)"); | |
210 | ||
211 | hMap->Add( particle[i] + "_Sim_Mat_DCAxy_Pt", ptBins, ptMin, ptMax, dcaxyBins, dcaxyMin, dcaxyMax, Form("%s from materials", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)"); | |
212 | ||
213 | // primaries | |
214 | hMap->Add( particle[i] + "_Sim_PID_Prim_DCAxy_Pt", ptBins, ptMin, ptMax, dcaxyBins, dcaxyMin, dcaxyMax, Form("Primary %s after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)"); | |
215 | ||
216 | hMap->Add( particle[i] + "_Sim_PID_Prim_DCAz_Pt", ptBins, ptMin, ptMax, dcazBins, dcazMin, dcazMax, Form("Primary %s after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{z} (cm)"); | |
217 | ||
218 | hMap->Add( particle[i] + "_Sim_PID_Prim_NSigma_Pt", ptBins, ptMin, ptMax, 200, 0., 10., Form("Primary %s after PID", particle[i].Data()), "p_{T} (GeV/c)", "N\\sigma"); | |
219 | ||
220 | // feed-down | |
221 | hMap->Add( particle[i] + "_Sim_PID_Fdwn_DCAxy_Pt", ptBins, ptMin, ptMax, dcaxyBins, dcaxyMin, dcaxyMax, Form("Feed-down %s after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)"); | |
222 | ||
223 | hMap->Add( particle[i] + "_Sim_PID_Fdwn_DCAz_Pt", ptBins, ptMin, ptMax, dcazBins, dcazMin, dcazMax, Form("Feed-down %s after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{z} (cm)"); | |
224 | ||
225 | hMap->Add( particle[i] + "_Sim_PID_Fdwn_NSigma_Pt", ptBins, ptMin, ptMax, 200, 0., 10., Form("Feed-down %s after PID", particle[i].Data()), "p_{T} (GeV/c)", "N\\sigma"); | |
226 | ||
227 | // secondaries from materials | |
228 | hMap->Add( particle[i] + "_Sim_PID_Mat_DCAxy_Pt", ptBins, ptMin, ptMax, dcaxyBins, dcaxyMin, dcaxyMax, Form("%s from materials after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)"); | |
229 | ||
230 | hMap->Add( particle[i] + "_Sim_PID_Mat_DCAz_Pt", ptBins, ptMin, ptMax, dcazBins, dcazMin, dcazMax, Form("%s from materials after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{z} (cm)"); | |
231 | ||
232 | hMap->Add( particle[i] + "_Sim_PID_Mat_NSigma_Pt", ptBins, ptMin, ptMax, 200, 0., 10., Form("%s from materials after PID", particle[i].Data()), "p_{T} (GeV/c)", "N\\sigma"); | |
233 | ||
234 | // fake tracks | |
235 | hMap->Add( particle[i] + "_Sim_PID_Fake_Prim_DCAxy_Pt", ptBins, ptMin, ptMax, dcaxyBins, dcaxyMin, dcaxyMax, Form("Fake Primary %s after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)"); | |
236 | ||
237 | hMap->Add( particle[i] + "_Sim_PID_Fake_Fdwn_DCAxy_Pt", ptBins, ptMin, ptMax, dcaxyBins, dcaxyMin, dcaxyMax, Form("Fake feed-down %s after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)"); | |
238 | ||
239 | hMap->Add( particle[i] + "_Sim_PID_Fake_Mat_DCAxy_Pt", ptBins, ptMin, ptMax, dcaxyBins, dcaxyMin, dcaxyMax, Form("Fake %s from materials after PID", particle[i].Data()), "p_{T} (GeV/c)", "sign #times DCA_{xy} (cm)"); | |
240 | } | |
241 | ||
242 | // identification | |
243 | ||
244 | hMap->Add( particle[i] + "_PID_ITSdEdx_P", 1000, 1.e-3, 10., 1500, 1.e-3, 1500., Form("%s candidate",particle[i].Data()), "p (GeV/c)", "dE/dx"); | |
245 | ||
246 | hMap->Add( particle[i] + "_PID_TPCdEdx_P", 1000, 1.e-3, 10., 1500, 1.e-3, 1500., Form("%s candidate",particle[i].Data()), "p_{TPC} (GeV/c)", "dE/dx"); | |
247 | ||
248 | hMap->Add( particle[i] + "_PID_Beta_P", 1000, 1.e-3, 10., 1200, 1.e-3, 1.2, Form("%s candidate",particle[i].Data()), "p_{TOF} (GeV/c)", "\\beta"); | |
249 | ||
250 | hMap->Add( particle[i] + "_PID_Mass_P", 1000, 1.e-3, 10., 500, 0.01, 5., Form("%s candidate",particle[i].Data()), "p_{TOF} (GeV/c)", "m (GeV/c^{2})"); | |
251 | ||
252 | if(simulation) | |
253 | { | |
254 | hMap->Add( particle[i] + "_Sim_PID_Mass", 500, 0.01, 5., Form("%s after PID", particle[i].Data()), "m (GeV/c^{2})"); | |
255 | } | |
256 | ||
257 | // results | |
258 | ||
259 | hMap->Add( particle[i] + "_PID_Pt_Y", etaBins, etaMin, etaMax, ptBins, ptMin, ptMax, Form("%s candidate",particle[i].Data()), "y", "p_{T} (GeV/c)"); | |
260 | ||
261 | hMap->Add( particle[i] + "_PID_Pt", ptBins, ptMin, ptMax, Form("%s candidate (|y| < %0.1f, 0 < \\phi < 2\\pi)", particle[i].Data(),maxY), "p_{T} (GeV/c)"); | |
262 | ||
263 | hMap->Add( Form("%s_PID_Y",particle[i].Data()), etaBins, etaMin, etaMax, Form("%s candidate (p_{T} > 0, 0 < \\phi < 2\\pi)",particle[i].Data()), "y"); | |
264 | ||
265 | hMap->Add( particle[i] + "_PID_Phi", phiBins, phiMin, phiMax, Form("%s candidate (p_{T} > 0, |y| < %0.1f)",particle[i].Data(),maxY), "\\phi (rad)"); | |
266 | ||
267 | if(simulation) | |
268 | { | |
269 | hMap->Add( particle[i] + "_Sim_Pt", ptBins, ptMin, ptMax, Form("%s (|y| < %0.1f, 0 < \\phi < 2\\pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)"); | |
270 | ||
271 | hMap->Add( particle[i] + "_Sim_Prim_Pt", ptBins, ptMin, ptMax, Form("Primary %s (|y| < %0.1f, 0 < \\phi < 2\\pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)"); | |
272 | ||
273 | 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)"); | |
274 | ||
275 | hMap->Add( particle[i] + "_Sim_Prim_Y", etaBins, etaMin, etaMax, Form("Primary %s (p_{T} > 0, 0 < \\phi < 2\\pi)",particle[i].Data()), "y"); | |
276 | ||
277 | hMap->Add( particle[i] + "_Sim_Fdwn_Pt", ptBins, ptMin, ptMax, Form("Feed-down %s (|y| < %0.1f, 0 < \\phi < 2\\pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)"); | |
278 | ||
279 | hMap->Add( particle[i] + "_Sim_Mat_Pt", ptBins, ptMin, ptMax, Form("%s from materials (|y| < %0.1f, 0 < \\phi < 2\\pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)"); | |
280 | ||
281 | hMap->Add( particle[i] + "_Sim_PID_Prim_Pt", ptBins, ptMin, ptMax, Form("Primary %s after PID (|y| < %0.1f, 0 < \\phi < 2\\pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)"); | |
282 | ||
283 | hMap->Add( particle[i] + "_Sim_PID_Pt", ptBins, ptMin, ptMax, Form("%s after PID (|y| < %0.1f, 0 < \\phi < 2\\pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)"); | |
284 | ||
285 | hMap->Add( particle[i] + "_Sim_PID_Prim_R", 200, 0., 200., Form("%s after PID (|y| < %0.1f, 0 < \\phi < 2\\pi)",particle[i].Data(),maxY), "R_{xyz} (cm)"); | |
286 | ||
287 | hMap->Add( particle[i] + "_Sim_PtY", etaBins, etaMin, etaMax, ptBins, ptMin, ptMax, particle[i].Data(), "y", "p_{T} (GeV/c)"); | |
288 | ||
289 | hMap->Add( particle[i] + "_Sim_Prim_M2_P", ptBins, ptMin, ptMax, 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})"); | |
290 | ||
291 | hMap->Add( particle[i] + "_Sim_Prim_M2_Pt", ptBins, ptMin, ptMax, 100, 0., 10., Form("Primary %s (|y| < %0.1f, 0 < \\phi < 2\\pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)", "m^{2} (GeV^{2}/c^{4})"); | |
292 | ||
293 | // unfolding | |
294 | ||
295 | hMap->Add( particle[i] + "_Response_Matrix", ptBins, ptMin, ptMax, ptBins, ptMin, ptMax, particle[i].Data(), "Measured p_{T} (GeV/c)", "True p_{T} (GeV/c)"); | |
296 | ||
297 | hMap->Add( particle[i] + "_Prim_Response_Matrix", ptBins, ptMin, ptMax, ptBins, ptMin, ptMax, Form("Primary %s",particle[i].Data()), "Measured p_{T} (GeV/c)", "True p_{T} (GeV/c)"); | |
298 | ||
299 | hMap->Add( particle[i] + "_Prim_DiffPt_RecPt", ptBins, ptMin, ptMax, 1000, -0.5, 0.5, Form("Primary %s",particle[i].Data()), "p_{T}^{rec} (GeV/c)", "p_{T}^{gen}-p_{T}^{rec} (GeV/c)"); | |
300 | ||
301 | // fake tracks | |
302 | hMap->Add( particle[i] + "_Sim_Fake_Pt", ptBins, ptMin, ptMax, Form("Fake %s (|y| < %0.1f, 0 < \\phi < 2\\pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)"); | |
303 | ||
304 | hMap->Add( particle[i] + "_Sim_Fake_Prim_Pt", ptBins, ptMin, ptMax, Form("Fake Primary %s (|y| < %0.1f, 0 < \\phi < 2\\pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)"); | |
305 | ||
306 | hMap->Add( particle[i] + "_Sim_Fake_Fdwn_Pt", ptBins, ptMin, ptMax, Form("Fake Feed-down %s (|y| < %0.1f, 0 < \\phi < 2\\pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)"); | |
307 | ||
308 | hMap->Add( particle[i] + "_Sim_Fake_Mat_Pt", ptBins, ptMin, ptMax, Form("Fake %s from materials (|y| < %0.1f, 0 < \\phi < 2\\pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)"); | |
309 | ||
310 | hMap->Add( particle[i] + "_Sim_PID_Fake_Pt", ptBins, ptMin, ptMax, Form("Fake %s after PID (|y| < %0.1f, 0 < \\phi < 2\\pi)",particle[i].Data(),maxY), "p_{T} (GeV/c)"); | |
311 | } | |
312 | } | |
313 | ||
314 | // generation | |
315 | ||
316 | if(simulation) | |
317 | { | |
318 | for(int i=0; i<2; ++i) | |
319 | { | |
320 | hMap->Add( particle[i] + "_Gen_Prim_P", ptBins, ptMin, ptMax, Form("Primary %s", particle[i].Data()), "p (GeV/c)"); | |
321 | ||
322 | hMap->Add( particle[i] + "_Gen_Prim_Pt", ptBins, ptMin, ptMax, Form("Primary %s", particle[i].Data()), "p_{T} (GeV/c)"); | |
323 | ||
324 | hMap->Add( particle[i] + "_Gen_Prim_Y", 600, -12, 12, Form("Primary %s", particle[i].Data()), "y"); | |
325 | ||
326 | hMap->Add( particle[i] + "_Gen_Prim_Eta", 600, -12, 12, Form("Primary %s", particle[i].Data()), "#eta"); | |
327 | ||
328 | hMap->Add( particle[i] + "_Gen_Prim_Phi", phiBins, phiMin, phiMax, Form("Primary %s", particle[i].Data()), "\\phi (rad)"); | |
329 | ||
330 | hMap->Add( particle[i] + "_Gen_Prim_PtY", etaBins, etaMin, etaMax, ptBins, ptMin, ptMax, Form("Primary %s", particle[i].Data()), "y", "p_{T} (GeV/c)"); | |
331 | ||
332 | hMap->Add( particle[i] + "_Gen_Prim_EtaY", etaBins, etaMin, etaMax, etaBins, etaMin, etaMax, Form("Primary %s", particle[i].Data()), "y", "#eta"); | |
333 | ||
334 | // after multiplicity cut | |
335 | ||
336 | hMap->Add( particle[i] + "_Gen_Mult_Prim_PtY", etaBins, etaMin, etaMax, ptBins, ptMin, ptMax, Form("Primary %s", particle[i].Data()), "y", "p_{T} (GeV/c)"); | |
337 | ||
338 | // in the phase space within the acceptance | |
339 | ||
340 | hMap->Add( particle[i] + "_Gen_PhS_Prim_Pt", ptBins, ptMin, ptMax, Form("Primary %s (all events, |y| < %0.1f)",particle[i].Data(),maxY), "p_{T} (GeV/c)"); | |
341 | ||
342 | hMap->Add( particle[i] + "_Gen_Trig_Prim_Pt", ptBins, ptMin, ptMax, Form("Primary %s (triggered events, |y| < %0.1f)", particle[i].Data(), maxY), "p_{T} (GeV/c)"); | |
343 | ||
344 | hMap->Add( particle[i] + "_Gen_Vtx_Prim_Pt", ptBins, ptMin, ptMax, Form("Primary %s (good vertex, |y| < %0.1f)", particle[i].Data(), maxY), "p_{T} (GeV/c)"); | |
345 | ||
346 | hMap->Add( particle[i] + "_Gen_NoTrig_Prim_Pt", ptBins, ptMin, ptMax, Form("Primary %s (no triggered events, |y| < %0.1f)", particle[i].Data(), maxY), "p_{T} (GeV/c)"); | |
347 | ||
348 | hMap->Add( particle[i] + "_Gen_NoVtx_Prim_Pt", ptBins, ptMin, ptMax, Form("Primary %s (no reconstructed vertex, |y| < %0.1f)", particle[i].Data(), maxY), "p_{T} (GeV/c)"); | |
349 | ||
350 | // within the acceptance | |
351 | ||
352 | hMap->Add( particle[i] + "_Gen_Acc_Prim_P", ptBins, ptMin, ptMax, Form("Primary %s (|y| < %0.1f and |\\eta| < %0.1f)",particle[i].Data(),maxY,maxEta), "p (GeV/c)"); | |
353 | ||
354 | hMap->Add( particle[i] + "_Gen_Acc_Prim_Pt", ptBins, ptMin, ptMax, Form("Primary %s (|y| < %0.1f and |\\eta| < %0.1f)",particle[i].Data(),maxY,maxEta), "p_{T} (GeV/c)"); | |
355 | ||
356 | hMap->Add( particle[i] + "_Gen_Acc_Prim_Y", etaBins, etaMin, etaMax, Form("Primary %s (|\\eta| < %0.1f)",particle[i].Data(),maxEta), "y"); | |
357 | ||
358 | 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)"); | |
359 | ||
360 | hMap->Add( particle[i] + "_Gen_Acc_Prim_PtY", etaBins, etaMin, etaMax, ptBins, ptMin, ptMax, Form("Primary %s",particle[i].Data()), "y", "p_{T} (GeV/c)"); | |
361 | } | |
362 | } | |
363 | ||
364 | return hMap; | |
365 | } |