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 63a0a32591f9a26481293ec5eeb60e14572a35ef..2fce15b9df5e275405000695f0d24996d092385d 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
@@ -1166,13 +1166,13 @@ def make_BdToJpsippKstar(process):
     )
 
     proton = basic_builder.make_protons(
-        pid_p=0.0, pt_min=750.0 * MeV, p_min=1500 * MeV, mipchi2_min=3.0
+        pid_p=0.0, pt_min=800.0 * MeV, p_min=2000 * MeV, mipchi2_min=4.0
     )
     kaon = basic_builder.make_kaons(
-        pid=-3, pt=500.0 * MeV, p=1500.0 * MeV, mipchi2_min=5.0
+        pid=0.0, pt=500.0 * MeV, p=1500.0 * MeV, mipchi2_min=5.0
     )
     pion = basic_builder.make_pions(
-        pid=5, pt=200.0 * MeV, p=1500.0 * MeV, mipchi2_min=8.0
+        pid=0.0, pt=500.0 * MeV, p=1500.0 * MeV, mipchi2_min=8.0
     )
 
     b2jpsikst = special_builder.make_JpsiPP_X(
@@ -1189,16 +1189,15 @@ def make_Bs0ToJpsippPhi(process):
     )
 
     proton = basic_builder.make_protons(
-        pid_p=0.0, pt_min=750.0 * MeV, p_min=1500 * MeV, mipchi2_min=3.0
+        pid_p=0.0, pt_min=800.0 * MeV, p_min=2000 * MeV, mipchi2_min=4.0
     )
     kaon = basic_builder.make_kaons(
-        pid=-3, pt=500.0 * MeV, p=1500.0 * MeV, mipchi2_min=5.0
+        pid=0.0, pt=500.0 * MeV, p=1500.0 * MeV, mipchi2_min=5.0
     )
 
     b2jpsiphi = special_builder.make_JpsiPP_X(
         particles=[proton, proton, kaon, kaon],
         descriptor="B_s0 -> p+ p~- K+ K-",
-        max_ppK_mass=5000 * MeV,
         X_kstar=False,
     )
 
diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix0.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix0.py
index ad8057bc229cabc4d4a2f164e9e745e9dc7439ae..4623a8d26ebd796ca3b2710ba410dbf9656d1520 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix0.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/b_to_jpsix0.py
@@ -42,6 +42,7 @@ def make_B2JpsiX0(
     dira_min=0.9995,
     vtxchi2pdof_max=10,
     delta_mass=None,
+    combiner="ParticleVertexFitter",
 ):
     """
     A generic B->MuMu(H)(HH)(G)(GG) decay maker.
@@ -82,6 +83,20 @@ def make_B2JpsiX0(
         DecayDescriptor=descriptor,
         CombinationCut=combination_code,
         CompositeCut=vertex_code,
+        ParticleCombiner=combiner,
+    )
+
+
+def make_B2JpsiX0_noBvtx(particles, descriptor, assignvtx: int, **kwargs):
+    """
+    A generic B->MuMu(H)(HH)(G)(GG) decay maker configured for where the B has no vertex i.e. it is just Jpsi+neutrals
+    """
+    return make_B2JpsiX0(
+        particles,
+        descriptor,
+        vtxchi2pdof_max=None,
+        combiner="ParticleAdderAssignVtx" + str(assignvtx),
+        **kwargs,
     )
 
 
@@ -97,8 +112,7 @@ def make_B2JpsiKst2KPi0R_line(
         "Line must be defined as Hlt2 or Sprucing line!"
     )
 
-    jpsi = basic_builder.make_selected_jpsi2mumu()
-
+    jpsi = make_detached_jpsi()
     kstr = x0_builder.make_selected_kst2kpi0r(pi0pt_min=pi0pt_min)
 
     b2jpsikstr = make_B2JpsiX0(
@@ -165,9 +179,10 @@ def make_B2JpsiEtaGG_line(
 
     eta = x0_builder.make_resolved_etas()
 
-    b2jpsieta = make_B2JpsiX0(
+    b2jpsieta = make_B2JpsiX0_noBvtx(
         particles=[jpsi, eta],
         descriptor="B0 -> J/psi(1S) eta",
+        assignvtx=1,
         name="B2CC_B2JpsiEtaGG_Combiner_{hash}",
         comb_m_min=comb_m_min,
         comb_m_max=comb_m_max,
@@ -197,9 +212,10 @@ def make_B2JpsiPi0GG_line(
     jpsi = basic_builder.make_selected_jpsi2mumu()
     pi0 = x0_builder.make_resolved_pizeros()
 
-    b2jpsipi0 = make_B2JpsiX0(
+    b2jpsipi0 = make_B2JpsiX0_noBvtx(
         particles=[jpsi, pi0],
         descriptor="B0 -> J/psi(1S) pi0",
+        assignvtx=1,
         name="B2CC_B2JpsiPi0GG_Combiner_{hash}",
         comb_m_min=comb_m_min,
         comb_m_max=comb_m_max,
@@ -272,28 +288,23 @@ def make_Lb0ToJpsiSigma0_DD_line(process):
 
 def make_BuToJpsimumuEtaPiplus_line(
     process,
-    comb_m_min=4800 * MeV,
-    comb_m_max=6000 * MeV,
+    comb_m_min=4700 * MeV,
+    comb_m_max=6100 * MeV,
     vtx_m_min=4800 * MeV,
     vtx_m_max=6000 * MeV,
-    delta_mass=(
-        4250 * MeV,
-        5450 * MeV,
-        2,
-    ),  # 2 here for cut on the second child i.e Eta.
     lifetime=0.2 * picosecond,
     dira_min=0.9999,
-    ipchi2_max=10,
+    ipchi2_max=20,
     ip_max=0.1,
-    vtxchi2pdof_max=5,
+    vtxchi2pdof_max=10,
 ):
     assert process in ["hlt2", "spruce"], (
         "Line must be defined as Hlt2 or Sprucing line!"
     )
 
     jpsi = make_detached_jpsi()
-    eta = eta = x0_builder.make_resolved_etas(mass_window=105 * MeV)
-    pip = basic_builder.make_pions(pid=1.0, pt=300 * MeV, p=1.5 * GeV, mipchi2_min=11)
+    eta = eta = x0_builder.make_resolved_etas()
+    pip = basic_builder.make_pions(pid=None, pt=300 * MeV, p=1.5 * GeV, mipchi2_min=11)
 
     line_alg = make_B2JpsiX0(
         name="B2CC_BuToJpsimumuEtaPiplus_Combiner_{hash}",
@@ -303,7 +314,6 @@ def make_BuToJpsimumuEtaPiplus_line(
         comb_m_max=comb_m_max,
         vtx_m_min=vtx_m_min,
         vtx_m_max=vtx_m_max,
-        delta_mass=delta_mass,
         lifetime=lifetime,
         dira_min=dira_min,
         ipchi2_max=ipchi2_max,
diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/builders/special_builder.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/builders/special_builder.py
index 2de0d2cf2ece3419f2dbab66388897a421699b9f..7dc6e897ac6def969e5eb9dacb6768a79e4793aa 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/builders/special_builder.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/builders/special_builder.py
@@ -46,72 +46,104 @@ def make_JpsiPP_X(
     name="B2CC_JpsiPP_X_Combiner_{hash}",
     am_min_mass=5.0 * GeV,
     am_max_mass=5.6 * GeV,
+    am_min_mass_12=(3096.900 - 220.0) * MeV,
+    am_max_mass_12=(3096.900 + 220.0) * MeV,
+    am_min_mass_Kpi=(891.67 - 220.0) * MeV,
+    am_max_mass_Kpi=(891.67 + 220.0) * MeV,
+    am_min_mass_KK=(1019.461 - 220.0) * MeV,
+    am_max_mass_KK=(1019.461 + 220.0) * MeV,
     vtx_min_mass=5.05 * GeV,
     vtx_max_mass=5.55 * GeV,
-    max_ppK_mass=5.2 * GeV,
     pp_min_sumpt=750.0 * MeV,
     pp_min_sump=7000.0 * MeV,
-    pp_min_p=4.0 * GeV,
+    p_min_p=4.0 * GeV,
     p_min_pt=400.0 * MeV,
-    vtx_min_sumpt=3000.0 * MeV,
-    vtx_min_pt=2000.0 * MeV,
+    vtx_min_sumpt=2000.0 * MeV,
+    vtx_min_pt=3000.0 * MeV,
     vtx_max_chi2=9.0,
-    vtx_min_dira=0.9997,
-    sdocachi2_max=20.0,
+    vtx_min_dira=0.9995,
+    vtx_min_mass_12=(3096.900 - 215.0) * MeV,
+    vtx_max_mass_12=(3096.900 + 215.0) * MeV,
+    vtx_min_mass_Kpi=(891.67 - 215.0) * MeV,
+    vtx_max_mass_Kpi=(891.67 + 215.0) * MeV,
+    vtx_min_mass_KK=(1019.461 - 215.0) * MeV,
+    vtx_max_mass_KK=(1019.461 + 215.0) * MeV,
+    vtx_res_min_pt=500 * MeV,
+    sdocachi2_max=15.0,
+    vtx_max_ipchi2=15.0,
     b_min_lft=0.2 * picosecond,
-    X_kstar=True,
+    b_min_fdchi2=100,
+    min_prodprobnn=0.01,
+    X_kstar=False,
 ):
     combination12_code = F.require_all(  # Jpsi->ppbar combination
-        F.math.in_range(
-            (3096.900 - 220.0) * MeV, F.MASS, (3096.900 + 220.0) * MeV
-        ),  # J/psi mass range comb
+        F.MAXSDOCACHI2CUT(sdocachi2_max),
+        F.math.in_range(am_min_mass_12, F.MASS, am_max_mass_12),
         F.SUM(F.PT) > pp_min_sumpt,
         F.SUM(F.P) > pp_min_sump,
-        F.MAX(F.P) > pp_min_p,
-        F.MAX(F.PT) > p_min_pt,
-        F.CHILD(1, F.PROBNN_P) * F.CHILD(2, F.PROBNN_P) > 0.01,
-        F.MAXDOCACHI2CUT(sdocachi2_max),
+        F.require_any(F.CHILD(1, F.P) > p_min_p, F.CHILD(2, F.P) > p_min_p),
+        F.require_any(F.CHILD(1, F.PT) > p_min_pt, F.CHILD(2, F.PT) > p_min_pt),
+        (F.CHILD(1, F.PROBNN_P) * F.CHILD(2, F.PROBNN_P)) > min_prodprobnn,
     )
 
     combination123_code = F.require_all(  # ppbarK+ combination
-        F.MASS < max_ppK_mass, F.MAXDOCACHI2CUT(sdocachi2_max)
-    )
-
-    combination_code = F.require_all(
-        F.math.in_range(am_min_mass, F.MASS, am_max_mass),
-        F.MAXDOCACHI2CUT(sdocachi2_max),
-        F.MAXDOCACUT(0.25 * mm),
+        F.MAXSDOCACHI2CUT(sdocachi2_max)
     )
 
     if X_kstar is True:
-        combination_code &= F.require_all(  ## ppbarKstar(->K+pi-) combination
+        combination_code = F.require_all(  ## ppbarKstar(->K+pi-) combination
             F.SUBCOMB(
-                Functor=F.math.in_range(
-                    (891.67 - 200.0) * MeV, F.MASS, (891.67 + 200.0) * MeV
-                ),
+                Functor=F.math.in_range(am_min_mass_Kpi, F.MASS, am_max_mass_Kpi),
                 Indices=[3, 4],
-            )
+            ),
         )
     else:
-        combination_code &= F.require_all(  ## ppbarPhi(1020)(->K+K-) combination
+        combination_code = F.require_all(  ## ppbarPhi(1020)(->K+K-) combination
             F.SUBCOMB(
-                Functor=F.math.in_range(
-                    (1019.461 - 200.0) * MeV, F.MASS, (1019.461 + 200.0) * MeV
-                ),
+                Functor=F.math.in_range(am_min_mass_KK, F.MASS, am_max_mass_KK),
                 Indices=[3, 4],
-            )
+            ),
         )
 
+    combination_code &= F.math.in_range(am_min_mass, F.MASS, am_max_mass)
+    combination_code &= F.MAXSDOCACHI2CUT(sdocachi2_max)
+
     vertex_code = F.require_all(  ## fit to the B0(s)->J/psi(->ppbar)hh, K*(890)->Kpi or Phi(1020)->KK
         F.math.in_range(vtx_min_mass, F.MASS, vtx_max_mass),
         F.CHI2DOF < vtx_max_chi2,
         F.OWNPVDIRA > vtx_min_dira,
         F.PT > vtx_min_pt,
         F.SUM(F.PT) > vtx_min_sumpt,
-        F.OWNPVIP < 0.2 * mm,
+        F.OWNPVFDCHI2 > b_min_fdchi2,
+        F.OWNPVIPCHI2 < vtx_max_ipchi2,
         F.OWNPVLTIME > b_min_lft,
-        F.OWNPVFDCHI2 > 100,
     )
+
+    if X_kstar is True:
+        vertex_code &= F.require_all(  ## ppbarKstar(->K+pi-) combination
+            F.SUBCOMB(  # fit K*
+                Functor=F.math.in_range(vtx_min_mass_Kpi, F.MASS, vtx_max_mass_Kpi),
+                Indices=[3, 4],
+            ),
+            F.SUBCOMB(Functor=F.PT > vtx_res_min_pt, Indices=[3, 4]),
+        )
+    else:
+        vertex_code &= F.require_all(  ## ppbarPhi(1020)(->K+K-) combination
+            F.SUBCOMB(  # fit Phi(1020)
+                Functor=F.math.in_range(vtx_min_mass_KK, F.MASS, vtx_max_mass_KK),
+                Indices=[3, 4],
+            ),
+            F.SUBCOMB(Functor=F.PT > vtx_res_min_pt, Indices=[3, 4]),
+        )
+
+    vertex_code &= F.require_all(
+        F.SUBCOMB(  # fit J/psi(1S)
+            Functor=F.math.in_range(vtx_min_mass_12, F.MASS, vtx_max_mass_12),
+            Indices=[1, 2],
+        ),
+        F.SUBCOMB(Functor=F.PT > vtx_res_min_pt, Indices=[1, 2]),
+    )
+
     return ParticleCombiner(
         particles,
         name=name,
diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/builders/x0_builder.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/builders/x0_builder.py
index 65e49bc10baa86f4e14fd69ed7002827b9ac974d..c4baa387030a809bd771089e8007594ef91d8a40 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/builders/x0_builder.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/builders/x0_builder.py
@@ -15,28 +15,24 @@ from Functors import require_all
 from Functors.math import in_range
 from GaudiKernel.SystemOfUnits import GeV, MeV
 from RecoConf.algorithms_thor import ParticleCombiner, ParticleFilter
-from RecoConf.standard_particles import make_photons, make_resolved_pi0s
+from RecoConf.standard_particles import make_photons
 
 from Hlt2Conf.lines.b_to_charmonia.builders import basic_builder
+from Hlt2Conf.lines.charmonium_to_dimuon_detached import make_detached_jpsi
 
 _ETA_M = 547.862 * MeV  # +/- 0.017
 _pi0_M = 134.977 * MeV
 
 
-def filter_pi0s(particles, pi0pt_min=1.5 * GeV):
-    code = require_all(F.PT > pi0pt_min)
+def filter_gammas(particles, gpt_min=250.0 * MeV, gpt_max=200.0 * GeV, isnoth_min=0.2):
+    code = require_all(in_range(gpt_min, F.PT, gpt_max), F.IS_NOT_H > isnoth_min)
     return ParticleFilter(particles, F.FILTER(code))
 
 
-def filter_gammas(particles, gpt_min=500.0 * MeV, gpt_max=200.0 * GeV):
-    code = require_all(in_range(gpt_min, F.PT, gpt_max))
-    return ParticleFilter(particles, F.FILTER(code))
-
-
-def make_resolved_pizeros():
+def make_resolved_pizeros(mass_window=100 * MeV, pi0_pt_min=1.5 * GeV):
     photons = filter_gammas(make_photons())
-    combination_code = in_range(_pi0_M - 60 * MeV, F.MASS, _pi0_M + 60 * MeV)
-    vertex_code = F.require_all(F.PT > 1500 * MeV)
+    combination_code = in_range(_pi0_M - mass_window, F.MASS, _pi0_M + mass_window)
+    vertex_code = F.require_all(F.PT > pi0_pt_min)
     return ParticleCombiner(
         Inputs=[photons, photons],
         name="B2CC_Resolved_pi0_{hash}",
@@ -47,7 +43,7 @@ def make_resolved_pizeros():
     )
 
 
-def make_resolved_etas(mass_window=50 * MeV):
+def make_resolved_etas(mass_window=150 * MeV):
     photons = filter_gammas(make_photons())
     combination_code = in_range(_ETA_M - mass_window, F.MASS, _ETA_M + mass_window)
     composite_code = F.PT > 2000 * MeV
@@ -132,8 +128,8 @@ def make_twobodyg(
 def make_selected_kst2kpi0r(
     name="B2CC_Kst2KPi0R_Filter_{hash}",
     descriptor="[K*(892)+ -> K+ pi0]cc",
-    comb_m_min=792.0 * MeV,
-    comb_m_max=992.0 * MeV,
+    comb_m_min=692.0 * MeV,
+    comb_m_max=1092.0 * MeV,
     pi0pt_min=1000.0 * MeV,
     pt=1500.0 * MeV,
     pid_k=0,
@@ -141,7 +137,7 @@ def make_selected_kst2kpi0r(
 ):
     kaon = basic_builder.make_kaons(pid=pid_k, pt=pt_k)
 
-    pi0 = filter_pi0s(make_resolved_pi0s(), pi0pt_min=pi0pt_min)
+    pi0 = make_resolved_pizeros(pi0_pt_min=pi0pt_min)
 
     return make_onebodygg(
         particles=[kaon, pi0],
@@ -208,12 +204,12 @@ def make_sigma0_dd(
 def make_selected_chic2jpsig(
     name="B2CC_Chic2JpsiG_Filter_{hash}",
     descriptor="chi_c1(1P) -> J/psi(1S) gamma",
-    comb_m_min=3410 * MeV,
-    comb_m_max=3610 * MeV,
+    comb_m_min=3310 * MeV,
+    comb_m_max=3710 * MeV,
     gpt_min=500.0 * MeV,
     pt=1000.0 * MeV,
 ):
-    jpsi = basic_builder.make_selected_jpsi2mumu()
+    jpsi = make_detached_jpsi()
 
     gamma = filter_gammas(make_photons(), gpt_min=gpt_min)
 
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 959d1e2227f119e63dfd842ee53ef17d7ab8f649..b0c7b4f6014d9a72da205c840080caad10f30438 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
@@ -42,7 +42,7 @@ def inclusive_detachedJpsiline(
 
 @register_line_builder(all_lines)
 def BsToJpsiPhi_detachedline(
-    name="Hlt2B2CC_BsToJpsiPhi_Detached", prescale=1, persistreco=True
+    name="Hlt2B2CC_BsToJpsiPhi_Detached", prescale=1, persistreco=False
 ):
     line_alg = b_to_jpsix.make_BsToJpsiPhi_detached_line(process=PROCESS)
     return Hlt2Line(
@@ -58,7 +58,7 @@ def BsToJpsiPhi_detachedline(
 
 @register_line_builder(all_lines)
 def BsToJpsiPhi_extramuonline(
-    name="Hlt2B2CC_BsToJpsiPhi_ExtraMuon", prescale=1, persistreco=True
+    name="Hlt2B2CC_BsToJpsiPhi_ExtraMuon", prescale=1, persistreco=False
 ):
     line_alg = b_to_jpsix.make_BsToJpsiPhi_extramuonline(process=PROCESS)
     return Hlt2Line(
@@ -110,6 +110,7 @@ def BsToJpsieePhi_line(
         name=name,
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
+        tagging_particles=True,
         persistreco=persistreco,
         pv_tracks=True,
     )
@@ -139,6 +140,7 @@ def BdToJpsieeKstar_line(
         name=name,
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
+        tagging_particles=True,
         persistreco=persistreco,
         pv_tracks=True,
     )
@@ -181,8 +183,8 @@ def BsToJpsif0ws_line(name="Hlt2B2CC_BsToJpsif0ws", prescale=1, persistreco=Fals
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
         persistreco=persistreco,
-        tagging_particles=True,
-        pv_tracks=True,
+        tagging_particles=False,
+        pv_tracks=False,
     )
 
 
@@ -196,7 +198,8 @@ def BsToJpsif0Prescaled_line(
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
         persistreco=persistreco,
-        pv_tracks=True,
+        tagging_particles=False,
+        pv_tracks=False,
     )
 
 
@@ -208,8 +211,8 @@ def BsToJpsikstar_line(name="Hlt2B2CC_BsToJpsiKstar", prescale=1, persistreco=Fa
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
         persistreco=persistreco,
-        tagging_particles=True,
-        pv_tracks=True,
+        tagging_particles=False,
+        pv_tracks=False,
     )
 
 
@@ -221,7 +224,8 @@ def LbToJpsipH_line(name="Hlt2B2CC_LbToJpsipH", prescale=1, persistreco=False):
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
         persistreco=persistreco,
-        pv_tracks=True,
+        tagging_particles=False,
+        pv_tracks=False,
     )
 
 
@@ -267,7 +271,7 @@ def BdToJpsieeKshort_LL_prompt_line(
         name=name,
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
-        tagging_particles=True,
+        tagging_particles=False,
         persistreco=persistreco,
         pv_tracks=True,
     )
@@ -283,7 +287,7 @@ def BdToJpsieeKshort_DD_prompt_line(
         name=name,
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
-        tagging_particles=True,
+        tagging_particles=False,
         persistreco=persistreco,
         pv_tracks=True,
     )
@@ -315,7 +319,7 @@ def BdToJpsimumuKshort_LL_prompt_line(
         name=name,
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
-        tagging_particles=True,
+        tagging_particles=False,
         persistreco=persistreco,
         pv_tracks=True,
     )
@@ -331,7 +335,7 @@ def BdToJpsimumuKshort_DD_prompt_line(
         name=name,
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
-        tagging_particles=True,
+        tagging_particles=False,
         persistreco=persistreco,
         pv_tracks=True,
     )
@@ -347,7 +351,7 @@ def BdToJpsimumuKshort_LD_prompt_line(
         name=name,
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
-        tagging_particles=True,
+        tagging_particles=False,
         persistreco=persistreco,
         pv_tracks=True,
     )
@@ -363,7 +367,7 @@ def BdToJpsimumuKshort_UL_prompt_line(
         name=name,
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
-        tagging_particles=True,
+        tagging_particles=False,
         persistreco=persistreco,
         pv_tracks=True,
     )
@@ -449,7 +453,7 @@ def BdTopsitwosmumuKshort_LL_prompt_line(
         name=name,
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
-        tagging_particles=True,
+        tagging_particles=False,
         persistreco=persistreco,
         pv_tracks=True,
     )
@@ -467,7 +471,7 @@ def BdTopsitwosmumuKshort_DD_prompt_line(
         name=name,
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
-        tagging_particles=True,
+        tagging_particles=False,
         persistreco=persistreco,
         pv_tracks=True,
     )
@@ -518,7 +522,7 @@ def BuToJpsimumuKplus_prompt_line(
         name=name,
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
-        tagging_particles=True,
+        tagging_particles=False,
         persistreco=persistreco,
         pv_tracks=True,
     )
@@ -566,7 +570,7 @@ def BdToJpsimumuKstar_prompt_line(
         name=name,
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
-        tagging_particles=True,
+        tagging_particles=False,
         persistreco=persistreco,
         pv_tracks=True,
     )
@@ -583,7 +587,10 @@ def BuToJpsiKstPlus(name="Hlt2B2CC_BuToJpsiKstPlus", prescale=1.0, persistreco=F
         algs=b2cc_prefilters() + line_alg,
         extra_outputs=iso_parts,
         persistreco=persistreco,
-        pv_tracks=True,
+        tagging_particles=False,
+        pv_tracks=False,
+        calo_digits=True,
+        calo_clusters=True,
     )
 
 
@@ -597,8 +604,11 @@ def BuToChicKPlus(name="Hlt2B2CC_BuToChicKPlus", prescale=1.0, persistreco=False
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
         extra_outputs=iso_parts,
+        tagging_particles=False,
         persistreco=persistreco,
-        pv_tracks=True,
+        pv_tracks=False,
+        calo_digits=True,
+        calo_clusters=True,
     )
 
 
@@ -613,7 +623,10 @@ def BToJpsiEtaGG(name="Hlt2B2CC_BToJpsiEtaGG", prescale=1.0, persistreco=False):
         algs=b2cc_prefilters() + line_alg,
         extra_outputs=iso_parts,
         persistreco=persistreco,
+        tagging_particles=True,
         pv_tracks=True,
+        calo_digits=True,
+        calo_clusters=True,
     )
 
 
@@ -628,7 +641,10 @@ def BToJpsiPi0GG(name="Hlt2B2CC_BToJpsiPi0GG", prescale=1.0, persistreco=False):
         algs=b2cc_prefilters() + line_alg,
         extra_outputs=iso_parts,
         persistreco=persistreco,
+        tagging_particles=True,
         pv_tracks=True,
+        calo_digits=True,
+        calo_clusters=True,
     )
 
 
@@ -640,7 +656,8 @@ def BcToJpsiPip(name="Hlt2B2CC_BcToJpsiPip", prescale=1.0, persistreco=False):
         prescale=prescale,
         algs=b2cc_prefilters() + line_alg,
         persistreco=persistreco,
-        pv_tracks=True,
+        tagging_particles=False,
+        pv_tracks=False,
     )
 
 
@@ -696,7 +713,8 @@ def BdToJpsippKstar(
         algs=b2cc_prefilters() + line_alg,
         extra_outputs=iso_parts,
         persistreco=persistreco,
-        pv_tracks=True,
+        tagging_particles=False,
+        pv_tracks=False,
     )
 
 
@@ -712,5 +730,23 @@ def Bs0ToJpsippPhi(
         algs=b2cc_prefilters() + line_alg,
         extra_outputs=iso_parts,
         persistreco=persistreco,
-        pv_tracks=True,
+        tagging_particles=False,
+        pv_tracks=False,
+    )
+
+
+@register_line_builder(all_lines)
+def BuToJpsiEtaPiplus_JpsiToMuMu(
+    name="Hlt2B2CC_BuToJpsiEtaPiplus_Detached", prescale=1
+):
+    line_alg = b_to_jpsix0.make_BuToJpsimumuEtaPiplus_line(process=PROCESS)
+    iso_parts = isolation.make_iso_particles(line_alg, name="B")
+
+    return Hlt2Line(
+        name=name,
+        prescale=prescale,
+        algs=b2cc_prefilters() + line_alg,
+        extra_outputs=iso_parts,
+        calo_digits=True,
+        calo_clusters=True,
     )
diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/spruce_b2cc.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/spruce_b2cc.py
index 35b69e9a623c62f353c995473164939b06956528..e77c82fb388e211a3a5f093049f0b329eaf63e73 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/spruce_b2cc.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_charmonia/spruce_b2cc.py
@@ -91,6 +91,8 @@ def Lb0ToJpsiSigma0_LL_line(name="SpruceB2CC_Lb0ToJpsiSigma0_LL", prescale=1):
         algs=b2cc_prefilters() + line_alg,
         pv_tracks=True,
         extra_outputs=iso_parts,
+        calo_digits=True,
+        calo_clusters=True,
     )
 
 
@@ -111,20 +113,6 @@ def Lb0ToJpsiSigma0_DD_line(name="SpruceB2CC_Lb0ToJpsiSigma0_DD", prescale=1):
         algs=b2cc_prefilters() + line_alg,
         pv_tracks=True,
         extra_outputs=iso_parts,
-    )
-
-
-@register_line_builder(sprucing_lines)
-@configurable
-def BuToJpsiEtaPiplus_JpsiToMuMu_sprucing_line(
-    name="SpruceB2CC_BuToJpsiEtaPiplus_Detached", prescale=1
-):
-    line_alg = b_to_jpsix0.make_BuToJpsimumuEtaPiplus_line(process=PROCESS)
-
-    return SpruceLine(
-        name=name,
-        prescale=prescale,
-        algs=b2cc_prefilters() + line_alg,
-        tagging_particles=True,
-        pv_tracks=True,
+        calo_digits=True,
+        calo_clusters=True,
     )