Belle II Software development
DQMHistAnalysisMiraBelle.cc
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9// Own header.
10#include <dqm/analysis/modules/DQMHistAnalysisMiraBelle.h>
11
12#include <TROOT.h>
13#include <TF1.h>
14
15using namespace std;
16using namespace Belle2;
17
18//-----------------------------------------------------------------
19// Register module
20//-----------------------------------------------------------------
21
22REG_MODULE(DQMHistAnalysisMiraBelle);
23
26{
27 // set module description (e.g. insert text)
28 setDescription("Modify and analyze the data quality histograms of MiraBelle");
30 addParam("scale_dst", m_scale_dst, "Scale factor signal/sideband", 0.09375);
31 addParam("m_reference_hadb", m_reference_hadb, "reference for hadronb2_tight bhabha ratio", 0.193);
32 addParam("m_reference_mumu", m_reference_mumu, "reference for mumu inv mass", 10.568);
33}
34
38
40{
41 gROOT->cd();
42
43 //mon_mumu = new Belle2::MonitoringObject("mumu");
47 //bhabha,hadrons
49 mon_hadron = getMonitoringObject("hadronb2");
50
51 // make cavases to be added to MonitoringObject
52 mumu_main = new TCanvas("mumu_main", "mumu_main", 0, 0, 800, 600);
53 mumu_resolution = new TCanvas("mumu_resolution", "mumu_resolution", 0, 0, 800, 600);
54 mumu_muon_val = new TCanvas("mumu_muon_val", "mumu_muon_val", 0, 0, 400, 400);
55 dst_mass = new TCanvas("dst_mass", "dst_mass", 0, 0, 1200, 400);
56 dst_pi_val = new TCanvas("dst_pi_val", "dst_pi_val", 0, 0, 800, 400);
57 dst_k_val = new TCanvas("dst_k_val", "dst_k_val", 0, 0, 800, 400);
58 //bhabha,hadrons
59 bhabha_main = new TCanvas("bhabha_main", "bhabha_main", 0, 0, 800, 600);
60 bhabha_resolution = new TCanvas("bhabha_resolution", "bhabha_resolution", 0, 0, 800, 600);
61 hadron_main = new TCanvas("hadron_main", "hadron_main", 0, 0, 800, 600);
62
63 // add canvases to MonitoringObject
64 mon_mumu->addCanvas(mumu_main);
65 mon_mumu->addCanvas(mumu_resolution);
66 mon_mumu->addCanvas(mumu_muon_val);
67 mon_dst->addCanvas(dst_mass);
68 mon_dst->addCanvas(dst_pi_val);
69 mon_dst->addCanvas(dst_k_val);
70 //bhabha,hadrons
71 mon_bhabha->addCanvas(bhabha_main);
72 mon_bhabha->addCanvas(bhabha_resolution);
73 mon_bhabha->addCanvas(hadron_main);
74
75 B2DEBUG(20, "DQMHistAnalysisMiraBelle: initialized.");
76
77}
78
80{
81 B2DEBUG(20, "DQMHistAnalysisMiraBelle: beginRun called.");
82}
83
85{
86 B2DEBUG(20, "DQMHistAnalysisOutputMiraBelle: event called.");
87}
88
90{
91 // ========== mumutight
92 // get existing histograms produced by DQM modules
93 auto* hist_npxd = findHist("PhysicsObjectsMiraBelle/hist_npxd");
94 auto* hist_nsvd = findHist("PhysicsObjectsMiraBelle/hist_nsvd");
95 auto* hist_ncdc = findHist("PhysicsObjectsMiraBelle/hist_ncdc");
96 auto* hist_topdig = findHist("PhysicsObjectsMiraBelle/hist_topdig");
97 auto* hist_DetPhotonARICH = findHist("PhysicsObjectsMiraBelle/hist_DetPhotonARICH");
98 auto* hist_klmTotalHits = findHist("PhysicsObjectsMiraBelle/hist_klmTotalHits");
99 auto* hist_klmClusterLayers = findHist("PhysicsObjectsMiraBelle/hist_klmClusterLayers");
100 auto* hist_dD0 = findHist("PhysicsObjectsMiraBelle/hist_dD0");
101 auto* hist_dZ0 = findHist("PhysicsObjectsMiraBelle/hist_dZ0");
102 auto* hist_dPtcms = findHist("PhysicsObjectsMiraBelle/hist_dPtcms");
103 auto* hist_Pval = findHist("PhysicsObjectsMiraBelle/hist_Pval");
104 auto* hist_nExtraCDCHits = findHist("PhysicsObjectsMiraBelle/hist_nExtraCDCHits");
105 auto* hist_nECLClusters = findHist("PhysicsObjectsMiraBelle/hist_nECLClusters");
106 auto* hist_muid = findHist("PhysicsObjectsMiraBelle/hist_muid");
107 auto* hist_inv_p = findHist("PhysicsObjectsMiraBelle/hist_inv_p");
108 auto* hist_ndf = findHist("PhysicsObjectsMiraBelle/hist_ndf");
109 auto* hist_D0 = findHist("PhysicsObjectsMiraBelle/hist_D0");
110 auto* hist_Z0 = findHist("PhysicsObjectsMiraBelle/hist_Z0");
111 auto* hist_theta = findHist("PhysicsObjectsMiraBelle/hist_theta");
112 auto* hist_Phi0 = findHist("PhysicsObjectsMiraBelle/hist_Phi0");
113 auto* hist_Pt = findHist("PhysicsObjectsMiraBelle/hist_Pt");
114 auto* hist_Mom = findHist("PhysicsObjectsMiraBelle/hist_Mom");
115 auto* hist_klmTotalBarrelHits = findHist("PhysicsObjectsMiraBelle/hist_klmTotalBarrelHits");
116 auto* hist_klmTotalEndcapHits = findHist("PhysicsObjectsMiraBelle/hist_klmTotalEndcapHits");
117 auto* hist_dPhicms = findHist("PhysicsObjectsMiraBelle/hist_dPhicms");
118 auto* hist_hltEff = findHist("PhysicsObjectsMiraBelle/hist_hltEff");
119
120 if (hist_npxd == nullptr) {
121 B2ERROR("Can not find the hist_npxd histogram!");
122 return;
123 }
124 if (hist_nsvd == nullptr) {
125 B2ERROR("Can not find the hist_nsvd histogram!");
126 return;
127 }
128 if (hist_ncdc == nullptr) {
129 B2ERROR("Can not find the hist_ncdc histogram!");
130 return;
131 }
132 if (hist_topdig == nullptr) {
133 B2ERROR("Can not find the hist_topdig histogram!");
134 return;
135 }
136 if (hist_DetPhotonARICH == nullptr) {
137 B2ERROR("Can not find the hist_DetPhotonARICH histogram!");
138 return;
139 }
140 if (hist_klmTotalHits == nullptr) {
141 B2ERROR("Can not find the hist_klmTotalHits histogram!");
142 return;
143 }
144 if (hist_klmClusterLayers == nullptr) {
145 B2ERROR("Can not find the hist_klmClusterLayers histogram!");
146 return;
147 }
148 if (hist_dD0 == nullptr) {
149 B2ERROR("Can not find the hist_dD0 histogram!");
150 return;
151 }
152 if (hist_dZ0 == nullptr) {
153 B2ERROR("Can not find the hist_dZ0 histogram!");
154 return;
155 }
156 if (hist_dPtcms == nullptr) {
157 B2ERROR("Can not find the hist_dPtcms histogram!");
158 return;
159 }
160 if (hist_Pval == nullptr) {
161 B2ERROR("Can not find the hist_Pval histogram!");
162 return;
163 }
164 if (hist_nExtraCDCHits == nullptr) {
165 B2ERROR("Can not find the hist_nExtraCDCHits histogram!");
166 return;
167 }
168 if (hist_nECLClusters == nullptr) {
169 B2ERROR("Can not find the hist_nECLClusters histogram!");
170 return;
171 }
172 if (hist_muid == nullptr) {
173 B2ERROR("Can not find the hist_muid histogram!");
174 return;
175 }
176 if (hist_inv_p == nullptr) {
177 B2ERROR("Can not find the hist_inv_p histogram!");
178 return;
179 }
180 if (hist_ndf == nullptr) {
181 B2ERROR("Can not find the hist_ndf histogram!");
182 return;
183 }
184 if (hist_D0 == nullptr) {
185 B2ERROR("Can not find the hist_D0 histogram!");
186 return;
187 }
188 if (hist_Z0 == nullptr) {
189 B2ERROR("Can not find the hist_Z0 histogram!");
190 return;
191 }
192 if (hist_theta == nullptr) {
193 B2ERROR("Can not find the hist_theta histogram!");
194 return;
195 }
196 if (hist_Phi0 == nullptr) {
197 B2ERROR("Can not find the hist_Phi0 histogram!");
198 return;
199 }
200 if (hist_Pt == nullptr) {
201 B2ERROR("Can not find the hist_Pt histogram!");
202 return;
203 }
204 if (hist_Mom == nullptr) {
205 B2ERROR("Can not find the hist_Mom histogram!");
206 return;
207 }
208 if (hist_klmTotalBarrelHits == nullptr) {
209 B2ERROR("Can not find the hist_klmTotalBarrelHits histogram!");
210 return;
211 }
212 if (hist_klmTotalEndcapHits == nullptr) {
213 B2ERROR("Can not find the hist_klmTotalEndcapHits histogram!");
214 return;
215 }
216 if (hist_dPhicms == nullptr) {
217 B2ERROR("Can not find the hist_dPhicms histogram!");
218 return;
219 }
220 if (hist_hltEff == nullptr) {
221 B2ERROR("Can not find the hist_hltEff histogram!");
222 return;
223 }
224
225
226 // Make TCanvases
227 // --- Mumu_Main
228 mumu_main->Divide(4, 3);
229 mumu_main->cd(1); hist_theta->Draw();
230 mumu_main->cd(2); hist_Phi0->Draw();
231 mumu_main->cd(3); hist_Mom->Draw();
232 mumu_main->cd(4); hist_Pt->Draw();
233 mumu_main->cd(5); hist_npxd->Draw();
234 mumu_main->cd(6); hist_nsvd->Draw();
235 mumu_main->cd(7); hist_ncdc->Draw();
236 mumu_main->cd(8); hist_topdig->Draw();
237 mumu_main->cd(9); hist_DetPhotonARICH->Draw();
238 mumu_main->cd(10); hist_klmClusterLayers->Draw();
239 mumu_main->cd(11); hist_nExtraCDCHits->Draw();
240 mumu_main->cd(12); hist_nECLClusters->Draw();
241 // --- Mumu_Resolution
242 mumu_resolution->Divide(3, 3);
243 mumu_resolution->cd(1); hist_inv_p->Draw();
244 mumu_resolution->cd(2); hist_dD0->Draw();
245 mumu_resolution->cd(3); hist_dZ0->Draw();
246 mumu_resolution->cd(4); hist_dPtcms->Draw();
247 mumu_resolution->cd(5); hist_dPhicms->Draw();
248 mumu_resolution->cd(6); hist_nECLClusters->Draw();
249 mumu_resolution->cd(7); hist_nExtraCDCHits->Draw();
250 mumu_resolution->cd(8); hist_ndf->Draw();
251 mumu_muon_val->Divide(2, 2);
252 // --- Muon variables
253 mumu_muon_val->cd(1); hist_muid->Draw();
254 mumu_muon_val->cd(2); hist_Pval->Draw();
255 mumu_muon_val->cd(3); hist_theta->Draw();
256 mumu_muon_val->cd(4); hist_Phi0->Draw();
257
258 // calculate the values of monitoring variables
259 double mean_npxd = hist_npxd->GetMean();
260 double mean_nsvd = hist_nsvd->GetMean();
261 double mean_ncdc = hist_ncdc->GetMean();
262 double mean_nklmlayer = hist_klmClusterLayers->GetMean();
263 double mean_nklm = hist_klmTotalHits->GetMean();
264 double mean_nbklm = hist_klmTotalBarrelHits->GetMean();
265 double mean_neklm = hist_klmTotalEndcapHits->GetMean();
266 double mean_topdig = hist_topdig->GetMean();
267 double mean_parich = hist_DetPhotonARICH->GetMean();
268 double mean_ncdc_ex = hist_nExtraCDCHits->GetMean();
269 double mean_necl = hist_nECLClusters->GetMean();
270 double mean_muid = hist_muid->GetMean();
271 double mean_d0 = hist_D0->GetMean();
272 double mean_z0 = hist_Z0->GetMean();
273 double mean_pval = hist_Pval->GetMean();
274 double mean_ndf = hist_ndf->GetMean();
275 double dif_ndf_ncdc = mean_ndf - mean_ncdc;
276 double mean_dd0 = hist_dD0->GetMean();
277 double mean_dz0 = hist_dZ0->GetMean();
278 double mean_dpt = hist_dPtcms->GetMean();
279 double rms_dd0 = hist_dD0->GetRMS();
280 double rms_dz0 = hist_dZ0->GetRMS();
281 double rms_dpt = hist_dPtcms->GetRMS();
282 double sigma68_dd0 = getSigma68(hist_dD0);
283 double sigma68_dz0 = getSigma68(hist_dZ0);
284 double sigma68_dpt = getSigma68(hist_dPtcms);
285 int ntot = hist_nsvd->GetEntries();
286 double neve_mumu = ntot;
287 double goodmu_frac = -1.;
288 double pval_frac_0 = -1.;
289 double pval_frac_1 = -1.;
290 double nocdc_frac = -1.;
291 double notop_frac = -1.;
292 double noarich_frac = -1.;
293 double muidcontent = hist_muid->GetBinContent(1);
294 double goodmu_o_badmu = -1.;
295 if (muidcontent != 0) {
296 goodmu_o_badmu = hist_muid->GetBinContent(20) / muidcontent;
297 } else {
298 goodmu_o_badmu = 0.0;
299 }
300 double pval_more95 = 0.0;
301 double pval_less05 = 0.0;
302 for (int i = 95; i < 100; i++) pval_more95 += hist_Pval->GetBinContent(i + 1);
303 for (int i = 0; i < 5; i++) pval_less05 += hist_Pval->GetBinContent(i + 1);
304 if (neve_mumu != 0) {
305 goodmu_frac = hist_muid->GetBinContent(20) / neve_mumu;
306 pval_frac_0 = pval_less05 / neve_mumu;
307 pval_frac_1 = pval_more95 / neve_mumu;
308 nocdc_frac = hist_ncdc->GetBinContent(1) / neve_mumu;
309 notop_frac = hist_topdig->GetBinContent(1) / neve_mumu;
310 noarich_frac = hist_DetPhotonARICH->GetBinContent(1) / neve_mumu;
311 } else {
312 goodmu_frac = 0.0;
313 pval_frac_0 = 0.0;
314 pval_frac_1 = 0.0;
315 nocdc_frac = 0.0;
316 notop_frac = 0.0;
317 noarich_frac = 0.0;
318 }
319 //Calculate M(mumu)
320 double peak_mumu = hist_inv_p->GetXaxis()->GetBinCenter(hist_inv_p->GetMaximumBin());
321 TF1* f_mumuInvM = new TF1("f_mumuInvM", "gaus", peak_mumu - 0.05, peak_mumu + 0.05);
322 f_mumuInvM->SetParameters(hist_inv_p->GetMaximum(), peak_mumu, 0.045);
323 f_mumuInvM->SetParLimits(1, peak_mumu - 0.05, peak_mumu + 0.05);
324 f_mumuInvM->SetParLimits(2, 0.01, 0.08);
325 hist_inv_p->Fit(f_mumuInvM, "R");
326 double fit_mumumass = f_mumuInvM->GetParameter(1);
327 if (fit_mumumass < 9.) fit_mumumass = 9.;
328 if (fit_mumumass > 12.) fit_mumumass = 12.;
329 double fit_mumumass_error = f_mumuInvM->GetParError(1);
330 double pull_mumumass = (fit_mumumass - m_reference_mumu) / fit_mumumass_error;
331 double fit_sigma_mumu = f_mumuInvM->GetParameter(2);
332
333 // Variables needed for selectmumu efficiency in HLT
334 double Nmumu_ECLMuonPair = hist_hltEff->GetBinContent(2);
335 double Nmumu_ECLMuonPairSelectmumu = hist_hltEff->GetBinContent(3);
336
337 // set values
338 mon_mumu->setVariable("mean_npxd", mean_npxd);
339 mon_mumu->setVariable("mean_nsvd", mean_nsvd);
340 mon_mumu->setVariable("mean_ncdc", mean_ncdc);
341 mon_mumu->setVariable("mean_nklmlayer", mean_nklmlayer);
342 mon_mumu->setVariable("mean_nklm", mean_nklm);
343 mon_mumu->setVariable("mean_nbklm", mean_nbklm);
344 mon_mumu->setVariable("mean_neklm", mean_neklm);
345 mon_mumu->setVariable("mean_topdig", mean_topdig);
346 mon_mumu->setVariable("mean_parich", mean_parich);
347 mon_mumu->setVariable("mean_ncdc_ex", mean_ncdc_ex);
348 mon_mumu->setVariable("mean_necl", mean_necl);
349 mon_mumu->setVariable("mean_muid", mean_muid);
350 mon_mumu->setVariable("mean_d0", mean_d0);
351 mon_mumu->setVariable("mean_z0", mean_z0);
352 mon_mumu->setVariable("mean_pval", mean_pval);
353 mon_mumu->setVariable("mean_ndf", mean_ndf);
354 mon_mumu->setVariable("dif_ndf_ncdc", dif_ndf_ncdc);
355 mon_mumu->setVariable("mean_dd0", mean_dd0);
356 mon_mumu->setVariable("mean_dz0", mean_dz0);
357 mon_mumu->setVariable("mean_dpt", mean_dpt);
358 mon_mumu->setVariable("rms_dd0", rms_dd0);
359 mon_mumu->setVariable("rms_dz0", rms_dz0);
360 mon_mumu->setVariable("rms_dpt", rms_dpt);
361 mon_mumu->setVariable("sigma68_dd0", sigma68_dd0);
362 mon_mumu->setVariable("sigma68_dz0", sigma68_dz0);
363 mon_mumu->setVariable("sigma68_dpt", sigma68_dpt);
364 mon_mumu->setVariable("neve_mumu", neve_mumu);
365 mon_mumu->setVariable("goodmu_frac", goodmu_frac);
366 mon_mumu->setVariable("goodmu_o_badmu", goodmu_o_badmu);
367 mon_mumu->setVariable("pval_frac_0", pval_frac_0);
368 mon_mumu->setVariable("pval_frac_1", pval_frac_1);
369 mon_mumu->setVariable("nocdc_frac", nocdc_frac);
370 mon_mumu->setVariable("notop_frac", notop_frac);
371 mon_mumu->setVariable("noarich_frac", noarich_frac);
372 mon_mumu->setVariable("fit_mumumass", fit_mumumass);
373 mon_mumu->setVariable("fit_mumumass_error", fit_mumumass_error);
374 mon_mumu->setVariable("pull_mumumass", pull_mumumass);
375 mon_mumu->setVariable("sigma_mumumass", fit_sigma_mumu);
376 mon_mumu->setVariable("Nmumu_ECLMuonPair", Nmumu_ECLMuonPair);
377 mon_mumu->setVariable("Nmumu_ECLMuonPairSelectmumu", Nmumu_ECLMuonPairSelectmumu);
378}
379
381{
382 // ========== D*
383 // get existing histograms produced by DQM modules
384 auto* hist_D0_InvM = findHist("PhysicsObjectsMiraBelleDst/hist_D0_InvM");
385 auto* hist_delta_m = findHist("PhysicsObjectsMiraBelleDst/hist_delta_m");
386 auto* hist_D0_softpi_PID_ALL_pion = findHist("PhysicsObjectsMiraBelleDst/hist_D0_softpi_PID_ALL_pion");
387 auto* hist_D0_softpi_PID_SVD_pion = findHist("PhysicsObjectsMiraBelleDst/hist_D0_softpi_PID_SVD_pion");
388 auto* hist_D0_softpi_PID_CDC_pion = findHist("PhysicsObjectsMiraBelleDst/hist_D0_softpi_PID_CDC_pion");
389 auto* hist_D0_softpi_PID_TOP_pion = findHist("PhysicsObjectsMiraBelleDst/hist_D0_softpi_PID_TOP_pion");
390 auto* hist_D0_softpi_PID_ARICH_pion = findHist("PhysicsObjectsMiraBelleDst/hist_D0_softpi_PID_ARICH_pion");
391 auto* hist_D0_softpi_PID_ECL_pion = findHist("PhysicsObjectsMiraBelleDst/hist_D0_softpi_PID_ECL_pion");
392 auto* hist_D0_softpi_PID_KLM_pion = findHist("PhysicsObjectsMiraBelleDst/hist_D0_softpi_PID_KLM_pion");
393 auto* hist_D0_pi_PID_ALL_pion = findHist("PhysicsObjectsMiraBelleDst/hist_D0_pi_PID_ALL_pion");
394 auto* hist_D0_pi_PID_SVD_pion = findHist("PhysicsObjectsMiraBelleDst/hist_D0_pi_PID_SVD_pion");
395 auto* hist_D0_pi_PID_CDC_pion = findHist("PhysicsObjectsMiraBelleDst/hist_D0_pi_PID_CDC_pion");
396 auto* hist_D0_pi_PID_TOP_pion = findHist("PhysicsObjectsMiraBelleDst/hist_D0_pi_PID_TOP_pion");
397 auto* hist_D0_pi_PID_ARICH_pion = findHist("PhysicsObjectsMiraBelleDst/hist_D0_pi_PID_ARICH_pion");
398 auto* hist_D0_pi_PID_ECL_pion = findHist("PhysicsObjectsMiraBelleDst/hist_D0_pi_PID_ECL_pion");
399 auto* hist_D0_pi_PID_KLM_pion = findHist("PhysicsObjectsMiraBelleDst/hist_D0_pi_PID_KLM_pion");
400 auto* hist_D0_K_PID_ALL_kaon = findHist("PhysicsObjectsMiraBelleDst/hist_D0_K_PID_ALL_kaon");
401 auto* hist_D0_K_PID_SVD_kaon = findHist("PhysicsObjectsMiraBelleDst/hist_D0_K_PID_SVD_kaon");
402 auto* hist_D0_K_PID_CDC_kaon = findHist("PhysicsObjectsMiraBelleDst/hist_D0_K_PID_CDC_kaon");
403 auto* hist_D0_K_PID_TOP_kaon = findHist("PhysicsObjectsMiraBelleDst/hist_D0_K_PID_TOP_kaon");
404 auto* hist_D0_K_PID_ARICH_kaon = findHist("PhysicsObjectsMiraBelleDst/hist_D0_K_PID_ARICH_kaon");
405 auto* hist_D0_K_PID_ECL_kaon = findHist("PhysicsObjectsMiraBelleDst/hist_D0_K_PID_ECL_kaon");
406 auto* hist_D0_K_PID_KLM_kaon = findHist("PhysicsObjectsMiraBelleDst/hist_D0_K_PID_KLM_kaon");
407 auto* hist_sideband_D0_softpi_PID_ALL_pion = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_softpi_PID_ALL_pion");
408 auto* hist_sideband_D0_softpi_PID_SVD_pion = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_softpi_PID_SVD_pion");
409 auto* hist_sideband_D0_softpi_PID_CDC_pion = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_softpi_PID_CDC_pion");
410 auto* hist_sideband_D0_softpi_PID_TOP_pion = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_softpi_PID_TOP_pion");
411 auto* hist_sideband_D0_softpi_PID_ARICH_pion = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_softpi_PID_ARICH_pion");
412 auto* hist_sideband_D0_softpi_PID_ECL_pion = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_softpi_PID_ECL_pion");
413 auto* hist_sideband_D0_softpi_PID_KLM_pion = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_softpi_PID_KLM_pion");
414 auto* hist_sideband_D0_pi_PID_ALL_pion = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_pi_PID_ALL_pion");
415 auto* hist_sideband_D0_pi_PID_SVD_pion = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_pi_PID_SVD_pion");
416 auto* hist_sideband_D0_pi_PID_CDC_pion = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_pi_PID_CDC_pion");
417 auto* hist_sideband_D0_pi_PID_TOP_pion = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_pi_PID_TOP_pion");
418 auto* hist_sideband_D0_pi_PID_ARICH_pion = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_pi_PID_ARICH_pion");
419 auto* hist_sideband_D0_pi_PID_ECL_pion = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_pi_PID_ECL_pion");
420 auto* hist_sideband_D0_pi_PID_KLM_pion = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_pi_PID_KLM_pion");
421 auto* hist_sideband_D0_K_PID_ALL_kaon = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_K_PID_ALL_kaon");
422 auto* hist_sideband_D0_K_PID_SVD_kaon = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_K_PID_SVD_kaon");
423 auto* hist_sideband_D0_K_PID_CDC_kaon = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_K_PID_CDC_kaon");
424 auto* hist_sideband_D0_K_PID_TOP_kaon = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_K_PID_TOP_kaon");
425 auto* hist_sideband_D0_K_PID_ARICH_kaon = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_K_PID_ARICH_kaon");
426 auto* hist_sideband_D0_K_PID_ECL_kaon = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_K_PID_ECL_kaon");
427 auto* hist_sideband_D0_K_PID_KLM_kaon = findHist("PhysicsObjectsMiraBelleDst/hist_sideband_D0_K_PID_KLM_kaon");
428 auto* hist_D0_pi0_InvM = findHist("PhysicsObjectsMiraBelleDst2/hist_D0_pi0_InvM");
429 if (hist_D0_InvM == nullptr) {
430 B2ERROR("Can not find the hist_D0_InvM histogram!");
431 return;
432 }
433 if (hist_delta_m == nullptr) {
434 B2ERROR("Can not find the hist_delta_m histogram!");
435 return;
436 }
437 if (hist_D0_softpi_PID_ALL_pion == nullptr) {
438 B2ERROR("Can not find the hist_D0_softpi_PID_ALL_pion histogram!");
439 return;
440 }
441 if (hist_D0_softpi_PID_SVD_pion == nullptr) {
442 B2ERROR("Can not find the hist_D0_softpi_PID_SVD_pion histogram!");
443 return;
444 }
445 if (hist_D0_softpi_PID_CDC_pion == nullptr) {
446 B2ERROR("Can not find the hist_D0_softpi_PID_CDC_pion histogram!");
447 return;
448 }
449 if (hist_D0_softpi_PID_TOP_pion == nullptr) {
450 B2ERROR("Can not find the hist_D0_softpi_PID_TOP_pion histogram!");
451 return;
452 }
453 if (hist_D0_softpi_PID_ARICH_pion == nullptr) {
454 B2ERROR("Can not find the hist_D0_softpi_PID_ARICH_pion histogram!");
455 return;
456 }
457 if (hist_D0_softpi_PID_ECL_pion == nullptr) {
458 B2ERROR("Can not find the hist_D0_softpi_PID_ECL_pion histogram!");
459 return;
460 }
461 if (hist_D0_softpi_PID_KLM_pion == nullptr) {
462 B2ERROR("Can not find the hist_D0_softpi_PID_KLM_pion histogram!");
463 return;
464 }
465 if (hist_D0_pi_PID_ALL_pion == nullptr) {
466 B2ERROR("Can not find the hist_D0_pi_PID_ALL_pion histogram!");
467 return;
468 }
469 if (hist_D0_pi_PID_SVD_pion == nullptr) {
470 B2ERROR("Can not find the hist_D0_pi_PID_SVD_pion histogram!");
471 return;
472 }
473 if (hist_D0_pi_PID_CDC_pion == nullptr) {
474 B2ERROR("Can not find the hist_D0_pi_PID_CDC_pion histogram!");
475 return;
476 }
477 if (hist_D0_pi_PID_TOP_pion == nullptr) {
478 B2ERROR("Can not find the hist_D0_pi_PID_TOP_pion histogram!");
479 return;
480 }
481 if (hist_D0_pi_PID_ARICH_pion == nullptr) {
482 B2ERROR("Can not find the hist_D0_pi_PID_ARICH_pion histogram!");
483 return;
484 }
485 if (hist_D0_pi_PID_ECL_pion == nullptr) {
486 B2ERROR("Can not find the hist_D0_pi_PID_ECL_pion histogram!");
487 return;
488 }
489 if (hist_D0_pi_PID_KLM_pion == nullptr) {
490 B2ERROR("Can not find the hist_D0_pi_PID_KLM_pion histogram!");
491 return;
492 }
493 if (hist_D0_K_PID_ALL_kaon == nullptr) {
494 B2ERROR("Can not find the hist_D0_K_PID_ALL_kaon histogram!");
495 return;
496 }
497 if (hist_D0_K_PID_SVD_kaon == nullptr) {
498 B2ERROR("Can not find the hist_D0_K_PID_SVD_kaon histogram!");
499 return;
500 }
501 if (hist_D0_K_PID_CDC_kaon == nullptr) {
502 B2ERROR("Can not find the hist_D0_K_PID_CDC_kaon histogram!");
503 return;
504 }
505 if (hist_D0_K_PID_TOP_kaon == nullptr) {
506 B2ERROR("Can not find the hist_D0_K_PID_TOP_kaon histogram!");
507 return;
508 }
509 if (hist_D0_K_PID_ARICH_kaon == nullptr) {
510 B2ERROR("Can not find the hist_D0_K_PID_ARICH_kaon histogram!");
511 return;
512 }
513 if (hist_D0_K_PID_ECL_kaon == nullptr) {
514 B2ERROR("Can not find the hist_D0_K_PID_ECL_kaon histogram!");
515 return;
516 }
517 if (hist_D0_K_PID_KLM_kaon == nullptr) {
518 B2ERROR("Can not find the hist_D0_K_PID_KLM_kaon histogram!");
519 return;
520 }
521 if (hist_sideband_D0_softpi_PID_ALL_pion == nullptr) {
522 B2ERROR("Can not find the hist_sideband_D0_softpi_PID_ALL_pion histogram!");
523 return;
524 }
525 if (hist_sideband_D0_softpi_PID_SVD_pion == nullptr) {
526 B2ERROR("Can not find the hist_sideband_D0_softpi_PID_SVD_pion histogram!");
527 return;
528 }
529 if (hist_sideband_D0_softpi_PID_CDC_pion == nullptr) {
530 B2ERROR("Can not find the hist_sideband_D0_softpi_PID_CDC_pion histogram!");
531 return;
532 }
533 if (hist_sideband_D0_softpi_PID_TOP_pion == nullptr) {
534 B2ERROR("Can not find the hist_sideband_D0_softpi_PID_TOP_pion histogram!");
535 return;
536 }
537 if (hist_sideband_D0_softpi_PID_ARICH_pion == nullptr) {
538 B2ERROR("Can not find the hist_sideband_D0_softpi_PID_ARICH_pion histogram!");
539 return;
540 }
541 if (hist_sideband_D0_softpi_PID_ECL_pion == nullptr) {
542 B2ERROR("Can not find the hist_sideband_D0_softpi_PID_ECL_pion histogram!");
543 return;
544 }
545 if (hist_sideband_D0_softpi_PID_KLM_pion == nullptr) {
546 B2ERROR("Can not find the hist_sideband_D0_softpi_PID_KLM_pion histogram!");
547 return;
548 }
549 if (hist_sideband_D0_pi_PID_ALL_pion == nullptr) {
550 B2ERROR("Can not find the hist_sideband_D0_pi_PID_ALL_pion histogram!");
551 return;
552 }
553 if (hist_sideband_D0_pi_PID_SVD_pion == nullptr) {
554 B2ERROR("Can not find the hist_sideband_D0_pi_PID_SVD_pion histogram!");
555 return;
556 }
557 if (hist_sideband_D0_pi_PID_CDC_pion == nullptr) {
558 B2ERROR("Can not find the hist_sideband_D0_pi_PID_CDC_pion histogram!");
559 return;
560 }
561 if (hist_sideband_D0_pi_PID_TOP_pion == nullptr) {
562 B2ERROR("Can not find the hist_sideband_D0_pi_PID_TOP_pion histogram!");
563 return;
564 }
565 if (hist_sideband_D0_pi_PID_ARICH_pion == nullptr) {
566 B2ERROR("Can not find the hist_sideband_D0_pi_PID_ARICH_pion histogram!");
567 return;
568 }
569 if (hist_sideband_D0_pi_PID_ECL_pion == nullptr) {
570 B2ERROR("Can not find the hist_sideband_D0_pi_PID_ECL_pion histogram!");
571 return;
572 }
573 if (hist_sideband_D0_pi_PID_KLM_pion == nullptr) {
574 B2ERROR("Can not find the hist_sideband_D0_pi_PID_KLM_pion histogram!");
575 return;
576 }
577 if (hist_sideband_D0_K_PID_ALL_kaon == nullptr) {
578 B2ERROR("Can not find the hist_sideband_D0_K_PID_ALL_kaon histogram!");
579 return;
580 }
581 if (hist_sideband_D0_K_PID_SVD_kaon == nullptr) {
582 B2ERROR("Can not find the hist_sideband_D0_K_PID_SVD_kaon histogram!");
583 return;
584 }
585 if (hist_sideband_D0_K_PID_CDC_kaon == nullptr) {
586 B2ERROR("Can not find the hist_sideband_D0_K_PID_CDC_kaon histogram!");
587 return;
588 }
589 if (hist_sideband_D0_K_PID_TOP_kaon == nullptr) {
590 B2ERROR("Can not find the hist_sideband_D0_K_PID_TOP_kaon histogram!");
591 return;
592 }
593 if (hist_sideband_D0_K_PID_ARICH_kaon == nullptr) {
594 B2ERROR("Can not find the hist_sideband_D0_K_PID_ARICH_kaon histogram!");
595 return;
596 }
597 if (hist_sideband_D0_K_PID_ECL_kaon == nullptr) {
598 B2ERROR("Can not find the hist_sideband_D0_K_PID_ECL_kaon histogram!");
599 return;
600 }
601 if (hist_sideband_D0_K_PID_KLM_kaon == nullptr) {
602 B2ERROR("Can not find the hist_sideband_D0_K_PID_KLM_kaon histogram!");
603 return;
604 }
605 if (hist_D0_pi0_InvM == nullptr) {
606 B2ERROR("Can not find the hist_D0_pi0_InvM histogram!");
607 return;
608 }
609 // Fit mass distributions for scale factor
610 TF1* f_InvM = new TF1("f_InvM", "[0]*TMath::Gaus(x,[1],[2])+[3]*pow(x-[4],2)+[5]", 1.81, 1.95);
611 f_InvM->SetParNames("Height", "#mu", "#sigma", "a", "b", "c");
612 f_InvM->SetParameters(hist_D0_InvM->GetMaximum(), 1.86, 5e-3, 0., 1.86, 0.);
613 hist_D0_InvM->Fit(f_InvM, "", "", 1.81, 1.95);
614 f_InvM->SetLineColor(kRed);
615
616 TF1* f_delta_m = new TF1("f_delta_m", "[0]*TMath::Gaus(x,[1],[2])+[3]*pow(x-[4],2)+[5]", 0.14, 0.16);
617 f_delta_m->SetParNames("Height", "#mu", "#sigma", "a", "b", "c");
618 f_delta_m->SetParameters(hist_delta_m->GetMaximum(), 0.145, 5e-4, 0., 0.145, 0.);
619 hist_delta_m->Fit(f_delta_m, "", "", 0.14, 0.16);
620 f_delta_m->SetLineColor(kRed);
621
622 TF1* f_pi0_InvM = new TF1("f_pi0_InvM", "[0]*TMath::Gaus(x,[1],[2])+[3]*pow(x-[4],2)+[5]", 0.09, 0.17);
623 f_pi0_InvM->SetParNames("Height", "#mu", "#sigma", "a", "b", "c");
624 f_pi0_InvM->SetParameters(hist_D0_pi0_InvM->GetMaximum(), 0.13, 5e-3, 0., 0.13, 0.);
625 hist_D0_pi0_InvM->Fit(f_pi0_InvM, "", "", 0.09, 0.17);
626 f_pi0_InvM->SetLineColor(kRed);
627
628 // D->KPi and D->KPiPi0 yields
629 TF1* f_gaus_InvM = new TF1("f_gaus_InvM", "gaus", 1.81, 1.95);
630 f_gaus_InvM->SetParameters(f_InvM->GetParameter(0), f_InvM->GetParameter(1), f_InvM->GetParameter(2));
631 double InvM_bin_width = hist_D0_InvM->GetXaxis()->GetBinWidth(1);
632 double neve_dst = f_gaus_InvM->Integral(1.81, 1.95) / InvM_bin_width;
633
634 TF1* f_gaus_pi0_InvM = new TF1("f_gaus_pi0_InvM", "gaus", 0.09, 0.17);
635 f_gaus_pi0_InvM->SetParameters(f_pi0_InvM->GetParameter(0), f_pi0_InvM->GetParameter(1), f_pi0_InvM->GetParameter(2));
636 double pi0_InvM_bin_width = hist_D0_pi0_InvM->GetXaxis()->GetBinWidth(1);
637 double neve_pi0 = f_gaus_pi0_InvM->Integral(0.09, 0.17) / pi0_InvM_bin_width;
638
639 // Sumw2
640 hist_D0_softpi_PID_ALL_pion->Sumw2();
641 hist_D0_softpi_PID_SVD_pion->Sumw2();
642 hist_D0_softpi_PID_CDC_pion->Sumw2();
643 hist_D0_softpi_PID_TOP_pion->Sumw2();
644 hist_D0_softpi_PID_ARICH_pion->Sumw2();
645 hist_D0_softpi_PID_ECL_pion->Sumw2();
646 hist_D0_softpi_PID_KLM_pion->Sumw2();
647 hist_D0_pi_PID_ALL_pion->Sumw2();
648 hist_D0_pi_PID_SVD_pion->Sumw2();
649 hist_D0_pi_PID_CDC_pion->Sumw2();
650 hist_D0_pi_PID_TOP_pion->Sumw2();
651 hist_D0_pi_PID_ARICH_pion->Sumw2();
652 hist_D0_pi_PID_ECL_pion->Sumw2();
653 hist_D0_pi_PID_KLM_pion->Sumw2();
654 hist_D0_K_PID_ALL_kaon->Sumw2();
655 hist_D0_K_PID_SVD_kaon->Sumw2();
656 hist_D0_K_PID_CDC_kaon->Sumw2();
657 hist_D0_K_PID_TOP_kaon->Sumw2();
658 hist_D0_K_PID_ARICH_kaon->Sumw2();
659 hist_D0_K_PID_ECL_kaon->Sumw2();
660 hist_D0_K_PID_KLM_kaon->Sumw2();
661 hist_sideband_D0_softpi_PID_ALL_pion->Sumw2();
662 hist_sideband_D0_softpi_PID_SVD_pion->Sumw2();
663 hist_sideband_D0_softpi_PID_CDC_pion->Sumw2();
664 hist_sideband_D0_softpi_PID_TOP_pion->Sumw2();
665 hist_sideband_D0_softpi_PID_ARICH_pion->Sumw2();
666 hist_sideband_D0_softpi_PID_ECL_pion->Sumw2();
667 hist_sideband_D0_softpi_PID_KLM_pion->Sumw2();
668 hist_sideband_D0_pi_PID_ALL_pion->Sumw2();
669 hist_sideband_D0_pi_PID_SVD_pion->Sumw2();
670 hist_sideband_D0_pi_PID_CDC_pion->Sumw2();
671 hist_sideband_D0_pi_PID_TOP_pion->Sumw2();
672 hist_sideband_D0_pi_PID_ARICH_pion->Sumw2();
673 hist_sideband_D0_pi_PID_ECL_pion->Sumw2();
674 hist_sideband_D0_pi_PID_KLM_pion->Sumw2();
675 hist_sideband_D0_K_PID_ALL_kaon->Sumw2();
676 hist_sideband_D0_K_PID_SVD_kaon->Sumw2();
677 hist_sideband_D0_K_PID_CDC_kaon->Sumw2();
678 hist_sideband_D0_K_PID_TOP_kaon->Sumw2();
679 hist_sideband_D0_K_PID_ARICH_kaon->Sumw2();
680 hist_sideband_D0_K_PID_ECL_kaon->Sumw2();
681 hist_sideband_D0_K_PID_KLM_kaon->Sumw2();
682
683 // Scale the distributions in sideband
684 hist_sideband_D0_softpi_PID_ALL_pion->Scale(m_scale_dst);
685 hist_sideband_D0_softpi_PID_SVD_pion->Scale(m_scale_dst);
686 hist_sideband_D0_softpi_PID_CDC_pion->Scale(m_scale_dst);
687 hist_sideband_D0_softpi_PID_TOP_pion->Scale(m_scale_dst);
688 hist_sideband_D0_softpi_PID_ARICH_pion->Scale(m_scale_dst);
689 hist_sideband_D0_softpi_PID_ECL_pion->Scale(m_scale_dst);
690 hist_sideband_D0_softpi_PID_KLM_pion->Scale(m_scale_dst);
691 hist_sideband_D0_pi_PID_ALL_pion->Scale(m_scale_dst);
692 hist_sideband_D0_pi_PID_SVD_pion->Scale(m_scale_dst);
693 hist_sideband_D0_pi_PID_CDC_pion->Scale(m_scale_dst);
694 hist_sideband_D0_pi_PID_TOP_pion->Scale(m_scale_dst);
695 hist_sideband_D0_pi_PID_ARICH_pion->Scale(m_scale_dst);
696 hist_sideband_D0_pi_PID_ECL_pion->Scale(m_scale_dst);
697 hist_sideband_D0_pi_PID_KLM_pion->Scale(m_scale_dst);
698 hist_sideband_D0_K_PID_ALL_kaon->Scale(m_scale_dst);
699 hist_sideband_D0_K_PID_SVD_kaon->Scale(m_scale_dst);
700 hist_sideband_D0_K_PID_CDC_kaon->Scale(m_scale_dst);
701 hist_sideband_D0_K_PID_TOP_kaon->Scale(m_scale_dst);
702 hist_sideband_D0_K_PID_ARICH_kaon->Scale(m_scale_dst);
703 hist_sideband_D0_K_PID_ECL_kaon->Scale(m_scale_dst);
704 hist_sideband_D0_K_PID_KLM_kaon->Scale(m_scale_dst);
705
706 // BG subtraction
707 hist_D0_softpi_PID_ALL_pion->Add(hist_sideband_D0_softpi_PID_ALL_pion, -1);
708 hist_D0_softpi_PID_SVD_pion->Add(hist_sideband_D0_softpi_PID_SVD_pion, -1);
709 hist_D0_softpi_PID_CDC_pion->Add(hist_sideband_D0_softpi_PID_CDC_pion, -1);
710 hist_D0_softpi_PID_TOP_pion->Add(hist_sideband_D0_softpi_PID_TOP_pion, -1);
711 hist_D0_softpi_PID_ARICH_pion->Add(hist_sideband_D0_softpi_PID_ARICH_pion, -1);
712 hist_D0_softpi_PID_ECL_pion->Add(hist_sideband_D0_softpi_PID_ECL_pion, -1);
713 hist_D0_softpi_PID_KLM_pion->Add(hist_sideband_D0_softpi_PID_KLM_pion, -1);
714 hist_D0_pi_PID_ALL_pion->Add(hist_sideband_D0_pi_PID_ALL_pion, -1);
715 hist_D0_pi_PID_SVD_pion->Add(hist_sideband_D0_pi_PID_SVD_pion, -1);
716 hist_D0_pi_PID_CDC_pion->Add(hist_sideband_D0_pi_PID_CDC_pion, -1);
717 hist_D0_pi_PID_TOP_pion->Add(hist_sideband_D0_pi_PID_TOP_pion, -1);
718 hist_D0_pi_PID_ARICH_pion->Add(hist_sideband_D0_pi_PID_ARICH_pion, -1);
719 hist_D0_pi_PID_ECL_pion->Add(hist_sideband_D0_pi_PID_ECL_pion, -1);
720 hist_D0_pi_PID_KLM_pion->Add(hist_sideband_D0_pi_PID_KLM_pion, -1);
721 hist_D0_K_PID_ALL_kaon->Add(hist_sideband_D0_K_PID_ALL_kaon, -1);
722 hist_D0_K_PID_SVD_kaon->Add(hist_sideband_D0_K_PID_SVD_kaon, -1);
723 hist_D0_K_PID_CDC_kaon->Add(hist_sideband_D0_K_PID_CDC_kaon, -1);
724 hist_D0_K_PID_TOP_kaon->Add(hist_sideband_D0_K_PID_TOP_kaon, -1);
725 hist_D0_K_PID_ARICH_kaon->Add(hist_sideband_D0_K_PID_ARICH_kaon, -1);
726 hist_D0_K_PID_ECL_kaon->Add(hist_sideband_D0_K_PID_ECL_kaon, -1);
727 hist_D0_K_PID_KLM_kaon->Add(hist_sideband_D0_K_PID_KLM_kaon, -1);
728
729 // Make TCanvases
730 // --- D* -> D0pi mass resolution
731 dst_mass->Divide(3, 1);
732 dst_mass->cd(1);
733 hist_D0_InvM->Draw();
734 f_InvM->Draw("SAME");
735 dst_mass->cd(2);
736 hist_delta_m->Draw();
737 f_delta_m->Draw("SAME");
738 dst_mass->cd(3);
739 hist_D0_pi0_InvM->Draw();
740 f_pi0_InvM->Draw("SAME");
741 // --- pi variables for D0 -> K pi
742 dst_pi_val->Divide(4, 2);
743 dst_pi_val->cd(1); hist_D0_pi_PID_ALL_pion->Draw();
744 dst_pi_val->cd(2); hist_D0_pi_PID_SVD_pion->Draw();
745 dst_pi_val->cd(3); hist_D0_pi_PID_CDC_pion->Draw();
746 dst_pi_val->cd(4); hist_D0_pi_PID_TOP_pion->Draw();
747 dst_pi_val->cd(5); hist_D0_pi_PID_ARICH_pion->Draw();
748 dst_pi_val->cd(6); hist_D0_pi_PID_ECL_pion->Draw();
749 dst_pi_val->cd(7); hist_D0_pi_PID_KLM_pion->Draw();
750 // --- K variables for D0 -> K pi
751 dst_k_val->Divide(4, 2);
752 dst_k_val->cd(1); hist_D0_K_PID_ALL_kaon->Draw();
753 dst_k_val->cd(2); hist_D0_K_PID_SVD_kaon->Draw();
754 dst_k_val->cd(3); hist_D0_K_PID_CDC_kaon->Draw();
755 dst_k_val->cd(4); hist_D0_K_PID_TOP_kaon->Draw();
756 dst_k_val->cd(5); hist_D0_K_PID_ARICH_kaon->Draw();
757 dst_k_val->cd(6); hist_D0_K_PID_ECL_kaon->Draw();
758 dst_k_val->cd(7); hist_D0_K_PID_KLM_kaon->Draw();
759
760 // calculate the values of monitoring variables
761 double mean_D0_InvM = f_InvM->GetParameter(1);
762 double width_D0_InvM = f_InvM->GetParameter(2);
763 double mean_delta_m = f_delta_m->GetParameter(1);
764 double width_delta_m = f_delta_m->GetParameter(2);
765 double mean_pi0_InvM = f_pi0_InvM->GetParameter(1);
766 double width_pi0_InvM = f_pi0_InvM->GetParameter(2);
767 double mean_D0_softpi_PID_ALL_pion = hist_D0_softpi_PID_ALL_pion->GetMean();
768 double mean_D0_softpi_PID_SVD_pion = hist_D0_softpi_PID_SVD_pion->GetMean();
769 double mean_D0_softpi_PID_CDC_pion = hist_D0_softpi_PID_CDC_pion->GetMean();
770 double mean_D0_softpi_PID_TOP_pion = hist_D0_softpi_PID_TOP_pion->GetMean();
771 double mean_D0_softpi_PID_ARICH_pion = hist_D0_softpi_PID_ARICH_pion->GetMean();
772 double mean_D0_softpi_PID_ECL_pion = hist_D0_softpi_PID_ECL_pion->GetMean();
773 double mean_D0_softpi_PID_KLM_pion = hist_D0_softpi_PID_KLM_pion->GetMean();
774 double mean_D0_pi_PID_ALL_pion = hist_D0_pi_PID_ALL_pion->GetMean();
775 double mean_D0_pi_PID_SVD_pion = hist_D0_pi_PID_SVD_pion->GetMean();
776 double mean_D0_pi_PID_CDC_pion = hist_D0_pi_PID_CDC_pion->GetMean();
777 double mean_D0_pi_PID_TOP_pion = hist_D0_pi_PID_TOP_pion->GetMean();
778 double mean_D0_pi_PID_ARICH_pion = hist_D0_pi_PID_ARICH_pion->GetMean();
779 double mean_D0_pi_PID_ECL_pion = hist_D0_pi_PID_ECL_pion->GetMean();
780 double mean_D0_pi_PID_KLM_pion = hist_D0_pi_PID_KLM_pion->GetMean();
781 double mean_D0_K_PID_ALL_kaon = hist_D0_K_PID_ALL_kaon->GetMean();
782 double mean_D0_K_PID_SVD_kaon = hist_D0_K_PID_SVD_kaon->GetMean();
783 double mean_D0_K_PID_CDC_kaon = hist_D0_K_PID_CDC_kaon->GetMean();
784 double mean_D0_K_PID_TOP_kaon = hist_D0_K_PID_TOP_kaon->GetMean();
785 double mean_D0_K_PID_ARICH_kaon = hist_D0_K_PID_ARICH_kaon->GetMean();
786 double mean_D0_K_PID_ECL_kaon = hist_D0_K_PID_ECL_kaon->GetMean();
787 double mean_D0_K_PID_KLM_kaon = hist_D0_K_PID_KLM_kaon->GetMean();
788
789 // set values
790 mon_dst->setVariable("neve_dst", neve_dst);
791 mon_dst->setVariable("neve_pi0", neve_pi0);
792 mon_dst->setVariable("mean_D0_InvM", mean_D0_InvM);
793 mon_dst->setVariable("width_D0_InvM", width_D0_InvM);
794 mon_dst->setVariable("mean_delta_m", mean_delta_m);
795 mon_dst->setVariable("width_delta_m", width_delta_m);
796 mon_dst->setVariable("mean_pi0_InvM", mean_pi0_InvM);
797 mon_dst->setVariable("width_pi0_InvM", width_pi0_InvM);
798 mon_dst->setVariable("mean_D0_softpi_PID_ALL_pion", mean_D0_softpi_PID_ALL_pion);
799 mon_dst->setVariable("mean_D0_softpi_PID_SVD_pion", mean_D0_softpi_PID_SVD_pion);
800 mon_dst->setVariable("mean_D0_softpi_PID_CDC_pion", mean_D0_softpi_PID_CDC_pion);
801 mon_dst->setVariable("mean_D0_softpi_PID_TOP_pion", mean_D0_softpi_PID_TOP_pion);
802 mon_dst->setVariable("mean_D0_softpi_PID_ARICH_pion", mean_D0_softpi_PID_ARICH_pion);
803 mon_dst->setVariable("mean_D0_softpi_PID_ECL_pion", mean_D0_softpi_PID_ECL_pion);
804 mon_dst->setVariable("mean_D0_softpi_PID_KLM_pion", mean_D0_softpi_PID_KLM_pion);
805 mon_dst->setVariable("mean_D0_pi_PID_ALL_pion", mean_D0_pi_PID_ALL_pion);
806 mon_dst->setVariable("mean_D0_pi_PID_SVD_pion", mean_D0_pi_PID_SVD_pion);
807 mon_dst->setVariable("mean_D0_pi_PID_CDC_pion", mean_D0_pi_PID_CDC_pion);
808 mon_dst->setVariable("mean_D0_pi_PID_TOP_pion", mean_D0_pi_PID_TOP_pion);
809 mon_dst->setVariable("mean_D0_pi_PID_ARICH_pion", mean_D0_pi_PID_ARICH_pion);
810 mon_dst->setVariable("mean_D0_pi_PID_ECL_pion", mean_D0_pi_PID_ECL_pion);
811 mon_dst->setVariable("mean_D0_pi_PID_KLM_pion", mean_D0_pi_PID_KLM_pion);
812 mon_dst->setVariable("mean_D0_K_PID_ALL_kaon", mean_D0_K_PID_ALL_kaon);
813 mon_dst->setVariable("mean_D0_K_PID_SVD_kaon", mean_D0_K_PID_SVD_kaon);
814 mon_dst->setVariable("mean_D0_K_PID_CDC_kaon", mean_D0_K_PID_CDC_kaon);
815 mon_dst->setVariable("mean_D0_K_PID_TOP_kaon", mean_D0_K_PID_TOP_kaon);
816 mon_dst->setVariable("mean_D0_K_PID_ARICH_kaon", mean_D0_K_PID_ARICH_kaon);
817 mon_dst->setVariable("mean_D0_K_PID_ECL_kaon", mean_D0_K_PID_ECL_kaon);
818 mon_dst->setVariable("mean_D0_K_PID_KLM_kaon", mean_D0_K_PID_KLM_kaon);
819}
820
822{
823 //--- L1 efficiency with taupair
824 if (auto* ptr = findHist("PhysicsObjectsMiraBelleTau/hist_L1ECL1x1"); ptr != nullptr) {
825 for (int bin = 1; bin <= ptr->GetXaxis()->GetNbins(); bin++) {
826 if (!std::string(ptr->GetXaxis()->GetBinLabel(bin)).empty()) {
827 std::string label = std::string("ECL_1_1_") + ptr->GetXaxis()->GetBinLabel(bin);
828 mon_tautau->setVariable(label, ptr->GetBinContent(bin));
829 }
830 }
831 }
832 if (auto* ptr = findHist("PhysicsObjectsMiraBelleTau/hist_L1ECL1x3"); ptr != nullptr) {
833 for (int bin = 1; bin <= ptr->GetXaxis()->GetNbins(); bin++) {
834 if (!std::string(ptr->GetXaxis()->GetBinLabel(bin)).empty()) {
835 std::string label = std::string("ECL_1_3_") + ptr->GetXaxis()->GetBinLabel(bin);
836 mon_tautau->setVariable(label, ptr->GetBinContent(bin));
837 }
838 }
839 }
840 if (auto* ptr = findHist("PhysicsObjectsMiraBelleTau/hist_L1CDC1x1"); ptr != nullptr) {
841 for (int bin = 1; bin <= ptr->GetXaxis()->GetNbins(); bin++) {
842 if (!std::string(ptr->GetXaxis()->GetBinLabel(bin)).empty()) {
843 std::string label = std::string("CDC_1_1_") + ptr->GetXaxis()->GetBinLabel(bin);
844 mon_tautau->setVariable(label, ptr->GetBinContent(bin));
845 }
846 }
847 }
848 if (auto* ptr = findHist("PhysicsObjectsMiraBelleTau/hist_L1CDC1x3"); ptr != nullptr) {
849 for (int bin = 1; bin <= ptr->GetXaxis()->GetNbins(); bin++) {
850 if (!std::string(ptr->GetXaxis()->GetBinLabel(bin)).empty()) {
851 std::string label = std::string("CDC_1_3_") + ptr->GetXaxis()->GetBinLabel(bin);
852 mon_tautau->setVariable(label, ptr->GetBinContent(bin));
853 }
854 }
855 }
856 if (auto* ptr = findHist("PhysicsObjectsMiraBelleTau/hist_L1CDCKLM1x1"); ptr != nullptr) {
857 for (int bin = 1; bin <= ptr->GetXaxis()->GetNbins(); bin++) {
858 if (!std::string(ptr->GetXaxis()->GetBinLabel(bin)).empty()) {
859 std::string label = std::string("CDCKLM_1_1_") + ptr->GetXaxis()->GetBinLabel(bin);
860 mon_tautau->setVariable(label, ptr->GetBinContent(bin));
861 }
862 }
863 }
864 if (auto* ptr = findHist("PhysicsObjectsMiraBelleTau/hist_L1CDCKLM1x3"); ptr != nullptr) {
865 for (int bin = 1; bin <= ptr->GetXaxis()->GetNbins(); bin++) {
866 if (!std::string(ptr->GetXaxis()->GetBinLabel(bin)).empty()) {
867 std::string label = std::string("CDCKLM_1_3_") + ptr->GetXaxis()->GetBinLabel(bin);
868 mon_tautau->setVariable(label, ptr->GetBinContent(bin));
869 }
870 }
871 }
872}
873
875{
876 //bhabha,hadrons
877 // ========== bhabha_trk_ecl
878 // get existing histograms produced by DQM modules
879 auto* histbh_npxd = findHist("PhysicsObjectsMiraBelleBhabha/hist_npxd");
880 auto* histbh_nsvd = findHist("PhysicsObjectsMiraBelleBhabha/hist_nsvd");
881 auto* histbh_ncdc = findHist("PhysicsObjectsMiraBelleBhabha/hist_ncdc");
882 auto* histbh_topdig = findHist("PhysicsObjectsMiraBelleBhabha/hist_topdig");
883 auto* histbh_DetPhotonARICH = findHist("PhysicsObjectsMiraBelleBhabha/hist_DetPhotonARICH");
884 auto* histbh_dD0 = findHist("PhysicsObjectsMiraBelleBhabha/hist_dD0");
885 auto* histbh_dZ0 = findHist("PhysicsObjectsMiraBelleBhabha/hist_dZ0");
886 auto* histbh_dPtcms = findHist("PhysicsObjectsMiraBelleBhabha/hist_dPtcms");
887 auto* histbh_Pval = findHist("PhysicsObjectsMiraBelleBhabha/hist_Pval");
888 auto* histbh_nExtraCDCHits = findHist("PhysicsObjectsMiraBelleBhabha/hist_nExtraCDCHits");
889 auto* histbh_nECLClusters = findHist("PhysicsObjectsMiraBelleBhabha/hist_nECLClusters");
890 auto* histbh_electronid = findHist("PhysicsObjectsMiraBelleBhabha/hist_electronid");
891 auto* histbh_inv_p = findHist("PhysicsObjectsMiraBelleBhabha/hist_inv_p");
892 auto* histbh_ndf = findHist("PhysicsObjectsMiraBelleBhabha/hist_ndf");
893 auto* histbh_D0 = findHist("PhysicsObjectsMiraBelleBhabha/hist_D0");
894 auto* histbh_Z0 = findHist("PhysicsObjectsMiraBelleBhabha/hist_Z0");
895 auto* histbh_theta = findHist("PhysicsObjectsMiraBelleBhabha/hist_theta");
896 auto* histbh_Phi0 = findHist("PhysicsObjectsMiraBelleBhabha/hist_Phi0");
897 auto* histbh_Pt = findHist("PhysicsObjectsMiraBelleBhabha/hist_Pt");
898 auto* histbh_Mom = findHist("PhysicsObjectsMiraBelleBhabha/hist_Mom");
899 auto* histbh_dPhicms = findHist("PhysicsObjectsMiraBelleBhabha/hist_dPhicms");
900
901 if (histbh_npxd == nullptr) {
902 B2ERROR("Can not find the histbh_npxd histogram!");
903 return;
904 }
905 if (histbh_nsvd == nullptr) {
906 B2ERROR("Can not find the histbh_nsvd histogram!");
907 return;
908 }
909 if (histbh_ncdc == nullptr) {
910 B2ERROR("Can not find the histbh_ncdc histogram!");
911 return;
912 }
913 if (histbh_topdig == nullptr) {
914 B2ERROR("Can not find the histbh_topdig histogram!");
915 return;
916 }
917 if (histbh_DetPhotonARICH == nullptr) {
918 B2ERROR("Can not find the histbh_DetPhotonARICH histogram!");
919 return;
920 }
921 if (histbh_dD0 == nullptr) {
922 B2ERROR("Can not find the histbh_dD0 histogram!");
923 return;
924 }
925 if (histbh_dZ0 == nullptr) {
926 B2ERROR("Can not find the histbh_dZ0 histogram!");
927 return;
928 }
929 if (histbh_dPtcms == nullptr) {
930 B2ERROR("Can not find the histbh_dPtcms histogram!");
931 return;
932 }
933 if (histbh_Pval == nullptr) {
934 B2ERROR("Can not find the histbh_Pval histogram!");
935 return;
936 }
937 if (histbh_nExtraCDCHits == nullptr) {
938 B2ERROR("Can not find the histbh_nExtraCDCHits histogram!");
939 return;
940 }
941 if (histbh_nECLClusters == nullptr) {
942 B2ERROR("Can not find the histbh_nECLClusters histogram!");
943 return;
944 }
945 if (histbh_electronid == nullptr) {
946 B2ERROR("Can not find the histbh_electronid histogram!");
947 return;
948 }
949 if (histbh_inv_p == nullptr) {
950 B2ERROR("Can not find the histbh_inv_p histogram!");
951 return;
952 }
953 if (histbh_ndf == nullptr) {
954 B2ERROR("Can not find the histbh_ndf histogram!");
955 return;
956 }
957 if (histbh_D0 == nullptr) {
958 B2ERROR("Can not find the histbh_D0 histogram!");
959 return;
960 }
961 if (histbh_Z0 == nullptr) {
962 B2ERROR("Can not find the histbh_Z0 histogram!");
963 return;
964 }
965 if (histbh_theta == nullptr) {
966 B2ERROR("Can not find the histbh_theta histogram!");
967 return;
968 }
969 if (histbh_Phi0 == nullptr) {
970 B2ERROR("Can not find the histbh_Phi0 histogram!");
971 return;
972 }
973 if (histbh_Pt == nullptr) {
974 B2ERROR("Can not find the histbh_Pt histogram!");
975 return;
976 }
977 if (histbh_Mom == nullptr) {
978 B2ERROR("Can not find the histbh_Mom histogram!");
979 return;
980 }
981 if (histbh_dPhicms == nullptr) {
982 B2ERROR("Can not find the histbh_dPhicms histogram!");
983 return;
984 }
985
986 // Make TCanvases
987 // --- bhabha_Main
988 bhabha_main->Divide(4, 3);
989 bhabha_main->cd(1); histbh_theta->Draw();
990 bhabha_main->cd(2); histbh_Phi0->Draw();
991 bhabha_main->cd(3); histbh_Mom->Draw();
992 bhabha_main->cd(4); histbh_Pt->Draw();
993 bhabha_main->cd(5); histbh_npxd->Draw();
994 bhabha_main->cd(6); histbh_nsvd->Draw();
995 bhabha_main->cd(7); histbh_ncdc->Draw();
996 bhabha_main->cd(8); histbh_topdig->Draw();
997 bhabha_main->cd(9); histbh_DetPhotonARICH->Draw();
998 bhabha_main->cd(10); histbh_nExtraCDCHits->Draw();
999 bhabha_main->cd(11); histbh_nECLClusters->Draw();
1000 // --- bhabha_Resolution
1001 bhabha_resolution->Divide(3, 3);
1002 bhabha_resolution->cd(1); histbh_inv_p->Draw();
1003 bhabha_resolution->cd(2); histbh_dD0->Draw();
1004 bhabha_resolution->cd(3); histbh_dZ0->Draw();
1005 bhabha_resolution->cd(4); histbh_dPtcms->Draw();
1006 bhabha_resolution->cd(5); histbh_dPhicms->Draw();
1007 bhabha_resolution->cd(6); histbh_nECLClusters->Draw();
1008 bhabha_resolution->cd(7); histbh_nExtraCDCHits->Draw();
1009 bhabha_resolution->cd(8); histbh_ndf->Draw();
1010
1011 // calculate the values of monitoring variables
1012 double bh_mean_npxd = histbh_npxd->GetMean();
1013 double bh_mean_nsvd = histbh_nsvd->GetMean();
1014 double bh_mean_ncdc = histbh_ncdc->GetMean();
1015 double bh_mean_topdig = histbh_topdig->GetMean();
1016 double bh_mean_parich = histbh_DetPhotonARICH->GetMean();
1017 double bh_mean_ncdc_ex = histbh_nExtraCDCHits->GetMean();
1018 double bh_mean_necl = histbh_nECLClusters->GetMean();
1019 double bh_mean_electronid = histbh_electronid->GetMean();
1020 double bh_mean_d0 = histbh_D0->GetMean();
1021 double bh_mean_z0 = histbh_Z0->GetMean();
1022 double bh_mean_pval = histbh_Pval->GetMean();
1023 double bh_mean_ndf = histbh_ndf->GetMean();
1024 double bh_dif_ndf_ncdc = bh_mean_ndf - bh_mean_ncdc;
1025 double bh_mean_dd0 = histbh_dD0->GetMean();
1026 double bh_mean_dz0 = histbh_dZ0->GetMean();
1027 double bh_mean_dpt = histbh_dPtcms->GetMean();
1028 double bh_rms_dd0 = histbh_dD0->GetRMS();
1029 double bh_rms_dz0 = histbh_dZ0->GetRMS();
1030 double bh_rms_dpt = histbh_dPtcms->GetRMS();
1031 double bh_sigma68_dd0 = getSigma68(histbh_dD0);
1032 double bh_sigma68_dz0 = getSigma68(histbh_dZ0);
1033 double bh_sigma68_dpt = getSigma68(histbh_dPtcms);
1034 double bh_neve_bhabha = histbh_nECLClusters->GetEntries();
1035 double bh_neve_bhabha_sign = histbh_nsvd->GetEntries();
1036 double bh_goode_frac = -1.;
1037 double bh_pval_frac_0 = -1.;
1038 double bh_pval_frac_1 = -1.;
1039 double bh_nocdc_frac = -1.;
1040 double bh_notop_frac = -1.;
1041 double bh_noarich_frac = -1.;
1042 double eidcontent = histbh_electronid->GetBinContent(1);
1043 double bh_goode_o_bade;
1044 if (eidcontent != 0) {
1045 bh_goode_o_bade = histbh_electronid->GetBinContent(20) / eidcontent;
1046 } else {
1047 bh_goode_o_bade = 0.0;
1048 }
1049 double bh_pval_more95 = 0.0;
1050 double bh_pval_less05 = 0.0;
1051 for (int i = 95; i < 100; i++) bh_pval_more95 += histbh_Pval->GetBinContent(i + 1);
1052 for (int i = 0; i < 5; i++) bh_pval_less05 += histbh_Pval->GetBinContent(i + 1);
1053 if (bh_neve_bhabha_sign != 0) {
1054 bh_goode_frac = histbh_electronid->GetBinContent(20) / bh_neve_bhabha_sign;
1055 bh_pval_frac_0 = bh_pval_less05 / bh_neve_bhabha_sign;
1056 bh_pval_frac_1 = bh_pval_more95 / bh_neve_bhabha_sign;
1057 bh_nocdc_frac = histbh_ncdc->GetBinContent(1) / bh_neve_bhabha_sign;
1058 bh_notop_frac = histbh_topdig->GetBinContent(1) / bh_neve_bhabha_sign;
1059 bh_noarich_frac = histbh_DetPhotonARICH->GetBinContent(1) / bh_neve_bhabha_sign;
1060 } else {
1061 bh_goode_frac = 0.0;
1062 bh_pval_frac_0 = 0.0;
1063 bh_pval_frac_1 = 0.0;
1064 bh_nocdc_frac = 0.0;
1065 bh_notop_frac = 0.0;
1066 bh_noarich_frac = 0.0;
1067 }
1068 // set values
1069 mon_bhabha->setVariable("bh_mean_npxd", bh_mean_npxd);
1070 mon_bhabha->setVariable("bh_mean_nsvd", bh_mean_nsvd);
1071 mon_bhabha->setVariable("bh_mean_ncdc", bh_mean_ncdc);
1072 mon_bhabha->setVariable("bh_mean_topdig", bh_mean_topdig);
1073 mon_bhabha->setVariable("bh_mean_parich", bh_mean_parich);
1074 mon_bhabha->setVariable("bh_mean_ncdc_ex", bh_mean_ncdc_ex);
1075 mon_bhabha->setVariable("bh_mean_necl", bh_mean_necl);
1076 mon_bhabha->setVariable("bh_mean_electronid", bh_mean_electronid);
1077 mon_bhabha->setVariable("bh_mean_d0", bh_mean_d0);
1078 mon_bhabha->setVariable("bh_mean_z0", bh_mean_z0);
1079 mon_bhabha->setVariable("bh_mean_pval", bh_mean_pval);
1080 mon_bhabha->setVariable("bh_mean_ndf", bh_mean_ndf);
1081 mon_bhabha->setVariable("bh_dif_ndf_ncdc", bh_dif_ndf_ncdc);
1082 mon_bhabha->setVariable("bh_mean_dd0", bh_mean_dd0);
1083 mon_bhabha->setVariable("bh_mean_dz0", bh_mean_dz0);
1084 mon_bhabha->setVariable("bh_mean_dpt", bh_mean_dpt);
1085 mon_bhabha->setVariable("bh_rms_dd0", bh_rms_dd0);
1086 mon_bhabha->setVariable("bh_rms_dz0", bh_rms_dz0);
1087 mon_bhabha->setVariable("bh_rms_dpt", bh_rms_dpt);
1088 mon_bhabha->setVariable("bh_sigma68_dd0", bh_sigma68_dd0);
1089 mon_bhabha->setVariable("bh_sigma68_dz0", bh_sigma68_dz0);
1090 mon_bhabha->setVariable("bh_sigma68_dpt", bh_sigma68_dpt);
1091 mon_bhabha->setVariable("bh_neve_bhabha", bh_neve_bhabha);
1092 mon_bhabha->setVariable("bh_neve_bhabha_sign", bh_neve_bhabha_sign);
1093 mon_bhabha->setVariable("bh_goode_frac", bh_goode_frac);
1094 mon_bhabha->setVariable("bh_goode_o_bade", bh_goode_o_bade);
1095 mon_bhabha->setVariable("bh_pval_frac_0", bh_pval_frac_0);
1096 mon_bhabha->setVariable("bh_pval_frac_1", bh_pval_frac_1);
1097 mon_bhabha->setVariable("bh_nocdc_frac", bh_nocdc_frac);
1098 mon_bhabha->setVariable("bh_notop_frac", bh_notop_frac);
1099 mon_bhabha->setVariable("bh_noarich_frac", bh_noarich_frac);
1100}
1101
1103{
1104 // ========== hadronb2 + tight
1105 // get existing histograms produced by DQM modules
1106 auto* histhad_nECLClusters = findHist("PhysicsObjectsMiraBelleHadron/hist_nECLClusters");
1107 auto* histhad_visibleEnergyCMSnorm = findHist("PhysicsObjectsMiraBelleHadron/hist_visibleEnergyCMSnorm");
1108 auto* histhad_EsumCMSnorm = findHist("PhysicsObjectsMiraBelleHadron/hist_EsumCMSnorm");
1109 auto* histhad_R2 = findHist("PhysicsObjectsMiraBelleHadron/hist_R2");
1110 auto* histhad_physicsresultsH = findHist("PhysicsObjectsMiraBelleHadron/hist_physicsresultsH");
1111 auto* histbh_nECLClusters = findHist("PhysicsObjectsMiraBelleBhabha/hist_nECLClusters");
1112
1113 if (histhad_nECLClusters == nullptr) {
1114 B2ERROR("Can not find the histhad_nECLClusters histogram!");
1115 return;
1116 }
1117 if (histhad_visibleEnergyCMSnorm == nullptr) {
1118 B2ERROR("Can not find the histhad_visibleEnergyCMSnorm histogram!");
1119 return;
1120 }
1121 if (histhad_EsumCMSnorm == nullptr) {
1122 B2ERROR("Can not find the histhad_EsumCMSnorm histogram!");
1123 return;
1124 }
1125 if (histhad_R2 == nullptr) {
1126 B2ERROR("Can not find the histhad_R2 histogram!");
1127 return;
1128 }
1129 if (histhad_physicsresultsH == nullptr) {
1130 B2ERROR("Can not find the histhad_physicsresultsH histogram!");
1131 return;
1132 }
1133 if (histbh_nECLClusters == nullptr) {
1134 B2ERROR("Can not find the PhysicsObjectsMiraBelleBhabha/hist_nECLClusters histogram!");
1135 return;
1136 }
1137 // Make TCanvases
1138 // --- hadron_Main
1139 hadron_main->Divide(2, 2);
1140 hadron_main->cd(1); histhad_nECLClusters->Draw();
1141 hadron_main->cd(2); histhad_visibleEnergyCMSnorm->Draw();
1142 hadron_main->cd(3); histhad_EsumCMSnorm->Draw();
1143 hadron_main->cd(4); histhad_R2->Draw();
1144 // calculate the values of monitoring variables
1145 double bh_neve_bhabha = histbh_nECLClusters->GetEntries(); // copy from bhabha
1146 double had_ntot = histhad_physicsresultsH->GetBinContent(3);
1147 double ratio_hadron_bhabha = 0.;
1148 //pull
1149 double ratio_pull_hadBhabha = -10.;
1150 double error_ratio = -10.;
1151 if (had_ntot != 0 and bh_neve_bhabha != 0) {
1152 ratio_hadron_bhabha = had_ntot / bh_neve_bhabha;
1153 //pull
1154 error_ratio = ratio_hadron_bhabha * sqrt((1 / had_ntot) + (1 / bh_neve_bhabha));
1155 ratio_pull_hadBhabha = (ratio_hadron_bhabha - m_reference_hadb) / error_ratio;
1156 }
1157 // set values
1158 mon_bhabha->setVariable("had_ntot", had_ntot);
1159 mon_hadron->setVariable("ratio_hadron_bhabha", ratio_hadron_bhabha);
1160 mon_hadron->setVariable("error_ratio", error_ratio);
1161 mon_hadron->setVariable("ratio_pull_hadBhabha", ratio_pull_hadBhabha);
1162}
1163
1165{
1166 ExtractMumu();
1167 ExtractD0Star();
1169 ExtractBhabha();
1170 ExtractHadron();
1171
1172 B2DEBUG(20, "DQMHistAnalysisMiraBelle : endRun called");
1173}
1174
1176{
1177
1178 B2DEBUG(20, "terminate called");
1179}
void ExtractD0Star(void)
Extract data from histograms related to Do*.
TCanvas * dst_k_val
TCanvas object for PID distributions of K.
void initialize() override final
Initialize the Module.
TCanvas * bhabha_main
TCanvas object for main display.
void ExtractBhabha(void)
Extract data from histograms related to Bhabha.
double m_reference_hadb
Reference value for hadronb2_tight bhabha ratio.
TCanvas * hadron_main
TCanvas object for main display.
TCanvas * bhabha_resolution
TCanvas object for resolution display.
void ExtractHadron(void)
Extract data from histograms related to Hadron.
TCanvas * mumu_resolution
TCanvas object for resolution display.
Belle2::MonitoringObject * mon_bhabha
MonitoringObject for bhabha events.
void terminate() override final
Termination action.
TCanvas * dst_pi_val
TCanvas object for PID distributions of pi.
Belle2::MonitoringObject * mon_dst
MonitoringObject for D* events.
void event() override final
Event processor.
void ExtractMumu(void)
Extract data from histograms related to MuMu.
double m_reference_mumu
Reference value for mumu inv mass.
void ExtractTaupair(void)
Extract data from histograms related to TauPairs.
TCanvas * mumu_main
TCanvas object for main display.
TCanvas * mumu_muon_val
TCanvas object for mumu values display.
Belle2::MonitoringObject * mon_mumu
MonitoringObject for mumu events.
void endRun() override final
End-of-run action.
Belle2::MonitoringObject * mon_tautau
MonitoringObject for tau pair events.
TCanvas * dst_mass
TCanvas object for D0 mass, delta mass, and pi0 mass.
double m_scale_dst
Scale factor "signal region" / "sideband", assuming uniform events.
void beginRun() override final
Called when entering a new run.
Belle2::MonitoringObject * mon_hadron
MonitoringObject for hadronb2 tight events.
static MonitoringObject * getMonitoringObject(const std::string &name)
Get MonitoringObject with given name (new object is created if non-existing)
static double getSigma68(TH1 *h)
Helper function to compute half of the central interval covering 68% of a distribution.
static TH1 * findHist(const std::string &histname, bool onlyIfUpdated=false)
Get histogram from list (no other search).
DQMHistAnalysisModule()
Constructor / Destructor.
void setDescription(const std::string &description)
Sets the description of the module.
Definition Module.cc:214
void setPropertyFlags(unsigned int propertyFlags)
Sets the flags for the module properties.
Definition Module.cc:208
@ c_ParallelProcessingCertified
This module can be run in parallel processing mode safely (All I/O must be done through the data stor...
Definition Module.h:80
void addParam(const std::string &name, T &paramVariable, const std::string &description, const T &defaultValue)
Adds a new parameter to the module.
Definition Module.h:559
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
Definition Module.h:649
double sqrt(double a)
sqrt for double
Definition beamHelpers.h:28
Abstract base class for different kinds of events.
STL namespace.