Skip to content

Commit 971f958

Browse files
DelloStrittoLuigi Dello Stritto
andauthored
Updated DBs and analizer (#1064)
* Updated DBs and analizer * fix * fix * database Lc pK0s vs mult * data/data_run3/database_ml_parameters_D0pp_mult_CorrBkg.yml * fix signal count * fix * fix * add corr bkg --------- Co-authored-by: Luigi Dello Stritto <ldellost@alicecerno2.cern.ch>
1 parent e121fd6 commit 971f958

14 files changed

Lines changed: 2780 additions & 289 deletions

machine_learning_hep/analysis/analyzer_jets.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,7 +401,7 @@ def _roofit_mass(self, level, hist, ipt, pdfnames, param_names, fitcfg, roows=No
401401
if level == "data":
402402
mean_sgn = ws.var(self.p_param_names["gauss_mean"])
403403
sigma_sgn = ws.var(self.p_param_names["gauss_sigma"])
404-
(sig, sig_err, bkg, bkg_err, signif, signif_err, s_over_b, s_over_b_err) = calc_signif(
404+
(sig, sig_err, _, _, bkg, bkg_err, signif, signif_err, s_over_b, s_over_b_err) = calc_signif(
405405
ws, res, pdfnames, param_names, mean_sgn, sigma_sgn
406406
)
407407
add_text_info_perf(textInfoLeft, sig, sig_err, bkg, bkg_err, s_over_b, s_over_b_err, signif, signif_err)

machine_learning_hep/analysis/analyzerdhadrons.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ def _roofit_mass(self, level, hist, ipt, pdfnames, param_names, fitcfg, roows=No
183183
if level == "data":
184184
mean_sgn = ws.var(self.p_param_names["gauss_mean"])
185185
sigma_sgn = ws.var(self.p_param_names["gauss_sigma"])
186-
(sig, sig_err, bkg, bkg_err, signif, signif_err, s_over_b, s_over_b_err) = calc_signif(
186+
(sig, sig_err, _, _, bkg, bkg_err, signif, signif_err, s_over_b, s_over_b_err) = calc_signif(
187187
ws, res, pdfnames, param_names, mean_sgn, sigma_sgn
188188
)
189189

@@ -304,7 +304,7 @@ def fit(self):
304304
self.lpt_finbinmax[ipt],
305305
lpt_probcutfin[ipt],
306306
)
307-
h_invmass = rfile.Get("hmass" + suffix)
307+
h_invmass = rfile.Get("hmass_" + suffix)
308308
# Rebin
309309
h_invmass.Rebin(self.p_rebin[ipt])
310310
if h_invmass.GetEntries() < 100: # TODO: reconsider criterion
@@ -341,6 +341,7 @@ def fit(self):
341341
roows.var(fixpar).setConstant(True)
342342
if h_invmass.GetEntries() == 0:
343343
continue
344+
344345
roo_res, roo_ws = self._roofit_mass(
345346
level,
346347
h_invmass,
@@ -371,7 +372,7 @@ def fit(self):
371372
if level == "data":
372373
mean_sgn = roo_ws.var(self.p_param_names["gauss_mean"])
373374
sigma_sgn = roo_ws.var(self.p_param_names["gauss_sigma"])
374-
(sig, sig_err, _, _, signif, signif_err, s_over_b, s_over_b_err) = calc_signif(
375+
(sig, sig_err, _, _, _, _, signif, signif_err, s_over_b, s_over_b_err) = calc_signif(
375376
roo_ws, roo_res, self.p_pdfnames, self.p_param_names, mean_sgn, sigma_sgn
376377
)
377378

@@ -418,7 +419,7 @@ def efficiency(self):
418419
print(self.n_fileff)
419420
lfileeff = TFile.Open(self.n_fileff)
420421
lfileeff.ls()
421-
fileouteff = TFile.Open(f"{self.d_resultsallpmc}/{self.efficiency_filename}{self.case}{self.typean}.root", "recreate")
422+
fileouteff = TFile.Open(f"{self.d_resultsallpmc}/efficiencies{self.case}{self.typean}.root", "recreate")
422423
cEff = TCanvas("cEff", "The Fit Canvas")
423424
cEff.SetCanvasSize(1900, 1500)
424425
cEff.SetWindowSize(500, 500)
@@ -494,7 +495,7 @@ def makenormyields(self): # pylint: disable=import-outside-toplevel, too-many-b
494495
if not os.path.exists(yield_filename):
495496
self.logger.fatal("Yield file %s could not be found", yield_filename)
496497

497-
fileouteff = f"{self.d_resultsallpmc}/{self.efficiency_filename}{self.case}{self.typean}.root"
498+
fileouteff = f"{self.d_resultsallpmc}/efficiencies{self.case}{self.typean}.root"
498499
if not os.path.exists(fileouteff):
499500
self.logger.fatal("Efficiency file %s could not be found", fileouteff)
500501

@@ -506,12 +507,13 @@ def makenormyields(self): # pylint: disable=import-outside-toplevel, too-many-b
506507

507508
histonorm = TH1F("histonorm", "histonorm", 1, 0, 1)
508509

510+
filemass = TFile.Open(self.n_filemass)
511+
hevents = filemass.Get("all_events")
512+
hselevents = filemass.Get("sel_events")
513+
509514
if self.p_nevents is not None:
510515
selnorm = self.p_nevents
511516
else:
512-
filemass = TFile.Open(self.n_filemass)
513-
hevents = filemass.Get("all_events")
514-
hselevents = filemass.Get("sel_events")
515517
norm, selnorm = self.calculate_norm(self.logger, hevents, hselevents)
516518
histonorm.SetBinContent(1, selnorm)
517519
self.logger.warning("Number of events %d", norm)
@@ -554,9 +556,7 @@ def makenormyields(self): # pylint: disable=import-outside-toplevel, too-many-b
554556
f_fileoutcross = TFile.Open(fileoutcross)
555557
if f_fileoutcross:
556558
hcross = f_fileoutcross.Get("hptspectrum")
557-
hcrossbr = f_fileoutcross.Get("hptspectrum_wo_br")
558559
fileoutcrosstot.cd()
559560
hcross.Write()
560-
hcrossbr.Write()
561561
histonorm.Write()
562562
fileoutcrosstot.Close()

machine_learning_hep/analysis/analyzerdhadrons_mult.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
)
5151
from machine_learning_hep.hf_pt_spectrum import hf_pt_spectrum
5252
from machine_learning_hep.logger import get_logger
53-
from machine_learning_hep.utils.hist import get_dim, project_hist
53+
from machine_learning_hep.utils.hist import get_dim
5454

5555

5656
# pylint: disable=too-few-public-methods, too-many-instance-attributes, too-many-statements, fixme
@@ -211,7 +211,7 @@ def _roofit_mass(self, level, hist, ipt, pdfnames, param_names, fitcfg, roows=No
211211
if level == "data":
212212
mean_sgn = ws.var(self.p_param_names["gauss_mean"])
213213
sigma_sgn = ws.var(self.p_param_names["gauss_sigma"])
214-
(sig, sig_err, bkg, bkg_err, signif, signif_err, s_over_b, s_over_b_err) = calc_signif(
214+
(sig, sig_err, _, _, bkg, bkg_err, signif, signif_err, s_over_b, s_over_b_err) = calc_signif(
215215
ws, res, pdfnames, param_names, mean_sgn, sigma_sgn
216216
)
217217

@@ -320,7 +320,7 @@ def fit(self):
320320
for ipt in range(len(self.lpt_finbinmin)):
321321
lpt_probcutfin[ipt] = self.lpt_probcutfin_tmp[self.bin_matching[ipt]]
322322
self.logger.debug("fitting %s - %i - %i", level, ipt, ibin2)
323-
roows = self.roows.get(ipt)
323+
roows = self.roows.get((ibin2, ipt))
324324
if self.mltype == "MultiClassification":
325325
suffix = "%s%d_%d_%.2f%.2f%s_%.2f_%.2f" % (
326326
self.v_var_binning,
@@ -342,9 +342,11 @@ def fit(self):
342342
self.lvar2_binmin[ibin2],
343343
self.lvar2_binmax[ibin2],
344344
)
345-
h_invmass = rfile.Get("hmass" + suffix)
345+
h_invmass = rfile.Get("hmass_" + suffix)
346346
# Rebin
347-
h_invmass.Rebin(self.p_rebin[ipt])
347+
# rebin = self.p_rebin[ibin2][ipt]
348+
rebin = self.p_rebin[ipt]
349+
h_invmass.Rebin(rebin)
348350
if h_invmass.GetEntries() < 100: # TODO: reconsider criterion
349351
self.logger.error(
350352
"Not enough entries to fit for %s, pt bin %d, mult bin %d", level, ipt, ibin2
@@ -378,12 +380,14 @@ def fit(self):
378380
break
379381
self.logger.debug("Using fit config for %i: %s", ipt, fitcfg)
380382
if datasel := fitcfg.get("datasel"):
381-
h = rfile.Get(f"h_mass-pthf_{datasel}")
382-
h_invmass = project_hist(h, [0], {1: (ipt + 1, ipt + 1)})
383+
h_invmass = rfile.Get(f"hmass_{datasel}_{suffix}")
383384

384385
for fixpar in fitcfg.get("fix_params", []):
385386
if roows.var(fixpar):
386387
roows.var(fixpar).setConstant(True)
388+
for par in fitcfg.get("free_params", []):
389+
if roows.var(par):
390+
roows.var(par).setConstant(False)
387391
if h_invmass.GetEntries() == 0:
388392
continue
389393

@@ -405,8 +409,8 @@ def fit(self):
405409
)
406410
# if level == 'mc':
407411
# roo_ws.Print()
408-
self.roo_ws[level][ipt] = roo_ws
409-
self.roows[ipt] = roo_ws
412+
self.roows[(ibin2, ipt)] = roo_ws.Clone()
413+
self.roo_ws[(level, ibin2, ipt)] = roo_ws.Clone()
410414
if roo_res.status() == 0:
411415
if level in ("data", "mc_sig"):
412416
self.fit_mean[level][ipt] = roo_ws.var(self.p_param_names["gauss_mean"]).getValV()
@@ -425,7 +429,7 @@ def fit(self):
425429
if level == "data":
426430
mean_sgn = roo_ws.var(self.p_param_names["gauss_mean"])
427431
sigma_sgn = roo_ws.var(self.p_param_names["gauss_sigma"])
428-
(sig, sig_err, _, _, signif, signif_err, s_over_b, s_over_b_err) = calc_signif(
432+
(sig, sig_err, _, _, _, _, signif, signif_err, s_over_b, s_over_b_err) = calc_signif(
429433
roo_ws, roo_res, self.p_pdfnames, self.p_param_names, mean_sgn, sigma_sgn
430434
)
431435

@@ -573,7 +577,7 @@ def efficiency(self):
573577
h_sel_fd_sl.SetName("signal_loss_fd_mult%d" % imult)
574578
h_sel_fd_sl.Write()
575579

576-
legslFD.AddEntry(h_sel_fd_sl, legeffstring, "LEP")
580+
legslFD.AddEntry(h_sel_fd_sl, legeffFDstring, "LEP")
577581
h_sel_fd_sl.GetXaxis().SetTitle("#it{p}_{T} (GeV/#it{c})")
578582
h_sel_fd_sl.GetYaxis().SetTitle("Signal loss (feeddown) %s" % (self.p_latexnhadron))
579583
h_sel_fd_sl.SetMinimum(0.7)

0 commit comments

Comments
 (0)