From 7a68db6d3bf422999e81a05666d6b4640c8a184a Mon Sep 17 00:00:00 2001
From: Paras Naik <paras.naik@cern.ch>
Date: Thu, 1 Feb 2024 23:15:53 +0100
Subject: [PATCH 1/9] Added several additional lines for prompt spectroscopy of
 D0->{2-body,3-body,4-body} anti-D0->{2-body,3-body,4-body}, and booked them
 in hlt2_bandq.py.

---
 .../lines/bandq/builders/doublecharm.py       | 358 ++++++++++++++++++
 .../python/Hlt2Conf/lines/bandq/hlt2_bandq.py | 119 ++++++
 2 files changed, 477 insertions(+)

diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
index 7f5433debba..e56693cec3d 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
@@ -22,6 +22,7 @@ from PyConf import configurable
 from Hlt2Conf.lines.bandq.builders import c_to_hadrons
 from Hlt2Conf.lines.charm import d_to_hhh, d0_to_hh, cbaryon_spectroscopy
 from Hlt2Conf.lines.charmonium_to_dimuon import make_jpsi, make_psi2s
+from Hlt2Conf.lines.charm import d0_to_kshh, d0_to_hhhh
 
 
 @configurable
@@ -181,3 +182,360 @@ def make_doublecharm_oppositesign(
             '[psi(3770) -> Omega_c~0 Omega_c0]cc'
         ])
     return line_alg
+
+"""
+Make B&Q quantum-correlated D0 anti-D0 combinations.
+"""
+
+@configurable
+def make_doublecharm_QC_2x2( # note that this line contains D0 -> Kpi anti-D0 -> Kpi which is also triggered above.
+        name='bandq_doublecharm_QC_{hash}'):
+    dz = d0_to_hh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
+        '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
+    dzb = d0_to_hh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
+        '[D0 -> K+ pi-]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
+    dzPiPi = d0_to_hh.make_dzeros(
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        '[D0 -> pi- pi+]')  #taken from Hlt2Charm_D0ToPimPip line in charm area
+    dzKK = d0_to_hh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
+        '[D0 -> K- K+]')  #taken from Hlt2Charm_D0ToKmKp line in charm area
+
+    D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
+                                        name='bandq_charmToXD0_2body_{hash}')
+    line_alg = make_doublecharm(
+        name=name,
+        particles=[D0_meson_2, D0_meson_2],
+        descriptors=[
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ])
+    return line_alg
+
+@configurable
+def make_doublecharm_QC_3llx2(
+        name='bandq_doublecharm_QC_{hash}'):
+    dz = d0_to_hh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
+        '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
+    dzb = d0_to_hh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
+        '[D0 -> K+ pi-]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
+    dzPiPi = d0_to_hh.make_dzeros(
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        '[D0 -> pi- pi+]')  #taken from Hlt2Charm_D0ToPimPip line in charm area
+    dzKK = d0_to_hh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
+        '[D0 -> K- K+]')  #taken from Hlt2Charm_D0ToKmKp line in charm area
+    pions = d0_to_kshh.make_charm_pions()
+    kaons = d0_to_kshh.make_charm_kaons()
+    kshortsll = d0_to_kshh.make_kshort_ll()
+    dzKsPiPill = d0_to_kshh.make_dzeros(
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKKll = d0_to_kshh.make_dzeros(
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKmPipll = d0_to_kshh.make_dzeros(
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKpPimll = d0_to_kshh.make_dzeros(
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
+                                        name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+                                        name='bandq_charmToXD0_3bodyll_{hash}')
+    line_alg = make_doublecharm(
+        name=name,
+        particles=[D0_meson_3ll, D0_meson_2],
+        descriptors=[
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ])
+    return line_alg
+
+@configurable
+def make_doublecharm_QC_3ddx2(
+        name='bandq_doublecharm_QC_{hash}'):
+    dz = d0_to_hh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
+        '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
+    dzb = d0_to_hh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
+        '[D0 -> K+ pi-]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
+    dzPiPi = d0_to_hh.make_dzeros(
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        '[D0 -> pi- pi+]')  #taken from Hlt2Charm_D0ToPimPip line in charm area
+    dzKK = d0_to_hh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
+        '[D0 -> K- K+]')  #taken from Hlt2Charm_D0ToKmKp line in charm area
+    pions = d0_to_kshh.make_charm_pions()
+    kaons = d0_to_kshh.make_charm_kaons()
+    kshortsdd = d0_to_kshh.make_kshort_dd()
+    dzKsPiPidd = d0_to_kshh.make_dzeros(
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKKdd = d0_to_kshh.make_dzeros(
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKmPipdd = d0_to_kshh.make_dzeros(
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKpPimdd = d0_to_kshh.make_dzeros(
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
+                                        name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+                                        name='bandq_charmToXD0_3bodydd_{hash}')
+    line_alg = make_doublecharm(
+        name=name,
+        particles=[D0_meson_3dd, D0_meson_2],
+        descriptors=[
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ])
+    return line_alg
+
+@configurable
+def make_doublecharm_QC_3llx3ll(
+        name='bandq_doublecharm_QC_{hash}'):
+    pions = d0_to_kshh.make_charm_pions()
+    kaons = d0_to_kshh.make_charm_kaons()
+    kshortsll = d0_to_kshh.make_kshort_ll()
+    dzKsPiPill = d0_to_kshh.make_dzeros(
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKKll = d0_to_kshh.make_dzeros(
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKmPipll = d0_to_kshh.make_dzeros(
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKpPimll = d0_to_kshh.make_dzeros(
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+
+    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+                                        name='bandq_charmToXD0_3bodyll_{hash}')
+    line_alg = make_doublecharm(
+        name=name,
+        particles=[D0_meson_3ll, D0_meson_3ll],
+        descriptors=[
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ])
+    return line_alg
+
+@configurable
+def make_doublecharm_QC_3llx3dd(
+        name='bandq_doublecharm_QC_{hash}'):
+    pions = d0_to_kshh.make_charm_pions()
+    kaons = d0_to_kshh.make_charm_kaons()
+    kshortsll = d0_to_kshh.make_kshort_ll()
+    dzKsPiPill = d0_to_kshh.make_dzeros(
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKKll = d0_to_kshh.make_dzeros(
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKmPipll = d0_to_kshh.make_dzeros(
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKpPimll = d0_to_kshh.make_dzeros(
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    kshortsdd = d0_to_kshh.make_kshort_dd()
+    dzKsPiPidd = d0_to_kshh.make_dzeros(
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKKdd = d0_to_kshh.make_dzeros(
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKmPipdd = d0_to_kshh.make_dzeros(
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKpPimdd = d0_to_kshh.make_dzeros(
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+
+    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+                                        name='bandq_charmToXD0_3bodyll_{hash}')
+    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+                                        name='bandq_charmToXD0_3bodydd_{hash}')
+    line_alg = make_doublecharm(
+        name=name,
+        particles=[D0_meson_3ll, D0_meson_3dd],
+        descriptors=[
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ])
+    return line_alg
+
+@configurable
+def make_doublecharm_QC_3ddx3dd(
+        name='bandq_doublecharm_QC_{hash}'):
+    pions = d0_to_kshh.make_charm_pions()
+    kaons = d0_to_kshh.make_charm_kaons()
+    kshortsdd = d0_to_kshh.make_kshort_dd()
+    dzKsPiPidd = d0_to_kshh.make_dzeros(
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKKdd = d0_to_kshh.make_dzeros(
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKmPipdd = d0_to_kshh.make_dzeros(
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKpPimdd = d0_to_kshh.make_dzeros(
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+
+    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+                                        name='bandq_charmToXD0_3bodydd_{hash}')
+    line_alg = make_doublecharm(
+        name=name,
+        particles=[D0_meson_3dd, D0_meson_3dd],
+        descriptors=[
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ])
+    return line_alg
+
+@configurable
+def make_doublecharm_QC_4x2(
+        name='bandq_doublecharm_QC_{hash}'):
+    dz = d0_to_hh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
+        '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
+    dzb = d0_to_hh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
+        '[D0 -> K+ pi-]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
+    dzPiPi = d0_to_hh.make_dzeros(
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        '[D0 -> pi- pi+]')  #taken from Hlt2Charm_D0ToPimPip line in charm area
+    dzKK = d0_to_hh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
+        '[D0 -> K- K+]')  #taken from Hlt2Charm_D0ToKmKp line in charm area
+    dzpipipipi = d0_to_hhhh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKpipipi = d0_to_hhhh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKKpipi = d0_to_hhhh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKKKpi = d0_to_hhhh.make_dzeros(
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
+                                        name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+                                        name='bandq_charmToXD0_4body_{hash}')
+    line_alg = make_doublecharm(
+        name=name,
+        particles=[D0_meson_4, D0_meson_2],
+        descriptors=[
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ])
+    return line_alg
+
+@configurable
+def make_doublecharm_QC_4x3ll(
+        name='bandq_doublecharm_QC_{hash}'):
+    pions = d0_to_kshh.make_charm_pions()
+    kaons = d0_to_kshh.make_charm_kaons()
+    kshortsll = d0_to_kshh.make_kshort_ll()
+    dzKsPiPill = d0_to_kshh.make_dzeros(
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKKll = d0_to_kshh.make_dzeros(
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKmPipll = d0_to_kshh.make_dzeros(
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKpPimll = d0_to_kshh.make_dzeros(
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzpipipipi = d0_to_hhhh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKpipipi = d0_to_hhhh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKKpipi = d0_to_hhhh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKKKpi = d0_to_hhhh.make_dzeros(
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+                                        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+                                        name='bandq_charmToXD0_3bodyll_{hash}')
+    line_alg = make_doublecharm(
+        name=name,
+        particles=[D0_meson_4, D0_meson_3ll],
+        descriptors=[
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ])
+    return line_alg
+
+@configurable
+def make_doublecharm_QC_4x3dd(
+        name='bandq_doublecharm_QC_{hash}'):
+    pions = d0_to_kshh.make_charm_pions()
+    kaons = d0_to_kshh.make_charm_kaons()
+    kshortsdd = d0_to_kshh.make_kshort_dd()
+    dzKsPiPidd = d0_to_kshh.make_dzeros(
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKKdd = d0_to_kshh.make_dzeros(
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKmPipdd = d0_to_kshh.make_dzeros(
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKsKpPimdd = d0_to_kshh.make_dzeros(
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzpipipipi = d0_to_hhhh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKpipipi = d0_to_hhhh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKKpipi = d0_to_hhhh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKKKpi = d0_to_hhhh.make_dzeros(
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+                                        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+                                        name='bandq_charmToXD0_3bodydd_{hash}')
+    line_alg = make_doublecharm(
+        name=name,
+        particles=[D0_meson_4, D0_meson_3dd],
+        descriptors=[
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ])
+    return line_alg
+
+@configurable
+def make_doublecharm_QC_4x4(
+        name='bandq_doublecharm_QC_{hash}'):
+    dzpipipipi = d0_to_hhhh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKpipipi = d0_to_hhhh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKKpipi = d0_to_hhhh.make_dzeros(
+        d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+    dzKKKpi = d0_to_hhhh.make_dzeros(
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
+        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+                                        name='bandq_charmToXD0_4body_{hash}')
+    line_alg = make_doublecharm(
+        name=name,
+        particles=[D0_meson_4, D0_meson_4],
+        descriptors=[
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ])
+    return line_alg
diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/hlt2_bandq.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/hlt2_bandq.py
index 57a397b4158..a8e7bd1e270 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/hlt2_bandq.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/hlt2_bandq.py
@@ -371,6 +371,125 @@ def doublecharm_oppositesign_line(name="Hlt2BandQ_DoubleCharmOppositeSign",
         prescale=prescale,
         persistreco=persistreco)
 
+@register_line_builder(all_lines)
+@configurable
+def doublecharm_QC_2x2_line(name="Hlt2BandQ_DoubleCharmQC_2x2",
+                                  prescale=1,
+                                  persistreco=True):
+    line_alg = doublecharm.make_doublecharm_QC_2x2()
+    return Hlt2Line(
+        name=name,
+        algs=make_prefilters() + [line_alg],
+        prescale=prescale,
+        persistreco=persistreco)
+    
+@register_line_builder(all_lines)
+@configurable
+def doublecharm_QC_3llx2_line(name="Hlt2BandQ_DoubleCharmQC_3llx2",
+                                  prescale=1,
+                                  persistreco=True):
+    line_alg = doublecharm.make_doublecharm_QC_3llx2()
+    return Hlt2Line(
+        name=name,
+        algs=make_prefilters() + [line_alg],
+        prescale=prescale,
+        persistreco=persistreco)
+    
+@register_line_builder(all_lines)
+@configurable
+def doublecharm_QC_3ddx2_line(name="Hlt2BandQ_DoubleCharmQC_3ddx2",
+                                  prescale=1,
+                                  persistreco=True):
+    line_alg = doublecharm.make_doublecharm_QC_3ddx2()
+    return Hlt2Line(
+        name=name,
+        algs=make_prefilters() + [line_alg],
+        prescale=prescale,
+        persistreco=persistreco)
+    
+@register_line_builder(all_lines)
+@configurable
+def doublecharm_QC_3llx3ll_line(name="Hlt2BandQ_DoubleCharmQC_3llx3ll",
+                                  prescale=1,
+                                  persistreco=True):
+    line_alg = doublecharm.make_doublecharm_QC_3llx3ll()
+    return Hlt2Line(
+        name=name,
+        algs=make_prefilters() + [line_alg],
+        prescale=prescale,
+        persistreco=persistreco)
+    
+@register_line_builder(all_lines)
+@configurable
+def doublecharm_QC_3llx3dd_line(name="Hlt2BandQ_DoubleCharmQC_3llx3dd",
+                                  prescale=1,
+                                  persistreco=True):
+    line_alg = doublecharm.make_doublecharm_QC_3llx3dd()
+    return Hlt2Line(
+        name=name,
+        algs=make_prefilters() + [line_alg],
+        prescale=prescale,
+        persistreco=persistreco)
+    
+@register_line_builder(all_lines)
+@configurable
+def doublecharm_QC_3ddx3dd_line(name="Hlt2BandQ_DoubleCharmQC_3ddx3dd",
+                                  prescale=1,
+                                  persistreco=True):
+    line_alg = doublecharm.make_doublecharm_QC_3ddx3dd()
+    return Hlt2Line(
+        name=name,
+        algs=make_prefilters() + [line_alg],
+        prescale=prescale,
+        persistreco=persistreco)
+    
+@register_line_builder(all_lines)
+@configurable
+def doublecharm_QC_4x2_line(name="Hlt2BandQ_DoubleCharmQC_4x2",
+                                  prescale=1,
+                                  persistreco=True):
+    line_alg = doublecharm.make_doublecharm_QC_4x2()
+    return Hlt2Line(
+        name=name,
+        algs=make_prefilters() + [line_alg],
+        prescale=prescale,
+        persistreco=persistreco)
+    
+@register_line_builder(all_lines)
+@configurable
+def doublecharm_QC_4x3ll_line(name="Hlt2BandQ_DoubleCharmQC_4x3ll",
+                                  prescale=1,
+                                  persistreco=True):
+    line_alg = doublecharm.make_doublecharm_QC_4x3ll()
+    return Hlt2Line(
+        name=name,
+        algs=make_prefilters() + [line_alg],
+        prescale=prescale,
+        persistreco=persistreco)
+    
+@register_line_builder(all_lines)
+@configurable
+def doublecharm_QC_4x3dd_line(name="Hlt2BandQ_DoubleCharmQC_4x3dd",
+                                  prescale=1,
+                                  persistreco=True):
+    line_alg = doublecharm.make_doublecharm_QC_4x3dd()
+    return Hlt2Line(
+        name=name,
+        algs=make_prefilters() + [line_alg],
+        prescale=prescale,
+        persistreco=persistreco)
+    
+@register_line_builder(all_lines)
+@configurable
+def doublecharm_QC_4x4_line(name="Hlt2BandQ_DoubleCharmQC_4x4",
+                                  prescale=1,
+                                  persistreco=True):
+    line_alg = doublecharm.make_doublecharm_QC_4x4()
+    return Hlt2Line(
+        name=name,
+        algs=make_prefilters() + [line_alg],
+        prescale=prescale,
+        persistreco=persistreco)
 
 @register_line_builder(all_lines)
 @configurable
-- 
GitLab


From 12756d41c53bd26eaf251b26738dc1a5268e4bb3 Mon Sep 17 00:00:00 2001
From: Gitlab CI <noreply@cern.ch>
Date: Thu, 1 Feb 2024 22:16:49 +0000
Subject: [PATCH 2/9] Fixed formatting

patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/35753296
---
 .../lines/bandq/builders/doublecharm.py       | 281 +++++++++++-------
 .../python/Hlt2Conf/lines/bandq/hlt2_bandq.py |  69 +++--
 2 files changed, 210 insertions(+), 140 deletions(-)

diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
index e56693cec3d..408b724f8f4 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
@@ -183,12 +183,14 @@ def make_doublecharm_oppositesign(
         ])
     return line_alg
 
+
 """
 Make B&Q quantum-correlated D0 anti-D0 combinations.
 """
 
+
 @configurable
-def make_doublecharm_QC_2x2( # note that this line contains D0 -> Kpi anti-D0 -> Kpi which is also triggered above.
+def make_doublecharm_QC_2x2(  # note that this line contains D0 -> Kpi anti-D0 -> Kpi which is also triggered above.
         name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
@@ -204,18 +206,18 @@ def make_doublecharm_QC_2x2( # note that this line contains D0 -> Kpi anti-D0 ->
         '[D0 -> K- K+]')  #taken from Hlt2Charm_D0ToKmKp line in charm area
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                        name='bandq_charmToXD0_2body_{hash}')
+                                          name='bandq_charmToXD0_2body_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_2, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
         ])
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_3llx2(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3llx2(name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -232,29 +234,34 @@ def make_doublecharm_QC_3llx2(
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                        name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-                                        name='bandq_charmToXD0_3bodyll_{hash}')
+                                          name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_3ll = ParticleContainersMerger(
+        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+        name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3ll, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
         ])
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_3ddx2(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3ddx2(name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -271,118 +278,140 @@ def make_doublecharm_QC_3ddx2(
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                        name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-                                        name='bandq_charmToXD0_3bodydd_{hash}')
+                                          name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_3dd = ParticleContainersMerger(
+        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3dd, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
         ])
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_3llx3ll(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3llx3ll(name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-                                        name='bandq_charmToXD0_3bodyll_{hash}')
+    D0_meson_3ll = ParticleContainersMerger(
+        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+        name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3ll, D0_meson_3ll],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
         ])
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_3llx3dd(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3llx3dd(name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
-
-    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-                                        name='bandq_charmToXD0_3bodyll_{hash}')
-    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-                                        name='bandq_charmToXD0_3bodydd_{hash}')
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_3ll = ParticleContainersMerger(
+        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+        name='bandq_charmToXD0_3bodyll_{hash}')
+    D0_meson_3dd = ParticleContainersMerger(
+        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3ll, D0_meson_3dd],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
         ])
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_3ddx3dd(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3ddx3dd(name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-
-    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-                                        name='bandq_charmToXD0_3bodydd_{hash}')
+    D0_meson_3dd = ParticleContainersMerger(
+        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3dd, D0_meson_3dd],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
         ])
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_4x2(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x2(name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -398,144 +427,174 @@ def make_doublecharm_QC_4x2(
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> pi- pi- pi+ pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                        name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-                                        name='bandq_charmToXD0_4body_{hash}')
+                                          name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_4 = ParticleContainersMerger(
+        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+        name='bandq_charmToXD0_4body_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
         ])
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_4x3ll(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x3ll(name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
-    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-                                        name='bandq_charmToXD0_4body_{hash}')
-    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-                                        name='bandq_charmToXD0_3bodyll_{hash}')
+        'D0 -> pi- pi- pi+ pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_4 = ParticleContainersMerger(
+        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_3ll = ParticleContainersMerger(
+        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+        name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_3ll],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
         ])
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_4x3dd(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x3dd(name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
-    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-                                        name='bandq_charmToXD0_4body_{hash}')
-    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-                                        name='bandq_charmToXD0_3bodydd_{hash}')
+        'D0 -> pi- pi- pi+ pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_4 = ParticleContainersMerger(
+        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_3dd = ParticleContainersMerger(
+        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_3dd],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
         ])
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_4x4(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x4(name='bandq_doublecharm_QC_{hash}'):
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> pi- pi- pi+ pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-                                        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_4 = ParticleContainersMerger(
+        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+        name='bandq_charmToXD0_4body_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_4],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
         ])
     return line_alg
diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/hlt2_bandq.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/hlt2_bandq.py
index a8e7bd1e270..3e4f6789019 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/hlt2_bandq.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/hlt2_bandq.py
@@ -371,119 +371,129 @@ def doublecharm_oppositesign_line(name="Hlt2BandQ_DoubleCharmOppositeSign",
         prescale=prescale,
         persistreco=persistreco)
 
+
 @register_line_builder(all_lines)
 @configurable
 def doublecharm_QC_2x2_line(name="Hlt2BandQ_DoubleCharmQC_2x2",
-                                  prescale=1,
-                                  persistreco=True):
+                            prescale=1,
+                            persistreco=True):
     line_alg = doublecharm.make_doublecharm_QC_2x2()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
         prescale=prescale,
         persistreco=persistreco)
-    
+
+
 @register_line_builder(all_lines)
 @configurable
 def doublecharm_QC_3llx2_line(name="Hlt2BandQ_DoubleCharmQC_3llx2",
-                                  prescale=1,
-                                  persistreco=True):
+                              prescale=1,
+                              persistreco=True):
     line_alg = doublecharm.make_doublecharm_QC_3llx2()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
         prescale=prescale,
         persistreco=persistreco)
-    
+
+
 @register_line_builder(all_lines)
 @configurable
 def doublecharm_QC_3ddx2_line(name="Hlt2BandQ_DoubleCharmQC_3ddx2",
-                                  prescale=1,
-                                  persistreco=True):
+                              prescale=1,
+                              persistreco=True):
     line_alg = doublecharm.make_doublecharm_QC_3ddx2()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
         prescale=prescale,
         persistreco=persistreco)
-    
+
+
 @register_line_builder(all_lines)
 @configurable
 def doublecharm_QC_3llx3ll_line(name="Hlt2BandQ_DoubleCharmQC_3llx3ll",
-                                  prescale=1,
-                                  persistreco=True):
+                                prescale=1,
+                                persistreco=True):
     line_alg = doublecharm.make_doublecharm_QC_3llx3ll()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
         prescale=prescale,
         persistreco=persistreco)
-    
+
+
 @register_line_builder(all_lines)
 @configurable
 def doublecharm_QC_3llx3dd_line(name="Hlt2BandQ_DoubleCharmQC_3llx3dd",
-                                  prescale=1,
-                                  persistreco=True):
+                                prescale=1,
+                                persistreco=True):
     line_alg = doublecharm.make_doublecharm_QC_3llx3dd()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
         prescale=prescale,
         persistreco=persistreco)
-    
+
+
 @register_line_builder(all_lines)
 @configurable
 def doublecharm_QC_3ddx3dd_line(name="Hlt2BandQ_DoubleCharmQC_3ddx3dd",
-                                  prescale=1,
-                                  persistreco=True):
+                                prescale=1,
+                                persistreco=True):
     line_alg = doublecharm.make_doublecharm_QC_3ddx3dd()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
         prescale=prescale,
         persistreco=persistreco)
-    
+
+
 @register_line_builder(all_lines)
 @configurable
 def doublecharm_QC_4x2_line(name="Hlt2BandQ_DoubleCharmQC_4x2",
-                                  prescale=1,
-                                  persistreco=True):
+                            prescale=1,
+                            persistreco=True):
     line_alg = doublecharm.make_doublecharm_QC_4x2()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
         prescale=prescale,
         persistreco=persistreco)
-    
+
+
 @register_line_builder(all_lines)
 @configurable
 def doublecharm_QC_4x3ll_line(name="Hlt2BandQ_DoubleCharmQC_4x3ll",
-                                  prescale=1,
-                                  persistreco=True):
+                              prescale=1,
+                              persistreco=True):
     line_alg = doublecharm.make_doublecharm_QC_4x3ll()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
         prescale=prescale,
         persistreco=persistreco)
-    
+
+
 @register_line_builder(all_lines)
 @configurable
 def doublecharm_QC_4x3dd_line(name="Hlt2BandQ_DoubleCharmQC_4x3dd",
-                                  prescale=1,
-                                  persistreco=True):
+                              prescale=1,
+                              persistreco=True):
     line_alg = doublecharm.make_doublecharm_QC_4x3dd()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
         prescale=prescale,
         persistreco=persistreco)
-    
+
+
 @register_line_builder(all_lines)
 @configurable
 def doublecharm_QC_4x4_line(name="Hlt2BandQ_DoubleCharmQC_4x4",
-                                  prescale=1,
-                                  persistreco=True):
+                            prescale=1,
+                            persistreco=True):
     line_alg = doublecharm.make_doublecharm_QC_4x4()
     return Hlt2Line(
         name=name,
@@ -491,6 +501,7 @@ def doublecharm_QC_4x4_line(name="Hlt2BandQ_DoubleCharmQC_4x4",
         prescale=prescale,
         persistreco=persistreco)
 
+
 @register_line_builder(all_lines)
 @configurable
 def hc2jpsimumu_line(name="Hlt2BandQ_hcToJpsiMuMu", prescale=1):
-- 
GitLab


From 84951b64aad2efbd3ca2bb811dce537293cb97da Mon Sep 17 00:00:00 2001
From: Paras Naik <paras.naik@cern.ch>
Date: Thu, 1 Feb 2024 23:32:58 +0100
Subject: [PATCH 3/9] add capability to use AllowDiffInputsForSameIDChildren in
 ParticleCombiner by adding an option allowDiffInputsForSameIDChildren to
 _make_doublecharm() and allowDiffInputsForSameIDChildren_dc to
 make_doublecharm() in doublecharm.py

---
 .../lines/bandq/builders/doublecharm.py       | 313 ++++++++----------
 1 file changed, 129 insertions(+), 184 deletions(-)

diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
index 408b724f8f4..059e69526ed 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
@@ -28,7 +28,8 @@ from Hlt2Conf.lines.charm import d0_to_kshh, d0_to_hhhh
 @configurable
 def _make_doublecharm(particles,
                       descriptor,
-                      name='bandq_doublecharm_singledecay_template_{hash}'):
+                      name='bandq_doublecharm_singledecay_template_{hash}',
+                      allowDiffInputsForSameIDChildren = False):
     combination_code = require_all(F.ALL)
     vertex_code = require_all(F.ALL)
     return ParticleCombiner(
@@ -36,18 +37,21 @@ def _make_doublecharm(particles,
         Inputs=particles,
         DecayDescriptor=descriptor,
         CombinationCut=combination_code,
-        CompositeCut=vertex_code)
+        CompositeCut=vertex_code,
+        AllowDiffInputsForSameIDChildren = allowDiffInputsForSameIDChildren)
 
 
 @configurable
 def make_doublecharm(particles,
                      descriptors,
-                     name='bandq_doublecharm_template_{hash}'):
+                     name='bandq_doublecharm_template_{hash}',
+                     allowDiffInputsForSameIDChildren_input = False):
     assert len(descriptors) > 0
     c_hadrons = []
     for descriptor in descriptors:
         c_hadrons.append(
-            _make_doublecharm(particles=particles, descriptor=descriptor))
+            _make_doublecharm(particles=particles, descriptor=descriptor,
+                              allowDiffInputsForSameIDChildren = allowDiffInputsForSameIDChildren_input))
     return ParticleContainersMerger(c_hadrons, name=name)
 
 
@@ -183,14 +187,12 @@ def make_doublecharm_oppositesign(
         ])
     return line_alg
 
-
 """
 Make B&Q quantum-correlated D0 anti-D0 combinations.
 """
 
-
 @configurable
-def make_doublecharm_QC_2x2(  # note that this line contains D0 -> Kpi anti-D0 -> Kpi which is also triggered above.
+def make_doublecharm_QC_2x2( # note that this line contains D0 -> Kpi anti-D0 -> Kpi which is also triggered above.
         name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
@@ -206,18 +208,18 @@ def make_doublecharm_QC_2x2(  # note that this line contains D0 -> Kpi anti-D0 -
         '[D0 -> K- K+]')  #taken from Hlt2Charm_D0ToKmKp line in charm area
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                          name='bandq_charmToXD0_2body_{hash}')
+                                        name='bandq_charmToXD0_2body_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_2, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ])
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_input = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_3llx2(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3llx2(
+        name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -234,34 +236,29 @@ def make_doublecharm_QC_3llx2(name='bandq_doublecharm_QC_{hash}'):
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                          name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_3ll = ParticleContainersMerger(
-        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-        name='bandq_charmToXD0_3bodyll_{hash}')
+                                        name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+                                        name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3ll, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ])
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_input = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_3ddx2(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3ddx2(
+        name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -278,140 +275,118 @@ def make_doublecharm_QC_3ddx2(name='bandq_doublecharm_QC_{hash}'):
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                          name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_3dd = ParticleContainersMerger(
-        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-        name='bandq_charmToXD0_3bodydd_{hash}')
+                                        name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+                                        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3dd, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ])
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_input = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_3llx3ll(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3llx3ll(
+        name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
 
-    D0_meson_3ll = ParticleContainersMerger(
-        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-        name='bandq_charmToXD0_3bodyll_{hash}')
+    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+                                        name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3ll, D0_meson_3ll],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ])
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_input = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_3llx3dd(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3llx3dd(
+        name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
-    D0_meson_3ll = ParticleContainersMerger(
-        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-        name='bandq_charmToXD0_3bodyll_{hash}')
-    D0_meson_3dd = ParticleContainersMerger(
-        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-        name='bandq_charmToXD0_3bodydd_{hash}')
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+
+    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+                                        name='bandq_charmToXD0_3bodyll_{hash}')
+    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+                                        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3ll, D0_meson_3dd],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ])
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_input = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_3ddx3dd(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3ddx3dd(
+        name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
 
-    D0_meson_3dd = ParticleContainersMerger(
-        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-        name='bandq_charmToXD0_3bodydd_{hash}')
+    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+                                        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3dd, D0_meson_3dd],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ])
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_input = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_4x2(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x2(
+        name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -427,174 +402,144 @@ def make_doublecharm_QC_4x2(name='bandq_doublecharm_QC_{hash}'):
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                          name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_4 = ParticleContainersMerger(
-        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-        name='bandq_charmToXD0_4body_{hash}')
+                                        name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+                                        name='bandq_charmToXD0_4body_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ])
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_input = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_4x3ll(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x3ll(
+        name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
-    D0_meson_4 = ParticleContainersMerger(
-        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-        name='bandq_charmToXD0_4body_{hash}')
-    D0_meson_3ll = ParticleContainersMerger(
-        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-        name='bandq_charmToXD0_3bodyll_{hash}')
+        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+                                        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+                                        name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_3ll],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ])
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_input = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_4x3dd(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x3dd(
+        name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
-    D0_meson_4 = ParticleContainersMerger(
-        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-        name='bandq_charmToXD0_4body_{hash}')
-    D0_meson_3dd = ParticleContainersMerger(
-        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-        name='bandq_charmToXD0_3bodydd_{hash}')
+        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+                                        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+                                        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_3dd],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ])
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_input = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_4x4(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x4(
+        name='bandq_doublecharm_QC_{hash}'):
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_4 = ParticleContainersMerger(
-        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+                                        name='bandq_charmToXD0_4body_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_4],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ])
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_input = True)
     return line_alg
-- 
GitLab


From fd8a5a245b440b0bb320c2c32b829363d20412f8 Mon Sep 17 00:00:00 2001
From: Gitlab CI <noreply@cern.ch>
Date: Thu, 1 Feb 2024 22:33:45 +0000
Subject: [PATCH 4/9] Fixed formatting

patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/35753527
---
 .../lines/bandq/builders/doublecharm.py       | 324 +++++++++++-------
 1 file changed, 198 insertions(+), 126 deletions(-)

diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
index 059e69526ed..e40928390d9 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
@@ -29,7 +29,7 @@ from Hlt2Conf.lines.charm import d0_to_kshh, d0_to_hhhh
 def _make_doublecharm(particles,
                       descriptor,
                       name='bandq_doublecharm_singledecay_template_{hash}',
-                      allowDiffInputsForSameIDChildren = False):
+                      allowDiffInputsForSameIDChildren=False):
     combination_code = require_all(F.ALL)
     vertex_code = require_all(F.ALL)
     return ParticleCombiner(
@@ -38,20 +38,23 @@ def _make_doublecharm(particles,
         DecayDescriptor=descriptor,
         CombinationCut=combination_code,
         CompositeCut=vertex_code,
-        AllowDiffInputsForSameIDChildren = allowDiffInputsForSameIDChildren)
+        AllowDiffInputsForSameIDChildren=allowDiffInputsForSameIDChildren)
 
 
 @configurable
 def make_doublecharm(particles,
                      descriptors,
                      name='bandq_doublecharm_template_{hash}',
-                     allowDiffInputsForSameIDChildren_input = False):
+                     allowDiffInputsForSameIDChildren_input=False):
     assert len(descriptors) > 0
     c_hadrons = []
     for descriptor in descriptors:
         c_hadrons.append(
-            _make_doublecharm(particles=particles, descriptor=descriptor,
-                              allowDiffInputsForSameIDChildren = allowDiffInputsForSameIDChildren_input))
+            _make_doublecharm(
+                particles=particles,
+                descriptor=descriptor,
+                allowDiffInputsForSameIDChildren=
+                allowDiffInputsForSameIDChildren_input))
     return ParticleContainersMerger(c_hadrons, name=name)
 
 
@@ -187,12 +190,14 @@ def make_doublecharm_oppositesign(
         ])
     return line_alg
 
+
 """
 Make B&Q quantum-correlated D0 anti-D0 combinations.
 """
 
+
 @configurable
-def make_doublecharm_QC_2x2( # note that this line contains D0 -> Kpi anti-D0 -> Kpi which is also triggered above.
+def make_doublecharm_QC_2x2(  # note that this line contains D0 -> Kpi anti-D0 -> Kpi which is also triggered above.
         name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
@@ -208,18 +213,19 @@ def make_doublecharm_QC_2x2( # note that this line contains D0 -> Kpi anti-D0 ->
         '[D0 -> K- K+]')  #taken from Hlt2Charm_D0ToKmKp line in charm area
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                        name='bandq_charmToXD0_2body_{hash}')
+                                          name='bandq_charmToXD0_2body_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_2, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_input = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_input=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_3llx2(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3llx2(name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -236,29 +242,35 @@ def make_doublecharm_QC_3llx2(
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                        name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-                                        name='bandq_charmToXD0_3bodyll_{hash}')
+                                          name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_3ll = ParticleContainersMerger(
+        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+        name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3ll, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_input = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_input=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_3ddx2(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3ddx2(name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -275,118 +287,144 @@ def make_doublecharm_QC_3ddx2(
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                        name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-                                        name='bandq_charmToXD0_3bodydd_{hash}')
+                                          name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_3dd = ParticleContainersMerger(
+        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3dd, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_input = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_input=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_3llx3ll(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3llx3ll(name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-                                        name='bandq_charmToXD0_3bodyll_{hash}')
+    D0_meson_3ll = ParticleContainersMerger(
+        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+        name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3ll, D0_meson_3ll],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_input = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_input=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_3llx3dd(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3llx3dd(name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
-
-    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-                                        name='bandq_charmToXD0_3bodyll_{hash}')
-    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-                                        name='bandq_charmToXD0_3bodydd_{hash}')
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_3ll = ParticleContainersMerger(
+        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+        name='bandq_charmToXD0_3bodyll_{hash}')
+    D0_meson_3dd = ParticleContainersMerger(
+        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3ll, D0_meson_3dd],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_input = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_input=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_3ddx3dd(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3ddx3dd(name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-                                        name='bandq_charmToXD0_3bodydd_{hash}')
+    D0_meson_3dd = ParticleContainersMerger(
+        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3dd, D0_meson_3dd],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_input = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_input=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_4x2(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x2(name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -402,144 +440,178 @@ def make_doublecharm_QC_4x2(
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> pi- pi- pi+ pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                        name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-                                        name='bandq_charmToXD0_4body_{hash}')
+                                          name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_4 = ParticleContainersMerger(
+        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+        name='bandq_charmToXD0_4body_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_input = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_input=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_4x3ll(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x3ll(name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
-    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-                                        name='bandq_charmToXD0_4body_{hash}')
-    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-                                        name='bandq_charmToXD0_3bodyll_{hash}')
+        'D0 -> pi- pi- pi+ pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_4 = ParticleContainersMerger(
+        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_3ll = ParticleContainersMerger(
+        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+        name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_3ll],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_input = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_input=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_4x3dd(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x3dd(name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
-    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-                                        name='bandq_charmToXD0_4body_{hash}')
-    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-                                        name='bandq_charmToXD0_3bodydd_{hash}')
+        'D0 -> pi- pi- pi+ pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_4 = ParticleContainersMerger(
+        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_3dd = ParticleContainersMerger(
+        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_3dd],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_input = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_input=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_4x4(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x4(name='bandq_doublecharm_QC_{hash}'):
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> pi- pi- pi+ pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-                                        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_4 = ParticleContainersMerger(
+        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+        name='bandq_charmToXD0_4body_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_4],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_input = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_input=True)
     return line_alg
-- 
GitLab


From 8250de161647807cf4c422877ffe123eff1b2fd8 Mon Sep 17 00:00:00 2001
From: Paras Naik <paras.naik@cern.ch>
Date: Thu, 1 Feb 2024 23:38:17 +0100
Subject: [PATCH 5/9] add capability to use AllowDiffInputsForSameIDChildren in
 ParticleCombiner by adding an option allowDiffInputsForSameIDChildren to
 _make_doublecharm() and allowDiffInputsForSameIDChildren_dc to
 make_doublecharm() in doublecharm.py (corrected)

---
 .../lines/bandq/builders/doublecharm.py       | 324 +++++++-----------
 1 file changed, 126 insertions(+), 198 deletions(-)

diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
index e40928390d9..0e199bba8a3 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
@@ -29,7 +29,7 @@ from Hlt2Conf.lines.charm import d0_to_kshh, d0_to_hhhh
 def _make_doublecharm(particles,
                       descriptor,
                       name='bandq_doublecharm_singledecay_template_{hash}',
-                      allowDiffInputsForSameIDChildren=False):
+                      allowDiffInputsForSameIDChildren = False):
     combination_code = require_all(F.ALL)
     vertex_code = require_all(F.ALL)
     return ParticleCombiner(
@@ -38,23 +38,20 @@ def _make_doublecharm(particles,
         DecayDescriptor=descriptor,
         CombinationCut=combination_code,
         CompositeCut=vertex_code,
-        AllowDiffInputsForSameIDChildren=allowDiffInputsForSameIDChildren)
+        AllowDiffInputsForSameIDChildren = allowDiffInputsForSameIDChildren)
 
 
 @configurable
 def make_doublecharm(particles,
                      descriptors,
                      name='bandq_doublecharm_template_{hash}',
-                     allowDiffInputsForSameIDChildren_input=False):
+                     allowDiffInputsForSameIDChildren_dc = False):
     assert len(descriptors) > 0
     c_hadrons = []
     for descriptor in descriptors:
         c_hadrons.append(
-            _make_doublecharm(
-                particles=particles,
-                descriptor=descriptor,
-                allowDiffInputsForSameIDChildren=
-                allowDiffInputsForSameIDChildren_input))
+            _make_doublecharm(particles=particles, descriptor=descriptor,
+                              allowDiffInputsForSameIDChildren = allowDiffInputsForSameIDChildren_dc))
     return ParticleContainersMerger(c_hadrons, name=name)
 
 
@@ -190,14 +187,12 @@ def make_doublecharm_oppositesign(
         ])
     return line_alg
 
-
 """
 Make B&Q quantum-correlated D0 anti-D0 combinations.
 """
 
-
 @configurable
-def make_doublecharm_QC_2x2(  # note that this line contains D0 -> Kpi anti-D0 -> Kpi which is also triggered above.
+def make_doublecharm_QC_2x2( # note that this line contains D0 -> Kpi anti-D0 -> Kpi which is also triggered above.
         name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
@@ -213,19 +208,18 @@ def make_doublecharm_QC_2x2(  # note that this line contains D0 -> Kpi anti-D0 -
         '[D0 -> K- K+]')  #taken from Hlt2Charm_D0ToKmKp line in charm area
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                          name='bandq_charmToXD0_2body_{hash}')
+                                        name='bandq_charmToXD0_2body_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_2, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ],
-        allowDiffInputsForSameIDChildren_input=True)
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_dc = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_3llx2(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3llx2(
+        name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -242,35 +236,29 @@ def make_doublecharm_QC_3llx2(name='bandq_doublecharm_QC_{hash}'):
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                          name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_3ll = ParticleContainersMerger(
-        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-        name='bandq_charmToXD0_3bodyll_{hash}')
+                                        name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+                                        name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3ll, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ],
-        allowDiffInputsForSameIDChildren_input=True)
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_dc = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_3ddx2(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3ddx2(
+        name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -287,144 +275,118 @@ def make_doublecharm_QC_3ddx2(name='bandq_doublecharm_QC_{hash}'):
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                          name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_3dd = ParticleContainersMerger(
-        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-        name='bandq_charmToXD0_3bodydd_{hash}')
+                                        name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+                                        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3dd, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ],
-        allowDiffInputsForSameIDChildren_input=True)
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_dc = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_3llx3ll(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3llx3ll(
+        name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
 
-    D0_meson_3ll = ParticleContainersMerger(
-        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-        name='bandq_charmToXD0_3bodyll_{hash}')
+    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+                                        name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3ll, D0_meson_3ll],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ],
-        allowDiffInputsForSameIDChildren_input=True)
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_dc = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_3llx3dd(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3llx3dd(
+        name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
-    D0_meson_3ll = ParticleContainersMerger(
-        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-        name='bandq_charmToXD0_3bodyll_{hash}')
-    D0_meson_3dd = ParticleContainersMerger(
-        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-        name='bandq_charmToXD0_3bodydd_{hash}')
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+
+    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+                                        name='bandq_charmToXD0_3bodyll_{hash}')
+    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+                                        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3ll, D0_meson_3dd],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ],
-        allowDiffInputsForSameIDChildren_input=True)
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_dc = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_3ddx3dd(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3ddx3dd(
+        name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
 
-    D0_meson_3dd = ParticleContainersMerger(
-        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-        name='bandq_charmToXD0_3bodydd_{hash}')
+    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+                                        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3dd, D0_meson_3dd],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ],
-        allowDiffInputsForSameIDChildren_input=True)
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_dc = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_4x2(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x2(
+        name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -440,178 +402,144 @@ def make_doublecharm_QC_4x2(name='bandq_doublecharm_QC_{hash}'):
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                          name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_4 = ParticleContainersMerger(
-        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-        name='bandq_charmToXD0_4body_{hash}')
+                                        name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+                                        name='bandq_charmToXD0_4body_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ],
-        allowDiffInputsForSameIDChildren_input=True)
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_dc = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_4x3ll(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x3ll(
+        name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
-    D0_meson_4 = ParticleContainersMerger(
-        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-        name='bandq_charmToXD0_4body_{hash}')
-    D0_meson_3ll = ParticleContainersMerger(
-        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-        name='bandq_charmToXD0_3bodyll_{hash}')
+        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+                                        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+                                        name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_3ll],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ],
-        allowDiffInputsForSameIDChildren_input=True)
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_dc = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_4x3dd(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x3dd(
+        name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
-    D0_meson_4 = ParticleContainersMerger(
-        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-        name='bandq_charmToXD0_4body_{hash}')
-    D0_meson_3dd = ParticleContainersMerger(
-        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-        name='bandq_charmToXD0_3bodydd_{hash}')
+        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+                                        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+                                        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_3dd],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ],
-        allowDiffInputsForSameIDChildren_input=True)
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_dc = True)
     return line_alg
 
-
 @configurable
-def make_doublecharm_QC_4x4(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x4(
+        name='bandq_doublecharm_QC_{hash}'):
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+'
-    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_4 = ParticleContainersMerger(
-        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+                                        name='bandq_charmToXD0_4body_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_4],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ],
-        allowDiffInputsForSameIDChildren_input=True)
+            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ], allowDiffInputsForSameIDChildren_dc = True)
     return line_alg
-- 
GitLab


From 86c7a595ed8397b48fc57f7fb6b8e2cef9f3abef Mon Sep 17 00:00:00 2001
From: Gitlab CI <noreply@cern.ch>
Date: Thu, 1 Feb 2024 22:39:02 +0000
Subject: [PATCH 6/9] Fixed formatting

patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/35753629
---
 .../lines/bandq/builders/doublecharm.py       | 324 +++++++++++-------
 1 file changed, 198 insertions(+), 126 deletions(-)

diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
index 0e199bba8a3..ea3c6f92f92 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
@@ -29,7 +29,7 @@ from Hlt2Conf.lines.charm import d0_to_kshh, d0_to_hhhh
 def _make_doublecharm(particles,
                       descriptor,
                       name='bandq_doublecharm_singledecay_template_{hash}',
-                      allowDiffInputsForSameIDChildren = False):
+                      allowDiffInputsForSameIDChildren=False):
     combination_code = require_all(F.ALL)
     vertex_code = require_all(F.ALL)
     return ParticleCombiner(
@@ -38,20 +38,23 @@ def _make_doublecharm(particles,
         DecayDescriptor=descriptor,
         CombinationCut=combination_code,
         CompositeCut=vertex_code,
-        AllowDiffInputsForSameIDChildren = allowDiffInputsForSameIDChildren)
+        AllowDiffInputsForSameIDChildren=allowDiffInputsForSameIDChildren)
 
 
 @configurable
 def make_doublecharm(particles,
                      descriptors,
                      name='bandq_doublecharm_template_{hash}',
-                     allowDiffInputsForSameIDChildren_dc = False):
+                     allowDiffInputsForSameIDChildren_dc=False):
     assert len(descriptors) > 0
     c_hadrons = []
     for descriptor in descriptors:
         c_hadrons.append(
-            _make_doublecharm(particles=particles, descriptor=descriptor,
-                              allowDiffInputsForSameIDChildren = allowDiffInputsForSameIDChildren_dc))
+            _make_doublecharm(
+                particles=particles,
+                descriptor=descriptor,
+                allowDiffInputsForSameIDChildren=
+                allowDiffInputsForSameIDChildren_dc))
     return ParticleContainersMerger(c_hadrons, name=name)
 
 
@@ -187,12 +190,14 @@ def make_doublecharm_oppositesign(
         ])
     return line_alg
 
+
 """
 Make B&Q quantum-correlated D0 anti-D0 combinations.
 """
 
+
 @configurable
-def make_doublecharm_QC_2x2( # note that this line contains D0 -> Kpi anti-D0 -> Kpi which is also triggered above.
+def make_doublecharm_QC_2x2(  # note that this line contains D0 -> Kpi anti-D0 -> Kpi which is also triggered above.
         name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
@@ -208,18 +213,19 @@ def make_doublecharm_QC_2x2( # note that this line contains D0 -> Kpi anti-D0 ->
         '[D0 -> K- K+]')  #taken from Hlt2Charm_D0ToKmKp line in charm area
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                        name='bandq_charmToXD0_2body_{hash}')
+                                          name='bandq_charmToXD0_2body_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_2, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_dc = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_dc=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_3llx2(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3llx2(name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -236,29 +242,35 @@ def make_doublecharm_QC_3llx2(
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                        name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-                                        name='bandq_charmToXD0_3bodyll_{hash}')
+                                          name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_3ll = ParticleContainersMerger(
+        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+        name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3ll, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_dc = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_dc=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_3ddx2(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3ddx2(name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -275,118 +287,144 @@ def make_doublecharm_QC_3ddx2(
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                        name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-                                        name='bandq_charmToXD0_3bodydd_{hash}')
+                                          name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_3dd = ParticleContainersMerger(
+        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3dd, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_dc = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_dc=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_3llx3ll(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3llx3ll(name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-                                        name='bandq_charmToXD0_3bodyll_{hash}')
+    D0_meson_3ll = ParticleContainersMerger(
+        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+        name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3ll, D0_meson_3ll],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_dc = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_dc=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_3llx3dd(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3llx3dd(name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
-
-    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-                                        name='bandq_charmToXD0_3bodyll_{hash}')
-    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-                                        name='bandq_charmToXD0_3bodydd_{hash}')
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_3ll = ParticleContainersMerger(
+        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+        name='bandq_charmToXD0_3bodyll_{hash}')
+    D0_meson_3dd = ParticleContainersMerger(
+        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3ll, D0_meson_3dd],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_dc = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_dc=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_3ddx3dd(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_3ddx3dd(name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-                                        name='bandq_charmToXD0_3bodydd_{hash}')
+    D0_meson_3dd = ParticleContainersMerger(
+        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_3dd, D0_meson_3dd],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_dc = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_dc=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_4x2(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x2(name='bandq_doublecharm_QC_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -402,144 +440,178 @@ def make_doublecharm_QC_4x2(
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> pi- pi- pi+ pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                        name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-                                        name='bandq_charmToXD0_4body_{hash}')
+                                          name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_4 = ParticleContainersMerger(
+        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+        name='bandq_charmToXD0_4body_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_2],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_dc = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_dc=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_4x3ll(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x3ll(name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
     dzKsPiPill = d0_to_kshh.make_dzeros(
-        kshortsll, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimll = d0_to_kshh.make_dzeros(
-        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
-    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-                                        name='bandq_charmToXD0_4body_{hash}')
-    D0_meson_3ll = ParticleContainersMerger([dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
-                                        name='bandq_charmToXD0_3bodyll_{hash}')
+        'D0 -> pi- pi- pi+ pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_4 = ParticleContainersMerger(
+        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_3ll = ParticleContainersMerger(
+        [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
+        name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_3ll],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_dc = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_dc=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_4x3dd(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x3dd(name='bandq_doublecharm_QC_{hash}'):
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
     dzKsPiPidd = d0_to_kshh.make_dzeros(
-        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, pions, pions, "D0 -> KS0 pi- pi+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKKdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, kaons, "D0 -> KS0 K- K+"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKmPipdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K- pi+]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKsKpPimdd = d0_to_kshh.make_dzeros(
-        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc")  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
-
-    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-                                        name='bandq_charmToXD0_4body_{hash}')
-    D0_meson_3dd = ParticleContainersMerger([dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
-                                        name='bandq_charmToXD0_3bodydd_{hash}')
+        'D0 -> pi- pi- pi+ pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+
+    D0_meson_4 = ParticleContainersMerger(
+        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_3dd = ParticleContainersMerger(
+        [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
+        name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_3dd],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_dc = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_dc=True)
     return line_alg
 
+
 @configurable
-def make_doublecharm_QC_4x4(
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_QC_4x4(name='bandq_doublecharm_QC_{hash}'):
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K- pi- pi+ pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K- pi- pi+ pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKpipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> K+ pi- pi- pi+]cc')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        '[D0 -> K+ pi- pi- pi+]cc'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKpipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> K- K+ pi- pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> K- K+ pi- pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
     dzKKKpi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        'D0 -> pi- pi- pi+ pi+')  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
+        'D0 -> pi- pi- pi+ pi+'
+    )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_4 = ParticleContainersMerger([dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
-                                        name='bandq_charmToXD0_4body_{hash}')
+    D0_meson_4 = ParticleContainersMerger(
+        [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
+        name='bandq_charmToXD0_4body_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_4, D0_meson_4],
         descriptors=[
-            '[psi(3770) -> D0 D0]cc' # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ], allowDiffInputsForSameIDChildren_dc = True)
+            '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
+        ],
+        allowDiffInputsForSameIDChildren_dc=True)
     return line_alg
-- 
GitLab


From 7a7045d9c6a908b34bacbb6e72de267547e797d7 Mon Sep 17 00:00:00 2001
From: Paras Naik <paras.naik@cern.ch>
Date: Wed, 7 Feb 2024 00:07:14 +0100
Subject: [PATCH 7/9] typo fix (should repair build_docs pipeline error)

---
 .../Hlt2Conf/lines/bandq/builders/doublecharm.py | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
index ea3c6f92f92..b4875b9a3a4 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
@@ -207,10 +207,10 @@ def make_doublecharm_QC_2x2(  # note that this line contains D0 -> Kpi anti-D0 -
         '[D0 -> K+ pi-]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
     dzPiPi = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> pi- pi+]')  #taken from Hlt2Charm_D0ToPimPip line in charm area
+        'D0 -> pi- pi+')  #taken from Hlt2Charm_D0ToPimPip line in charm area
     dzKK = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
-        '[D0 -> K- K+]')  #taken from Hlt2Charm_D0ToKmKp line in charm area
+        'D0 -> K- K+')  #taken from Hlt2Charm_D0ToKmKp line in charm area
 
     D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
                                           name='bandq_charmToXD0_2body_{hash}')
@@ -234,10 +234,10 @@ def make_doublecharm_QC_3llx2(name='bandq_doublecharm_QC_{hash}'):
         '[D0 -> K+ pi-]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
     dzPiPi = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> pi- pi+]')  #taken from Hlt2Charm_D0ToPimPip line in charm area
+        'D0 -> pi- pi+')  #taken from Hlt2Charm_D0ToPimPip line in charm area
     dzKK = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
-        '[D0 -> K- K+]')  #taken from Hlt2Charm_D0ToKmKp line in charm area
+        'D0 -> K- K+')  #taken from Hlt2Charm_D0ToKmKp line in charm area
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
@@ -279,10 +279,10 @@ def make_doublecharm_QC_3ddx2(name='bandq_doublecharm_QC_{hash}'):
         '[D0 -> K+ pi-]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
     dzPiPi = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> pi- pi+]')  #taken from Hlt2Charm_D0ToPimPip line in charm area
+        'D0 -> pi- pi+')  #taken from Hlt2Charm_D0ToPimPip line in charm area
     dzKK = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
-        '[D0 -> K- K+]')  #taken from Hlt2Charm_D0ToKmKp line in charm area
+        'D0 -> K- K+')  #taken from Hlt2Charm_D0ToKmKp line in charm area
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
@@ -433,10 +433,10 @@ def make_doublecharm_QC_4x2(name='bandq_doublecharm_QC_{hash}'):
         '[D0 -> K+ pi-]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
     dzPiPi = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-        '[D0 -> pi- pi+]')  #taken from Hlt2Charm_D0ToPimPip line in charm area
+        'D0 -> pi- pi+')  #taken from Hlt2Charm_D0ToPimPip line in charm area
     dzKK = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
-        '[D0 -> K- K+]')  #taken from Hlt2Charm_D0ToKmKp line in charm area
+        'D0 -> K- K+')  #taken from Hlt2Charm_D0ToKmKp line in charm area
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
-- 
GitLab


From e9cf869f53ceade6504c1afe2b02b57692eaa573 Mon Sep 17 00:00:00 2001
From: Paras Naik <paras.naik@cern.ch>
Date: Fri, 9 Feb 2024 18:14:04 +0100
Subject: [PATCH 8/9] Rename all QC lines to line names with explicit decay
 modes. If only one decay mode shown then both neutral D ('D0') mesons decay
 to the same final state. Otherwise one D0 decays to the first decay mode and
 the other to the second decay mode (and presumably vice versa).

---
 .../lines/bandq/builders/doublecharm.py       | 86 +++++++++----------
 .../python/Hlt2Conf/lines/bandq/hlt2_bandq.py | 40 ++++-----
 2 files changed, 61 insertions(+), 65 deletions(-)

diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
index b4875b9a3a4..c1a6e7f488b 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
@@ -197,8 +197,8 @@ Make B&Q quantum-correlated D0 anti-D0 combinations.
 
 
 @configurable
-def make_doublecharm_QC_2x2(  # note that this line contains D0 -> Kpi anti-D0 -> Kpi which is also triggered above.
-        name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_D0ToHH(  # 2x2-body D0 decay modes  # note that this line contains D0 -> Kpi anti-D0 -> Kpi which is also triggered above.
+        name='bandq_doublecharm_{hash}'):
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -212,20 +212,19 @@ def make_doublecharm_QC_2x2(  # note that this line contains D0 -> Kpi anti-D0 -
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         'D0 -> K- K+')  #taken from Hlt2Charm_D0ToKmKp line in charm area
 
-    D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
+    D0_meson_HH = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
                                           name='bandq_charmToXD0_2body_{hash}')
     line_alg = make_doublecharm(
         name=name,
-        particles=[D0_meson_2, D0_meson_2],
+        particles=[D0_meson_HH, D0_meson_HH],
         descriptors=[
             '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ],
-        allowDiffInputsForSameIDChildren_dc=True)
+        ])
     return line_alg
 
 
 @configurable
-def make_doublecharm_QC_3llx2(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_D0ToKsLLHH_D0ToHH(name='bandq_doublecharm_{hash}'):  # 3(LL)x2-body D0 decay modes
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -254,14 +253,14 @@ def make_doublecharm_QC_3llx2(name='bandq_doublecharm_QC_{hash}'):
         kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
     )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
+    D0_meson_HH = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
                                           name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_3ll = ParticleContainersMerger(
+    D0_meson_KsLLHH = ParticleContainersMerger(
         [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
         name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
-        particles=[D0_meson_3ll, D0_meson_2],
+        particles=[D0_meson_KsLLHH, D0_meson_HH],
         descriptors=[
             '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
         ],
@@ -270,7 +269,7 @@ def make_doublecharm_QC_3llx2(name='bandq_doublecharm_QC_{hash}'):
 
 
 @configurable
-def make_doublecharm_QC_3ddx2(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_D0ToKsDDHH_D0ToHH(name='bandq_doublecharm_{hash}'):  # 3(DD)x2-body D0 decay modes
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -299,14 +298,14 @@ def make_doublecharm_QC_3ddx2(name='bandq_doublecharm_QC_{hash}'):
         kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
     )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
+    D0_meson_HH = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
                                           name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_3dd = ParticleContainersMerger(
+    D0_meson_KsDDHH = ParticleContainersMerger(
         [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
         name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
-        particles=[D0_meson_3dd, D0_meson_2],
+        particles=[D0_meson_KsDDHH, D0_meson_HH],
         descriptors=[
             '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
         ],
@@ -315,7 +314,7 @@ def make_doublecharm_QC_3ddx2(name='bandq_doublecharm_QC_{hash}'):
 
 
 @configurable
-def make_doublecharm_QC_3llx3ll(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_D0ToKsLLHH(name='bandq_doublecharm_{hash}'):  # 3(LL)x3(LL)-body D0 decay modes
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
@@ -332,21 +331,20 @@ def make_doublecharm_QC_3llx3ll(name='bandq_doublecharm_QC_{hash}'):
         kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
     )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_3ll = ParticleContainersMerger(
+    D0_meson_KsLLHH = ParticleContainersMerger(
         [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
         name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
-        particles=[D0_meson_3ll, D0_meson_3ll],
+        particles=[D0_meson_KsLLHH, D0_meson_KsLLHH],
         descriptors=[
             '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ],
-        allowDiffInputsForSameIDChildren_dc=True)
+        ])
     return line_alg
 
 
 @configurable
-def make_doublecharm_QC_3llx3dd(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_D0ToKsLLHH_D0ToKsDDHH(name='bandq_doublecharm_{hash}'):  # 3(LL)x3(DD)-body D0 decay modes
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
@@ -376,15 +374,15 @@ def make_doublecharm_QC_3llx3dd(name='bandq_doublecharm_QC_{hash}'):
         kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
     )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_3ll = ParticleContainersMerger(
+    D0_meson_KsLLHH = ParticleContainersMerger(
         [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
         name='bandq_charmToXD0_3bodyll_{hash}')
-    D0_meson_3dd = ParticleContainersMerger(
+    D0_meson_KsDDHH = ParticleContainersMerger(
         [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
         name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
-        particles=[D0_meson_3ll, D0_meson_3dd],
+        particles=[D0_meson_KsLLHH, D0_meson_KsDDHH],
         descriptors=[
             '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
         ],
@@ -393,7 +391,7 @@ def make_doublecharm_QC_3llx3dd(name='bandq_doublecharm_QC_{hash}'):
 
 
 @configurable
-def make_doublecharm_QC_3ddx3dd(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_D0ToKsDDHH(name='bandq_doublecharm_{hash}'):  # 3(DD)x3(DD)-body D0 decay modes
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
@@ -410,21 +408,20 @@ def make_doublecharm_QC_3ddx3dd(name='bandq_doublecharm_QC_{hash}'):
         kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
     )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_3dd = ParticleContainersMerger(
+    D0_meson_KsDDHH = ParticleContainersMerger(
         [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
         name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
-        particles=[D0_meson_3dd, D0_meson_3dd],
+        particles=[D0_meson_KsDDHH, D0_meson_KsDDHH],
         descriptors=[
             '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ],
-        allowDiffInputsForSameIDChildren_dc=True)
+        ])
     return line_alg
 
 
 @configurable
-def make_doublecharm_QC_4x2(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_D0ToHHHH_D0ToHH(name='bandq_doublecharm_{hash}'):  # 4x2-body D0 decay modes
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -458,14 +455,14 @@ def make_doublecharm_QC_4x2(name='bandq_doublecharm_QC_{hash}'):
         'D0 -> pi- pi- pi+ pi+'
     )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_2 = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
+    D0_meson_HH = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
                                           name='bandq_charmToXD0_2body_{hash}')
-    D0_meson_4 = ParticleContainersMerger(
+    D0_meson_HHHH = ParticleContainersMerger(
         [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
         name='bandq_charmToXD0_4body_{hash}')
     line_alg = make_doublecharm(
         name=name,
-        particles=[D0_meson_4, D0_meson_2],
+        particles=[D0_meson_HHHH, D0_meson_HH],
         descriptors=[
             '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
         ],
@@ -474,7 +471,7 @@ def make_doublecharm_QC_4x2(name='bandq_doublecharm_QC_{hash}'):
 
 
 @configurable
-def make_doublecharm_QC_4x3ll(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_D0ToHHHH_D0ToKsLLHH(name='bandq_doublecharm_{hash}'):  # 4x3(LL)-body D0 decay modes
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
@@ -511,15 +508,15 @@ def make_doublecharm_QC_4x3ll(name='bandq_doublecharm_QC_{hash}'):
         'D0 -> pi- pi- pi+ pi+'
     )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_4 = ParticleContainersMerger(
+    D0_meson_HHHH = ParticleContainersMerger(
         [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
         name='bandq_charmToXD0_4body_{hash}')
-    D0_meson_3ll = ParticleContainersMerger(
+    D0_meson_KsLLHH = ParticleContainersMerger(
         [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
         name='bandq_charmToXD0_3bodyll_{hash}')
     line_alg = make_doublecharm(
         name=name,
-        particles=[D0_meson_4, D0_meson_3ll],
+        particles=[D0_meson_HHHH, D0_meson_KsLLHH],
         descriptors=[
             '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
         ],
@@ -528,7 +525,7 @@ def make_doublecharm_QC_4x3ll(name='bandq_doublecharm_QC_{hash}'):
 
 
 @configurable
-def make_doublecharm_QC_4x3dd(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_D0ToHHHH_D0ToKsDDHH(name='bandq_doublecharm_{hash}'):  # 4x3(DD)-body D0 decay modes
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
@@ -565,15 +562,15 @@ def make_doublecharm_QC_4x3dd(name='bandq_doublecharm_QC_{hash}'):
         'D0 -> pi- pi- pi+ pi+'
     )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_4 = ParticleContainersMerger(
+    D0_meson_HHHH = ParticleContainersMerger(
         [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
         name='bandq_charmToXD0_4body_{hash}')
-    D0_meson_3dd = ParticleContainersMerger(
+    D0_meson_KsDDHH = ParticleContainersMerger(
         [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
         name='bandq_charmToXD0_3bodydd_{hash}')
     line_alg = make_doublecharm(
         name=name,
-        particles=[D0_meson_4, D0_meson_3dd],
+        particles=[D0_meson_HHHH, D0_meson_KsDDHH],
         descriptors=[
             '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
         ],
@@ -582,7 +579,7 @@ def make_doublecharm_QC_4x3dd(name='bandq_doublecharm_QC_{hash}'):
 
 
 @configurable
-def make_doublecharm_QC_4x4(name='bandq_doublecharm_QC_{hash}'):
+def make_doublecharm_D0ToHHHH(name='bandq_doublecharm_{hash}'):  # 4x4-body D0 decay modes
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
@@ -604,14 +601,13 @@ def make_doublecharm_QC_4x4(name='bandq_doublecharm_QC_{hash}'):
         'D0 -> pi- pi- pi+ pi+'
     )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_4 = ParticleContainersMerger(
+    D0_meson_HHHH = ParticleContainersMerger(
         [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
         name='bandq_charmToXD0_4body_{hash}')
     line_alg = make_doublecharm(
         name=name,
-        particles=[D0_meson_4, D0_meson_4],
+        particles=[D0_meson_HHHH, D0_meson_HHHH],
         descriptors=[
             '[psi(3770) -> D0 D0]cc'  # due to HH modes use only D0 D0 combination, including D0 D~0 would be double counting
-        ],
-        allowDiffInputsForSameIDChildren_dc=True)
+        ])
     return line_alg
diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/hlt2_bandq.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/hlt2_bandq.py
index 3e4f6789019..149b542cf2e 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/hlt2_bandq.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/hlt2_bandq.py
@@ -374,10 +374,10 @@ def doublecharm_oppositesign_line(name="Hlt2BandQ_DoubleCharmOppositeSign",
 
 @register_line_builder(all_lines)
 @configurable
-def doublecharm_QC_2x2_line(name="Hlt2BandQ_DoubleCharmQC_2x2",
+def doublecharm_D0ToHH_line(name="Hlt2BandQ_DoubleCharm_D0ToHH",
                             prescale=1,
                             persistreco=True):
-    line_alg = doublecharm.make_doublecharm_QC_2x2()
+    line_alg = doublecharm.make_doublecharm_D0ToHH()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
@@ -387,10 +387,10 @@ def doublecharm_QC_2x2_line(name="Hlt2BandQ_DoubleCharmQC_2x2",
 
 @register_line_builder(all_lines)
 @configurable
-def doublecharm_QC_3llx2_line(name="Hlt2BandQ_DoubleCharmQC_3llx2",
+def doublecharm_D0ToKsLLHH_D0ToHH_line(name="Hlt2BandQ_DoubleCharm_D0ToKsLLHH_D0ToHH",
                               prescale=1,
                               persistreco=True):
-    line_alg = doublecharm.make_doublecharm_QC_3llx2()
+    line_alg = doublecharm.make_doublecharm_D0ToKsLLHH_D0ToHH()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
@@ -400,10 +400,10 @@ def doublecharm_QC_3llx2_line(name="Hlt2BandQ_DoubleCharmQC_3llx2",
 
 @register_line_builder(all_lines)
 @configurable
-def doublecharm_QC_3ddx2_line(name="Hlt2BandQ_DoubleCharmQC_3ddx2",
+def doublecharm_D0ToKsDDHH_D0ToHH_line(name="Hlt2BandQ_DoubleCharm_D0ToKsDDHH_D0ToHH",
                               prescale=1,
                               persistreco=True):
-    line_alg = doublecharm.make_doublecharm_QC_3ddx2()
+    line_alg = doublecharm.make_doublecharm_D0ToKsDDHH_D0ToHH()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
@@ -413,10 +413,10 @@ def doublecharm_QC_3ddx2_line(name="Hlt2BandQ_DoubleCharmQC_3ddx2",
 
 @register_line_builder(all_lines)
 @configurable
-def doublecharm_QC_3llx3ll_line(name="Hlt2BandQ_DoubleCharmQC_3llx3ll",
+def doublecharm_D0ToKsLLHH_line(name="Hlt2BandQ_DoubleCharm_D0ToKsLLHH",
                                 prescale=1,
                                 persistreco=True):
-    line_alg = doublecharm.make_doublecharm_QC_3llx3ll()
+    line_alg = doublecharm.make_doublecharm_D0ToKsLLHH()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
@@ -426,10 +426,10 @@ def doublecharm_QC_3llx3ll_line(name="Hlt2BandQ_DoubleCharmQC_3llx3ll",
 
 @register_line_builder(all_lines)
 @configurable
-def doublecharm_QC_3llx3dd_line(name="Hlt2BandQ_DoubleCharmQC_3llx3dd",
+def doublecharm_D0ToKsLLHH_D0ToKsDDHH_line(name="Hlt2BandQ_DoubleCharm_D0ToKsLLHH_D0ToKsDDHH",
                                 prescale=1,
                                 persistreco=True):
-    line_alg = doublecharm.make_doublecharm_QC_3llx3dd()
+    line_alg = doublecharm.make_doublecharm_D0ToKsLLHH_D0ToKsDDHH()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
@@ -439,10 +439,10 @@ def doublecharm_QC_3llx3dd_line(name="Hlt2BandQ_DoubleCharmQC_3llx3dd",
 
 @register_line_builder(all_lines)
 @configurable
-def doublecharm_QC_3ddx3dd_line(name="Hlt2BandQ_DoubleCharmQC_3ddx3dd",
+def doublecharm_D0ToKsDDHH_line(name="Hlt2BandQ_DoubleCharm_D0ToKsDDHH",
                                 prescale=1,
                                 persistreco=True):
-    line_alg = doublecharm.make_doublecharm_QC_3ddx3dd()
+    line_alg = doublecharm.make_doublecharm_D0ToKsDDHH()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
@@ -452,10 +452,10 @@ def doublecharm_QC_3ddx3dd_line(name="Hlt2BandQ_DoubleCharmQC_3ddx3dd",
 
 @register_line_builder(all_lines)
 @configurable
-def doublecharm_QC_4x2_line(name="Hlt2BandQ_DoubleCharmQC_4x2",
+def doublecharm_D0ToHHHH_D0ToHH_line(name="Hlt2BandQ_DoubleCharm_D0ToHHHH_D0ToHH",
                             prescale=1,
                             persistreco=True):
-    line_alg = doublecharm.make_doublecharm_QC_4x2()
+    line_alg = doublecharm.make_doublecharm_D0ToHHHH_D0ToHH()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
@@ -465,10 +465,10 @@ def doublecharm_QC_4x2_line(name="Hlt2BandQ_DoubleCharmQC_4x2",
 
 @register_line_builder(all_lines)
 @configurable
-def doublecharm_QC_4x3ll_line(name="Hlt2BandQ_DoubleCharmQC_4x3ll",
+def doublecharm_D0ToHHHH_D0ToKsLLHH_line(name="Hlt2BandQ_DoubleCharm_D0ToHHHH_D0ToKsLLHH",
                               prescale=1,
                               persistreco=True):
-    line_alg = doublecharm.make_doublecharm_QC_4x3ll()
+    line_alg = doublecharm.make_doublecharm_D0ToHHHH_D0ToKsLLHH()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
@@ -478,10 +478,10 @@ def doublecharm_QC_4x3ll_line(name="Hlt2BandQ_DoubleCharmQC_4x3ll",
 
 @register_line_builder(all_lines)
 @configurable
-def doublecharm_QC_4x3dd_line(name="Hlt2BandQ_DoubleCharmQC_4x3dd",
+def doublecharm_D0ToHHHH_D0ToKsDDHH_line(name="Hlt2BandQ_DoubleCharm_D0ToHHHH_D0ToKsDDHH",
                               prescale=1,
                               persistreco=True):
-    line_alg = doublecharm.make_doublecharm_QC_4x3dd()
+    line_alg = doublecharm.make_doublecharm_D0ToHHHH_D0ToKsDDHH()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
@@ -491,10 +491,10 @@ def doublecharm_QC_4x3dd_line(name="Hlt2BandQ_DoubleCharmQC_4x3dd",
 
 @register_line_builder(all_lines)
 @configurable
-def doublecharm_QC_4x4_line(name="Hlt2BandQ_DoubleCharmQC_4x4",
+def doublecharm_D0ToHHHH_line(name="Hlt2BandQ_DoubleCharm_D0ToHHHH",
                             prescale=1,
                             persistreco=True):
-    line_alg = doublecharm.make_doublecharm_QC_4x4()
+    line_alg = doublecharm.make_doublecharm_D0ToHHHH()
     return Hlt2Line(
         name=name,
         algs=make_prefilters() + [line_alg],
-- 
GitLab


From fc68cd1ffcb781a3748eb982f271140dc415620c Mon Sep 17 00:00:00 2001
From: Gitlab CI <noreply@cern.ch>
Date: Fri, 9 Feb 2024 17:14:42 +0000
Subject: [PATCH 9/9] Fixed formatting

patch generated by https://gitlab.cern.ch/lhcb/Moore/-/jobs/35990780
---
 .../lines/bandq/builders/doublecharm.py       | 43 +++++++++++-------
 .../python/Hlt2Conf/lines/bandq/hlt2_bandq.py | 45 ++++++++++---------
 2 files changed, 51 insertions(+), 37 deletions(-)

diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
index c1a6e7f488b..b545497ba65 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/builders/doublecharm.py
@@ -212,8 +212,8 @@ def make_doublecharm_D0ToHH(  # 2x2-body D0 decay modes  # note that this line c
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_kaons(),
         'D0 -> K- K+')  #taken from Hlt2Charm_D0ToKmKp line in charm area
 
-    D0_meson_HH = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                          name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_HH = ParticleContainersMerger(
+        [dz, dzb, dzPiPi, dzKK], name='bandq_charmToXD0_2body_{hash}')
     line_alg = make_doublecharm(
         name=name,
         particles=[D0_meson_HH, D0_meson_HH],
@@ -224,7 +224,8 @@ def make_doublecharm_D0ToHH(  # 2x2-body D0 decay modes  # note that this line c
 
 
 @configurable
-def make_doublecharm_D0ToKsLLHH_D0ToHH(name='bandq_doublecharm_{hash}'):  # 3(LL)x2-body D0 decay modes
+def make_doublecharm_D0ToKsLLHH_D0ToHH(
+        name='bandq_doublecharm_{hash}'):  # 3(LL)x2-body D0 decay modes
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -253,8 +254,8 @@ def make_doublecharm_D0ToKsLLHH_D0ToHH(name='bandq_doublecharm_{hash}'):  # 3(LL
         kshortsll, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
     )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_HH = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                          name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_HH = ParticleContainersMerger(
+        [dz, dzb, dzPiPi, dzKK], name='bandq_charmToXD0_2body_{hash}')
     D0_meson_KsLLHH = ParticleContainersMerger(
         [dzKsPiPill, dzKsKKll, dzKsKmPipll, dzKsKpPimll],
         name='bandq_charmToXD0_3bodyll_{hash}')
@@ -269,7 +270,8 @@ def make_doublecharm_D0ToKsLLHH_D0ToHH(name='bandq_doublecharm_{hash}'):  # 3(LL
 
 
 @configurable
-def make_doublecharm_D0ToKsDDHH_D0ToHH(name='bandq_doublecharm_{hash}'):  # 3(DD)x2-body D0 decay modes
+def make_doublecharm_D0ToKsDDHH_D0ToHH(
+        name='bandq_doublecharm_{hash}'):  # 3(DD)x2-body D0 decay modes
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -298,8 +300,8 @@ def make_doublecharm_D0ToKsDDHH_D0ToHH(name='bandq_doublecharm_{hash}'):  # 3(DD
         kshortsdd, kaons, pions, "[D0 -> KS0 K+ pi-]cc"
     )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_HH = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                          name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_HH = ParticleContainersMerger(
+        [dz, dzb, dzPiPi, dzKK], name='bandq_charmToXD0_2body_{hash}')
     D0_meson_KsDDHH = ParticleContainersMerger(
         [dzKsPiPidd, dzKsKKdd, dzKsKmPipdd, dzKsKpPimdd],
         name='bandq_charmToXD0_3bodydd_{hash}')
@@ -314,7 +316,8 @@ def make_doublecharm_D0ToKsDDHH_D0ToHH(name='bandq_doublecharm_{hash}'):  # 3(DD
 
 
 @configurable
-def make_doublecharm_D0ToKsLLHH(name='bandq_doublecharm_{hash}'):  # 3(LL)x3(LL)-body D0 decay modes
+def make_doublecharm_D0ToKsLLHH(
+        name='bandq_doublecharm_{hash}'):  # 3(LL)x3(LL)-body D0 decay modes
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
@@ -344,7 +347,8 @@ def make_doublecharm_D0ToKsLLHH(name='bandq_doublecharm_{hash}'):  # 3(LL)x3(LL)
 
 
 @configurable
-def make_doublecharm_D0ToKsLLHH_D0ToKsDDHH(name='bandq_doublecharm_{hash}'):  # 3(LL)x3(DD)-body D0 decay modes
+def make_doublecharm_D0ToKsLLHH_D0ToKsDDHH(
+        name='bandq_doublecharm_{hash}'):  # 3(LL)x3(DD)-body D0 decay modes
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
@@ -391,7 +395,8 @@ def make_doublecharm_D0ToKsLLHH_D0ToKsDDHH(name='bandq_doublecharm_{hash}'):  #
 
 
 @configurable
-def make_doublecharm_D0ToKsDDHH(name='bandq_doublecharm_{hash}'):  # 3(DD)x3(DD)-body D0 decay modes
+def make_doublecharm_D0ToKsDDHH(
+        name='bandq_doublecharm_{hash}'):  # 3(DD)x3(DD)-body D0 decay modes
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
@@ -421,7 +426,8 @@ def make_doublecharm_D0ToKsDDHH(name='bandq_doublecharm_{hash}'):  # 3(DD)x3(DD)
 
 
 @configurable
-def make_doublecharm_D0ToHHHH_D0ToHH(name='bandq_doublecharm_{hash}'):  # 4x2-body D0 decay modes
+def make_doublecharm_D0ToHHHH_D0ToHH(
+        name='bandq_doublecharm_{hash}'):  # 4x2-body D0 decay modes
     dz = d0_to_hh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         '[D0 -> K- pi+]cc')  #taken from Hlt2Charm_D0ToKmPip line in charm area
@@ -455,8 +461,8 @@ def make_doublecharm_D0ToHHHH_D0ToHH(name='bandq_doublecharm_{hash}'):  # 4x2-bo
         'D0 -> pi- pi- pi+ pi+'
     )  #taken from Hlt/Hlt2Conf/python/Hlt2Conf/lines/charm/d0_to_hhhh.py
 
-    D0_meson_HH = ParticleContainersMerger([dz, dzb, dzPiPi, dzKK],
-                                          name='bandq_charmToXD0_2body_{hash}')
+    D0_meson_HH = ParticleContainersMerger(
+        [dz, dzb, dzPiPi, dzKK], name='bandq_charmToXD0_2body_{hash}')
     D0_meson_HHHH = ParticleContainersMerger(
         [dzpipipipi, dzKpipipi, dzKKpipi, dzKKKpi],
         name='bandq_charmToXD0_4body_{hash}')
@@ -471,7 +477,8 @@ def make_doublecharm_D0ToHHHH_D0ToHH(name='bandq_doublecharm_{hash}'):  # 4x2-bo
 
 
 @configurable
-def make_doublecharm_D0ToHHHH_D0ToKsLLHH(name='bandq_doublecharm_{hash}'):  # 4x3(LL)-body D0 decay modes
+def make_doublecharm_D0ToHHHH_D0ToKsLLHH(
+        name='bandq_doublecharm_{hash}'):  # 4x3(LL)-body D0 decay modes
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsll = d0_to_kshh.make_kshort_ll()
@@ -525,7 +532,8 @@ def make_doublecharm_D0ToHHHH_D0ToKsLLHH(name='bandq_doublecharm_{hash}'):  # 4x
 
 
 @configurable
-def make_doublecharm_D0ToHHHH_D0ToKsDDHH(name='bandq_doublecharm_{hash}'):  # 4x3(DD)-body D0 decay modes
+def make_doublecharm_D0ToHHHH_D0ToKsDDHH(
+        name='bandq_doublecharm_{hash}'):  # 4x3(DD)-body D0 decay modes
     pions = d0_to_kshh.make_charm_pions()
     kaons = d0_to_kshh.make_charm_kaons()
     kshortsdd = d0_to_kshh.make_kshort_dd()
@@ -579,7 +587,8 @@ def make_doublecharm_D0ToHHHH_D0ToKsDDHH(name='bandq_doublecharm_{hash}'):  # 4x
 
 
 @configurable
-def make_doublecharm_D0ToHHHH(name='bandq_doublecharm_{hash}'):  # 4x4-body D0 decay modes
+def make_doublecharm_D0ToHHHH(
+        name='bandq_doublecharm_{hash}'):  # 4x4-body D0 decay modes
     dzpipipipi = d0_to_hhhh.make_dzeros(
         d0_to_hh.make_charm_kaons(), d0_to_hh.make_charm_pions(),
         d0_to_hh.make_charm_pions(), d0_to_hh.make_charm_pions(),
diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/hlt2_bandq.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/hlt2_bandq.py
index 149b542cf2e..783f0b2c20b 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/hlt2_bandq.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/bandq/hlt2_bandq.py
@@ -387,9 +387,10 @@ def doublecharm_D0ToHH_line(name="Hlt2BandQ_DoubleCharm_D0ToHH",
 
 @register_line_builder(all_lines)
 @configurable
-def doublecharm_D0ToKsLLHH_D0ToHH_line(name="Hlt2BandQ_DoubleCharm_D0ToKsLLHH_D0ToHH",
-                              prescale=1,
-                              persistreco=True):
+def doublecharm_D0ToKsLLHH_D0ToHH_line(
+        name="Hlt2BandQ_DoubleCharm_D0ToKsLLHH_D0ToHH",
+        prescale=1,
+        persistreco=True):
     line_alg = doublecharm.make_doublecharm_D0ToKsLLHH_D0ToHH()
     return Hlt2Line(
         name=name,
@@ -400,9 +401,10 @@ def doublecharm_D0ToKsLLHH_D0ToHH_line(name="Hlt2BandQ_DoubleCharm_D0ToKsLLHH_D0
 
 @register_line_builder(all_lines)
 @configurable
-def doublecharm_D0ToKsDDHH_D0ToHH_line(name="Hlt2BandQ_DoubleCharm_D0ToKsDDHH_D0ToHH",
-                              prescale=1,
-                              persistreco=True):
+def doublecharm_D0ToKsDDHH_D0ToHH_line(
+        name="Hlt2BandQ_DoubleCharm_D0ToKsDDHH_D0ToHH",
+        prescale=1,
+        persistreco=True):
     line_alg = doublecharm.make_doublecharm_D0ToKsDDHH_D0ToHH()
     return Hlt2Line(
         name=name,
@@ -426,9 +428,10 @@ def doublecharm_D0ToKsLLHH_line(name="Hlt2BandQ_DoubleCharm_D0ToKsLLHH",
 
 @register_line_builder(all_lines)
 @configurable
-def doublecharm_D0ToKsLLHH_D0ToKsDDHH_line(name="Hlt2BandQ_DoubleCharm_D0ToKsLLHH_D0ToKsDDHH",
-                                prescale=1,
-                                persistreco=True):
+def doublecharm_D0ToKsLLHH_D0ToKsDDHH_line(
+        name="Hlt2BandQ_DoubleCharm_D0ToKsLLHH_D0ToKsDDHH",
+        prescale=1,
+        persistreco=True):
     line_alg = doublecharm.make_doublecharm_D0ToKsLLHH_D0ToKsDDHH()
     return Hlt2Line(
         name=name,
@@ -452,9 +455,9 @@ def doublecharm_D0ToKsDDHH_line(name="Hlt2BandQ_DoubleCharm_D0ToKsDDHH",
 
 @register_line_builder(all_lines)
 @configurable
-def doublecharm_D0ToHHHH_D0ToHH_line(name="Hlt2BandQ_DoubleCharm_D0ToHHHH_D0ToHH",
-                            prescale=1,
-                            persistreco=True):
+def doublecharm_D0ToHHHH_D0ToHH_line(
+        name="Hlt2BandQ_DoubleCharm_D0ToHHHH_D0ToHH", prescale=1,
+        persistreco=True):
     line_alg = doublecharm.make_doublecharm_D0ToHHHH_D0ToHH()
     return Hlt2Line(
         name=name,
@@ -465,9 +468,10 @@ def doublecharm_D0ToHHHH_D0ToHH_line(name="Hlt2BandQ_DoubleCharm_D0ToHHHH_D0ToHH
 
 @register_line_builder(all_lines)
 @configurable
-def doublecharm_D0ToHHHH_D0ToKsLLHH_line(name="Hlt2BandQ_DoubleCharm_D0ToHHHH_D0ToKsLLHH",
-                              prescale=1,
-                              persistreco=True):
+def doublecharm_D0ToHHHH_D0ToKsLLHH_line(
+        name="Hlt2BandQ_DoubleCharm_D0ToHHHH_D0ToKsLLHH",
+        prescale=1,
+        persistreco=True):
     line_alg = doublecharm.make_doublecharm_D0ToHHHH_D0ToKsLLHH()
     return Hlt2Line(
         name=name,
@@ -478,9 +482,10 @@ def doublecharm_D0ToHHHH_D0ToKsLLHH_line(name="Hlt2BandQ_DoubleCharm_D0ToHHHH_D0
 
 @register_line_builder(all_lines)
 @configurable
-def doublecharm_D0ToHHHH_D0ToKsDDHH_line(name="Hlt2BandQ_DoubleCharm_D0ToHHHH_D0ToKsDDHH",
-                              prescale=1,
-                              persistreco=True):
+def doublecharm_D0ToHHHH_D0ToKsDDHH_line(
+        name="Hlt2BandQ_DoubleCharm_D0ToHHHH_D0ToKsDDHH",
+        prescale=1,
+        persistreco=True):
     line_alg = doublecharm.make_doublecharm_D0ToHHHH_D0ToKsDDHH()
     return Hlt2Line(
         name=name,
@@ -492,8 +497,8 @@ def doublecharm_D0ToHHHH_D0ToKsDDHH_line(name="Hlt2BandQ_DoubleCharm_D0ToHHHH_D0
 @register_line_builder(all_lines)
 @configurable
 def doublecharm_D0ToHHHH_line(name="Hlt2BandQ_DoubleCharm_D0ToHHHH",
-                            prescale=1,
-                            persistreco=True):
+                              prescale=1,
+                              persistreco=True):
     line_alg = doublecharm.make_doublecharm_D0ToHHHH()
     return Hlt2Line(
         name=name,
-- 
GitLab