From 5f2854bb7fb227e7a8725a50043046cbb2b26166 Mon Sep 17 00:00:00 2001 From: Felix Metzner <felixmetzner@outlook.com> Date: Thu, 18 Apr 2024 21:04:12 +0200 Subject: [PATCH] Fixing bug in sys shape overview plots caused by not skipping irrelevant compontents. --- .../dedicated_fit_approach/dedicated_fit_routine.py | 2 +- .../dedicated_fit_approach/plotting_tools.py | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/rdstar/offline_analysis/fitting/dedicated_fit_approach/dedicated_fit_routine.py b/rdstar/offline_analysis/fitting/dedicated_fit_approach/dedicated_fit_routine.py index f6e0ffef6..946c12d8e 100644 --- a/rdstar/offline_analysis/fitting/dedicated_fit_approach/dedicated_fit_routine.py +++ b/rdstar/offline_analysis/fitting/dedicated_fit_approach/dedicated_fit_routine.py @@ -1217,7 +1217,7 @@ class RDStarFitEvaluator: normed_base_shape=fit_instance.template_shapes, relative_shape_error=fit_instance.lepton_id_rel_shape_sys_uncert_matrix, pure_bin_counts=fit_instance.squared_template_stat_error, - components_to_consider=("BpDzl", "BzDml", "BpDzSl", "BzDmSl", "BBbarBKG_in_cB", "BBbarBKG_in_nB"), + components_to_consider=None, scale_factor=scale_factor, plot_subsets=plot_subsets, ) diff --git a/rdstar/offline_analysis/fitting/dedicated_fit_approach/plotting_tools.py b/rdstar/offline_analysis/fitting/dedicated_fit_approach/plotting_tools.py index ffa89bfeb..69985e778 100644 --- a/rdstar/offline_analysis/fitting/dedicated_fit_approach/plotting_tools.py +++ b/rdstar/offline_analysis/fitting/dedicated_fit_approach/plotting_tools.py @@ -535,7 +535,12 @@ class SystematicsShapePlotter: self, reco_ch_info: RecoChannelInfo, component_info: ComponentInfo, + components_to_consider: Optional[Tuple[str, ...]], ) -> bool: + if components_to_consider is not None: + if component_info.name not in components_to_consider: + return True + ch_suffixes: Tuple[str, ...] = tuple(set(self._reco_ch_name_to_charge_suffix.values())) if not any(component_info.name.endswith(ch_suffix) for ch_suffix in ch_suffixes): return False @@ -587,7 +592,11 @@ class SystematicsShapePlotter: assert len(axes.shape) == 1, (len(axes.shape), axes.shape) for comp_id, component in enumerate(self.fit_components): - if self._skip_this_component(reco_ch_info=reco_ch_info, component_info=component): + if self._skip_this_component( + reco_ch_info=reco_ch_info, + component_info=component, + components_to_consider=sys_shape_info.components_to_consider, + ): continue normed_base_shape: np.ndarray = sys_shape_info.normed_base_shape[:, comp_id] @@ -653,6 +662,8 @@ class SystematicsShapePlotter: (KITColors.kit_green, down_sys, "Down/Nom"), ] + ax.hlines(y=0.0, xmin=bin_edges[0], xmax=bin_edges[-1], linestyles="--", lw=1.0, color=KITColors.kit_black) + for h_color, h_weights, h_label in hist_plot_infos: ax.hist( x=bin_mids, -- GitLab