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