Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions machine_learning_hep/analysis/analyzerdhadrons.py
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ def fit(self):
self.lpt_finbinmax[ipt],
lpt_probcutfin[ipt],
)
h_invmass = rfile.Get("hmass" + suffix)
h_invmass = rfile.Get("hmass_" + suffix)
# Rebin
h_invmass.Rebin(self.p_rebin[ipt])
if h_invmass.GetEntries() < 100: # TODO: reconsider criterion
Expand Down Expand Up @@ -341,6 +341,7 @@ def fit(self):
roows.var(fixpar).setConstant(True)
if h_invmass.GetEntries() == 0:
continue

roo_res, roo_ws = self._roofit_mass(
level,
h_invmass,
Expand Down Expand Up @@ -418,7 +419,7 @@ def efficiency(self):
print(self.n_fileff)
lfileeff = TFile.Open(self.n_fileff)
lfileeff.ls()
fileouteff = TFile.Open(f"{self.d_resultsallpmc}/{self.efficiency_filename}{self.case}{self.typean}.root", "recreate")
fileouteff = TFile.Open(f"{self.d_resultsallpmc}/efficiencies{self.case}{self.typean}.root", "recreate")
cEff = TCanvas("cEff", "The Fit Canvas")
cEff.SetCanvasSize(1900, 1500)
cEff.SetWindowSize(500, 500)
Expand Down Expand Up @@ -494,7 +495,7 @@ def makenormyields(self): # pylint: disable=import-outside-toplevel, too-many-b
if not os.path.exists(yield_filename):
self.logger.fatal("Yield file %s could not be found", yield_filename)

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

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

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

filemass = TFile.Open(self.n_filemass)
hevents = filemass.Get("all_events")
hselevents = filemass.Get("sel_events")

if self.p_nevents is not None:
selnorm = self.p_nevents
else:
filemass = TFile.Open(self.n_filemass)
hevents = filemass.Get("all_events")
hselevents = filemass.Get("sel_events")
norm, selnorm = self.calculate_norm(self.logger, hevents, hselevents)
histonorm.SetBinContent(1, selnorm)
self.logger.warning("Number of events %d", norm)
Expand Down Expand Up @@ -554,9 +556,7 @@ def makenormyields(self): # pylint: disable=import-outside-toplevel, too-many-b
f_fileoutcross = TFile.Open(fileoutcross)
if f_fileoutcross:
hcross = f_fileoutcross.Get("hptspectrum")
hcrossbr = f_fileoutcross.Get("hptspectrum_wo_br")
fileoutcrosstot.cd()
hcross.Write()
hcrossbr.Write()
histonorm.Write()
fileoutcrosstot.Close()
16 changes: 9 additions & 7 deletions machine_learning_hep/analysis/analyzerdhadrons_mult.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
)
from machine_learning_hep.hf_pt_spectrum import hf_pt_spectrum
from machine_learning_hep.logger import get_logger
from machine_learning_hep.utils.hist import get_dim, project_hist
from machine_learning_hep.utils.hist import get_dim


# pylint: disable=too-few-public-methods, too-many-instance-attributes, too-many-statements, fixme
Expand Down Expand Up @@ -320,7 +320,7 @@ def fit(self):
for ipt in range(len(self.lpt_finbinmin)):
lpt_probcutfin[ipt] = self.lpt_probcutfin_tmp[self.bin_matching[ipt]]
self.logger.debug("fitting %s - %i - %i", level, ipt, ibin2)
roows = self.roows.get(ipt)
roows = self.roows.get((ibin2, ipt))
if self.mltype == "MultiClassification":
suffix = "%s%d_%d_%.2f%.2f%s_%.2f_%.2f" % (
self.v_var_binning,
Expand All @@ -342,7 +342,7 @@ def fit(self):
self.lvar2_binmin[ibin2],
self.lvar2_binmax[ibin2],
)
h_invmass = rfile.Get("hmass" + suffix)
h_invmass = rfile.Get("hmass_" + suffix)
# Rebin
h_invmass.Rebin(self.p_rebin[ipt])
if h_invmass.GetEntries() < 100: # TODO: reconsider criterion
Expand Down Expand Up @@ -378,12 +378,14 @@ def fit(self):
break
self.logger.debug("Using fit config for %i: %s", ipt, fitcfg)
if datasel := fitcfg.get("datasel"):
h = rfile.Get(f"h_mass-pthf_{datasel}")
h_invmass = project_hist(h, [0], {1: (ipt + 1, ipt + 1)})
h_invmass = rfile.Get(f"hmass_{datasel}_{suffix}")

for fixpar in fitcfg.get("fix_params", []):
if roows.var(fixpar):
roows.var(fixpar).setConstant(True)
for par in fitcfg.get("free_params", []):
if roows.var(par):
roows.var(par).setConstant(False)
if h_invmass.GetEntries() == 0:
continue

Expand All @@ -405,8 +407,8 @@ def fit(self):
)
# if level == 'mc':
# roo_ws.Print()
self.roo_ws[level][ipt] = roo_ws
self.roows[ipt] = roo_ws
self.roows[(ibin2, ipt)] = roo_ws.Clone()
self.roo_ws[(level, ibin2, ipt)] = roo_ws.Clone()
if roo_res.status() == 0:
if level in ("data", "mc_sig"):
self.fit_mean[level][ipt] = roo_ws.var(self.p_param_names["gauss_mean"]).getValV()
Expand Down
Loading
Loading