From 9d3e46e3b9f61f884042061dd5c47e0cc1410a63 Mon Sep 17 00:00:00 2001 From: yangyouhua <yangyh@lzulogin02.hep.lzu.edu.cn> Date: Fri, 21 Mar 2025 16:58:44 +0800 Subject: [PATCH 1/4] Add Lb->NJpsiKs lines --- .../lines/b_to_charmonia/b_to_jpsix.py | 103 ++++++++++++++++++ .../lines/b_to_charmonia/hlt2_b2cc.py | 36 ++++++ 2 files changed, 139 insertions(+) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py index 42345998816..c1a8681a3b9 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py @@ -254,6 +254,22 @@ def make_Bd2JpsimumuKshortKshort_detached( max_vtxchi2pdof=max_vtxchi2pdof, ) +def make_LbToJpsiKs_Neutron_tight( + particles, + descriptor, + name="B2CC_LbToJpsiKshort_Neutron_Combiner_{hash}", + comb_m_min=6050 * MeV, + comb_m_max=6555 * MeV, +): + combination_code = in_range(comb_m_min, F.MASS, comb_m_max) + + return ParticleCombiner( + name=name, + Inputs=particles, + DecayDescriptor=descriptor, + CombinationCut=combination_code, + ) + ### Define function for each line def make_BsToJpsiPhi_detached_line(process): @@ -654,6 +670,93 @@ def make_LbToJpsipH_line( return [jpsi, lambda0, Lb2jpsipH] +def make_LbToJpsiKs_LL_Neutron_tight_line( + process, + comb_m_min_jpsi=2916 * MeV, + comb_m_max_jpsi=3276 * MeV, + comb_m_min=3550 * MeV, + comb_m_max=4750 * MeV, +): + assert process in ["hlt2", "spruce"], ( + "Line must be defined as Hlt2 or Sprucing line!" + ) + muons = basic_builder.filter_muons_loose( + particles=make_long_muons(), mu_pidk=20, mu_pidp=20 + ) + jpsi = basic_builder.make_selected_jpsi_bd2jpsimumukshort( + muons=muons, + ) + kshort_LL = basic_builder.make_ks_LL(bpvvdchi2=5, chi2vx=20) + + Lb2jpsiKs = make_LbToJpsiKs_Neutron_tight( + name="B2CC_LbToJpsiKshort_neutron_Combiner_{hash}", + particles=[jpsi, kshort_LL], + descriptor="[Lambda_b0 -> J/psi(1S) KS0 ]cc", + comb_m_min=comb_m_min, + comb_m_max=comb_m_max, + ) + + return [jpsi, kshort_LL, Lb2jpsiKs] + +def make_LbToJpsiKs_DD_Neutron_tight_line( + process, + comb_m_min_jpsi=2916 * MeV, + comb_m_max_jpsi=3276 * MeV, + comb_m_min=3550 * MeV, + comb_m_max=4750 * MeV, +): + assert process in ["hlt2", "spruce"], ( + "Line must be defined as Hlt2 or Sprucing line!" + ) + muons = basic_builder.filter_muons_loose( + particles=make_long_muons(), mu_pidk=20, mu_pidp=20 + ) + jpsi = basic_builder.make_selected_jpsi_bd2jpsimumukshort( + muons=muons, + ) + kshort_DD = basic_builder.make_ks_DD(bpvvdchi2=5, chi2vx=20) + + Lb2jpsiKs = make_LbToJpsiKs_Neutron_tight( + name="B2CC_LbToJpsiKshort_neutron_Combiner_{hash}", + particles=[jpsi, kshort_DD], + descriptor="[Lambda_b0 -> J/psi(1S) KS0 ]cc", + comb_m_min=comb_m_min, + comb_m_max=comb_m_max, + ) + + return [jpsi, kshort_DD, Lb2jpsiKs] + +def make_LbToJpsiKs_LD_Neutron_tight_line( + process, + comb_m_min_jpsi=2916 * MeV, + comb_m_max_jpsi=3276 * MeV, + comb_m_min=3550 * MeV, + comb_m_max=4750 * MeV, +): + assert process in ["hlt2", "spruce"], ( + "Line must be defined as Hlt2 or Sprucing line!" + ) + muons = basic_builder.filter_muons_loose( + particles=make_long_muons(), mu_pidk=20, mu_pidp=20 + ) + jpsi = basic_builder.make_selected_jpsi_bd2jpsimumukshort( + muons=muons, + ) + kshort_LD = basic_builder.make_ks_LD(bpvvdchi2=5, chi2vx=20) + + Lb2jpsiKs = make_LbToJpsiKs_Neutron_tight( + name="B2CC_LbToJpsiKshort_neutron_Combiner_{hash}", + particles=[jpsi, kshort_LD], + descriptor="[Lambda_b0 -> J/psi(1S) KS0 ]cc", + comb_m_min=comb_m_min, + comb_m_max=comb_m_max, + ) + + return [jpsi, kshort_LD, Lb2jpsiKs] + + + + def make_BdToJpsieeKshort_LL_detached_line(process): assert process in ["hlt2", "spruce"], ( diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/hlt2_b2cc.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/hlt2_b2cc.py index 5792c4b2e64..22067de1ce0 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/hlt2_b2cc.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/hlt2_b2cc.py @@ -224,6 +224,42 @@ def LbToJpsipH_line(name="Hlt2B2CC_LbToJpsipH", prescale=1, persistreco=False): pv_tracks=True, ) +@register_line_builder(all_lines) +def LbToJpsiKs_Neutron_LL_tight_line(name="Hlt2B2CC_LbToJpsiKs_LL_Neutron_tight", prescale=1, persistreco=False): + line_alg = b_to_jpsix.make_LbToJpsiKs_LL_Neutron_tight_line(process=PROCESS) + return Hlt2Line( + name=name, + prescale=prescale, + algs=b2cc_prefilters() + line_alg, + persistreco=persistreco, + calo_digits=True, + calo_clusters=True, + ) + +@register_line_builder(all_lines) +def LbToJpsiKs_Neutron_DD_tight_line(name="Hlt2B2CC_LbToJpsiKs_DD_Neutron_tight", prescale=1, persistreco=False): + line_alg = b_to_jpsix.make_LbToJpsiKs_DD_Neutron_tight_line(process=PROCESS) + return Hlt2Line( + name=name, + prescale=prescale, + algs=b2cc_prefilters() + line_alg, + persistreco=persistreco, + calo_digits=True, + calo_clusters=True, + ) + +@register_line_builder(all_lines) +def LbToJpsiKs_Neutron_LD_tight_line(name="Hlt2B2CC_LbToJpsiKs_LD_Neutron_tight", prescale=1, persistreco=False): + line_alg = b_to_jpsix.make_LbToJpsiKs_LD_Neutron_tight_line(process=PROCESS) + return Hlt2Line( + name=name, + prescale=prescale, + algs=b2cc_prefilters() + line_alg, + persistreco=persistreco, + calo_digits=True, + calo_clusters=True, + ) + @register_line_builder(all_lines) def BdToJpsieeKshort_LL_detached_line( -- GitLab From 6a013098f2e2cb375fa661e9d7e51f24f73db6da Mon Sep 17 00:00:00 2001 From: Gitlab CI <noreply@cern.ch> Date: Fri, 21 Mar 2025 09:13:53 +0000 Subject: [PATCH 2/4] pre-commit fixes patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/53104072 --- .../Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py | 11 ++++++----- .../Hlt2Conf/lines/b_to_charmonia/hlt2_b2cc.py | 15 ++++++++++++--- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py index c1a8681a3b9..57b8817bd49 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py @@ -254,6 +254,7 @@ def make_Bd2JpsimumuKshortKshort_detached( max_vtxchi2pdof=max_vtxchi2pdof, ) + def make_LbToJpsiKs_Neutron_tight( particles, descriptor, @@ -262,14 +263,14 @@ def make_LbToJpsiKs_Neutron_tight( comb_m_max=6555 * MeV, ): combination_code = in_range(comb_m_min, F.MASS, comb_m_max) - + return ParticleCombiner( name=name, Inputs=particles, DecayDescriptor=descriptor, CombinationCut=combination_code, ) - + ### Define function for each line def make_BsToJpsiPhi_detached_line(process): @@ -670,6 +671,7 @@ def make_LbToJpsipH_line( return [jpsi, lambda0, Lb2jpsipH] + def make_LbToJpsiKs_LL_Neutron_tight_line( process, comb_m_min_jpsi=2916 * MeV, @@ -698,6 +700,7 @@ def make_LbToJpsiKs_LL_Neutron_tight_line( return [jpsi, kshort_LL, Lb2jpsiKs] + def make_LbToJpsiKs_DD_Neutron_tight_line( process, comb_m_min_jpsi=2916 * MeV, @@ -726,6 +729,7 @@ def make_LbToJpsiKs_DD_Neutron_tight_line( return [jpsi, kshort_DD, Lb2jpsiKs] + def make_LbToJpsiKs_LD_Neutron_tight_line( process, comb_m_min_jpsi=2916 * MeV, @@ -755,9 +759,6 @@ def make_LbToJpsiKs_LD_Neutron_tight_line( return [jpsi, kshort_LD, Lb2jpsiKs] - - - def make_BdToJpsieeKshort_LL_detached_line(process): assert process in ["hlt2", "spruce"], ( "Line must be defined as Hlt2 or Sprucing line!" diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/hlt2_b2cc.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/hlt2_b2cc.py index 22067de1ce0..8821e6899cf 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/hlt2_b2cc.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/hlt2_b2cc.py @@ -224,8 +224,11 @@ def LbToJpsipH_line(name="Hlt2B2CC_LbToJpsipH", prescale=1, persistreco=False): pv_tracks=True, ) + @register_line_builder(all_lines) -def LbToJpsiKs_Neutron_LL_tight_line(name="Hlt2B2CC_LbToJpsiKs_LL_Neutron_tight", prescale=1, persistreco=False): +def LbToJpsiKs_Neutron_LL_tight_line( + name="Hlt2B2CC_LbToJpsiKs_LL_Neutron_tight", prescale=1, persistreco=False +): line_alg = b_to_jpsix.make_LbToJpsiKs_LL_Neutron_tight_line(process=PROCESS) return Hlt2Line( name=name, @@ -236,8 +239,11 @@ def LbToJpsiKs_Neutron_LL_tight_line(name="Hlt2B2CC_LbToJpsiKs_LL_Neutron_tight" calo_clusters=True, ) + @register_line_builder(all_lines) -def LbToJpsiKs_Neutron_DD_tight_line(name="Hlt2B2CC_LbToJpsiKs_DD_Neutron_tight", prescale=1, persistreco=False): +def LbToJpsiKs_Neutron_DD_tight_line( + name="Hlt2B2CC_LbToJpsiKs_DD_Neutron_tight", prescale=1, persistreco=False +): line_alg = b_to_jpsix.make_LbToJpsiKs_DD_Neutron_tight_line(process=PROCESS) return Hlt2Line( name=name, @@ -248,8 +254,11 @@ def LbToJpsiKs_Neutron_DD_tight_line(name="Hlt2B2CC_LbToJpsiKs_DD_Neutron_tight" calo_clusters=True, ) + @register_line_builder(all_lines) -def LbToJpsiKs_Neutron_LD_tight_line(name="Hlt2B2CC_LbToJpsiKs_LD_Neutron_tight", prescale=1, persistreco=False): +def LbToJpsiKs_Neutron_LD_tight_line( + name="Hlt2B2CC_LbToJpsiKs_LD_Neutron_tight", prescale=1, persistreco=False +): line_alg = b_to_jpsix.make_LbToJpsiKs_LD_Neutron_tight_line(process=PROCESS) return Hlt2Line( name=name, -- GitLab From adb9132974052aa63f57e03dc64ff8892f527406 Mon Sep 17 00:00:00 2001 From: yangyouhua <yangyh@lzulogin02.hep.lzu.edu.cn> Date: Mon, 24 Mar 2025 01:17:55 +0800 Subject: [PATCH 3/4] more tight cut --- .../lines/b_to_charmonia/b_to_jpsix.py | 18 +++++++++--------- .../Hlt2Conf/lines/b_to_charmonia/hlt2_b2cc.py | 1 + 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py index 57b8817bd49..1b900073d70 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py @@ -683,12 +683,12 @@ def make_LbToJpsiKs_LL_Neutron_tight_line( "Line must be defined as Hlt2 or Sprucing line!" ) muons = basic_builder.filter_muons_loose( - particles=make_long_muons(), mu_pidk=20, mu_pidp=20 + particles=make_long_muons(), mu_pidk=10, mu_pidp=10 ) jpsi = basic_builder.make_selected_jpsi_bd2jpsimumukshort( - muons=muons, + muons=muons, max_vchi2pdof=4 ) - kshort_LL = basic_builder.make_ks_LL(bpvvdchi2=5, chi2vx=20) + kshort_LL = basic_builder.make_ks_LL(bpvvdchi2=4, chi2vx=4, pi_mipchi2pv=4) Lb2jpsiKs = make_LbToJpsiKs_Neutron_tight( name="B2CC_LbToJpsiKshort_neutron_Combiner_{hash}", @@ -712,12 +712,12 @@ def make_LbToJpsiKs_DD_Neutron_tight_line( "Line must be defined as Hlt2 or Sprucing line!" ) muons = basic_builder.filter_muons_loose( - particles=make_long_muons(), mu_pidk=20, mu_pidp=20 + particles=make_long_muons(), mu_pidk=10, mu_pidp=10 ) jpsi = basic_builder.make_selected_jpsi_bd2jpsimumukshort( - muons=muons, + muons=muons, max_vchi2pdof=4 ) - kshort_DD = basic_builder.make_ks_DD(bpvvdchi2=5, chi2vx=20) + kshort_DD = basic_builder.make_ks_DD(bpvvdchi2=4, chi2vx=4) Lb2jpsiKs = make_LbToJpsiKs_Neutron_tight( name="B2CC_LbToJpsiKshort_neutron_Combiner_{hash}", @@ -741,12 +741,12 @@ def make_LbToJpsiKs_LD_Neutron_tight_line( "Line must be defined as Hlt2 or Sprucing line!" ) muons = basic_builder.filter_muons_loose( - particles=make_long_muons(), mu_pidk=20, mu_pidp=20 + particles=make_long_muons(), mu_pidk=10, mu_pidp=10 ) jpsi = basic_builder.make_selected_jpsi_bd2jpsimumukshort( - muons=muons, + muons=muons, max_vchi2pdof=4 ) - kshort_LD = basic_builder.make_ks_LD(bpvvdchi2=5, chi2vx=20) + kshort_LD = basic_builder.make_ks_LD(bpvvdchi2=4, chi2vx=4, pi_mipchi2pv=4) Lb2jpsiKs = make_LbToJpsiKs_Neutron_tight( name="B2CC_LbToJpsiKshort_neutron_Combiner_{hash}", diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/hlt2_b2cc.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/hlt2_b2cc.py index 8821e6899cf..70c6e5d85f7 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/hlt2_b2cc.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/hlt2_b2cc.py @@ -237,6 +237,7 @@ def LbToJpsiKs_Neutron_LL_tight_line( persistreco=persistreco, calo_digits=True, calo_clusters=True, + raw_banks=["Calo"], ) -- GitLab From df4e467fc419cce0fefa566cc0654b7db0214021 Mon Sep 17 00:00:00 2001 From: Gitlab CI <noreply@cern.ch> Date: Sun, 23 Mar 2025 17:18:36 +0000 Subject: [PATCH 4/4] pre-commit fixes patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/53182719 --- .../python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py index 1b900073d70..88e51bdc68d 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix.py @@ -715,7 +715,7 @@ def make_LbToJpsiKs_DD_Neutron_tight_line( particles=make_long_muons(), mu_pidk=10, mu_pidp=10 ) jpsi = basic_builder.make_selected_jpsi_bd2jpsimumukshort( - muons=muons, max_vchi2pdof=4 + muons=muons, max_vchi2pdof=4 ) kshort_DD = basic_builder.make_ks_DD(bpvvdchi2=4, chi2vx=4) @@ -744,7 +744,7 @@ def make_LbToJpsiKs_LD_Neutron_tight_line( particles=make_long_muons(), mu_pidk=10, mu_pidp=10 ) jpsi = basic_builder.make_selected_jpsi_bd2jpsimumukshort( - muons=muons, max_vchi2pdof=4 + muons=muons, max_vchi2pdof=4 ) kshort_LD = basic_builder.make_ks_LD(bpvvdchi2=4, chi2vx=4, pi_mipchi2pv=4) -- GitLab