diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/pid/L0ToPPi.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/pid/L0ToPPi.py
index d758df832b9f06fe5af9d63d00df56d8473d13dd..864326dddadbbafe927fc425b41abbd1830839b5 100644
--- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/pid/L0ToPPi.py
+++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/pid/L0ToPPi.py
@@ -34,8 +34,11 @@ from Hlt2Conf.lines.pid.utils import constants, filters as flt
 all_lines = {}
 
 
-def filter_protons(particles, p_min=2.0 * GeV, pt_min=0 * GeV):
-    code = F.require_all(F.P > p_min, F.PT > pt_min)
+def filter_protons(particles,
+                   p_min=2.0 * GeV,
+                   pt_min=0 * GeV,
+                   pt_max=1000 * GeV):
+    code = F.require_all(F.P > p_min, F.PT > pt_min, F.PT < pt_max)
     return ParticleFilter(particles, F.FILTER(code))
 
 
@@ -108,10 +111,33 @@ def make_l0dds(
 
 
 @register_line_builder(all_lines)
-def L0ToPPi_LL(name="Hlt2PID_L0ToPPi_LL", prescale=0.03):
+def L0ToPPi_LL_LowPT(name="Hlt2PID_L0ToPPi_LL_LowPT", prescale=0.002):
     pvs = make_pvs()
     protons = flt.filter_long_particles(
-        filter_protons(make_long_protons()), pvs, trchi2_max=4, mipchi2_min=36)
+        filter_protons(make_long_protons(), pt_max=1.5 * GeV),
+        pvs,
+        trchi2_max=4,
+        mipchi2_min=36)
+    pions = flt.filter_long_particles(
+        make_long_pions(), pvs, trchi2_max=4, mipchi2_min=36)
+    l0lls = make_l0lls(protons, pions, pvs)
+
+    return HltLine(
+        name=name,
+        algs=flt.pid_prefilters() + [l0lls],
+        prescale=prescale,
+        persistreco=True,
+    )
+
+
+@register_line_builder(all_lines)
+def L0ToPPi_LL_MidPT(name="Hlt2PID_L0ToPPi_LL_MidPT", prescale=0.01):
+    pvs = make_pvs()
+    protons = flt.filter_long_particles(
+        filter_protons(make_long_protons(), pt_min=1.5 * GeV, pt_max=3 * GeV),
+        pvs,
+        trchi2_max=4,
+        mipchi2_min=36)
     pions = flt.filter_long_particles(
         make_long_pions(), pvs, trchi2_max=4, mipchi2_min=36)
     l0lls = make_l0lls(protons, pions, pvs)
@@ -125,10 +151,10 @@ def L0ToPPi_LL(name="Hlt2PID_L0ToPPi_LL", prescale=0.03):
 
 
 @register_line_builder(all_lines)
-def L0ToPPi_LL_HighPT(name="Hlt2PID_L0ToPPi_LL_HighPT", prescale=1):
+def L0ToPPi_LL_HighPT(name="Hlt2PID_L0ToPPi_LL_HighPT", prescale=0.1):
     pvs = make_pvs()
     protons = flt.filter_long_particles(
-        filter_protons(make_long_protons(), pt_min=3 * GeV),
+        filter_protons(make_long_protons(), pt_min=3 * GeV, pt_max=6 * GeV),
         pvs,
         trchi2_max=4,
         mipchi2_min=36)
@@ -165,10 +191,11 @@ def L0ToPPi_LL_VeryHighPT(name="Hlt2PID_L0ToPPi_LL_VeryHighPT", prescale=1):
 
 
 @register_line_builder(all_lines)
-def L0ToPPi_DD(name="Hlt2PID_L0ToPPi_DD", prescale=0.03):
+def L0ToPPi_DD_LowPT(name="Hlt2PID_L0ToPPi_DD_LowPT", prescale=0.002):
     pvs = make_pvs()
     protons = flt.filter_down_particles(
-        filter_protons(make_down_protons()),
+        filter_protons(
+            make_down_protons(), pt_min=0.175 * GeV, pt_max=1.5 * GeV),
         p_min=3.0 * GeV,
         pt_min=0.175 * GeV,
         trchi2_max=4,
@@ -190,10 +217,34 @@ def L0ToPPi_DD(name="Hlt2PID_L0ToPPi_DD", prescale=0.03):
 
 
 @register_line_builder(all_lines)
-def L0ToPPi_DD_HighPT(name="Hlt2PID_L0ToPPi_DD_HighPT", prescale=1):
+def L0ToPPi_DD_MidPT(name="Hlt2PID_L0ToPPi_DD_MidPT", prescale=0.01):
+    pvs = make_pvs()
+    protons = flt.filter_down_particles(
+        filter_protons(make_down_protons(), pt_min=1.5 * GeV, pt_max=3 * GeV),
+        p_min=3.0 * GeV,
+        trchi2_max=4,
+    )
+    pions = flt.filter_down_particles(
+        make_down_pions(),
+        p_min=3.0 * GeV,
+        pt_min=0.175 * GeV,
+        trchi2_max=4,
+    )
+    l0dds = make_l0dds(protons, pions, pvs)
+
+    return HltLine(
+        name=name,
+        algs=flt.pid_prefilters() + [l0dds],
+        prescale=prescale,
+        persistreco=True,
+    )
+
+
+@register_line_builder(all_lines)
+def L0ToPPi_DD_HighPT(name="Hlt2PID_L0ToPPi_DD_HighPT", prescale=0.1):
     pvs = make_pvs()
     protons = flt.filter_down_particles(
-        filter_protons(make_down_protons()),
+        filter_protons(make_down_protons(), pt_min=3.0 * GeV, pt_max=6 * GeV),
         p_min=3.0 * GeV,
         pt_min=3.0 * GeV,
         trchi2_max=4,
@@ -218,7 +269,7 @@ def L0ToPPi_DD_HighPT(name="Hlt2PID_L0ToPPi_DD_HighPT", prescale=1):
 def L0ToPPi_DD_VeryHighPT(name="Hlt2PID_L0ToPPi_DD_VeryHighPT", prescale=1):
     pvs = make_pvs()
     protons = flt.filter_down_particles(
-        filter_protons(make_down_protons()),
+        filter_protons(make_down_protons(), pt_min=6.0 * GeV),
         p_min=3.0 * GeV,
         pt_min=6.0 * GeV,
         trchi2_max=4,