diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingCharm2PPX.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingCharm2PPX.py
index 23a69ab1c588aa701e2212175582131afa4ae150..8e18d20c7fd9d144f1cbb061f590c588e7ef5163 100644
--- a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingCharm2PPX.py
+++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingCharm2PPX.py
@@ -15,6 +15,14 @@
     - Hc+ -> ppK- (exch)
     - Hc+ -> ppK-pi+pi-
     - Hs+ -> pppi- : LLL and DDD
+
+ for 2023 Restripping update with following modes:
+    - Hcc++/+ -> ppKs, ppKspi-, Lamppi-, Lamppi+pi-
+    - Hcs+ -> ppK-K-pi+, pK-pi+Lam, LamLampi+, ppKsK-
+    - Pc -> pK+pi-pi-, pKspi-
+    - Ps -> ppi+pi- : LLL and DDD
+
+    + add modes Lc->pKpi, Lam->ppi with 0.01 prescale for reference
 """
 
 
@@ -35,6 +43,10 @@ from StandardParticles import (
     StdAllNoPIDsPions,
     StdNoPIDsDownProtons,
     StdNoPIDsDownPions,
+    StdLooseLambdaLL,
+    StdLooseLambdaDD,
+    StdLooseKsLL,
+    StdLooseKsDD,
 )
 from PhysSelPython.Wrappers import Selection
 from StrippingUtils.Utils import LineBuilder
@@ -82,8 +94,13 @@ default_config = {
         'Pion_ProbNN_MIN': 0.1,
 
         # Hc maximum mass
-        'Comb_MASS_MAX': 3500*MeV , # 3350*MeV,
-        'HsComb_MASS_MAX': 2125*MeV,
+        'Hc_MASS_MAX': 3500*MeV , # 3350*MeV,
+        'Hcs_MASS_MAX': 3650*MeV , 
+        'Hs_MASS_MAX': 2125*MeV,
+        'Pc_MASS_MAX': 3100*MeV , 
+        'Ps_MASS_MAX': 1650*MeV , 
+        'Lc_MASS_MAX': 2350*MeV , 
+        'Lam_MASS_MAX': 1170*MeV , 
         # Maximum distance of closest approach of daughters
         'Comb_ADOCACHI2_MAX': 16,
         'HsComb_ADOCACHI2_MAX': 16,
@@ -91,17 +108,17 @@ default_config = {
         'Hc_VCHI2VDOF_MAX': 25.0,
         'Hs_VCHI2VDOF_MAX': 25.0,
         # Maximum angle between Hc momentum and Hc direction of flight
-        'Hc_BPVIPCHI2_MAX': 16,
-        'Hs_BPVIPCHI2_MAX': 16,
+        #'Hc_BPVIPCHI2_MAX': 16,
+        #'Hs_BPVIPCHI2_MAX': 16,
         # Primary vertex displacement requirement, that the Hc is some sigma
         # away from the PV and it has a minimum flight time
         'Hc_BPVVDCHI2_MIN': 9.0,
-        'Hc_BPVCTAU_MIN': 0.*mm, # 0.03*mm,
+        'Hc_BPVCTAU_MIN': 0.05*mm, # 0.03*mm,
         'Hs_BPVVDCHI2_MIN': 9.0,
         'HsDown_BPVVDCHI2_MIN': 4.0,
         'Hs_BPVCTAU_MIN': 0.1*mm,
         # Hc minimum transverse momenta
-        'Hc_PT_MIN': -1000*MeV,
+        'Hc_PT_MIN': 1000*MeV,
         'Hs_PT_MIN': -1000*MeV,
         # HLT filters, only process events firing triggers matching the RegEx
         'Hlt1Filter': None,
@@ -113,12 +130,43 @@ default_config = {
         'PrescaleHc2PPK': 1.0,
         'PrescaleHc2PPKPiPi': 1.0,
         'PrescaleHs2PPPi': 1.0,
+        #
+        'PrescaleHc2PPKs': 1.0,
+        'PrescaleHc2PPKsPi': 1.0,
+        'PrescaleHc2LamPPi': 1.0,
+        'PrescaleHc2LamPPiPi': 1.0,
+        'PrescaleHcs2PPKKPi': 1.0,
+        'PrescaleHcs2PPKsK': 1.0,
+        'PrescaleHcs2LamPKPi': 1.0,
+        'PrescaleHcs2LamLamPi': 1.0,
+        'PrescalePc2PKPiPi': 0.1,
+        'PrescalePc2PKsPi': 0.1,
+        'PrescalePs2PPiPi': 0.1,
+        #
+        'PrescaleLc2PKPi' : 0.01,
+        'PrescaleL2PPi' : 0.01,
+
         # Fraction of candidates to randomly throw after before stripping
         'PostscaleHc2PP': 1.0,
         'PostscaleHc2PPKPi': 1.0,
         'PostscaleHc2PPK': 1.0,
         'PostscaleHc2PPKPiPi': 1.0,
         'PostscaleHs2PPPi': 1.0,
+        #
+        'PostscaleHc2PPKs': 1.0,
+        'PostscaleHc2PPKsPi': 1.0,
+        'PostscaleHc2LamPPi': 1.0,
+        'PostscaleHc2LamPPiPi': 1.0,
+        'PostscaleHcs2PPKKPi': 1.0,
+        'PostscaleHcs2PPKsK': 1.0,
+        'PostscaleHcs2LamPKPi': 1.0,
+        'PostscaleHcs2LamLamPi': 1.0,
+        'PostscalePc2PKPiPi': 1.0,
+        'PostscalePc2PKsPi': 1.0,
+        'PostscalePs2PPiPi': 1.0,
+        #
+        'PostscaleLc2PKPi' : 1.0,
+        'PostscaleL2PPi' : 1.0,
     }
 }
 
@@ -127,14 +175,6 @@ class StrippingCharm2PPXConf(LineBuilder):
     # Allowed configuration keys
     __configuration_keys__ = default_config['CONFIG'].keys()
 
-    # Decay descriptors
-    Hc2pp = ['[Sigma_c++ -> p+ p+]cc']
-    Hc2ppkpi = ['[Sigma_c++ -> p+ p+ K- pi+]cc']
-    Hc2ppk = ['[Sigma_c+ -> p+ p+ K-]cc']
-    Hc2ppkpipi = ['[Sigma_c+ -> p+ p+ K- pi+ pi-]cc']
-
-    Hs2pppi = ['[Sigma_c+ -> p+ p+ pi-]cc']
-
     def __init__(self, name, config):
         """Initialise this LineBuilder instance."""
         self.name = name
@@ -150,6 +190,26 @@ class StrippingCharm2PPXConf(LineBuilder):
         hs2pppi_name = '{0}Hs2PPPi'.format(name)
         hs2pppiDown_name = '{0}Hs2PPPiDown'.format(name)
 
+        #
+        hc2ppKs_name = '{0}Hc2PPKs'.format(name)
+        hc2ppKspi_name = '{0}Hc2PPKsPi'.format(name)
+        hc2Lppi_name = '{0}Hc2LamPPi'.format(name)
+        hc2Lppipi_name = '{0}Hc2LamPPiPi'.format(name)
+
+        hcs2ppKKpi_name = '{0}Hcs2PPKKPi'.format(name)
+        hcs2ppKsK_name = '{0}Hcs2PPKsK'.format(name)
+        hcs2LpKpi_name = '{0}Hcs2LamPKPi'.format(name)
+        hcs2LLpi_name = '{0}Hcs2LamLamPi'.format(name)
+
+        pc2pKpipi_name = '{0}Pc2PKPiPi'.format(name)
+        pc2pKspi_name = '{0}Pc2PKsPi'.format(name)
+        ps2ppipi_name = '{0}Ps2PPiPi'.format(name)
+        ps2ppipiDown_name = '{0}Ps2PPiPiDown'.format(name)
+
+        # reference
+        lc2pKpi_name = '{0}Lc2PKPiRef'.format(name)
+        l2ppi_name = '{0}L2PPiRef'.format(name)
+
         # Build pion, kaon, and proton cut strings
         daugCuts = (
             '(PT > {0[Daug_All_PT_MIN]})'
@@ -228,31 +288,48 @@ class StrippingCharm2PPXConf(LineBuilder):
         self.selHc2PP = self.makeHc2PPX(
             name=hc2pp_name,
             inputSel=[self.inProtons],
-            decDescriptors=self.Hc2pp
+            decDescriptors=['[Sigma_c++ -> p+ p+]cc'],
+            mass_max = self.config["Hc_MASS_MAX"]
         )
 
         self.selHc2PPKPi = self.makeHc2PPX(
             name=hc2ppkpi_name,
             inputSel=[self.inProtons, self.inKaons, self.inPions ],
-            decDescriptors=self.Hc2ppkpi
+            decDescriptors=['[Sigma_c++ -> p+ p+ K- pi+]cc', 
+                            '[Sigma_c++ -> p+ p+ K+ pi-]cc',  
+                            '[Sigma_c++ -> p+ p+ K- pi-]cc',  
+                            '[Sigma_c++ -> p+ p+ K+ pi+]cc',  
+                        ],
+            mass_max = self.config["Hc_MASS_MAX"]
         )
 
         self.selHc2PPK = self.makeHc2PPX(
             name=hc2ppk_name,
             inputSel=[self.inProtons, self.inKaons ],
-            decDescriptors=self.Hc2ppk
+            decDescriptors=['[Sigma_c+ -> p+ p+ K-]cc',
+                            '[Sigma_c+ -> p+ p+ K+]cc',
+                        ],
+            mass_max = self.config["Hc_MASS_MAX"]
         )
 
         self.selHc2PPKPiPi = self.makeHc2PPX(
             name=hc2ppkpipi_name,
             inputSel=[self.inProtons, self.inKaons, self.inPions ],
-            decDescriptors=self.Hc2ppkpipi
+            decDescriptors=['[Sigma_c+ -> p+ p+ K- pi+ pi-]cc',
+                            '[Sigma_c+ -> p+ p+ K+ pi+ pi-]cc',
+                            '[Sigma_c+ -> p+ p+ K- pi+ pi+]cc',
+                            '[Sigma_c+ -> p+ p+ K+ pi- pi-]cc',
+                        ],
+            mass_max = self.config["Hc_MASS_MAX"]
         )
 
         self.selHs2PPPi = self.makeHs2PPX(
             name=hs2pppi_name,
             inputSel=[self.inProtons, self.inPions ],
-            decDescriptors=self.Hs2pppi,
+            decDescriptors=['[Sigma_c+ -> p+ p+ pi-]cc',
+                            '[Sigma_c+ -> p+ p+ pi+]cc',
+                        ],
+            mass_max = self.config["Hs_MASS_MAX"],
             mipchi2_cut = config['HsDaug_1ofAll_BPVIPCHI2_MIN'],
             vdchi2_cut = config['Hs_BPVVDCHI2_MIN'],
         )
@@ -260,7 +337,225 @@ class StrippingCharm2PPXConf(LineBuilder):
         self.selHs2PPPiDown = self.makeHs2PPX(
             name=hs2pppiDown_name,
             inputSel=[self.inDownProtons, self.inDownPions ],
-            decDescriptors=self.Hs2pppi,
+            decDescriptors=['[Sigma_c+ -> p+ p+ pi-]cc',
+                            '[Sigma_c+ -> p+ p+ pi+]cc',
+                        ],
+            mass_max = self.config["Hs_MASS_MAX"],
+            mipchi2_cut = config['HsDownDaug_1ofAll_BPVIPCHI2_MIN'],
+            vdchi2_cut = config['HsDown_BPVVDCHI2_MIN'],
+        )
+
+        ##
+        self.selHc2PPKs_KsLL = self.makeHc2PPX(
+            name=hc2ppKs_name + "_KsLL",
+            inputSel=[StdLooseKsLL, self.inProtons ],
+            decDescriptors=['[Sigma_c+ -> p+ p+ KS0]cc'],
+            mass_max = self.config["Hc_MASS_MAX"],
+        )
+
+        self.selHc2PPKs_KsDD = self.makeHc2PPX(
+            name=hc2ppKs_name + "_KsDD",
+            inputSel=[StdLooseKsDD, self.inProtons ],
+            decDescriptors=['[Sigma_c+ -> p+ p+ KS0]cc'],
+            mass_max = self.config["Hc_MASS_MAX"],
+        )
+
+        self.selHc2PPKsPi_KsLL = self.makeHc2PPX(
+            name=hc2ppKspi_name + "_KsLL",
+            inputSel=[StdLooseKsLL, self.inProtons, self.inPions ],
+            decDescriptors=['[Sigma_c+ -> p+ p+ KS0 pi-]cc',
+                            '[Sigma_c+ -> p+ p+ KS0 pi+]cc' ],
+            mass_max = self.config["Hc_MASS_MAX"],
+        )
+
+        self.selHc2PPKsPi_KsDD = self.makeHc2PPX(
+            name=hc2ppKspi_name + "_KsDD",
+            inputSel=[StdLooseKsDD, self.inProtons, self.inPions ],
+            decDescriptors=['[Sigma_c+ -> p+ p+ KS0 pi-]cc',
+                            '[Sigma_c+ -> p+ p+ KS0 pi+]cc' ],
+            mass_max = self.config["Hc_MASS_MAX"],
+        )
+
+        self.selHc2LamPPi_LamLL = self.makeHc2PPX(
+            name=hc2Lppi_name + "_LamLL",
+            inputSel=[StdLooseLambdaLL, self.inProtons, self.inPions ],
+            decDescriptors=['[Sigma_c+ -> Lambda0 p+ pi-]cc',
+                            '[Sigma_c+ -> Lambda0 p+ pi+]cc' ],
+            mass_max = self.config["Hc_MASS_MAX"],
+        )
+
+        self.selHc2LamPPi_LamDD = self.makeHc2PPX(
+            name=hc2Lppi_name + "_LamDD",
+            inputSel=[StdLooseLambdaDD, self.inProtons, self.inPions ],
+            decDescriptors=['[Sigma_c+ -> Lambda0 p+ pi-]cc',
+                            '[Sigma_c+ -> Lambda0 p+ pi+]cc' ],
+            mass_max = self.config["Hc_MASS_MAX"],
+        )
+
+        self.selHc2LamPPiPi_LamLL = self.makeHc2PPX(
+            name=hc2Lppipi_name + "_LamLL",
+            inputSel=[StdLooseLambdaLL, self.inProtons, self.inPions ],
+            decDescriptors=['[Sigma_c+ -> Lambda0 p+ pi+ pi-]cc',
+                            '[Sigma_c+ -> Lambda0 p+ pi- pi-]cc',
+                            '[Sigma_c+ -> Lambda0 p+ pi+ pi+]cc' ],
+            mass_max = self.config["Hc_MASS_MAX"],
+        )
+
+        self.selHc2LamPPiPi_LamDD = self.makeHc2PPX(
+            name=hc2Lppipi_name + "_LamDD",
+            inputSel=[StdLooseLambdaDD, self.inProtons, self.inPions ],
+            decDescriptors=['[Sigma_c+ -> Lambda0 p+ pi+ pi-]cc',
+                            '[Sigma_c+ -> Lambda0 p+ pi- pi-]cc',
+                            '[Sigma_c+ -> Lambda0 p+ pi+ pi+]cc' ],
+            mass_max = self.config["Hc_MASS_MAX"],
+        )
+
+        self.selHcs2PPKKPi = self.makeHc2PPX(
+            name=hcs2ppKKpi_name,
+            inputSel=[self.inProtons, self.inKaons, self.inPions ],
+            decDescriptors=['[Sigma_c+ -> p+ p+ K- K- pi+]cc',
+                            '[Sigma_c+ -> p+ p+ K+ K- pi+]cc',
+                            '[Sigma_c+ -> p+ p+ K+ K- pi-]cc',
+                            '[Sigma_c+ -> p+ p+ K- K- pi-]cc',                            
+                            '[Sigma_c+ -> p+ p+ K+ K+ pi-]cc',                            
+                            '[Sigma_c+ -> p+ p+ K+ K+ pi+]cc' ],
+            mass_max = self.config["Hcs_MASS_MAX"],
+        )
+
+        self.selHcs2PPKsK_KsLL = self.makeHc2PPX(
+            name=hcs2ppKsK_name + "_KsLL",
+            inputSel=[StdLooseKsLL, self.inProtons, self.inKaons ],
+            decDescriptors=['[Sigma_c+ -> p+ p+ KS0 K-]cc',
+                            '[Sigma_c+ -> p+ p+ KS0 K+]cc' ],
+            mass_max = self.config["Hcs_MASS_MAX"],
+        )
+
+        self.selHcs2PPKsK_KsDD = self.makeHc2PPX(
+            name=hcs2ppKsK_name + "_KsDD",
+            inputSel=[StdLooseKsDD, self.inProtons, self.inKaons ],
+            decDescriptors=['[Sigma_c+ -> p+ p+ KS0 K-]cc',
+                            '[Sigma_c+ -> p+ p+ KS0 K+]cc' ],
+            mass_max = self.config["Hcs_MASS_MAX"],
+        )
+
+        self.selHcs2LamPKPi_LamLL = self.makeHc2PPX(
+            name=hcs2LpKpi_name + "_LamLL",
+            inputSel=[StdLooseLambdaLL, self.inProtons, self.inKaons, self.inPions ],
+            decDescriptors=['[Sigma_c+ -> Lambda0 p+ K- pi+]cc',
+                            '[Sigma_c+ -> Lambda0 p+ K- pi-]cc',
+                            '[Sigma_c+ -> Lambda0 p+ K+ pi+]cc',
+                            '[Sigma_c+ -> Lambda0 p+ K+ pi-]cc' ],
+            mass_max = self.config["Hcs_MASS_MAX"],
+        )
+
+        self.selHcs2LamPKPi_LamDD = self.makeHc2PPX(
+            name=hcs2LpKpi_name + "_LamDD",
+            inputSel=[StdLooseLambdaDD, self.inProtons, self.inKaons, self.inPions ],
+            decDescriptors=['[Sigma_c+ -> Lambda0 p+ K- pi+]cc',
+                            '[Sigma_c+ -> Lambda0 p+ K- pi-]cc',
+                            '[Sigma_c+ -> Lambda0 p+ K+ pi+]cc',
+                            '[Sigma_c+ -> Lambda0 p+ K+ pi-]cc' ],
+            mass_max = self.config["Hcs_MASS_MAX"],
+        )
+
+        self.selHcs2LamLamPi_LamLLLL = self.makeHc2PPX(
+            name=hcs2LLpi_name + "_LamLLLL",
+            inputSel=[StdLooseLambdaLL, self.inPions ],
+            decDescriptors=['[Sigma_c+ -> Lambda0 Lambda0 pi+]cc',
+                            '[Sigma_c+ -> Lambda0 Lambda0 pi-]cc' ],
+            mass_max = self.config["Hcs_MASS_MAX"],
+        )
+
+        self.selHcs2LamLamPi_LamDDDD = self.makeHc2PPX(
+            name=hcs2LLpi_name + "_LamDDDD",
+            inputSel=[StdLooseLambdaDD, self.inPions ],
+            decDescriptors=['[Sigma_c+ -> Lambda0 Lambda0 pi+]cc',
+                            '[Sigma_c+ -> Lambda0 Lambda0 pi-]cc' ],
+            mass_max = self.config["Hcs_MASS_MAX"],
+        )
+
+        self.selHcs2LamLamPi_LamLLDD = self.makeHc2PPX(
+            name=hcs2LLpi_name + "_LamLLDD",
+            inputSel=[StdLooseLambdaLL, StdLooseLambdaDD, self.inPions ],
+            decDescriptors=['[Sigma_c+ -> Lambda0 Lambda0 pi+]cc',
+                            '[Sigma_c+ -> Lambda0 Lambda0 pi-]cc' ],
+            mass_max = self.config["Hcs_MASS_MAX"],
+        )
+
+        self.selPc2PKPiPi = self.makeHc2PPX(
+            name=pc2pKpipi_name,
+            inputSel=[self.inProtons, self.inKaons, self.inPions ],
+            decDescriptors=['[Sigma_c+ -> p+ K+ pi- pi-]cc',
+                            '[Sigma_c+ -> p+ K+ pi+ pi-]cc',
+                            '[Sigma_c+ -> p+ K+ pi+ pi+]cc',
+                            '[Sigma_c+ -> p+ K- pi- pi-]cc',
+                            '[Sigma_c+ -> p+ K- pi+ pi-]cc',
+                            '[Sigma_c+ -> p+ K- pi+ pi+]cc' ],
+            mass_max = self.config["Pc_MASS_MAX"],
+        )
+
+        self.selPc2PKsPi_KsLL = self.makeHc2PPX(
+            name=pc2pKspi_name + "_KsLL",
+            inputSel=[StdLooseKsLL, self.inProtons, self.inPions ],
+            decDescriptors=['[Sigma_c+ -> p+ KS0 pi-]cc',
+                            '[Sigma_c+ -> p+ KS0 pi+]cc' ],
+            mass_max = self.config["Pc_MASS_MAX"],
+        )
+
+        self.selPc2PKsPi_KsDD = self.makeHc2PPX(
+            name=pc2pKspi_name + "_KsDD",
+            inputSel=[StdLooseKsDD, self.inProtons, self.inPions ],
+            decDescriptors=['[Sigma_c+ -> p+ KS0 pi-]cc',
+                            '[Sigma_c+ -> p+ KS0 pi+]cc' ],
+            mass_max = self.config["Pc_MASS_MAX"],
+        )
+
+        self.selPs2PPiPi = self.makeHs2PPX(
+            name=ps2ppipi_name,
+            inputSel=[self.inProtons, self.inPions ],
+            decDescriptors=['[Sigma_c+ -> p+ pi+ pi-]cc',
+                            '[Sigma_c+ -> p+ pi+ pi+]cc',
+                            '[Sigma_c+ -> p+ pi- pi-]cc',
+                        ],
+            mass_max = self.config["Ps_MASS_MAX"],
+            mipchi2_cut = config['HsDaug_1ofAll_BPVIPCHI2_MIN'],
+            vdchi2_cut = config['Hs_BPVVDCHI2_MIN'],
+        )
+
+        self.selPs2PPiPiDown = self.makeHs2PPX(
+            name=ps2ppipiDown_name,
+            inputSel=[self.inDownProtons, self.inDownPions ],
+            decDescriptors=['[Sigma_c+ -> p+ pi+ pi-]cc',
+                            '[Sigma_c+ -> p+ pi+ pi+]cc',
+                            '[Sigma_c+ -> p+ pi- pi-]cc',
+                        ],
+            mass_max = self.config["Ps_MASS_MAX"],
+            mipchi2_cut = config['HsDownDaug_1ofAll_BPVIPCHI2_MIN'],
+            vdchi2_cut = config['HsDown_BPVVDCHI2_MIN'],
+        )
+
+        ## ref
+        self.selLc2PKPi = self.makeHc2PPX(
+            name=lc2pKpi_name,
+            inputSel=[self.inProtons, self.inKaons, self.inPions ],
+            decDescriptors=['[Lambda_c+ -> p+ K- pi+]cc'],
+            mass_max = self.config["Lc_MASS_MAX"],
+        )
+
+        self.selL2PPi = self.makeHs2PPX(
+            name=l2ppi_name,
+            inputSel=[self.inProtons, self.inPions ],
+            decDescriptors=['[Lambda0 -> p+ pi-]cc'],
+            mass_max = self.config["Lam_MASS_MAX"],
+            mipchi2_cut = config['HsDaug_1ofAll_BPVIPCHI2_MIN'],
+            vdchi2_cut = config['Hs_BPVVDCHI2_MIN'],
+        )
+
+        self.selL2PPiDown = self.makeHs2PPX(
+            name=l2ppi_name + "Down",
+            inputSel=[self.inDownProtons, self.inDownPions ],
+            decDescriptors=['[Lambda0 -> p+ pi-]cc'],
+            mass_max = self.config["Lam_MASS_MAX"],
             mipchi2_cut = config['HsDownDaug_1ofAll_BPVIPCHI2_MIN'],
             vdchi2_cut = config['HsDown_BPVVDCHI2_MIN'],
         )
@@ -321,6 +616,225 @@ class StrippingCharm2PPXConf(LineBuilder):
             HLT2=config['Hlt2Filter']
         )
 
+        #
+        self.line_Hc2PPKs_KsLL = self.make_line(
+            name='{0}Line'.format(hc2ppKs_name + "LL"),
+            selection=self.selHc2PPKs_KsLL,
+            prescale=config['PrescaleHc2PPKs'],
+            postscale=config['PostscaleHc2PPKs'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Hc2PPKs_KsDD = self.make_line(
+            name='{0}Line'.format(hc2ppKs_name + "DD"),
+            selection=self.selHc2PPKs_KsDD,
+            prescale=config['PrescaleHc2PPKs'],
+            postscale=config['PostscaleHc2PPKs'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Hc2PPKsPi_KsLL = self.make_line(
+            name='{0}Line'.format(hc2ppKspi_name + "LL"),
+            selection=self.selHc2PPKsPi_KsLL,
+            prescale=config['PrescaleHc2PPKsPi'],
+            postscale=config['PostscaleHc2PPKsPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Hc2PPKsPi_KsDD = self.make_line(
+            name='{0}Line'.format(hc2ppKspi_name + "DD"),
+            selection=self.selHc2PPKsPi_KsDD,
+            prescale=config['PrescaleHc2PPKsPi'],
+            postscale=config['PostscaleHc2PPKsPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Hc2LamPPi_LamLL = self.make_line(
+            name='{0}Line'.format(hc2Lppi_name + "LL"),
+            selection=self.selHc2LamPPi_LamLL,
+            prescale=config['PrescaleHc2LamPPi'],
+            postscale=config['PostscaleHc2LamPPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Hc2LamPPi_LamDD = self.make_line(
+            name='{0}Line'.format(hc2Lppi_name + "DD"),
+            selection=self.selHc2LamPPi_LamDD,
+            prescale=config['PrescaleHc2LamPPi'],
+            postscale=config['PostscaleHc2LamPPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Hc2LamPPiPi_LamLL = self.make_line(
+            name='{0}Line'.format(hc2Lppipi_name + "LL"),
+            selection=self.selHc2LamPPiPi_LamLL,
+            prescale=config['PrescaleHc2LamPPiPi'],
+            postscale=config['PostscaleHc2LamPPiPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Hc2LamPPiPi_LamDD = self.make_line(
+            name='{0}Line'.format(hc2Lppipi_name + "DD"),
+            selection=self.selHc2LamPPiPi_LamDD,
+            prescale=config['PrescaleHc2LamPPiPi'],
+            postscale=config['PostscaleHc2LamPPiPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Hcs2PPKKPi = self.make_line(
+            name='{0}Line'.format(hcs2ppKKpi_name),
+            selection=self.selHcs2PPKKPi,
+            prescale=config['PrescaleHcs2PPKKPi'],
+            postscale=config['PostscaleHcs2PPKKPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Hcs2PPKsK_KsLL = self.make_line(
+            name='{0}Line'.format(hcs2ppKsK_name + "LL"),
+            selection=self.selHcs2PPKsK_KsLL,
+            prescale=config['PrescaleHcs2PPKsK'],
+            postscale=config['PostscaleHcs2PPKsK'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Hcs2PPKsK_KsDD = self.make_line(
+            name='{0}Line'.format(hcs2ppKsK_name + "DD"),
+            selection=self.selHcs2PPKsK_KsDD,
+            prescale=config['PrescaleHcs2PPKsK'],
+            postscale=config['PostscaleHcs2PPKsK'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Hcs2LamPKPi_LamLL = self.make_line(
+            name='{0}Line'.format(hcs2LpKpi_name + "LL"),
+            selection=self.selHcs2LamPKPi_LamLL,
+            prescale=config['PrescaleHcs2LamPKPi'],
+            postscale=config['PostscaleHcs2LamPKPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Hcs2LamPKPi_LamDD = self.make_line(
+            name='{0}Line'.format(hcs2LpKpi_name + "DD"),
+            selection=self.selHcs2LamPKPi_LamDD,
+            prescale=config['PrescaleHcs2LamPKPi'],
+            postscale=config['PostscaleHcs2LamPKPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Hcs2LamLamPi_LamLLLL = self.make_line(
+            name='{0}Line'.format(hcs2LLpi_name + "LLLL"),
+            selection=self.selHcs2LamLamPi_LamLLLL,
+            prescale=config['PrescaleHcs2LamLamPi'],
+            postscale=config['PostscaleHcs2LamLamPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Hcs2LamLamPi_LamDDDD = self.make_line(
+            name='{0}Line'.format(hcs2LLpi_name + "DDDD"),
+            selection=self.selHcs2LamLamPi_LamDDDD,
+            prescale=config['PrescaleHcs2LamLamPi'],
+            postscale=config['PostscaleHcs2LamLamPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Hcs2LamLamPi_LamLLDD = self.make_line(
+            name='{0}Line'.format(hcs2LLpi_name + "LLDD"),
+            selection=self.selHcs2LamLamPi_LamLLDD,
+            prescale=config['PrescaleHcs2LamLamPi'],
+            postscale=config['PostscaleHcs2LamLamPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Pc2PKPiPi = self.make_line(
+            name='{0}Line'.format(pc2pKpipi_name),
+            selection=self.selPc2PKPiPi,
+            prescale=config['PrescalePc2PKPiPi'],
+            postscale=config['PostscalePc2PKPiPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Pc2PKsPi_KsLL = self.make_line(
+            name='{0}Line'.format(pc2pKspi_name + "LL"),
+            selection=self.selPc2PKsPi_KsLL,
+            prescale=config['PrescalePc2PKsPi'],
+            postscale=config['PostscalePc2PKsPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Pc2PKsPi_KsDD = self.make_line(
+            name='{0}Line'.format(pc2pKspi_name + "DD"),
+            selection=self.selPc2PKsPi_KsDD,
+            prescale=config['PrescalePc2PKsPi'],
+            postscale=config['PostscalePc2PKsPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Ps2PPiPi = self.make_line(
+            name='{0}Line'.format(ps2ppipi_name),
+            selection=self.selPs2PPiPi,
+            prescale=config['PrescalePs2PPiPi'],
+            postscale=config['PostscalePs2PPiPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_Ps2PPiPiDown = self.make_line(
+            name='{0}Line'.format(ps2ppipiDown_name),
+            selection=self.selPs2PPiPiDown,
+            prescale=config['PrescalePs2PPiPi'],
+            postscale=config['PostscalePs2PPiPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        ## reference
+
+        self.line_Lc2PKPi = self.make_line(
+            name='{0}Line'.format(lc2pKpi_name),
+            selection=self.selLc2PKPi,
+            prescale=config['PrescaleLc2PKPi'],
+            postscale=config['PostscaleLc2PKPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_L2PPi = self.make_line(
+            name='{0}Line'.format(l2ppi_name),
+            selection=self.selL2PPi,
+            prescale=config['PrescaleL2PPi'],
+            postscale=config['PostscaleL2PPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
+        self.line_L2PPiDown = self.make_line(
+            name='{0}Line'.format(l2ppi_name + "Down"),
+            selection=self.selL2PPiDown,
+            prescale=config['PrescaleL2PPi'],
+            postscale=config['PostscaleL2PPi'],
+            HLT1=config['Hlt1Filter'],
+            HLT2=config['Hlt2Filter']
+        )
+
     def make_line(self, name, selection, prescale, postscale, **kwargs):
         """Create the stripping line defined by the selection.
 
@@ -346,7 +860,7 @@ class StrippingCharm2PPXConf(LineBuilder):
         else:
             return False
 
-    def makeHc2PPX(self, name, inputSel, decDescriptors):
+    def makeHc2PPX(self, name, inputSel, decDescriptors, mass_max ):
         """Return a Selection instance for a Hc -> p+ p+ X decay.
 
         Keyword arguments:
@@ -357,19 +871,20 @@ class StrippingCharm2PPXConf(LineBuilder):
 
         combCuts = (
             '(AMAXCHILD(PT) > {0[Daug_1ofAll_PT_MIN]})'
+            ' & (AM < {1})'
             ' & (AMAXCHILD(PROBNNp) > {0[Proton_1ofAll_ProbNN_MIN]})'
             ' & (AMAXCHILD(BPVIPCHI2()) > {0[Daug_1ofAll_BPVIPCHI2_MIN]})'
             " & (ACUTDOCACHI2({0[Comb_ADOCACHI2_MAX]}, ''))"
-        ).format(self.config)
+        ).format(self.config, mass_max + 150*MeV)
 
         HcCuts = (
             '(VFASPF(VCHI2/VDOF) < {0[Hc_VCHI2VDOF_MAX]})'
             ' & (BPVVDCHI2 > {0[Hc_BPVVDCHI2_MIN]})'
             ' & (BPVLTIME(9)*c_light > {0[Hc_BPVCTAU_MIN]})'
-            ' & (M < {0[Comb_MASS_MAX]})'
+            ' & (M < {1})'
+            ' & (PT > {0[Hc_PT_MIN]})'
 #            ' & (BPVIPCHI2() < {0[Hc_BPVIPCHI2_MAX]})'
-#            ' & (PT > {0[Hc_PT_MIN]})'
-        ).format(self.config)
+        ).format(self.config, mass_max)
 
         _Hc = CombineParticles(
             name='Combine{0}'.format(name),
@@ -380,7 +895,7 @@ class StrippingCharm2PPXConf(LineBuilder):
 
         return Selection(name, Algorithm=_Hc, RequiredSelections=inputSel)
 
-    def makeHs2PPX(self, name, inputSel, decDescriptors, mipchi2_cut, vdchi2_cut):
+    def makeHs2PPX(self, name, inputSel, decDescriptors, mass_max, mipchi2_cut, vdchi2_cut):
         """Return a Selection instance for a Hs -> p+ p+ X decay.
 
         Keyword arguments:
@@ -391,19 +906,20 @@ class StrippingCharm2PPXConf(LineBuilder):
 
         combCuts = (
             '(AMAXCHILD(PT) > {0[HsDaug_1ofAll_PT_MIN]})'
+            ' & (AM < {2})'
             ' & (AMAXCHILD(PROBNNp) > {0[HsProton_1ofAll_ProbNN_MIN]})'
             ' & (AMAXCHILD(BPVIPCHI2()) > {1})'
             " & (ACUTDOCACHI2({0[HsComb_ADOCACHI2_MAX]}, ''))"
-        ).format(self.config,mipchi2_cut)
+        ).format(self.config,mipchi2_cut,mass_max)
 
         HsCuts = (
             '(VFASPF(VCHI2/VDOF) < {0[Hs_VCHI2VDOF_MAX]})'
             ' & (BPVVDCHI2 > {1})'
             ' & (BPVLTIME(9)*c_light > {0[Hs_BPVCTAU_MIN]})'
-            ' & (M < {0[HsComb_MASS_MAX]})'
+            ' & (M < {2})'
+            ' & (PT > {0[Hs_PT_MIN]})'
 #            ' & (BPVIPCHI2() < {0[Hs_BPVIPCHI2_MAX]})'
-#            ' & (PT > {0[Hs_PT_MIN]})'
-        ).format(self.config,vdchi2_cut)
+        ).format(self.config,vdchi2_cut,mass_max)
 
         _Hs = CombineParticles(
             name='Combine{0}'.format(name),
diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingCharmedBaryonSL.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingCharmedBaryonSL.py
index 3f89ad6b6a2c760d2d6e1440e60bf7aca1632bc1..cda2bdf3f4bf32c4ecf437a304c60d86ae6f1efa 100644
--- a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingCharmedBaryonSL.py
+++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingCharmedBaryonSL.py
@@ -62,6 +62,8 @@ default_config={
         , 'signalPrescaleViaLc'           :   1.0
         , 'signalPrescaleViaLcL0DDMuNu'   :   0.8
         , 'signalPrescaleViaLcPPiMuNu'    :   0.25
+        , 'signalPrescaleViaLcPPiMuNu_Tight' :   1.0
+        , 'signalPrescaleViaLcPKMuNu_Tight' :   1.0
         , 'signalPrescaleViaOmegac0'      :   1.0
         , 'signalPrescaleViaXic'          :   1.0
         , 'signalPrescaleViaXicL0LLMuNu'  :   0.8
@@ -70,6 +72,8 @@ default_config={
         , 'controlPrescaleViaLcL0DDPiNC'  :   0.8 
         , 'controlPrescaleViaLcPKPiNC'    :   0.09
         , 'controlPrescaleViaLcPPiPiNC'   :   0.06
+        , 'controlPrescaleViaLcPKPiNC_Tight'    :   0.5
+        , 'controlPrescaleViaLcPPiPiNC_Tight'   :   0.5
         , 'controlPrescaleViaOmegac0NC'   :   1.0
         , 'controlPrescaleViaXicL0LLPiNC' :   0.4 
         , 'controlPrescaleViaXicL0DDPiNC' :   0.8 
@@ -78,16 +82,21 @@ default_config={
         , 'GhostProb'               :   0.3
         , 'TrGhostProbMax'          :   0.25 # same for all particles
         , 'MINIPCHI2'               :   4.0  # adimensiional, orig. 9 
+        , 'P_Min_Tight'               :   3.5*GeV 
         , 'MuonP'                   :   3.0*GeV
         , 'MuonPT'                  :   500*MeV
         , 'MuonIPCHI2'              :   5.0 
         , 'MuonPIDmu'               :   0.0
         , 'PionP'                   :   3.0*GeV
+        , 'PionP_ForXi'             :   2.0*GeV
         , 'PionPT'                  :   500*MeV
+        , 'PionPT_ForXi'            :   100*MeV
         , 'PionPIDK'                :  10.0
         , 'Pion_PIDpiPIDK_Min'      :   0.0
         , 'KaonP'                   :   3.0*GeV
+        , 'KaonP_ForOm'             :   2.0*GeV
         , 'KaonPT'                  :   500*MeV
+        , 'KaonPT_ForOm'            :   100*MeV
         , 'KaonPIDK'                :  10.0
         , 'Kaon_PIDKPIDpi_Min'      :   5.0
         , 'ProtonP'                 :   3.0*GeV
@@ -99,6 +108,7 @@ default_config={
         , 'ProbNNk'                 :   0.4
         , 'ProbNNpi'                :   0.5
         , 'ProbNNpiMax'             :   0.95
+        , 'MisID_PROB_Max'              :  0.7
         , 'LambdaLLPMin'            :5000.0*MeV
         , 'LambdaLLPTMin'           : 800.0*MeV
         , 'LambdaLLCutMass'         :  20.0*MeV
@@ -120,13 +130,22 @@ default_config={
         , 'LambdaDDMaxVZ'           :2275.0*mm
         , 'LambdaPr_PT_MIN'         : 500.0*MeV
         , 'LambdaPi_PT_MIN'         : 100.0*MeV
-        , 'Lc_ADMASS_HalfWin'       :  80.0*MeV
-        , 'Lc_Daug_1of3_MIPCHI2DV_Min': 4.0
+        , 'Lc_ADMASS_HalfWin'               :  80.0*MeV
+        , 'Lc_ADMASS_HalfWin_Tight'         :  55.0*MeV
+        , 'Lc_Daug_1of3_MIPCHI2DV_Min'      : 4.0
+        , 'Lc_Daug_1of3_MIPCHI2DV_Min_Tight': 9.0
         , 'Lc_ADOCAMAX_Max'         :   0.5*mm
+        , 'Lc_ADOCAMAX_Max_Tight'         :   0.15*mm
         , 'Lc_APT_Min'              :   1.0*GeV
-        , 'Lc_VCHI2_Max'            :  30.0
-        , 'Lc_BPVVDCHI2_Min'        :  16.0
+        , 'Lc_APT_Min_Tight_PPiMu'  :   1.6*GeV
+        , 'Lc_APT_Min_Tight_PKMu'   :   1.6*GeV
+        , 'Lc_AP_Min_Tight'         :   25.0*GeV
+        , 'Lc_VCHI2_Max'            :   30.0
+        , 'Lc_VCHI2_Max_Tight'      :   20.0
+        , 'Lc_BPVVDCHI2_Min'        :   16.0
+        , 'Lc_BPVVDCHI2_Min_Tight'  :   25.0
         , 'Lc_BPVDIRA_Min'          :   0.9
+        , 'Lc_BPVDIRA_Min_Tight'    :   0.99
         , 'Omegac0_ADAMASS_HalfWin' : 170.0*MeV
         , 'Omegac0_ADMASS_HalfWin'  : 120.0*MeV
         , 'Omegac0_4Dau_VCHI2_Max'  :  60.0
@@ -170,10 +189,18 @@ class StrippingCharmedBaryonSL(LineBuilder) :
                 Algorithm = self._kaonFilter("Kfor"+name),
                 RequiredSelections = [StdAllLooseKaons])
 
+        self.selKaon_ForOm = Selection( "SelKforOm" + name,
+                Algorithm = self._kaonFilter_ForOm("KforOm"+name),
+                RequiredSelections = [StdAllLooseKaons])
+
         self.selPion = Selection( "SelPifor" + name,
                 Algorithm = self._pionFilter("Pifor"+name),
                 RequiredSelections = [StdAllLoosePions])
 
+        self.selPion_ForXi = Selection( "SelPiforXi" + name,
+                Algorithm = self._pionFilter_ForXi("PiforXi"+name),
+                RequiredSelections = [StdAllLoosePions])
+
         self.selProton = Selection( "SelProtonfor" + name,
                 Algorithm = self._protonFilter("Protonfor"+name),
                 RequiredSelections = [StdAllLooseProtons])
@@ -208,7 +235,7 @@ class StrippingCharmedBaryonSL(LineBuilder) :
         ##########################################################################
         self.Ximinus2LambdaPi = self.createCombinationSel(OutputList = "Ximinus2LambdaPifor"+ self.name,
                 DecayDescriptor = "[Xi- -> Lambda0 pi-]cc",
-                DaughterLists   = [self.selPion, self.selAllLambda],
+                DaughterLists   = [self.selPion_ForXi, self.selAllLambda],
                 DaughterCuts    = {"pi-" : "(MIPCHI2DV(PRIMARY)>4) "},
                 PreVertexCuts   = "(ADAMASS('Xi-') < 80*MeV) & (ADOCACHI2CUT(30, ''))",
                 PostVertexCuts  = "(ADMASS('Xi-')<64*MeV)"\
@@ -222,7 +249,7 @@ class StrippingCharmedBaryonSL(LineBuilder) :
         ##########################################################################
         self.Omegaminus2LambdaK = self.createCombinationSel(OutputList = "Omegaminus2LambdaKfor"+ self.name,
                 DecayDescriptor = "[Omega- -> Lambda0 K-]cc",
-                DaughterLists   = [self.selKaon, self.selAllLambda],
+                DaughterLists   = [self.selKaon_ForOm, self.selAllLambda],
                 DaughterCuts    = {"K-"      : "(MIPCHI2DV(PRIMARY)>4) "},
                 PreVertexCuts   = "(ADAMASS('Omega-') < 80*MeV) & (ADOCACHI2CUT(30, ''))",
                 PostVertexCuts  = "(ADMASS('Omega-')<64*MeV)"\
@@ -259,6 +286,16 @@ class StrippingCharmedBaryonSL(LineBuilder) :
         _pi = FilterDesktop(Code = _code )
         return _pi
 
+    def _pionFilter_ForXi( self , _name):
+        _code = "  (TRCHI2DOF < %(TRCHI2DOFMax)s)"\
+                "& (P>%(PionP_ForXi)s) & (PT > %(PionPT_ForXi)s)"\
+                "& (TRGHOSTPROB< %(TrGhostProbMax)s)"\
+                "& (MIPCHI2DV(PRIMARY)> %(MINIPCHI2)s)"\
+                "& (PIDK< %(PionPIDK)s)"\
+                "& (PROBNNpi > %(ProbNNpi)s)" % self.config
+        _pi_ForXi = FilterDesktop(Code = _code )
+        return _pi_ForXi
+
     def _kaonFilter( self , _name ):
         _code = "  (TRCHI2DOF < %(TRCHI2DOFMax)s)"\
                 "& (P>%(KaonP)s) & (PT > %(KaonPT)s)"\
@@ -270,6 +307,17 @@ class StrippingCharmedBaryonSL(LineBuilder) :
         _ka = FilterDesktop(Code = _code )
         return _ka
 
+    def _kaonFilter_ForOm( self , _name ):
+        _code = "  (TRCHI2DOF < %(TRCHI2DOFMax)s)"\
+                "& (P>%(KaonP_ForOm)s) & (PT > %(KaonPT_ForOm)s)"\
+                "& (TRGHOSTPROB< %(TrGhostProbMax)s)"\
+                "& (MIPCHI2DV(PRIMARY)> %(MINIPCHI2)s)"\
+                "& (PIDK> %(KaonPIDK)s) & (PROBNNpi < %(ProbNNpiMax)s)"\
+                "& (PROBNNk > %(ProbNNk)s)"\
+                "& (HASRICH)&(PIDK-PIDpi>%(Kaon_PIDKPIDpi_Min)s)"% self.config
+        _ka_ForOm = FilterDesktop(Code = _code )
+        return _ka_ForOm
+
     def _protonFilter( self, _name ):
         _code = "  (TRCHI2DOF < %(TRCHI2DOFMax)s)"\
                 "& (PT > %(ProtonPT)s) & (P>%(ProtonP)s)"\
@@ -352,6 +400,58 @@ class StrippingCharmedBaryonSL(LineBuilder) :
         _strCutComb_L0MuSL  = _strCutCombfor + '&' + _strCutComb_MassL0MuSL 
         _strCutComb_pKMuSL  = _strCutCombfor + '&' + _strCutComb_MasspKMuSL 
         _strCutComb_ppiMuSL = _strCutCombfor + '&' + _strCutComb_MassppiMuSL
+
+        # Tight cut for Lambda_c+ -> p pi+ mu+ nu to reduce the rate
+        _strCutCombfor_PPiMu = "(AMINCHILD(MIPCHI2DV(PRIMARY))> %(Lc_Daug_1of3_MIPCHI2DV_Min_Tight)s )" \
+                    "& (ADOCAMAX('')<%(Lc_ADOCAMAX_Max_Tight)s)" \
+                    "& (AMINCHILD(P)>%(P_Min_Tight)s)" \
+                    "& (AP>%(Lc_AP_Min_Tight)s)" \
+                    "& (APT>%(Lc_APT_Min_Tight_PPiMu)s)" % self.config
+        _strCutCombfor_PKMu = "(AMINCHILD(MIPCHI2DV(PRIMARY))> %(Lc_Daug_1of3_MIPCHI2DV_Min_Tight)s )" \
+                    "& (ADOCAMAX('')<%(Lc_ADOCAMAX_Max_Tight)s)" \
+                    "& (AMINCHILD(P)>%(P_Min_Tight)s)" \
+                    "& (AP>%(Lc_AP_Min_Tight)s)" \
+                    "& (APT>%(Lc_APT_Min_Tight_PKMu)s)" % self.config
+        _strCutCombfor_PPiPi = "(AMINCHILD(MIPCHI2DV(PRIMARY))> %(Lc_Daug_1of3_MIPCHI2DV_Min_Tight)s )" \
+                    "& (ADOCAMAX('')<%(Lc_ADOCAMAX_Max_Tight)s)" \
+                    "& (AMINCHILD(P)>%(P_Min_Tight)s)" \
+                    "& (AP>%(Lc_AP_Min_Tight)s)" \
+                    "& (APT>%(Lc_APT_Min_Tight_PPiMu)s)" % self.config
+        _strCutCombfor_PKPi = "(AMINCHILD(MIPCHI2DV(PRIMARY))> %(Lc_Daug_1of3_MIPCHI2DV_Min_Tight)s )" \
+                    "& (ADOCAMAX('')<%(Lc_ADOCAMAX_Max_Tight)s)" \
+                    "& (AMINCHILD(P)>%(P_Min_Tight)s)" \
+                    "& (AP>%(Lc_AP_Min_Tight)s)" \
+                    "& (APT>%(Lc_APT_Min_Tight_PKMu)s)" % self.config
+        _strCutMothSL_PPiMu = "(VFASPF(VCHI2) < %(Lc_VCHI2_Max_Tight)s)" \
+                      "& (BPVVDCHI2>%(Lc_BPVVDCHI2_Min_Tight)s)" \
+                      "& (BPVDIRA>%(Lc_BPVDIRA_Min_Tight)s)" \
+                      "& (NINTREE(('pi+'==ABSID) & (PROBNNk < %(MisID_PROB_Max)s) & (PROBNNp < %(MisID_PROB_Max)s) & (PROBNNmu < %(MisID_PROB_Max)s)) > 0)" \
+                      "& (NINTREE(('p+'==ABSID) & (PROBNNk < %(MisID_PROB_Max)s) & (PROBNNpi < %(MisID_PROB_Max)s) & (PROBNNmu < %(MisID_PROB_Max)s)) > 0)" \
+                      "& (NINTREE(('mu+'==ABSID) & (PROBNNk < %(MisID_PROB_Max)s) & (PROBNNp < %(MisID_PROB_Max)s) & (PROBNNpi < %(MisID_PROB_Max)s)) > 0)" % self.config
+        _strCutMothSL_PKMu = "(VFASPF(VCHI2) < %(Lc_VCHI2_Max_Tight)s)" \
+                      "& (BPVVDCHI2>%(Lc_BPVVDCHI2_Min_Tight)s)" \
+                      "& (BPVDIRA>%(Lc_BPVDIRA_Min_Tight)s)" \
+                      "& (NINTREE(('K+'==ABSID) & (PROBNNpi < %(MisID_PROB_Max)s) & (PROBNNp < %(MisID_PROB_Max)s) & (PROBNNmu < %(MisID_PROB_Max)s)) > 0)" \
+                      "& (NINTREE(('p+'==ABSID) & (PROBNNk < %(MisID_PROB_Max)s) & (PROBNNpi < %(MisID_PROB_Max)s) & (PROBNNmu < %(MisID_PROB_Max)s)) > 0)" \
+                      "& (NINTREE(('mu+'==ABSID) & (PROBNNk < %(MisID_PROB_Max)s) & (PROBNNp < %(MisID_PROB_Max)s) & (PROBNNpi < %(MisID_PROB_Max)s)) > 0)" % self.config
+        _strCutMothSL_PPiPi = "(VFASPF(VCHI2) < 20)" \
+                      "& (BPVVDCHI2>%(Lc_BPVVDCHI2_Min_Tight)s)" \
+                      "& (BPVDIRA>%(Lc_BPVDIRA_Min_Tight)s)" \
+                      "& (NINTREE(('pi+'==ABSID) & (PROBNNk < %(MisID_PROB_Max)s) & (PROBNNp < %(MisID_PROB_Max)s) & (PROBNNmu < %(MisID_PROB_Max)s)) > 1)" \
+                      "& (NINTREE(('p+'==ABSID) & (PROBNNk < %(MisID_PROB_Max)s) & (PROBNNpi < %(MisID_PROB_Max)s) & (PROBNNmu < %(MisID_PROB_Max)s)) > 0)" % self.config
+        _strCutMothSL_PKPi = "(VFASPF(VCHI2) < %(Lc_VCHI2_Max_Tight)s)" \
+                      "& (BPVVDCHI2>%(Lc_BPVVDCHI2_Min_Tight)s)" \
+                      "& (BPVDIRA>%(Lc_BPVDIRA_Min_Tight)s)" \
+                      "& (NINTREE(('pi+'==ABSID) & (PROBNNk < %(MisID_PROB_Max)s) & (PROBNNp < %(MisID_PROB_Max)s) & (PROBNNmu < %(MisID_PROB_Max)s)) > 0)" \
+                      "& (NINTREE(('K+'==ABSID) & (PROBNNpi < %(MisID_PROB_Max)s) & (PROBNNp < %(MisID_PROB_Max)s) & (PROBNNmu < %(MisID_PROB_Max)s)) > 0)" \
+                      "& (NINTREE(('p+'==ABSID) & (PROBNNk < %(MisID_PROB_Max)s) & (PROBNNpi < %(MisID_PROB_Max)s) & (PROBNNmu < %(MisID_PROB_Max)s)) > 0)" % self.config
+        _strCutComb_ppiMuSL_Tight = _strCutCombfor_PPiMu + '&' + _strCutComb_MassppiMuSL
+        _strCutComb_pKMuSL_Tight = _strCutCombfor_PKMu + '&' + _strCutComb_MasspKMuSL
+        _strCutComb_ppipiNC_Tight   = _strCutCombfor_PPiPi + '&' + "(ADAMASS('Lambda_c+')< 1.1*%(Lc_ADMASS_HalfWin_Tight)s)" % self.config
+        _strCutMoth_ppipiNC_Tight   = _strCutMothSL_PPiPi + '&' + "(ADMASS('Lambda_c+')< %(Lc_ADMASS_HalfWin_Tight)s)" % self.config
+        _strCutComb_pKpiNC_Tight   = _strCutCombfor_PKPi + '&' + "(ADAMASS('Lambda_c+')< 1.1*%(Lc_ADMASS_HalfWin_Tight)s)" % self.config
+        _strCutMoth_pKpiNC_Tight   = _strCutMothSL_PKPi + '&' + "(ADMASS('Lambda_c+')< %(Lc_ADMASS_HalfWin_Tight)s)" % self.config 
+
         _strCutMothSL = _strCutMothfor
 
         ''' Stripping Lambda_c+ -> Lambda0(LL) mu+ '''
@@ -390,6 +490,18 @@ class StrippingCharmedBaryonSL(LineBuilder) :
                 EnableFlavourTagging = False )
         self.registerLine (Lambdac2PKMuNuLine)
 
+        ''' Tight Line '''
+        Lambdac2PKMuNuTight = self.createCombinationSel(OutputList = "Lambdac2PKMuNuTight" + self.name,
+                DecayDescriptor = "[Lambda_c+ -> p+ K- mu+]cc",
+                DaughterLists   = [self.selProton, self.selKaon, self.selMuon],
+                PreVertexCuts   = _strCutComb_pKMuSL_Tight,
+                PostVertexCuts  = _strCutMothSL_PKMu )
+        Lambdac2PKMuNuTightLine = StrippingLine( self.name + "Lambdac2PKMuNuTightLine", 
+                prescale = self.config['signalPrescaleViaLcPKMuNu_Tight'],
+                algos = [ Lambdac2PKMuNuTight ], 
+                EnableFlavourTagging = False )
+        self.registerLine (Lambdac2PKMuNuTightLine)
+
         ''' Stripping Lambda_c+ -> p+ pi- mu+ '''
         Lambdac2PPiMuNu = self.createCombinationSel(OutputList = "Lambdac2PPiMuNu" + self.name,
                 DecayDescriptor = "[Lambda_c+ -> p+ pi- mu+]cc",
@@ -402,6 +514,18 @@ class StrippingCharmedBaryonSL(LineBuilder) :
                 EnableFlavourTagging = False )
         self.registerLine (Lambdac2PPiMuNuLine)
 
+        ''' Tight Line '''
+        Lambdac2PPiMuNuTight = self.createCombinationSel(OutputList = "Lambdac2PPiMuNuTight" + self.name,
+                DecayDescriptor = "[Lambda_c+ -> p+ pi- mu+]cc",
+                DaughterLists   = [self.selProton, self.selPion, self.selMuon],
+                PreVertexCuts   = _strCutComb_ppiMuSL_Tight,
+                PostVertexCuts  = _strCutMothSL_PPiMu )
+        Lambdac2PPiMuNuTightLine = StrippingLine( self.name + "Lambdac2PPiMuNuTightLine", 
+                prescale = self.config['signalPrescaleViaLcPPiMuNu_Tight'],
+                algos = [ Lambdac2PPiMuNuTight ], 
+                EnableFlavourTagging = False )
+        self.registerLine (Lambdac2PPiMuNuTightLine)
+
         ''' ---------------------- '''
         ''' Normalization channels '''
         ''' ---------------------- '''
@@ -441,6 +565,19 @@ class StrippingCharmedBaryonSL(LineBuilder) :
                 EnableFlavourTagging = False )
         self.registerLine (Lambdac2PKPiNCLine)
 
+        ''' Tight Line '''
+        Lambdac2PKPiNCTight = self.createCombinationSel(OutputList = "Lambdac2PKPiNCTight" + self.name,
+                DecayDescriptor = "[Lambda_c+ -> p+ K- pi+]cc",
+                DaughterLists   = [self.selProton, self.selKaon, self.selPion],
+                PreVertexCuts   = _strCutComb_pKpiNC_Tight,
+                PostVertexCuts  = _strCutMoth_pKpiNC_Tight )
+        Lambdac2PKPiNCTightLine = StrippingLine( self.name + "Lambdac2PKPiNCTightLine", 
+                prescale = self.config['controlPrescaleViaLcPKPiNC_Tight'],
+                L0DU = "L0_CHANNEL('Hadron')",
+                algos = [ Lambdac2PKPiNCTight ], 
+                EnableFlavourTagging = False )
+        self.registerLine (Lambdac2PKPiNCTightLine)
+
         ''' NC Stripping Lambda_c+ -> p+ pi- pi+ '''
         Lambdac2PPiPiNC = self.createCombinationSel(OutputList = "Lambdac2PPiPiNC" + self.name,
                 DecayDescriptor = "[Lambda_c+ -> p+ pi- pi+]cc",
@@ -452,6 +589,19 @@ class StrippingCharmedBaryonSL(LineBuilder) :
                 algos = [ Lambdac2PPiPiNC ], 
                 EnableFlavourTagging = False )
         self.registerLine (Lambdac2PPiPiNCLine)
+
+        ''' Tight Line '''
+        Lambdac2PPiPiNCTight = self.createCombinationSel(OutputList = "Lambdac2PPiPiNCTight" + self.name,
+                DecayDescriptor = "[Lambda_c+ -> p+ pi- pi+]cc",
+                DaughterLists   = [self.selProton, self.selPion, self.selPion],
+                PreVertexCuts   = _strCutComb_ppipiNC_Tight,
+                PostVertexCuts  = _strCutMoth_ppipiNC_Tight )
+        Lambdac2PPiPiNCTightLine = StrippingLine( self.name + "Lambdac2PPiPiNCTightLine", 
+                prescale = self.config['controlPrescaleViaLcPPiPiNC_Tight'],
+                L0DU = "L0_CHANNEL('Hadron')",
+                algos = [ Lambdac2PPiPiNCTight ], 
+                EnableFlavourTagging = False )
+        self.registerLine (Lambdac2PPiPiNCTightLine)
     ##  --------------------  End of LambdacSL  ------------
     ##------------------------------------------------------------------------------------------
 
diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingCharmedMesonSL.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingCharmedMesonSL.py
new file mode 100644
index 0000000000000000000000000000000000000000..ac354967de5de8b191c51a63efb5ac534e8f0896
--- /dev/null
+++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingCharmedMesonSL.py
@@ -0,0 +1,623 @@
+###############################################################################
+# (c) Copyright 2000-2019 CERN for the benefit of the LHCb Collaboration      #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+'''
+Speculative code for charmed meson searches.
+Charmed mesons are from beauty decays (Btag) along with WS lines and normalization lines:
+Note: 
+The mass window for B~0 and D+ are wide enough to include B_s~0 and Ds+
+
+1. B~0 ->  D+ pi- pi- pi+, D+ ->  K+ K- mu+ nu : 
+
+2. B~0 ->  D+ pi- pi- pi+, D+ ->   pi+ pi- mu+ nu :
+
+3. B- ->  D0 pi- pi- pi+, D0 ->   eta pi- mu+ nu, eta -> pi+ pi- pi0(gamma):
+
+4. B- ->  D0 pi- pi- pi+, D0 ->   pi- pi+ pi- mu+ nu:
+
+5. B- ->  D0 pi- pi- pi+, D0 ->   pi- K+ K- mu+ nu :
+'''
+
+
+__author__ = ['Xiao-Rui Lyu', 'Yangjie Su']
+__date__ = '2023/06/30'
+__version__ = '$Revision: 0.1 $'
+__all__ = ('StrippingCharmedMesonSL'
+           ,'default_config')
+
+
+from Gaudi.Configuration import *
+from GaudiConfUtils.ConfigurableGenerators import FilterDesktop, CombineParticles
+from StandardParticles import StdLoosePions, StdNoPIDsDownPions, StdLooseKaons, StdLooseDownKaons
+from StandardParticles import  StdAllLoosePions, StdAllLooseKaons, StdLooseMuons, StdAllLooseProtons, StdAllLooseMuons, StdAllVeryLooseMuons
+from PhysSelPython.Wrappers import Selection, DataOnDemand, MergedSelection
+from PhysSelPython.Wrappers import MultiSelectionSequence
+from StrippingConf.StrippingLine import StrippingLine
+from StrippingUtils.Utils import LineBuilder
+from GaudiKernel.SystemOfUnits import MeV, GeV, mm, picosecond
+import sys
+
+
+default_name='CharmedMesonSL'
+    #### This is the dictionary of all tunable cuts ########
+default_config={
+      'NAME'        : 'CharmedMesonSL',
+      'WGs'         : ['Charm'],
+      'BUILDERTYPE' : 'StrippingCharmedMesonSL',
+      'STREAMS'     : ['Charm'],
+      'CONFIG'      : {
+          'GEC_nLongTrk' : 160    # adimensional
+        , 'signalPrescaleViaD2KKmunu'       :   1.0
+        , 'controlPrescaleViaD2KKpi'        :   1.0
+        , 'signalPrescaleViaD2pipimunu'     :   1.0
+        , 'controlPrescaleViaD2pipipi'      :   1.0
+        , 'signalPrescaleViaD02pipipimunu'  :   1.0
+        , 'controlPrescaleViaD02pipipipi'   :   1.0
+        , 'signalPrescaleViaD02KKpimunu'    :   1.0
+        , 'controlPrescaleViaD02KKpipi'     :   1.0
+        , 'signalPrescaleViaD02etapimunu'    :   1.0
+        , 'controlPrescaleViaD02etapipi'     :   1.0
+        , 'TRCHI2DOFMax'            :   3.0
+        , 'GhostProb'               :   0.3
+        , 'TrGhostProbMax'          :   0.25 # same for all particles
+        , 'MINIPCHI2'               :   4.0  # adimensiional
+        , 'MuonP'                   :   3*GeV
+        , 'MuonPT'                  :   250*MeV
+        , 'MuonIPCHI2'              :   4.0 
+        , 'MuonPIDmu'               :   0.0
+        , 'PionP'                   :   3*GeV
+        , 'PionPT'                  :   250*MeV
+        , 'PionPIDK'                :  5.0
+        , 'Pion_PIDpiPIDK_Min'      :   0.0
+        , 'KaonP'                   :   3*GeV
+        , 'KaonPT'                  :   250*MeV
+        , 'KaonPIDK'                :  10.0
+        , 'Kaon_PIDKPIDpi_Min'      :   5.0
+        , 'ProbNNk'                 :   0.4
+        , 'ProbNNpi'                :   0.5
+        , 'ProbNNpiMax'             :   0.9
+        , 'Dp_ADMASS_Min'           :   1800.0*MeV
+        , 'Dp_ADMASS_Max'           :   2030.0*MeV #large enough to cover D_s+
+        , 'D0_ADMASS_Min'           :   1820.0*MeV
+        , 'D0_ADMASS_Max'           :   1900.0*MeV 
+        , 'Dp_Daug_1of3_MIPCHI2DV_Min': 4.0
+        , 'Dp_ADOCAMAX_Max'         :   0.25*mm
+        , 'Dp_APT_Min'              :   1.2*GeV
+        , 'Dp_AP_Min'               :   20*GeV
+        , 'Dp_VCHI2_Max'            :  30.0
+        , 'Dp_BPVVDCHI2_Min'        :  16.0
+        , 'Dp_BPVDIRA_Min'          :   0.95
+        , 'KKMu_AM_Min'             :  1100.0*MeV
+        , 'PiPiMu_AM_Min'           :  400.0*MeV
+        , 'PiPiPiMu_AM_Min'         :  530.0*MeV
+        , 'PiKKMu_AM_Min'           :  1240.0*MeV
+        , 'EtaPiMu_AM_Min'          :  800.0*MeV
+        , 'DpSL_AM_Max'             :  2080.0*MeV #large enough to cover D_s+
+        , 'D0SL_AM_Max'             :  1960.0*MeV 
+
+        #For B mesons
+        , 'B0SL_M_Min': 2800*MeV
+        , 'B0SL_M_Max': 5600*MeV #large enough to cover B_s0
+        , 'B0_M_Min': 5100*MeV
+        , 'B0_M_Max': 5600*MeV #large enough to cover B_s0
+
+        , 'BpSL_M_Min': 3000*MeV
+        , 'BpSL_M_Max': 5700*MeV 
+        , 'Bp_M_Min': 5100*MeV
+        , 'Bp_M_Max': 5500*MeV 
+
+        , 'B_AP_Min': 20*GeV 
+        , 'B_APT_Min': 1.5*GeV 
+        , 'B_VCHI2_Max': 30 
+        , 'B_BPVVDCHI2_Min': 16 
+        , 'B_BPVDIRA_Min': 0.95 
+      } ## end of 'CONFIG' 
+}  ## end of default_config
+
+#-------------------------------------------------------------------------------------------------------------
+class StrippingCharmedMesonSL(LineBuilder) : 
+    __configuration_keys__ = default_config['CONFIG'].keys()
+
+    def __init__(self, name, config) :
+        LineBuilder.__init__(self, name, config)
+        self.name = name
+        self.config = config
+       
+        GECs = { "Code":"( recSummaryTrack(LHCb.RecSummary.nLongTracks, TrLONG) < %(GEC_nLongTrk)s )" % config,
+                     "Preambulo": ["from LoKiTracks.decorators import *"]}
+        
+        ##########################################################################
+        ## Basic particles: mu, K, pi, eta
+        ##########################################################################
+        self.selMuon = Selection( "SelMufor" + name,
+                Algorithm = self._muonFilter("Mufor"+name),
+                RequiredSelections = [StdLooseMuons])
+
+        self.selKaon = Selection( "SelKfor" + name,
+                Algorithm = self._kaonFilter("Kfor"+name),
+                RequiredSelections = [StdAllLooseKaons])
+
+        self.selPion = Selection( "SelPifor" + name,
+                Algorithm = self._pionFilter("Pifor"+name),
+                RequiredSelections = [StdAllLoosePions])
+
+        self.makeEta()
+        # then use self.Eta2PiPiPi0 and self.Eta2PiPiGamma
+
+        ##########################################################################
+        ## Charmed Meson SL lines
+        ##########################################################################
+        self.DmesonSLList = self.makeDmesonSL()
+
+
+    #------------------------------------------------------------------------------------------
+    #------------------------------------------------------------------------------------------
+    # Sub Function
+    #------------------------------------------------------------------------------------------
+    #------------------------------------------------------------------------------------------
+    def _muonFilter( self , _name):
+        _code = "  (TRCHI2DOF< %(TRCHI2DOFMax)s)"\
+                "& (PT>%(MuonPT)s) & (P>%(MuonP)s)"\
+                "& (TRGHOSTPROB< %(GhostProb)s)"\
+                "& (MIPCHI2DV(PRIMARY)> %(MuonIPCHI2)s)"\
+                "& (PIDmu > %(MuonPIDmu)s) & ISMUON" % self.config
+        _mu = FilterDesktop(Code = _code )
+        return _mu
+
+    def _pionFilter( self , _name):
+        _code = "  (TRCHI2DOF < %(TRCHI2DOFMax)s)"\
+                "& (P>%(PionP)s) & (PT > %(PionPT)s)"\
+                "& (TRGHOSTPROB< %(TrGhostProbMax)s)"\
+                "& (MIPCHI2DV(PRIMARY)> %(MINIPCHI2)s)"\
+                "& (PIDK< %(PionPIDK)s) "\
+                "& (HASRICH)&(PROBNNpi > %(ProbNNpi)s) " % self.config
+        _pi = FilterDesktop(Code = _code )
+        return _pi
+
+    def _kaonFilter( self , _name ):
+        _code = "  (TRCHI2DOF < %(TRCHI2DOFMax)s)"\
+                "& (P>%(KaonP)s) & (PT > %(KaonPT)s)"\
+                "& (TRGHOSTPROB< %(TrGhostProbMax)s)"\
+                "& (MIPCHI2DV(PRIMARY)> %(MINIPCHI2)s)"\
+                "& (PIDK> %(KaonPIDK)s) & (PROBNNpi < %(ProbNNpiMax)s)"\
+                "& (PROBNNk > %(ProbNNk)s) "\
+                "& (HASRICH)&(PIDK-PIDpi>%(Kaon_PIDKPIDpi_Min)s) "% self.config
+        _ka = FilterDesktop(Code = _code )
+        return _ka
+
+    def makeB0Line(self, line_name, prescale, charmed_meson, is_NC = False):
+        comb_cut = "(ADOCA(2,3) < %(Dp_ADOCAMAX_Max)s) & (ADOCA(2,4) < %(Dp_ADOCAMAX_Max)s)"\
+                   "& (AP > %(B_AP_Min)s)"\
+                   "& (APT > %(B_APT_Min)s)" % self.config
+        vertex_cut  = "(VFASPF(VCHI2) < %(B_VCHI2_Max)s)" \
+                      "& (BPVVDCHI2>%(B_BPVVDCHI2_Min)s)" \
+                      "& (BPVDIRA>%(B_BPVDIRA_Min)s)" % self.config
+
+        if is_NC :
+            comb_cut = comb_cut + "& in_range(%(B0_M_Min)s - 200*MeV, AM, %(B0_M_Max)s + 200*MeV)" % self.config
+            vertex_cut = vertex_cut  + "& in_range(%(B0_M_Min)s , M, %(B0_M_Max)s )" % self.config
+        else:
+            comb_cut = comb_cut  + "& in_range(%(B0SL_M_Min)s - 200*MeV, AM, %(B0SL_M_Max)s + 200*MeV)" % self.config
+            vertex_cut = vertex_cut  + "& in_range(%(B0SL_M_Min)s , M, %(B0SL_M_Max)s )" % self.config
+
+        B0 = self.createCombinationSel(OutputList = "B02DPiPiPi_" + line_name,
+                DecayDescriptor = "[B~0 -> D+ pi+ pi- pi-]cc",
+                DaughterLists   = [charmed_meson, self.selPion, self.selPion, self.selPion],
+                PreVertexCuts   = comb_cut,
+                PostVertexCuts  = vertex_cut )
+        B0Line = StrippingLine( line_name, 
+                prescale = prescale,
+                selection = B0, 
+                EnableFlavourTagging = False )
+        return B0Line
+
+    def makeBpLine(self, line_name, prescale, charmed_meson, is_NC = False):
+        comb_cut = "(ADOCA(2,3) < %(Dp_ADOCAMAX_Max)s) & (ADOCA(2,4) < %(Dp_ADOCAMAX_Max)s)"\
+                   "& (AP > %(B_AP_Min)s)"\
+                   "& (APT > %(B_APT_Min)s)" % self.config
+        vertex_cut  = "(VFASPF(VCHI2) < %(B_VCHI2_Max)s)" \
+                      "& (BPVVDCHI2>%(B_BPVVDCHI2_Min)s)" \
+                      "& (BPVDIRA>%(B_BPVDIRA_Min)s)" % self.config
+
+        if is_NC :
+            comb_cut = comb_cut + "& in_range(%(Bp_M_Min)s - 200*MeV, AM, %(Bp_M_Max)s + 200*MeV)" % self.config
+            vertex_cut = vertex_cut  + "& in_range(%(Bp_M_Min)s , M, %(Bp_M_Max)s )" % self.config
+        else:
+            comb_cut = comb_cut  + "& in_range(%(BpSL_M_Min)s - 200*MeV, AM, %(BpSL_M_Max)s + 200*MeV)" % self.config
+            vertex_cut = vertex_cut  + "& in_range(%(BpSL_M_Min)s , M, %(BpSL_M_Max)s )" % self.config
+
+        Bp = self.createCombinationSel(OutputList = "B2D0PiPiPi_" + line_name,
+                DecayDescriptor = ["B- -> D0 pi+ pi- pi-", "B- -> D~0 pi+ pi- pi-", "B- -> D0 pi- pi+ pi+", "B- -> D~0 pi- pi+ pi+"],
+                DaughterLists   = [charmed_meson, self.selPion, self.selPion, self.selPion],
+                PreVertexCuts   = comb_cut,
+                PostVertexCuts  = vertex_cut )
+        BpLine = StrippingLine( line_name, 
+                prescale = prescale,
+                selection = Bp, 
+                EnableFlavourTagging = False )
+        return BpLine
+
+    def makeB0WSLine(self, line_name, prescale, charmed_meson, is_NC = False):
+        comb_cut = "(ADOCA(2,3) < %(Dp_ADOCAMAX_Max)s) & (ADOCA(2,4) < %(Dp_ADOCAMAX_Max)s)"\
+                   "& (AP > %(B_AP_Min)s)"\
+                   "& (APT > %(B_APT_Min)s)" % self.config
+        vertex_cut  = "(VFASPF(VCHI2) < %(B_VCHI2_Max)s)" \
+                      "& (BPVVDCHI2>%(B_BPVVDCHI2_Min)s)" \
+                      "& (BPVDIRA>%(B_BPVDIRA_Min)s)" % self.config
+        if is_NC :
+            comb_cut = comb_cut + "& in_range(%(B0_M_Min)s - 200*MeV, AM, %(B0_M_Max)s + 200*MeV)" % self.config
+            vertex_cut = vertex_cut  + "& in_range(%(B0_M_Min)s , M, %(B0_M_Max)s )" % self.config
+        else:
+            comb_cut = comb_cut  + "& in_range(%(B0SL_M_Min)s - 200*MeV, AM, %(B0SL_M_Max)s + 200*MeV)" % self.config
+            vertex_cut = vertex_cut  + "& in_range(%(B0SL_M_Min)s , M, %(B0SL_M_Max)s )" % self.config
+
+        WS_descriptors=[
+            "B0 -> D+ pi+ pi+ pi+",
+            "B0 -> D- pi- pi- pi-",
+            "B0 -> D+ pi- pi- pi-",
+            "B0 -> D- pi+ pi+ pi+",
+            "B0 -> D+ pi+ pi+ pi-",
+            "B0 -> D- pi- pi- pi+",
+        ]
+
+        B0 = self.createCombinationSel(OutputList = "B02DPiPiPi_" + line_name,
+                DecayDescriptor = WS_descriptors,
+                DaughterLists   = [charmed_meson, self.selPion, self.selPion, self.selPion],
+                PreVertexCuts   = comb_cut,
+                PostVertexCuts  = vertex_cut )
+        B0Line = StrippingLine( line_name, 
+                prescale = prescale,
+                selection = B0, 
+                EnableFlavourTagging = False )
+        return B0Line
+
+    def makeBpWSLine(self, line_name, prescale, charmed_meson, is_NC = False):
+        comb_cut = "(ADOCA(2,3) < %(Dp_ADOCAMAX_Max)s) & (ADOCA(2,4) < %(Dp_ADOCAMAX_Max)s)"\
+                   "& (AP > %(B_AP_Min)s)"\
+                   "& (APT > %(B_APT_Min)s)" % self.config
+        vertex_cut  = "(VFASPF(VCHI2) < %(B_VCHI2_Max)s)" \
+                      "& (BPVVDCHI2>%(B_BPVVDCHI2_Min)s)" \
+                      "& (BPVDIRA>%(B_BPVDIRA_Min)s)" % self.config
+        if is_NC :
+            comb_cut = comb_cut + "& in_range(%(Bp_M_Min)s - 200*MeV, AM, %(Bp_M_Max)s + 200*MeV)" % self.config
+            vertex_cut = vertex_cut  + "& in_range(%(Bp_M_Min)s , M, %(Bp_M_Max)s )" % self.config
+        else:
+            comb_cut = comb_cut  + "& in_range(%(BpSL_M_Min)s - 200*MeV, AM, %(BpSL_M_Max)s + 200*MeV)" % self.config
+            vertex_cut = vertex_cut  + "& in_range(%(BpSL_M_Min)s , M, %(BpSL_M_Max)s )" % self.config
+
+        WS_descriptors=[
+            "B- -> D0 pi+ pi+ pi+",
+            "B- -> D~0 pi- pi- pi-",
+            "B- -> D0 pi- pi- pi-",
+            "B- -> D~0 pi+ pi+ pi+",
+        ]
+
+        Bp = self.createCombinationSel(OutputList = "B2D0PiPiPi_" + line_name,
+                DecayDescriptor = WS_descriptors,
+                DaughterLists   = [charmed_meson, self.selPion, self.selPion, self.selPion],
+                PreVertexCuts   = comb_cut,
+                PostVertexCuts  = vertex_cut )
+        BpLine = StrippingLine( line_name, 
+                prescale = prescale,
+                selection = Bp, 
+                EnableFlavourTagging = False )
+        return BpLine
+        
+
+    ##------------------------------------------------------------------------------------------
+    ##  -------------------- Begin to DpSL  ------------
+    def makeDmesonSL( self ):
+
+        _strCutCombfor = "(AMINCHILD(MIPCHI2DV(PRIMARY))>%(Dp_Daug_1of3_MIPCHI2DV_Min)s)" \
+                    "& (ADOCAMAX('')<%(Dp_ADOCAMAX_Max)s)" \
+                    "& (AP>%(Dp_AP_Min)s)" \
+                    "& (APT>%(Dp_APT_Min)s)" % self.config
+
+        _strCutMothfor = "(VFASPF(VCHI2) < %(Dp_VCHI2_Max)s)" \
+                      "& (BPVVDCHI2>%(Dp_BPVVDCHI2_Min)s)" \
+                      "& (BPVDIRA>%(Dp_BPVDIRA_Min)s)" % self.config
+
+        _strCutComb_Mass_Dp   = "(AM>0.9*%(Dp_ADMASS_Min)s) & (AM<1.1*%(Dp_ADMASS_Max)s)" % self.config
+        _strCutMoth_Mass_Dp   = "(M>%(Dp_ADMASS_Min)s) & (M<%(Dp_ADMASS_Max)s)" % self.config
+        _strCutComb_Mass_D0   = "(AM>0.9*%(D0_ADMASS_Min)s) & (AM<1.1*%(D0_ADMASS_Max)s)" % self.config
+        _strCutMoth_Mass_D0   = "(M>%(D0_ADMASS_Min)s) & (M<%(D0_ADMASS_Max)s)" % self.config
+
+        _strCutComb_Mass_D0_with_neutral   = "(AM>0.9*%(D0_ADMASS_Min)s) & (AM<1.1*%(D0_ADMASS_Max)s)" % self.config
+        _strCutMoth_Mass_D0_with_neutral   = "(M>%(D0_ADMASS_Min)s - 100*MeV) & (M<%(D0_ADMASS_Max)s + 100*MeV)" % self.config
+        
+        _strCutComb_Dp   = _strCutCombfor + '&' + _strCutComb_Mass_Dp
+        _strCutMoth_Dp   = _strCutMothfor + '&' + _strCutMoth_Mass_Dp
+        _strCutComb_D0   = _strCutCombfor + '&' + _strCutComb_Mass_D0
+        _strCutMoth_D0   = _strCutMothfor + '&' + _strCutMoth_Mass_D0
+
+        _strCutComb_D0_with_neutral   = _strCutCombfor + '&' + _strCutComb_Mass_D0_with_neutral
+        _strCutMoth_D0_with_neutral   = _strCutMothfor + '&' + _strCutMoth_Mass_D0_with_neutral
+        
+        _strCutComb_MassKKMuSL  = "(AM>%(KKMu_AM_Min)s)  & (AM<%(DpSL_AM_Max)s)" % self.config
+        _strCutComb_MassPiPiMuSL  = "(AM>%(PiPiMu_AM_Min)s)  & (AM<%(DpSL_AM_Max)s)" % self.config
+        _strCutComb_MassPiPiPiMuSL  = "(AM>%(PiPiPiMu_AM_Min)s)  & (AM<%(D0SL_AM_Max)s)" % self.config
+        _strCutComb_MassPiKKMuSL  = "(AM>%(PiKKMu_AM_Min)s)  & (AM<%(D0SL_AM_Max)s)" % self.config
+        _strCutComb_MassEtaPiMuSL  = "(AM>%(EtaPiMu_AM_Min)s)  & (AM<%(D0SL_AM_Max)s)" % self.config
+
+        _strCutComb_KKMuSL  = _strCutCombfor + '&' + _strCutComb_MassKKMuSL 
+        _strCutComb_PiPiMuSL  = _strCutCombfor + '&' + _strCutComb_MassPiPiMuSL 
+        _strCutComb_PiPiPiMuSL  = _strCutCombfor + '&' + _strCutComb_MassPiPiPiMuSL 
+        _strCutComb_PiKKMuSL  = _strCutCombfor + '&' + _strCutComb_MassPiKKMuSL 
+        _strCutComb_EtaPiMuSL  = _strCutCombfor + '&' + _strCutComb_MassEtaPiMuSL 
+        _strCutMothSL = _strCutMothfor
+
+        ''' Stripping D+ -> K+ K- mu+ '''
+        KKMuNu = self.createCombinationSel(OutputList = "D2KKMuNu" + self.name,
+                DecayDescriptor = "[D+ -> K+ K- mu+]cc",
+                DaughterLists   = [self.selKaon, self.selKaon,self.selMuon],
+                PreVertexCuts   = _strCutComb_KKMuSL,
+                PostVertexCuts  = _strCutMothSL )
+
+        self.registerLine(self.makeB0Line(
+            line_name=self.name + "B02DPiPiPiD2KKMuNuFromBLine",
+            prescale=self.config['signalPrescaleViaD2KKmunu'],
+            charmed_meson=KKMuNu
+            ))
+        self.registerLine(self.makeB0WSLine(
+            line_name=self.name + "B02DPiPiPiD2KKMuNuFromBWSLine",
+            prescale=self.config['signalPrescaleViaD2KKmunu'],
+            charmed_meson=KKMuNu
+            ))
+
+        ''' Stripping D+ -> pi+ pi- mu+ '''
+        PiPiMuNu = self.createCombinationSel(OutputList = "D2PiPiMuNu" + self.name,
+                DecayDescriptor = "[D+ -> pi+ pi- mu+]cc",
+                DaughterLists   = [self.selPion, self.selPion,self.selMuon],
+                PreVertexCuts   = _strCutComb_PiPiMuSL,
+                PostVertexCuts  = _strCutMothSL )
+        self.registerLine(self.makeB0Line(
+            line_name=self.name + "B02DPiPiPiD2PiPiMuNuFromBLine",
+            prescale=self.config['signalPrescaleViaD2pipimunu'],
+            charmed_meson=PiPiMuNu
+            ))
+        self.registerLine(self.makeB0WSLine(
+            line_name=self.name + "B02DPiPiPiD2PiPiMuNuFromBWSLine",
+            prescale=self.config['signalPrescaleViaD2pipimunu'],
+            charmed_meson=PiPiMuNu
+            ))
+
+        ''' Stripping D0 -> pi- pi+ pi- mu+ '''
+        PiPiPiMuNu = self.createCombinationSel(OutputList = "D02PiPiPiMuNu" + self.name,
+                DecayDescriptor = "[D0 -> pi- pi- pi+ mu+]cc",
+                DaughterLists   = [self.selPion, self.selPion, self.selPion, self.selMuon],
+                PreVertexCuts   = _strCutComb_PiPiPiMuSL,
+                PostVertexCuts  = _strCutMothSL )
+
+        self.registerLine(self.makeBpLine(
+            line_name=self.name + "B2D0PiPiPiD02PiPiPiMuNuFromBLine",
+            prescale=self.config['signalPrescaleViaD02pipipimunu'],
+            charmed_meson=PiPiPiMuNu
+            ))
+        self.registerLine(self.makeBpWSLine(
+            line_name=self.name + "B2D0PiPiPiD02PiPiPiMuNuFromBWSLine",
+            prescale=self.config['signalPrescaleViaD02pipipimunu'],
+            charmed_meson=PiPiPiMuNu
+            ))
+
+        ''' Stripping D0 -> pi- K+ K- mu+ '''
+        PiKKMuNu = self.createCombinationSel(OutputList = "D02PiKKMuNu" + self.name,
+                DecayDescriptor = "[D0 -> pi- K+ K- mu+]cc",
+                DaughterLists   = [self.selPion, self.selKaon, self.selKaon, self.selMuon],
+                PreVertexCuts   = _strCutComb_PiKKMuSL,
+                PostVertexCuts  = _strCutMothSL )
+
+        self.registerLine(self.makeBpLine(
+            line_name=self.name + "B2D0PiPiPiD02PiKKMuNuFromBLine",
+            prescale=self.config['signalPrescaleViaD02KKpimunu'],
+            charmed_meson=PiKKMuNu
+            ))
+        self.registerLine(self.makeBpWSLine(
+            line_name=self.name + "B2D0PiPiPiD02PiKKMuNuFromBWSLine",
+            prescale=self.config['signalPrescaleViaD02KKpimunu'],
+            charmed_meson=PiKKMuNu
+            ))
+
+        ''' Stripping D0 -> eta pi- mu+, eta -> pi+ pi- pi0  '''
+        EtaPiMuNuEta2PiPiPi0 = self.createCombinationSel(OutputList = "D02EtaPiMuNu_Eta2PiPi0" + self.name,
+                DecayDescriptor = "[D0 -> eta pi- mu+]cc",
+                DaughterLists   = [self.Eta2PiPiPi0, self.selPion, self.selMuon],
+                PreVertexCuts   = _strCutComb_EtaPiMuSL,
+                PostVertexCuts  = _strCutMothSL )
+
+        self.registerLine(self.makeBpLine(
+            line_name=self.name + "B2D0PiPiPiD02EtaPiMuNuEta2PiPiPi0FromBLine",
+            prescale=self.config['signalPrescaleViaD02etapimunu'],
+            charmed_meson=EtaPiMuNuEta2PiPiPi0
+            ))
+        self.registerLine(self.makeBpWSLine(
+            line_name=self.name + "B2D0PiPiPiD02EtaPiMuNuEta2PiPiPi0FromBWSLine",
+            prescale=self.config['signalPrescaleViaD02etapimunu'],
+            charmed_meson=EtaPiMuNuEta2PiPiPi0
+            ))
+
+        ''' Stripping D0 -> eta pi- mu+, eta -> pi+ pi- gamma '''
+        EtaPiMuNuEta2PiPiGamma = self.createCombinationSel(OutputList = "D02EtaPiMuNu_Eta2PiPiGamma" + self.name,
+                DecayDescriptor = "[D0 -> eta pi- mu+]cc",
+                DaughterLists   = [self.Eta2PiPiGamma, self.selPion, self.selMuon],
+                PreVertexCuts   = _strCutComb_EtaPiMuSL,
+                PostVertexCuts  = _strCutMothSL )
+
+        self.registerLine(self.makeBpLine(
+            line_name=self.name + "B2D0PiPiPiD02EtaPiMuNuEta2PiPiGammaFromBLine",
+            prescale=self.config['signalPrescaleViaD02etapimunu'],
+            charmed_meson=EtaPiMuNuEta2PiPiGamma
+            ))
+        self.registerLine(self.makeBpWSLine(
+            line_name=self.name + "B2D0PiPiPiD02EtaPiMuNuEta2PiPiGammaFromBWSLine",
+            prescale=self.config['signalPrescaleViaD02etapimunu'],
+            charmed_meson=EtaPiMuNuEta2PiPiGamma
+            ))
+
+        ''' ---------------------- '''
+        ''' Normalization channels '''
+        ''' ---------------------- '''
+        ''' NC Stripping D+ -> K+ K- pi+ '''
+        D2KKPiNC = self.createCombinationSel(OutputList = "D2KKPiNC" + self.name,
+                DecayDescriptor = "[D+ -> K+ K- pi+]cc",
+                DaughterLists   = [self.selKaon, self.selKaon,self.selPion],
+                PreVertexCuts   = _strCutComb_Dp,
+                PostVertexCuts  = _strCutMoth_Dp )
+
+        self.registerLine(self.makeB0Line(
+            line_name=self.name + "B02DPiPiPiD2KKPiNCFromBLine",
+            prescale=self.config['controlPrescaleViaD2KKpi'],
+            charmed_meson=D2KKPiNC,
+            is_NC=True
+            ))
+
+        ''' NC Stripping D+ -> pi+ pi+ pi-'''
+        D2PiPiPiNC = self.createCombinationSel(OutputList = "D2PiPiPiNC" + self.name,
+                DecayDescriptor = "[D+ -> pi+ pi+ pi-]cc",
+                DaughterLists   = [self.selPion, self.selPion,self.selPion],
+                PreVertexCuts   = _strCutComb_Dp,
+                PostVertexCuts  = _strCutMoth_Dp )
+
+        self.registerLine(self.makeB0Line(
+            line_name=self.name + "B02DPiPiPiD2PiPiPiNCFromBLine",
+            prescale=self.config['controlPrescaleViaD2pipipi'],
+            charmed_meson=D2PiPiPiNC,
+            is_NC=True
+            ))
+
+        ''' NC Stripping D0 -> pi+ pi+ pi- pi-'''
+        D2PiPiPiPiNC = self.createCombinationSel(OutputList = "D02PiPiPiPiNC" + self.name,
+                DecayDescriptor = "[D0 -> pi+ pi+ pi- pi-]cc",
+                DaughterLists   = [self.selPion, self.selPion,self.selPion, self.selPion],
+                PreVertexCuts   = _strCutComb_D0,
+                PostVertexCuts  = _strCutMoth_D0 )
+
+        self.registerLine(self.makeBpLine(
+            line_name=self.name + "B2D0PiPiPiD02PiPiPiPiNCFromBLine",
+            prescale=self.config['controlPrescaleViaD02pipipipi'],
+            charmed_meson=D2PiPiPiPiNC,
+            is_NC=True
+            ))
+
+
+        ''' NC Stripping D0 -> K+ K- pi+ pi-'''
+        D2KKPiPiNC = self.createCombinationSel(OutputList = "D02KKPiPiNC" + self.name,
+                DecayDescriptor = "[D0 ->  K+ K- pi+ pi-]cc",
+                DaughterLists   = [self.selKaon, self.selKaon,self.selPion, self.selPion],
+                PreVertexCuts   = _strCutComb_D0,
+                PostVertexCuts  = _strCutMoth_D0 )
+
+        self.registerLine(self.makeBpLine(
+            line_name=self.name + "B2D0PiPiPiD02PiPiKKNCFromBLine",
+            prescale=self.config['controlPrescaleViaD02KKpipi'],
+            charmed_meson=D2KKPiPiNC,
+            is_NC=True
+            ))
+
+        '''NC Stripping D0 -> eta pi+ pi-, eta -> pi+ pi- pi0 '''
+        EtaPiPiEta2PiPiPi0NC = self.createCombinationSel(OutputList = "D02EtaPiPi_Eta2PiPiPi0NC" + self.name,
+                DecayDescriptor = "[D0 -> eta pi+ pi-]cc",
+                DaughterLists   = [self.Eta2PiPiPi0, self.selPion, self.selPion],
+                PreVertexCuts   = _strCutComb_D0_with_neutral,
+                PostVertexCuts  = _strCutMoth_D0_with_neutral )
+
+        self.registerLine(self.makeBpLine(
+            line_name=self.name + "B2D0PiPiPiD02EtaPiPiEta2PiPiPi0NCFromBLine",
+            prescale=self.config['controlPrescaleViaD02etapipi'],
+            charmed_meson=EtaPiPiEta2PiPiPi0NC,
+            is_NC=True
+            ))
+
+        '''NC Stripping D0 -> eta pi+ pi-, eta -> pi+ pi- gamma '''
+        EtaPiPiEta2PiPiGammaNC = self.createCombinationSel(OutputList = "D02EtaPiPi_Eta2PiPiGammaNC" + self.name,
+                DecayDescriptor = "[D0 -> eta pi+ pi-]cc",
+                DaughterLists   = [self.Eta2PiPiGamma, self.selPion, self.selPion],
+                PreVertexCuts   = _strCutComb_D0_with_neutral,
+                PostVertexCuts  = _strCutMoth_D0_with_neutral )
+
+        self.registerLine(self.makeBpLine(
+            line_name=self.name + "B2D0PiPiPiD02EtaPiPiEta2PiPiGammaNCFromBLine",
+            prescale=self.config['controlPrescaleViaD02etapipi'],
+            charmed_meson=EtaPiPiEta2PiPiGammaNC,
+            is_NC=True
+            ))
+
+    ##  --------------------  End of DpSL  ------------
+    ##------------------------------------------------------------------------------------------
+    def makeEta(self):
+        #get standard containers
+        self.Pi0List     = DataOnDemand(Location = "Phys/StdLoosePi02gg/Particles")
+        self.GammaList   = DataOnDemand(Location = "Phys/StdLooseAllPhotons/Particles")
+        self.LoosePionList    = DataOnDemand(Location = "Phys/StdLoosePions/Particles")
+
+        #clean neutrals
+        _tightpi0_cut   = "(CHILD(CL,1)>0.05) & (CHILD(CL,2)>0.05) & (PT>1*GeV)"
+        _tightgamma_cut = "(CL>0.05) & (PT>500*MeV)"
+
+        #pipi vertex cuts
+        _pipix_cut      = "(BPVVDZ>0) & (VFASPF(VCHI2)<9) & (BPVDIRA>0.95) & (BPVVDCHI2>25)"
+
+        #pipix0 cuts
+        _eta_cut        = "(ADAMASS('eta')<100*MeV)       & (APT>1500*MeV)"
+
+        #filter standard containers
+        self.TightPi0List   = self.createSubSel( OutputList = self.name + '_TightPi0',   InputList  = self.Pi0List,     Cuts = _tightpi0_cut)
+        self.TightGammaList = self.createSubSel( OutputList = self.name + '_TightGamma', InputList  = self.GammaList,   Cuts = _tightgamma_cut)
+
+        #-------------
+
+        self.Eta2PiPiPi0 = self.createCombinationSel( OutputList      = self.name + "_Eta2PiPiPi0",
+                                                      DecayDescriptor = "eta -> pi+ pi- pi0",
+                                                      DaughterLists   = [ self.LoosePionList, self.TightPi0List],
+                                                      PreVertexCuts   = _eta_cut,
+                                                      PostVertexCuts  = _pipix_cut)
+        #-------------
+
+        self.Eta2PiPiGamma = self.createCombinationSel( OutputList      = self.name + "_Eta2PiPiGamma",
+                                                        DecayDescriptor = "eta -> pi+ pi- gamma",
+                                                        DaughterLists   = [ self.LoosePionList, self.TightGammaList],
+                                                        PreVertexCuts   = _eta_cut,
+                                                        PostVertexCuts  = _pipix_cut )
+
+    ##########################################################################
+    ## Basic Function
+    ##########################################################################
+    def createSubSel( self, OutputList, InputList, Cuts ) :
+        '''create a selection using a FilterDesktop'''
+        filter = FilterDesktop(Code = Cuts)
+        return Selection( OutputList,
+                Algorithm = filter,
+                RequiredSelections = [ InputList ] )
+
+    def createCombinationSel( self, OutputList,
+            DecayDescriptor,
+            DaughterLists,
+            DaughterCuts = {} ,
+            PreVertexCuts = "ALL",
+            PostVertexCuts = "ALL") :
+        '''create a selection using a ParticleCombiner with a single decay descriptor'''
+        if type(DecayDescriptor) is list:
+            combiner = CombineParticles( DecayDescriptors = DecayDescriptor,
+                    DaughtersCuts = DaughterCuts,
+                    MotherCut = PostVertexCuts,
+                    CombinationCut = PreVertexCuts,
+                    ReFitPVs = True)
+            return Selection ( OutputList,
+                    Algorithm = combiner,
+                    RequiredSelections = DaughterLists)
+        else:
+            combiner = CombineParticles( DecayDescriptor = DecayDescriptor,
+                    DaughtersCuts = DaughterCuts,
+                    MotherCut = PostVertexCuts,
+                    CombinationCut = PreVertexCuts,
+                    ReFitPVs = True)
+            return Selection ( OutputList,
+                    Algorithm = combiner,
+                    RequiredSelections = DaughterLists)
+    #print "DEBUG here is :",__file__,sys._getframe().f_lineno 
diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingDstarD02ETau.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingDstarD02ETau.py
new file mode 100644
index 0000000000000000000000000000000000000000..1a94d9d54ecf5eaaac5f5214edc5db97eae1cc44
--- /dev/null
+++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingDstarD02ETau.py
@@ -0,0 +1,488 @@
+###############################################################################
+# (c) Copyright 2000-2023 CERN for the benefit of the LHCb Collaboration      #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+#
+__author__ = 'Michele Atzeni, Eluned Anne Smith'
+__date__ = '2023/06/30'
+__version__ = '$Revision: 1.0 $'
+__all__ = ('StrippingDstarD02ETauConf',
+           'default_config')
+#from Gaudi.Configuration import *
+from GaudiConfUtils.ConfigurableGenerators import FilterDesktop, CombineParticles
+from PhysSelPython.Wrappers import Selection, DataOnDemand
+from StrippingConf.StrippingLine import StrippingLine
+from StrippingUtils.Utils import LineBuilder
+from StandardParticles import StdNoPIDsPions, StdAllLooseElectrons, StdLooseKaons
+from Configurables import TisTosParticleTagger
+'''
+  Stripping for:
+  Opposite Sign of the leptons (OS)
+  - D*(2010)+ -> pi+ (D0-> tau+ -> (pi+ pi- pi+ anti-nu_tau) e-)
+  - D*(2010)+ -> pi+ (D0-> tau- -> (pi+ pi- pi+ nu_tau) e+)
+  Same Sign of the leptons (SS)
+  - D*(2010)+ -> pi+ (D0-> tau+ -> (pi+ pi- pi+ anti-nu_tau) e+)
+  - D*(2010)+ -> pi+ (D0-> tau- -> (pi- pi+ pi- nu_tau) e-)
+  Control mode OS:
+  - D*(2010)+ -> pi+ (D0-> pi+ pi- pi+ K-)
+  Control mode SS:
+  - D*(2010)+ -> pi+ (D0-> pi+ pi- pi+ K+)
+'''
+
+default_name = "DstarD02ETau"
+
+default_config = {'NAME': 'DstarD02ETau',
+                  'WGs': ['Charm'],
+                  'BUILDERTYPE': 'StrippingDstarD02ETauConf',
+                  'STREAMS': ['Charm'],
+                  'CONFIG': {'PrescaleETauBox': 1.,
+                             'PrescaleETauSSBox': 1.,
+                             'PrescaleK3piBox': 0.025,  # needed to keep the rates compatible with DST
+                             'PrescaleK3piSSBox': 0.025,  # needed to keep the rates compatible with DST
+                             'prefix': '',
+                             'CUTBASED_M_B': '2865',  # MeV
+                             'CUTBASED_MCORR_B_HIGH': '8600',  # MeV
+                             'CUTBASED_MCORR_B_LOW': '3600',  # MeV
+                             'CUTBASED_MISS_MASS': '876',  # MeV
+                             'CUTBASED_M_TAU_HIGH': '1592',  # MeV
+                             'CUTBASED_M_TAU_LOW': '829',  # MeV
+                             'CUTBASED_M_B': '2865',  # MeV
+                             'CUTBASED_MCORR_B_HIGH': '8600',  # MeV
+                             'CUTBASED_MCORR_B_LOW': '3600',  # MeV
+                             'CUTBASED_MISS_MASS': '876',  # MeV
+                             'HLT_DECISIONS_HAD': {'Hlt2Topo(2|3|4)Body.*Decision%TOS': 0},
+                             #
+                             'P_THREE_PI': "500",  # MeV
+                             'PT_THREE_PI': "110",  # MeV
+                             'TRACKCHI2_THREE_PI': "4",  # dimensionless
+                             'TRGHOPROB_THREE_PI': "0.4",  # dimensionless
+                             'MINIPCHI2BPV_THREE_PI': "16",  # dimensionless
+                             'CUTBASED_PROBNNPI_THREE_PI': '0.5', #to reduce rate
+                             'PROBNNGHOST_THREE_PI': '0.4',
+                             # tau
+                             'TAU_M_LOW_COMB': "400",  # MeV
+                             'TAU_M_HIGH_COMB': "2100",  # MeV
+                             'TAU_AMAXDOCA_PIS': "0.2",  # mm
+                             'TAU_PT': "700.",  # MeV
+                             'TAU_M_LOW': "400",  # MeV
+                             'TAU_M_HIGH': "2100",  # MeV
+                             'TAU_BPVDIRA': "-1.",
+                             'CUTBASED_TAU_BPVVDRHO_LOW': "0.05",  # mm
+                             'CUTBASED_TAU_BPVVDRHO_HIGH': "7",  # mm
+                             'CUTBASED_TAU_BPVVDZ': "0.5",  # mm
+                             'CUTBASED_TAU_VCHI2': "16",
+                             'CUTBASED_TAU_BPVVDCHI2': "16",  # mm
+                             # Electron
+                             'P_E': "0",  # MeV
+                             'PT_E': "110",  # MeV
+                             'TRACKCHI2_E': "4",  # dimensionless
+                             'TRGHOPROB_E': "0.4",  # dimensionless
+                             'MINIPCHI2BPV_E': "16",  # dimensionless
+                             'CUTBASED_PROBNNE_E': '0.1', #dimensionless
+                             'PROBNNGHOST_E': '0.4', #dimensionless
+                             #Kaon for CM
+                             'CUTBASED_PROBNNK_K': '0.2', #dimensionless
+                             # D0
+                             'P_D0': "2000",  # MeV
+                             'PT_D0': "1000",  # MeV
+                             'MINIPCHI2PV_D0': "50",  # dimensionless
+                             'CUTBASED_M_D0_LOW': '500',  # MeV
+                             'CUTBASED_M_D0_HIGH': '2000',  # MeV
+                             'CUTBASED_MCORR_D0_LOW': '1000',  # MeV
+                             'CUTBASED_MCORR_D0_HIGH': '8000',  # MeV
+                             'CUTBASED_MISS_MASS_LOW': '0',  # MeV
+                             'CUTBASED_MISS_MASS_HIGH': '250',  # MeV
+                             'CUTBASED_MISS_MASS_HIGH_KTHREEPI': '1500',  # MeV
+                             'CUTBASED_TAU_TAU_LOW': '-2.5',  # ps
+                             'CUTBASED_TAU_TAU_HIGH': '3',  # ps
+                             'CUTBASED_TAU_BPVVDRHO': '0.33',  # mm
+                             'CUTBASED_VCHI2_TAU':   '20.6',  # dimensionless
+                             'CUTBASED_M_TAU_HIGH': '1592',  # MeV
+                             # Dstm
+                             'DstD0DMWin_LOW': "-10.",    # MeV
+                             'DstD0DMWin_HIGH': "100.",    # MeV
+                             'DstmVtxChi2': "10.",  # dimensionless
+                             'DstMassWin_LOW': "-1250.",  # MeV
+                             'DstMassWin_HIGH': "100.",   # MeV
+                             'PT_PI_FROM_DTSM': "110",  # MeV
+                             'TRACKCHI2_PI_FROM_DTSM': "7",  # dimensionless
+                             'MINIPCHI2BPV_PI_FROM_DTSM': "10",  # dimensionles
+                             # Isolations
+                             'ConeAngles': {"08": 0.8, "10": 1.0, "12": 1.2, "14": 1.4},
+                             'ConeVariables': ['CONEANGLE', 'CONEMULT', 'CONEPTASYM'],
+                             'RelInfoTools_D02ETau': [
+                                 {"Type": "RelInfoVertexIsolation",
+                                  "Location": "DstVars_VertexIsoInfo",
+                                  "DaughterLocations": {"[D*(2010)+ -> ^(Charm -> l  l) pi+]CC": "D0_VertexIsoInfo",
+                                                        "[D*(2010)+ ->  (Charm -> ^l l) pi+]CC": "Tau_VertexIsoInfo",
+                                                        "[D*(2010)+ ->  (Charm -> l ^l) pi+]CC": "E_VertexIsoInfo",
+                                                        "[D*(2010)+ -> ^(Charm -> l  l) ^pi+]CC": "pi_VertexIsoInfo",
+                                                        }},
+                                 {"Type": "RelInfoConeIsolation",
+                                  "ConeSize": 0.5,
+                                  "Variables": [],
+                                  "Location": "DstVars_ConeIsoInfo",
+                                  "DaughterLocations": {"[D*(2010)+ -> ^(Charm -> l  l) pi+]CC": "D0_ConeIsoInfo",
+                                                        "[D*(2010)+ ->  (Charm -> ^l l) pi+]CC": "Tau_ConeIsoInfo",
+                                                        "[D*(2010)+ ->  (Charm -> l ^l) pi+]CC": "E_ConeIsoInfo",
+                                                        "[D*(2010)+ -> ^(Charm -> l  l) ^pi+]CC": "pi_ConeIsoInfo",
+                                                        }},
+                             ],
+                             'RelInfoTools_D02K3pi': [
+                                 {"Type": "RelInfoVertexIsolation",
+                                  "Location": "DstVars_VertexIsoInfo",
+                                  "DaughterLocations": {"[D*(2010)+ -> ^(Charm -> X X X X) pi+]CC": "D0_VertexIsoInfo",
+                                                        "[D*(2010)+ -> ^(Charm -> X X X X) ^pi+]CC": "pi_VertexIsoInfo",
+                                                        }},
+                                 {"Type": "RelInfoConeIsolation",
+                                  "ConeSize": 0.5,
+                                  "Variables": [],
+                                  "Location": "DstVars_ConeIsoInfo",
+                                  "DaughterLocations": {"[D*(2010)+ -> ^(Charm -> X X X X) pi+]CC": "D0_ConeIsoInfo",
+                                                        "[D*(2010)+ -> ^(Charm -> X X X X) ^pi+]CC": "pi_ConeIsoInfo",
+                                                        }},
+                             ]
+                             }
+                  }
+
+
+class StrippingDstarD02ETauConf(LineBuilder):
+    """
+    Builder for  D*(2010)+ -> pi+ (D0-> tau+ (-> pi+ pi- pi+ anti_nutau) e-) stripping lines
+    """
+
+    __configuration_keys__ = default_config['CONFIG'].keys()
+
+    def __init__(self, name, config):
+        LineBuilder.__init__(self, name, config)
+        # Declare line
+        line_taue_OS_box = self.baseLineETau(name, config, same_sign=False)
+        line_taue_SS_box = self.baseLineETau(name, config, same_sign=True)
+        line_K3pi_OS_box = self.baseLineK3pi(name, config, same_sign=False)
+        line_K3pi_SS_box = self.baseLineK3pi(name, config, same_sign=True)
+        lines_to_be = [line_taue_OS_box, line_taue_SS_box,
+                       line_K3pi_OS_box, line_K3pi_SS_box,
+                       ]
+        # register line
+        for i in lines_to_be:
+            self.registerLine(i)
+
+    def baseLineETau(self, name, config,  same_sign=False):
+        """
+        Returns the stripping line for the decay
+        D*(2010)+ -> pi+ (D0-> tau+ (-> pi+ pi- pi+ anti_nutau) e-)
+        and the decay with tau and electron with the same charge
+        """
+        # Define the taus
+        name += "_SS" if same_sign else ""
+        combname = "ETauSS" if same_sign else "ETau"
+        selTau = self._makeTau_3pi(name="Tau_3piFor"+name,
+                                   pionSel=self._makePions4Tau23pi(
+                                       "3PionSelFor"+name, config),
+                                   config=config)
+        # Define the electron
+        # TODO: Should we also include Upstream electrons, as it is done for the pions?
+        selElectrons = self._makeElectrons(name="ElectronsFor"+name,
+                                           config=config)
+        # Combine Tau and Electron to make the D0
+        if same_sign:
+            selD02ETau_3pi = self._makeD02ETau_3pi(name=name,
+                                                   tauSel=selTau,
+                                                   eleSel=selElectrons,
+                                                   config=config,
+                                                   DecayDescriptors=["[D0 -> tau+ e+]cc", "[D0 -> tau- e-]cc"])
+        else:
+            selD02ETau_3pi = self._makeD02ETau_3pi(name=name,
+                                                   tauSel=selTau,
+                                                   eleSel=selElectrons,
+                                                   config=config,
+                                                   DecayDescriptors=["[D0 -> tau+ e-]cc", "[D0 -> tau- e+]cc"])
+        xxCombSel = selD02ETau_3pi
+
+        # Combine D0 and pion to make a Dstm
+        dstar_box = self._makeDstar(config)
+        dst_req_sel = [DataOnDemand("Phys/StdAllNoPIDsPions/Particles"),
+                       DataOnDemand("Phys/StdNoPIDsUpPions/Particles"),
+                       xxCombSel]
+
+        pres = "Prescale"+combname+"Box"
+        _tag_sel = Selection(name+"_seq_"+combname+"_box",
+                             Algorithm=dstar_box,
+                             RequiredSelections=dst_req_sel)
+        # Add isolation variables
+        for conekey, coneitem in (config['ConeAngles']).iteritems():
+            config['RelInfoTools_D02ETau'].append({
+                'Type': 'RelInfoConeVariables', 'ConeAngle': coneitem, 'Variables': config['ConeVariables'],
+                'Location': 'P2CVDst'+conekey,
+                            'DaughterLocations': {
+                                '[D*(2010)+ -> ^(Charm -> l l ) pi+]CC': 'P2CVD0'+conekey,
+                                '[D*(2010)+ -> (Charm -> l l ) ^pi+]CC': 'P2CVpis'+conekey,
+                    '[D*(2010)+ -> (Charm -> ^l l ) pi+]CC': 'P2CL1'+conekey,
+                    '[D*(2010)+ -> (Charm -> l ^l ) pi+]CC': 'P2CL2'+conekey,
+                }
+            })
+        # Declare line
+        line_box = StrippingLine(name+config['prefix']+"Dst2PiD02"+combname+"Box",
+                                 prescale=config[pres],
+                                 # postscale
+                                 MDSTFlag=False,
+                                 RelatedInfoTools=config['RelInfoTools_D02ETau'],
+                                 algos=[_tag_sel],
+                                 MaxCandidates=50
+                                 )
+        return line_box
+
+    def baseLineK3pi(self, name, config,  same_sign=False):
+        """
+        Returns the stripping line for the decay
+        D*(2010)+ -> pi+ (D0-> K- pi+ pi- pi+ ) and the decay with the K with
+        same charge w.r.t. the combination of the three pions
+        """
+        # Define the taus
+        name += "_CM_SS" if same_sign else "_CM"
+        combname = "K3piSS" if same_sign else "K3pi"
+        selPions = self._makePions4Tau23pi("3PionSelFor"+name, config)
+        # TODO: align with electron in case we include Upstream
+        selKaon = self._makeKaons("KaonSelFor"+name, config)
+
+        # Combine Tau and Electron to make the D0
+        if same_sign:
+            selD02ETau_3pi = self._makeD02K3pi(name=name,
+                                               piSel=selPions,
+                                               KSel=selKaon,
+                                               config=config,
+                                               DecayDescriptors=["[D0 -> K+ pi+ pi- pi+]cc"])
+        else:
+            selD02ETau_3pi = self._makeD02K3pi(name=name,
+                                               piSel=selPions,
+                                               KSel=selKaon,
+                                               config=config,
+                                               DecayDescriptors=["[D0 -> K- pi+ pi- pi+]cc"])
+        xxCombSel =  selD02ETau_3pi
+
+        # Combine D0 and pion to make a Dstm
+        dstar_box = self._makeDstar(config)
+        dst_req_sel = [DataOnDemand("Phys/StdAllNoPIDsPions/Particles"),
+                       DataOnDemand("Phys/StdNoPIDsUpPions/Particles"),
+                       xxCombSel]
+
+        pres = "Prescale"+combname+"Box"
+        _tag_sel = Selection(name+"_seq_"+combname+"_box",
+                             Algorithm=dstar_box,
+                             RequiredSelections=dst_req_sel)
+
+        for conekey, coneitem in (config['ConeAngles']).iteritems():
+            config['RelInfoTools_D02K3pi'].append({
+                'Type': 'RelInfoConeVariables',
+                'ConeAngle': coneitem,
+                'Variables': config['ConeVariables'],
+                'Location': 'P2CVDst'+conekey,
+                            'DaughterLocations': {
+                                '[D*(2010)+ -> ^(Charm -> X X X X ) pi+]CC': 'P2CVD0'+conekey,
+                                '[D*(2010)+ -> (Charm -> X X X X) ^pi+]CC': 'P2CVpis'+conekey, }
+            })
+
+        # Declare line
+        line_box = StrippingLine(name+config['prefix']+"Dst2PiD02"+combname+"Box",
+                                 prescale=config[pres],
+                                 # postscale
+                                 MDSTFlag=False,
+                                 RelatedInfoTools=config['RelInfoTools_D02K3pi'],
+                                 algos=[_tag_sel],
+                                 MaxCandidates=50
+                                 )
+        return line_box
+
+    ####################################################
+    def _makeElectrons(self, name, config):
+        """
+        Electron selection
+        """
+        _code = self._eFinalStateKinematicCuts(config)
+        #to reduce rate
+        _code += "  & (PROBNNghost < "+config['PROBNNGHOST_E'] + \
+            ") & (PROBNNe > " + config['CUTBASED_PROBNNE_E'] + ")"
+        _Filter = FilterDesktop(Code=_code)
+
+        return Selection(name,
+                         Algorithm=_Filter,
+                         RequiredSelections=[StdAllLooseElectrons])
+    ####################################################
+
+    def _makeKaons(self, name, config):
+        """
+        Kaons selection
+        """
+        _code = self._kaonsFinalStateKinematicCuts(config)
+        _code += "  & (PROBNNghost < "+config['PROBNNGHOST_E'] + \
+            ") & (PROBNNk > " + config['CUTBASED_PROBNNK_K'] + ")"
+        _Filter = FilterDesktop(Code=_code)
+
+        return Selection(name,
+                         Algorithm=_Filter,
+                         RequiredSelections=[StdLooseKaons])
+
+    #####################################################
+    def _eFinalStateKinematicCuts(self, config):
+        _code = "(P  > " + config['P_E'] + "*MeV) & "\
+                "(PT > " + config['PT_E'] + "*MeV) & "\
+                "(MIPCHI2DV(PRIMARY) > " + config['MINIPCHI2BPV_E'] + ")     & "\
+                "(TRCHI2DOF < " + config['TRACKCHI2_E'] + ")     & "\
+                "(TRGHOSTPROB < " + config['TRGHOPROB_E'] + ")      "
+        return _code
+    ###########################################################
+
+    def _kaonsFinalStateKinematicCuts(self, config):
+        # keep aligned to electron
+        _code = "(P  > " + config['P_E'] + "*MeV) & "\
+                "(PT > " + config['PT_E'] + "*MeV) & "\
+                "(MIPCHI2DV(PRIMARY) > " + config['MINIPCHI2BPV_E'] + ")     & "\
+                "(TRCHI2DOF < " + config['TRACKCHI2_E'] + ")     & "\
+                "(TRGHOSTPROB < " + config['TRGHOPROB_E'] + ") "
+        # _code = "(P  > 0 )"
+        return _code
+    #############################################################
+
+    def _makeTau_3pi(self, name, pionSel, config):
+
+        # Minimum mass = 3 pions (140 MeV) = 420 MeV
+        # This is a variation of the StdTightDetachedTau3pi in https://gitlab.cern.ch/lhcb/Stripping/-/blob/2018-patches/Phys/CommonParticlesArchive/python/CommonParticlesArchive/Stripping28r2p1/CommonParticles/StdTightDetachedTau.py
+        _preambulo = [""]
+        _combcut = "(APT>500.*MeV) & ((AM>"+config['TAU_M_LOW_COMB'] + "*MeV)"\
+            " & (AM<"+config['TAU_M_HIGH_COMB'] + "*MeV)) "\
+            " & (AMAXDOCA('')<"+config['TAU_AMAXDOCA_PIS'] + "*mm)"\
+            " & (ANUM(PT > 500*MeV) >= 1)"
+        _mcut = "(PT>"+config['TAU_PT'] + "*MeV) & (M>"+config['TAU_M_LOW'] + "*MeV)"\
+            "& (M<"+config['TAU_M_HIGH'] + "*MeV) & (BPVDIRA>"+config['TAU_BPVDIRA'] + ")"\
+            "& (VFASPF(VCHI2) < " + config['CUTBASED_TAU_VCHI2'] + ")"\
+            "& (BPVVDCHI2>" + config['CUTBASED_TAU_BPVVDCHI2'] + ") "\
+            "& (BPVVDRHO>" + config['CUTBASED_TAU_BPVVDRHO_LOW'] + "*mm)"\
+            "& (BPVVDRHO<" + config['CUTBASED_TAU_BPVVDRHO_HIGH'] + "*mm)"\
+            "& (BPVVDZ>" + config['CUTBASED_TAU_BPVVDZ'] + "*mm)"
+
+        _CombineTau = CombineParticles(DecayDescriptors=["[tau+ -> pi+ pi- pi+]cc"],
+                                       CombinationCut=_combcut,
+                                       MotherCut=_mcut,
+                                       Preambulo=_preambulo)
+
+        return Selection(name,
+                         Algorithm=_CombineTau,
+                         RequiredSelections=[pionSel]
+                         )
+
+    def _makePions4Tau23pi(self, name, config):
+        _code = self._hadFinalStateKinematicCuts_3pi(config)
+        _code += "  & (PROBNNghost < "+config['PROBNNGHOST_THREE_PI'] + \
+            ") & (PROBNNpi > " + config['CUTBASED_PROBNNPI_THREE_PI'] + ")"
+        _code += "  & (MIPCHI2DV(PRIMARY) > " + \
+            config['MINIPCHI2BPV_THREE_PI'] + ")"
+        _Filter = FilterDesktop(Code=_code)
+        return Selection(name,
+                         Algorithm=_Filter,
+                         RequiredSelections=[StdNoPIDsPions]
+                         )
+
+    # Template for combine particles for D* -> D0 pi
+    def _makeDstar(self, config):
+        # loosks for all D0s in the decay, returns the largest mass (mass of the D0 since there is only one) and computes the mass difference with the mother
+        dstcomb_dstcut = "((M-MAXTREE('D0'==ABSID,M)-145.42) < %(DstD0DMWin_HIGH)s *MeV) & ((M-MAXTREE('D0'==ABSID,M)-145.42) > %(DstD0DMWin_LOW)s *MeV) & (VFASPF(VCHI2/VDOF)< %(DstmVtxChi2)s)"
+        dstcomb_combcut = "( (AM - 2010.26) <  %(DstMassWin_HIGH)s * MeV) & ( (AM - 2010.26) >  %(DstMassWin_LOW)s * MeV)"
+        dstcomb_picut = "(PT> %(PT_PI_FROM_DTSM)s * MeV) &  ( MIPCHI2DV(PRIMARY)< %(MINIPCHI2BPV_PI_FROM_DTSM)s) & (TRCHI2DOF<%(TRACKCHI2_PI_FROM_DTSM)s) "
+        #dstcomb_picut += "& (TRGHOSTPROB> %(TRGHOPROB_THREE_PI)s * MeV) & (PROBNNghost> %(PROBNNGHOST_THREE_PI)s * MeV) & (PROBNNpi> %(CUTBASED_PROBNNPI_THREE_PI)s ) " #try to reduce the rate
+        #dstcomb_picut += "& (TRGHOSTPROB> %(TRGHOPROB_THREE_PI)s * MeV)" # & (PROBNNghost> %(PROBNNGHOST_THREE_PI)s * MeV) " #try to reduce the rate
+        dstcomb_picut += "& (TRGHOSTPROB< %(TRGHOPROB_THREE_PI)s ) & (PROBNNpi> %(CUTBASED_PROBNNPI_THREE_PI)s) & (PROBNNghost< %(PROBNNGHOST_THREE_PI)s) " #try to reduce the rate
+        dstcomb_d0cut = "PT>0"
+
+        dstar = CombineParticles(DecayDescriptors=['D*(2010)+ -> D0 pi+', 'D*(2010)- -> D0 pi-'],
+                                 DaughtersCuts={"pi+": dstcomb_picut % config,
+                                                "D0": dstcomb_d0cut % config
+                                                },
+                                 CombinationCut=dstcomb_combcut % config,
+                                 MotherCut=dstcomb_dstcut % config
+                                 )
+
+        return dstar
+
+    ##################################################
+
+    def _hadFinalStateKinematicCuts_3pi(self, config):
+        _code = "(P  > " + config['P_THREE_PI'] + "*MeV) & "\
+                "(PT > " + config['PT_THREE_PI'] + "*MeV) & "\
+                "(TRCHI2DOF < " + config['TRACKCHI2_THREE_PI'] + ")     & "\
+                "(TRGHOSTPROB < " + config['TRGHOPROB_THREE_PI'] + ")     "
+
+        return _code
+    ##################################################
+
+    def _makeD02ETau_3pi(self, name, tauSel, eleSel, config, DecayDescriptors):
+
+        preambulo = ["PTRANS = P*sqrt( 1-BPVDIRA**2 )",
+                     "MCOR = sqrt(M**2 + PTRANS**2) + PTRANS",
+                     "allpi = ((('pi+') == ABSID) | (('K+') == ABSID)) ",
+                     "sumpt    = SUMTREE( allpi , PT )"]
+
+        _combcut = "(AM  > 400 *MeV) & "\
+            "(AM  < 2200 *MeV)"
+        _mcut = "((CHILD(MIPCHI2DV(PRIMARY),1)) > " + config['MINIPCHI2PV_D0']+")  &  "\
+            "(P > "+config['P_D0']+"*MeV) & (PT > "+config['PT_D0']+"*MeV) & " \
+            "(M > " + config['CUTBASED_M_D0_LOW'] + "*MeV) & "\
+            "(M < " + config['CUTBASED_M_D0_HIGH'] + "*MeV) & "\
+            "(MCOR < " + config['CUTBASED_MCORR_D0_HIGH'] + "*MeV) & "\
+            "(MCOR > " + config['CUTBASED_MCORR_D0_LOW'] + "*MeV) & "\
+            "(M - CHILD(M,1) - CHILD(M,2) > " + config['CUTBASED_MISS_MASS_LOW'] + "*MeV) & "\
+            "(M - CHILD(M,1) - CHILD(M,2) < " + config['CUTBASED_MISS_MASS_HIGH'] + "*MeV) & "\
+            "(CHILD(M,1) * (CHILD(VFASPF(VZ),1) - VFASPF(VZ) )/(CHILD(PZ,1) * 0.299792458) < " + config['CUTBASED_TAU_TAU_HIGH'] + ") & "\
+            "(CHILD(M,1) * (CHILD(VFASPF(VZ),1) - VFASPF(VZ) )/(CHILD(PZ,1) * 0.299792458) > " + \
+            config['CUTBASED_TAU_TAU_LOW'] + ") "
+
+        _CombineTau = CombineParticles(DecayDescriptors=DecayDescriptors,
+                                       CombinationCut=_combcut,
+                                       MotherCut=_mcut,
+                                       Preambulo=preambulo)
+
+        return Selection(name+"_TauE_3pi",
+                         Algorithm=_CombineTau,
+                         RequiredSelections=[tauSel, eleSel])
+
+    def _makeD02K3pi(self, name, piSel, KSel, config, DecayDescriptors):
+
+        preambulo = ["PTRANS = P*sqrt( 1-BPVDIRA**2 )",
+                     "MCOR = sqrt(M**2 + PTRANS**2) + PTRANS",
+                     "allpi = ((('pi+') == ABSID) | (('K+') == ABSID)) ",
+                     "sumpt    = SUMTREE( allpi , PT )",
+                     "THREEPI_PX = (CHILD(PX,2) + CHILD(PX,3) + CHILD(PX,4))",
+                     "THREEPI_PY = (CHILD(PY,2) + CHILD(PY,3) + CHILD(PY,4))",
+                     "THREEPI_PZ = (CHILD(PZ,2) + CHILD(PZ,3) + CHILD(PZ,4))",
+                     "THREEPI_E2 = (CHILD(E,2) + CHILD(E,3) + CHILD(E,4))**2",
+                     "THREEPI_P2 = (THREEPI_PX**2 + THREEPI_PY**2 + THREEPI_PZ**2)",
+                     "THREEPI_M = sqrt(THREEPI_E2 - THREEPI_P2 )"]
+
+        _combcut = "(AM  > 400 *MeV) & "\
+            "(AM  < 2200 *MeV)"
+        # TODO: The following cut is present in the selection of the LFV channel but not here, might need simulation to understand how the differ w.r.t. CM
+        # _mcut      = "((CHILD(MIPCHI2DV(PRIMARY),1)) > "   + config['MINIPCHI2PV_D0']+")  &  "\
+        _mcut = "(P > "+config['P_D0']+"*MeV) & (PT > "+config['PT_D0']+"*MeV) & " \
+            "(M > " + config['CUTBASED_M_D0_LOW'] + "*MeV) & "\
+            "(M < " + config['CUTBASED_M_D0_HIGH'] + "*MeV) & "\
+            "(MCOR < " + config['CUTBASED_MCORR_D0_HIGH'] + "*MeV) & "\
+            "(MCOR > " + config['CUTBASED_MCORR_D0_LOW'] + "*MeV) &"\
+            "(M - CHILD(M,1) - THREEPI_M > " + config['CUTBASED_MISS_MASS_LOW'] + "*MeV) & "\
+            "(M - CHILD(M,1) - THREEPI_M < " + config['CUTBASED_MISS_MASS_HIGH_KTHREEPI'] + "*MeV) "\
+            # "(CHILD(M,1) * (CHILD(VFASPF(VZ),1) - VFASPF(VZ) )/(CHILD(PZ,1) * 0.299792458) < " + config['CUTBASED_TAU_TAU_HIGH'] + ") & "\
+        # "(CHILD(M,1) * (CHILD(VFASPF(VZ),1) - VFASPF(VZ) )/(CHILD(PZ,1) * 0.299792458) > " + config['CUTBASED_TAU_TAU_LOW'] + ") "
+
+        _CombineTau = CombineParticles(DecayDescriptors=DecayDescriptors,  # TOCHECK
+                                       CombinationCut=_combcut,
+                                       MotherCut=_mcut,
+                                       Preambulo=preambulo)
+
+        return Selection(name+"_K3pi",
+                         Algorithm=_CombineTau,
+                         RequiredSelections=[piSel, KSel])
+
diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingHc2V03H.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingHc2V03H.py
index d3888168faa1cbed51e85b5dd40fa51f82370dcd..661ed20213155ce9ad69356c5655325efcdf4b45 100644
--- a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingHc2V03H.py
+++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingHc2V03H.py
@@ -74,8 +74,8 @@ default_config = {
         'Xic_VCHI2VDOF_MAX_LL': 3.0,
         'Xic_VCHI2VDOF_MAX_DD': 3.0,
         # Maximum logIPCHI2. The Lc+/Xic+ come from the PV
-        'Lambdac_logIPCHI2_MAX': 5.0,
-        'Xic_logIPCHI2_MAX': 5.0,
+        #'Lambdac_logIPCHI2_MAX': 5.0,
+        #'Xic_logIPCHI2_MAX': 5.0,
         # Maximum angle between Lc+ momentum and Lc+ direction of flight
         'Lambdac_acosBPVDIRA_MAX_DD': 45.0 * mrad,
         'Lambdac_acosBPVDIRA_MAX_LL': 140.0 * mrad,
@@ -315,8 +315,7 @@ class StrippingHc2V03HConf(LineBuilder):
             "& ((CHILD(VFASPF(VZ),1) - VFASPF(VZ)) > {0[LambdaMinFD_LL]})"
             "& (min(CHILD(PT,2), CHILD(PT,3), CHILD(PT,4)) > {0[Bach_PT_MIN]})"
             "& (min(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MIN]})"
-            "& (max(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MAX]})"
-            "& (log(MIPCHI2DV(PRIMARY)) < {0[Lambdac_logIPCHI2_MAX]})").format(
+            "& (max(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MAX]})").format(
                 self.config)
 
         lambdacCuts_DD = (
@@ -327,8 +326,7 @@ class StrippingHc2V03HConf(LineBuilder):
             "& ((CHILD(VFASPF(VZ),1) - VFASPF(VZ)) > {0[LambdaMinFD_DD]})"
             "& (min(CHILD(PT,2), CHILD(PT,3), CHILD(PT,4)) > {0[Bach_PT_MIN]})"
             "& (min(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MIN]})"
-            "& (max(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MAX]})"
-            "& (log(MIPCHI2DV(PRIMARY)) < {0[Lambdac_logIPCHI2_MAX]})").format(
+            "& (max(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MAX]})").format(
                 self.config)
 
         comb12Cuts = ("(DAMASS('Lambda_c+') < {0[Comb_ADAMASS_WIN]})"
@@ -396,8 +394,7 @@ class StrippingHc2V03HConf(LineBuilder):
             "& ((CHILD(VFASPF(VZ),1) - VFASPF(VZ)) > {0[LambdaMinFD_LL]})"
             "& (min(CHILD(PT,2), CHILD(PT,3), CHILD(PT,4)) > {0[Bach_PT_MIN]})"
             "& (min(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MIN]})"
-            "& (max(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MAX]})"
-            "& (log(MIPCHI2DV(PRIMARY)) < {0[Xic_logIPCHI2_MAX]})").format(
+            "& (max(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MAX]})").format(
                 self.config)
 
         xicCuts_DD = (
@@ -408,8 +405,7 @@ class StrippingHc2V03HConf(LineBuilder):
             "& ((CHILD(VFASPF(VZ),1) - VFASPF(VZ)) > {0[LambdaMinFD_DD]})"
             "& (min(CHILD(PT,2), CHILD(PT,3), CHILD(PT,4)) > {0[Bach_PT_MIN]})"
             "& (min(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MIN]})"
-            "& (max(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MAX]})"
-            "& (log(MIPCHI2DV(PRIMARY)) < {0[Xic_logIPCHI2_MAX]})").format(
+            "& (max(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MAX]})").format(
                 self.config)
 
         comb12Cuts = ("(DAMASS('Xi_c+') < {0[Comb_ADAMASS_WIN]})"
diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingHc2V2H.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingHc2V2H.py
index eed2a9e3952f3a83f8d10247e728b256d2299e72..c2cd5e52827681584a26faec3ea7cdd0ee2d706b 100644
--- a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingHc2V2H.py
+++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingHc2V2H.py
@@ -16,8 +16,8 @@ In this file the stripping line for this decay is build
 Throughout this file, 'Bachelor' refers to the children of the Lambda_c+ which is
 not part of the V- decay.
 """
-__author__ = ['Andrea Merli','Louis Henry']
-__date__ = '13/10/2017'
+__author__ = ['Andrea Merli','Louis Henry', 'Sergio Jaimes']
+__date__ = '26/06/2023'
 
 __all__ = (
     'default_config',
@@ -27,9 +27,9 @@ __all__ = (
 from GaudiKernel.SystemOfUnits import MeV, GeV, mm, mrad
 from GaudiConfUtils.ConfigurableGenerators import CombineParticles, FilterDesktop, DaVinci__N3BodyDecays
 from StandardParticles import StdNoPIDsDownPions as InputDownPions
-from StandardParticles import StdNoPIDsPions as InputPions
-from StandardParticles import StdNoPIDsKaons as InputKaons
-from StandardParticles import StdLooseLambdaLL as InputLambdasLL
+from StandardParticles import StdAllLoosePions as InputPions
+from StandardParticles import StdAllLooseKaons as InputKaons
+from StandardParticles import StdVeryLooseLambdaLL as InputLambdasLL
 from StandardParticles import StdLooseLambdaDD as InputLambdasDD
 
 from PhysSelPython.Wrappers import Selection, MergedSelection, DataOnDemand
@@ -40,10 +40,12 @@ default_config = {
     'NAME': 'Hc2V2H',
     'WGs': ['Charm'],
     'BUILDERTYPE': 'StrippingHc2V2HConf',
-    'STREAMS': ['CharmCompleteEvent'],
+    'STREAMS': ['Charm'],
     'CONFIG': {
         # Minimum Lc+ bachelor momentum
         'Bach_P_MIN': 2.0*GeV,
+        # Minimum Lc+ bachelor transverse momentum
+        'Bach_PT_MIN': 150 * MeV,
         # PID of the Lambda proton
         "ProbNNpMin_LL" : 0.10,
         "ProbNNpMin_DD" : 0.0,
@@ -183,7 +185,7 @@ class StrippingHc2V2HConf(LineBuilder):
                                                  RequiredSelections =  [DataOnDemand(Location = "Phys/StdLooseLambdaDD/Particles")])
         
         self.LambdaListLooseLL = MergedSelection("StdLooseLLLambdaFor" + self.name,
-                                                 RequiredSelections =  [DataOnDemand(Location = "Phys/StdLooseLambdaLL/Particles")])
+                                                 RequiredSelections =  [DataOnDemand(Location = "Phys/StdVeryLooseLambdaLL/Particles")])
         
         self.LambdaListLL =  self.createSubSel(OutputList = "LambdaLLFor" + self.name,
                                                InputList = self.LambdaListLooseLL ,
@@ -407,6 +409,7 @@ class StrippingHc2V2HConf(LineBuilder):
             "& ({0[Hc_PVDispCut_LLL]})"
             "& (BPVDIRA > cos({0[Hc_acosBPVDIRA_MAX_LLL]}))"
             "& (ADMASS('Lambda_c+') < {0[Hc_ADMASS_WIN]})"
+            "& (min(CHILD(PT,2), CHILD(PT,3)) > {0[Bach_PT_MIN]})"
         ).format(self.config)
 
         lambdacCuts_DDL = (
@@ -414,6 +417,7 @@ class StrippingHc2V2HConf(LineBuilder):
             "& ({0[Hc_PVDispCut_DDL]})"
             "& (BPVDIRA > cos({0[Hc_acosBPVDIRA_MAX_DDL]}))"
             "& (ADMASS('Lambda_c+') < {0[Hc_ADMASS_WIN]})"
+            "& (min(CHILD(PT,2), CHILD(PT,3)) > {0[Bach_PT_MIN]})"
         ).format(self.config)
 
         lambdacCuts_DDD = (
@@ -421,6 +425,7 @@ class StrippingHc2V2HConf(LineBuilder):
             "& ({0[Hc_PVDispCut_DDD]})"
             "& (BPVDIRA > cos({0[Hc_acosBPVDIRA_MAX_DDD]}))"
             "& (ADMASS('Lambda_c+') < {0[Hc_ADMASS_WIN]})"
+            "& (min(CHILD(PT,2), CHILD(PT,3)) > {0[Bach_PT_MIN]})"
         ).format(self.config)
 
         comb12Cuts = (
@@ -501,6 +506,7 @@ class StrippingHc2V2HConf(LineBuilder):
             "& ({0[Hc_PVDispCut_LLL]})"
             "& (BPVDIRA > cos({0[Hc_acosBPVDIRA_MAX_LLL]}))"
             "& (ADMASS('Xi_c+') < {0[Hc_ADMASS_WIN]})"
+            "& (min(CHILD(PT,2), CHILD(PT,3)) > {0[Bach_PT_MIN]})"
         ).format(self.config)
 
         xicCuts_DDL = (
@@ -508,6 +514,7 @@ class StrippingHc2V2HConf(LineBuilder):
             "& ({0[Hc_PVDispCut_DDL]})"
             "& (BPVDIRA > cos({0[Hc_acosBPVDIRA_MAX_DDL]}))"
             "& (ADMASS('Xi_c+') < {0[Hc_ADMASS_WIN]})"
+            "& (min(CHILD(PT,2), CHILD(PT,3)) > {0[Bach_PT_MIN]})"
         ).format(self.config)
 
         xicCuts_DDD = (
@@ -515,6 +522,7 @@ class StrippingHc2V2HConf(LineBuilder):
             "& ({0[Hc_PVDispCut_DDD]})"
             "& (BPVDIRA > cos({0[Hc_acosBPVDIRA_MAX_DDD]}))"
             "& (ADMASS('Xi_c+') < {0[Hc_ADMASS_WIN]})"
+            "& (min(CHILD(PT,2), CHILD(PT,3)) > {0[Bach_PT_MIN]})"
         ).format(self.config)
 
         comb12Cuts = (
diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingHc2V3H.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingHc2V3H.py
index 859d5c458100b4a16f7610f5566ca337c5988280..66501e01a91b86129a819f76d985b587c5176611 100644
--- a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingHc2V3H.py
+++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingHc2V3H.py
@@ -18,8 +18,8 @@ Throughout this file, 'Bachelor' refers to the children of the Lambda_c+ which i
 not part of the V0 decay.
 """
 
-__author__ = ['Louis Henry']
-__date__ = '13/10/2017'
+__author__ = ['Louis Henry', 'Sergio Jaimes']
+__date__ = '26/06/2023'
 
 __all__ = (
     'default_config',
@@ -29,9 +29,9 @@ __all__ = (
 from GaudiKernel.SystemOfUnits import MeV, GeV, mm, mrad
 from GaudiConfUtils.ConfigurableGenerators import CombineParticles, FilterDesktop, DaVinci__N4BodyDecays
 from StandardParticles import StdNoPIDsDownPions as InputDownPions
-from StandardParticles import StdNoPIDsPions as InputPions
-from StandardParticles import StdNoPIDsKaons as InputKaons
-from StandardParticles import StdLooseLambdaLL as InputLambdasLL
+from StandardParticles import StdAllLoosePions as InputPions
+from StandardParticles import StdAllLooseKaons as InputKaons
+from StandardParticles import StdVeryLooseLambdaLL as InputLambdasLL
 from StandardParticles import StdLooseLambdaDD as InputLambdasDD
 
 from PhysSelPython.Wrappers import Selection, MergedSelection, DataOnDemand
@@ -42,10 +42,15 @@ default_config = {
     'NAME': 'Hc2V3H',
     'WGs': ['Charm'],
     'BUILDERTYPE': 'StrippingHc2V3HConf',
-    'STREAMS': ['CharmCompleteEvent'],
+    'STREAMS': ['Charm'],
     'CONFIG': {
         # Minimum Lc+ bachelor momentum
         'Bach_P_MIN': 2.0*GeV,
+        # Minimum Lc+ bachelor transverse momentum
+        'Bach_PT_MIN': 200 * MeV,
+        # Minimum Lc+ bachelor IPCHI2
+        'Bach_IPCHI2_MIN': 1,
+        'Bach_IPCHI2_MAX': 9,
         # PID of the Lambda proton
         "ProbNNpMin_LL" : 0.10,
         "ProbNNpMin_DD" : 0.00,
@@ -179,7 +184,7 @@ class StrippingHc2V3HConf(LineBuilder):
                                                  RequiredSelections =  [DataOnDemand(Location = "Phys/StdLooseLambdaDD/Particles")])
         
         self.LambdaListLooseLL = MergedSelection("StdLooseLLLambdaFor" + self.name,
-                                                 RequiredSelections =  [DataOnDemand(Location = "Phys/StdLooseLambdaLL/Particles")])
+                                                 RequiredSelections =  [DataOnDemand(Location = "Phys/StdVeryLooseLambdaLL/Particles")])
         
         self.LambdaListLL =  self.createSubSel(OutputList = "LambdaLLFor" + self.name,
                                                InputList = self.LambdaListLooseLL ,
@@ -367,6 +372,9 @@ class StrippingHc2V3HConf(LineBuilder):
             "& ({0[Xic_PVDispCut_LLL]})"
             "& (BPVDIRA > cos({0[Xic_acosBPVDIRA_MAX_LLL]}))"
             "& (ADMASS('Xi_c0') < {0[Xic_ADMASS_WIN]})"
+            "& (min(CHILD(PT,2), CHILD(PT,3), CHILD(PT,4)) > {0[Bach_PT_MIN]})"
+            "& (min(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MIN]})"
+            "& (max(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MAX]})"
         ).format(self.config)
 
         xicCuts_DDL = (
@@ -374,6 +382,9 @@ class StrippingHc2V3HConf(LineBuilder):
             "& ({0[Xic_PVDispCut_DDL]})"
             "& (BPVDIRA > cos({0[Xic_acosBPVDIRA_MAX_DDL]}))"
             "& (ADMASS('Xi_c0') < {0[Xic_ADMASS_WIN]})"
+            "& (min(CHILD(PT,2), CHILD(PT,3), CHILD(PT,4)) > {0[Bach_PT_MIN]})"
+            "& (min(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MIN]})"
+            "& (max(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MAX]})"
         ).format(self.config)
 
         xicCuts_DDD = (
@@ -381,6 +392,9 @@ class StrippingHc2V3HConf(LineBuilder):
             "& ({0[Xic_PVDispCut_DDD]})"
             "& (BPVDIRA > cos({0[Xic_acosBPVDIRA_MAX_DDD]}))"
             "& (ADMASS('Xi_c0') < {0[Xic_ADMASS_WIN]})"
+            "& (min(CHILD(PT,2), CHILD(PT,3), CHILD(PT,4)) > {0[Bach_PT_MIN]})"
+            "& (min(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MIN]})"
+            "& (max(CHILD(MIPCHI2DV(PRIMARY),2), CHILD(MIPCHI2DV(PRIMARY),3), CHILD(MIPCHI2DV(PRIMARY),4)) > {0[Bach_IPCHI2_MAX]})"
         ).format(self.config)
 
         comb12Cuts = (
diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingLambdac2LambdaEtaPi.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingLambdac2LambdaEtaPi.py
new file mode 100644
index 0000000000000000000000000000000000000000..691059c8e9792d3c27b7fbbff75a2c656272a81f
--- /dev/null
+++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingLambdac2LambdaEtaPi.py
@@ -0,0 +1,362 @@
+###############################################################################
+# (c) Copyright 2000-2019 CERN for the benefit of the LHCb Collaboration      #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+'''
+The code is for analysis of the decay
+  Lambda_c+ -> Lambda0 eta pi+
+where the daughter baryon is reconstructed via:
+  Lambda0 -> p pi- (from StdLooseLambdaLL/DD)
+
+A bachelor pi from Lambda_b0 is tagged for reducing the backgrond rate i.e.
+  Lambda_b0 -> Lambda_c+ pi-
+'''
+
+
+__author__ = ['Xiao-Rui Lyu', 'Yangjie Su']
+__date__ = '2023/06/30'
+__version__ = '$Revision: 0.1 $'
+__all__ = ('StrippingLambdac2LambdaEtaPi'
+           ,'default_config')
+
+
+from Gaudi.Configuration import *
+from GaudiConfUtils.ConfigurableGenerators import FilterDesktop, CombineParticles
+from StandardParticles import StdLoosePions, StdNoPIDsDownPions, StdLooseKaons, StdLooseDownKaons
+from StandardParticles import  StdAllLoosePions, StdAllLooseKaons, StdLooseMuons, StdAllLooseProtons, StdAllLooseMuons, StdAllVeryLooseMuons
+from PhysSelPython.Wrappers import Selection, DataOnDemand, MergedSelection
+from PhysSelPython.Wrappers import MultiSelectionSequence
+from StrippingConf.StrippingLine import StrippingLine
+from StrippingUtils.Utils import LineBuilder
+from GaudiKernel.SystemOfUnits import MeV, GeV, mm, picosecond
+import sys
+
+
+default_name='Lambdac2LambdaEtaPi'
+    #### This is the dictionary of all tunable cuts ########
+default_config={
+      'NAME'        : 'Lambdac2LambdaEtaPi',
+      'WGs'         : ['Charm'],
+      'BUILDERTYPE' : 'StrippingLambdac2LambdaEtaPi',
+      'STREAMS'     : ['Charm'],
+      'CONFIG'      : {
+          'GEC_nLongTrk' : 160    # adimensional
+        , 'signalPrescale'       :   1.0
+        , 'TRCHI2DOFMax'            :   3.0
+        , 'GhostProb'               :   0.3
+        , 'TrGhostProbMax'          :   0.25 # same for all particles
+        , 'MINIPCHI2'               :   3.0  # adimensiional
+        , 'MuonP'                   :   3*GeV
+        , 'MuonPT'                  :   250*MeV
+        , 'MuonIPCHI2'              :   4.0 
+        , 'MuonPIDmu'               :   0.0
+        , 'PionP'                   :   3*GeV
+        , 'PionPT'                  :   250*MeV
+        , 'PionPIDK'                :  5.0
+        , 'Pion_PIDpiPIDK_Min'      :   0.0
+        , 'KaonP'                   :   3*GeV
+        , 'KaonPT'                  :   250*MeV
+        , 'KaonPIDK'                :  10.0
+        , 'Kaon_PIDKPIDpi_Min'      :   5.0
+        , 'ProbNNpMin'              :   0.2 #ProbNNp cut for proton in L0, to suppress the bkg of L0 
+        , 'ProbNNp'                 :   0.4
+        , 'ProbNNk'                 :   0.4
+        , 'ProbNNpi'                :   0.4
+        , 'ProbNNpiMax'             :   0.9
+        , 'LambdaLLPMin'            :2000.0*MeV
+        , 'LambdaLLPTMin'           : 500.0*MeV
+        , 'LambdaLLCutMass'         :  50.0*MeV
+        , 'LambdaLLCutFDChi2'       : 100.0 ## unitless
+        , 'LambdaDDPMin'            :2000.0*MeV
+        , 'LambdaDDPTMin'           : 500.0*MeV
+        , 'LambdaDDCutMass'         :  50.0*MeV
+        , 'LambdaDDCutFDChi2'       : 100.0## unitless
+        , 'LambdaVertexChi2'        :   10.0## max chi2/ndf for Lambda0 vertex
+
+        , 'Lc_M_HalfWin'           :   200.0*MeV
+        , 'Lb_M_HalfWin'           :   200.0*MeV
+        , 'Lc_Daug_1of3_MIPCHI2DV_Min': 3.0
+        , 'Lc_ADOCAMAX_Max'         :   0.15*mm
+        , 'Lc_APT_Min'              :   1.2*GeV
+        , 'Lc_AP_Min'               :   15*GeV
+        , 'Lc_VCHI2_Max'            :  30.0
+        , 'Lc_BPVVDCHI2_Min'        :  16.0
+        , 'Lc_BPVVDZ_Min'           :  0.5*mm
+        , 'Lc_BPVDIRA_Min'          :   0.95
+
+        #For Lb
+        , 'Lb_AP_Min': 20*GeV 
+        , 'Lb_APT_Min': 1.5*GeV 
+        , 'Lb_VCHI2_Max': 30 
+        , 'Lb_BPVVDCHI2_Min': 16 
+        , 'Lb_BPVDIRA_Min': 0.95 
+      } ## end of 'CONFIG' 
+}  ## end of default_config
+
+#-------------------------------------------------------------------------------------------------------------
+class StrippingLambdac2LambdaEtaPi(LineBuilder) : 
+    __configuration_keys__ = default_config['CONFIG'].keys()
+
+    def __init__(self, name, config) :
+        LineBuilder.__init__(self, name, config)
+        self.name = name
+        self.config = config
+       
+        GECs = { "Code":"( recSummaryTrack(LHCb.RecSummary.nLongTracks, TrLONG) < %(GEC_nLongTrk)s )" % config,
+                     "Preambulo": ["from LoKiTracks.decorators import *"]}
+        
+        ##########################################################################
+        ## Basic particles: mu, K, pi, eta
+        ##########################################################################
+        self.selMuon = Selection( "SelMufor" + name,
+                Algorithm = self._muonFilter("Mufor"+name),
+                RequiredSelections = [StdLooseMuons])
+
+        self.selKaon = Selection( "SelKfor" + name,
+                Algorithm = self._kaonFilter("Kfor"+name),
+                RequiredSelections = [StdAllLooseKaons])
+
+        self.selPion = Selection( "SelPifor" + name,
+                Algorithm = self._pionFilter("Pifor"+name),
+                RequiredSelections = [StdAllLoosePions])
+
+        self.makeEta()
+        # then use self.Eta2PiPiPi0 and self.Eta2PiPiGamma
+
+        ##########################################################################
+        ## Lambda0 -> p+ pi- 
+        ##########################################################################
+        _stdLooseLambdaLL = DataOnDemand("Phys/StdVeryLooseLambdaLL/Particles")
+        _stdLooseLambdaDD = DataOnDemand("Phys/StdLooseLambdaDD/Particles")
+
+        self.selLambdaLL = Selection("SelLambdaLLfor"+name,
+                Algorithm = self._LambdaLLFilter("LambdaLLfor"+name),
+                RequiredSelections = [_stdLooseLambdaLL])
+
+        self.selLambdaDD = Selection("SelLambdaDDfor"+name,
+                Algorithm = self._LambdaDDFilter("LambdaDDfor"+name),
+                RequiredSelections = [_stdLooseLambdaDD])
+
+        ##########################################################################
+        ## Charmed Meson SL lines
+        ##########################################################################
+        self.DmesonSLList = self.makeLine()
+
+
+    #------------------------------------------------------------------------------------------
+    #------------------------------------------------------------------------------------------
+    # Sub Function
+    #------------------------------------------------------------------------------------------
+    #------------------------------------------------------------------------------------------
+    def _muonFilter( self , _name):
+        _code = "  (TRCHI2DOF< %(TRCHI2DOFMax)s)"\
+                "& (PT>%(MuonPT)s) & (P>%(MuonP)s)"\
+                "& (TRGHOSTPROB< %(GhostProb)s)"\
+                "& (MIPCHI2DV(PRIMARY)> %(MuonIPCHI2)s)"\
+                "& (PIDmu > %(MuonPIDmu)s) & ISMUON" % self.config
+        _mu = FilterDesktop(Code = _code )
+        return _mu
+
+    def _pionFilter( self , _name):
+        _code = "  (TRCHI2DOF < %(TRCHI2DOFMax)s)"\
+                "& (P>%(PionP)s) & (PT > %(PionPT)s)"\
+                "& (TRGHOSTPROB< %(TrGhostProbMax)s)"\
+                "& (MIPCHI2DV(PRIMARY)> %(MINIPCHI2)s)"\
+                "& (PIDK< %(PionPIDK)s) "\
+                "& (HASRICH)&(PROBNNpi > %(ProbNNpi)s) " % self.config
+        _pi = FilterDesktop(Code = _code )
+        return _pi
+
+    def _kaonFilter( self , _name ):
+        _code = "  (TRCHI2DOF < %(TRCHI2DOFMax)s)"\
+                "& (P>%(KaonP)s) & (PT > %(KaonPT)s)"\
+                "& (TRGHOSTPROB< %(TrGhostProbMax)s)"\
+                "& (MIPCHI2DV(PRIMARY)> %(MINIPCHI2)s)"\
+                "& (PIDK> %(KaonPIDK)s) & (PROBNNpi < %(ProbNNpiMax)s)"\
+                "& (PROBNNk > %(ProbNNk)s) "\
+                "& (HASRICH)&(PIDK-PIDpi>%(Kaon_PIDKPIDpi_Min)s) "% self.config
+        _ka = FilterDesktop(Code = _code )
+        return _ka
+
+    def _LambdaLLFilter( self, _name):
+        _code = " (P > %(LambdaLLPMin)s) & (PT > %(LambdaLLPTMin)s)" \
+                " &(ADMASS('Lambda0')<%(LambdaLLCutMass)s)"\
+                " & (BPVVDCHI2> %(LambdaLLCutFDChi2)s)" \
+                " & (VFASPF(VCHI2PDOF) < %(LambdaVertexChi2)s)" % self.config
+        _l0LL = FilterDesktop(Code = _code)
+        return _l0LL
+
+    def _LambdaDDFilter( self , _name):
+        _code = " (P> %(LambdaDDPMin)s) & (PT> %(LambdaDDPTMin)s)" \
+                " & (ADMASS('Lambda0') < %(LambdaDDCutMass)s) "\
+                " & (BPVVDCHI2> %(LambdaDDCutFDChi2)s)" \
+                " & (VFASPF(VCHI2PDOF) < %(LambdaVertexChi2)s)" % self.config
+        _l0DD = FilterDesktop(Code = _code)
+        return _l0DD
+
+    def makeLb0Line(self, line_name, prescale, Lc):
+        comb_cut = "(ADAMASS('Lambda_b0') < 1.1*%(Lb_M_HalfWin)s)"\
+                   "& (AP > %(Lb_AP_Min)s)"\
+                   "& (APT > %(Lb_APT_Min)s)" % self.config
+        vertex_cut  = "  (ADMASS('Lambda_b0') < %(Lb_M_HalfWin)s)"\
+                      "& (BPVVDCHI2>%(Lb_BPVVDCHI2_Min)s)" \
+                      "& (BPVDIRA>%(Lb_BPVDIRA_Min)s)" % self.config
+
+        Lb0 = self.createCombinationSel(OutputList = "Lb02LcPi_" + line_name,
+                DecayDescriptor = "[Lambda_b0 -> Lambda_c+ pi-]cc",
+                DaughterLists   = [Lc, self.selPion],
+                PreVertexCuts   = comb_cut,
+                PostVertexCuts  = vertex_cut )
+        Lb0Line = StrippingLine( line_name, 
+                prescale = prescale,
+                selection = Lb0, 
+                EnableFlavourTagging = False )
+        return Lb0Line
+
+
+    ##------------------------------------------------------------------------------------------
+    ##  -------------------- Begin to DpSL  ------------
+    def makeLine( self ):
+
+        _strCutCombfor = "(AMINCHILD(MIPCHI2DV(PRIMARY))>%(Lc_Daug_1of3_MIPCHI2DV_Min)s)" \
+                    "& (AP>%(Lc_AP_Min)s)" \
+                    "& (ADAMASS('Lambda_c+') < %(Lc_M_HalfWin)s)" \
+                    "& (APT>%(Lc_APT_Min)s)" % self.config
+
+        _strCutMothfor = "(VFASPF(VCHI2) < %(Lc_VCHI2_Max)s)" \
+                      "& (ADMASS('Lambda_c+') < %(Lc_M_HalfWin)s)" \
+                      "& (BPVVDCHI2>%(Lc_BPVVDCHI2_Min)s)" \
+                      "& (BPVDIRA>%(Lc_BPVDIRA_Min)s)" % self.config
+
+        _strCutComb_Mass   = "(ADAMASS('Lambda_c+') < 1.1*%(Lc_M_HalfWin)s)" % self.config
+        _strCutMoth_Mass   = "(ADMASS('Lambda_c+') < %(Lc_M_HalfWin)s)" % self.config
+
+        _strCutComb   = _strCutCombfor + '&' + _strCutComb_Mass
+        _strCutMoth   = _strCutMothfor + '&' + _strCutMoth_Mass
+        
+        ''' Stripping Lambda_c+ -> Lambda eta pi+ '''
+        LmdEtaPiLLEta2PiPiPi0 = self.createCombinationSel(OutputList = "Lc2LambdaEtaPiLLEta2PiPiPi0" + self.name,
+                DecayDescriptor = "[Lambda_c+ -> Lambda0 eta pi+]cc",
+                DaughterLists   = [self.selLambdaLL, self.Eta2PiPiPi0,self.selPion],
+                PreVertexCuts   = _strCutComb,
+                PostVertexCuts  = _strCutMoth )
+        self.registerLine(self.makeLb0Line(
+            line_name=self.name + "Lb2LcPiLc2LambdaEtaPiLLEta2PiPiPi0",
+            prescale=self.config['signalPrescale'],
+            Lc=LmdEtaPiLLEta2PiPiPi0
+            ))
+
+        ''' Stripping Lambda_c+ -> Lambda eta pi+ '''
+        LmdEtaPiLLEta2PiPiGamma = self.createCombinationSel(OutputList = "Lc2LambdaEtaPiLLEta2PiPiGamma" + self.name,
+                DecayDescriptor = "[Lambda_c+ -> Lambda0 eta pi+]cc",
+                DaughterLists   = [self.selLambdaLL, self.Eta2PiPiGamma,self.selPion],
+                PreVertexCuts   = _strCutComb,
+                PostVertexCuts  = _strCutMoth )
+        self.registerLine(self.makeLb0Line(
+            line_name=self.name + "Lb2LcPiLc2LambdaEtaPiLLEta2PiPiGamma",
+            prescale=self.config['signalPrescale'],
+            Lc=LmdEtaPiLLEta2PiPiGamma
+            ))
+
+        ''' Stripping Lambda_c+ -> Lambda eta pi+ '''
+        LmdEtaPiDDEta2PiPiPi0 = self.createCombinationSel(OutputList = "Lc2LambdaEtaPiDDEta2PiPiPi0" + self.name,
+                DecayDescriptor = "[Lambda_c+ -> Lambda0 eta pi+]cc",
+                DaughterLists   = [self.selLambdaDD, self.Eta2PiPiPi0,self.selPion],
+                PreVertexCuts   = _strCutComb,
+                PostVertexCuts  = _strCutMoth )
+        self.registerLine(self.makeLb0Line(
+            line_name=self.name + "Lb2LcPiLc2LambdaEtaPiDDEta2PiPiPi0",
+            prescale=self.config['signalPrescale'],
+            Lc=LmdEtaPiDDEta2PiPiPi0
+            ))
+
+        ''' Stripping Lambda_c+ -> Lambda eta pi+ '''
+        LmdEtaPiDDEta2PiPiGamma = self.createCombinationSel(OutputList = "Lc2LambdaEtaPiDDEta2PiPiGamma" + self.name,
+                DecayDescriptor = "[Lambda_c+ -> Lambda0 eta pi+]cc",
+                DaughterLists   = [self.selLambdaDD, self.Eta2PiPiGamma,self.selPion],
+                PreVertexCuts   = _strCutComb,
+                PostVertexCuts  = _strCutMoth )
+        self.registerLine(self.makeLb0Line(
+            line_name=self.name + "Lb2LcPiLc2LambdaEtaPiDDEta2PiPiGamma",
+            prescale=self.config['signalPrescale'],
+            Lc=LmdEtaPiDDEta2PiPiGamma
+            ))
+    ##  --------------------  End of DpSL  ------------
+    ##------------------------------------------------------------------------------------------
+    def makeEta(self):
+        #get standard containers
+        self.Pi0List     = DataOnDemand(Location = "Phys/StdLoosePi02gg/Particles")
+        self.GammaList   = DataOnDemand(Location = "Phys/StdLooseAllPhotons/Particles")
+        self.LoosePionList    = DataOnDemand(Location = "Phys/StdLoosePions/Particles")
+
+        #clean neutrals
+        _tightpi0_cut   = "(CHILD(CL,1)>0.05) & (CHILD(CL,2)>0.05) & (PT>1*GeV)"
+        _tightgamma_cut = "(CL>0.05) & (PT>500*MeV)"
+
+        #pipi vertex cuts
+        _pipix_cut      = "(BPVVDZ>0) & (VFASPF(VCHI2)<9) & (BPVDIRA>0.95) & (BPVVDCHI2>25)"
+
+        #pipix0 cuts
+        _eta_cut        = "(ADAMASS('eta')<100*MeV)       & (APT>1500*MeV)"
+
+        #filter standard containers
+        self.TightPi0List   = self.createSubSel( OutputList = self.name + '_TightPi0',   InputList  = self.Pi0List,     Cuts = _tightpi0_cut)
+        self.TightGammaList = self.createSubSel( OutputList = self.name + '_TightGamma', InputList  = self.GammaList,   Cuts = _tightgamma_cut)
+
+        #-------------
+
+        self.Eta2PiPiPi0 = self.createCombinationSel( OutputList      = self.name + "_Eta2PiPiPi0",
+                                                      DecayDescriptor = "eta -> pi+ pi- pi0",
+                                                      DaughterLists   = [ self.LoosePionList, self.TightPi0List],
+                                                      PreVertexCuts   = _eta_cut,
+                                                      PostVertexCuts  = _pipix_cut)
+        #-------------
+
+        self.Eta2PiPiGamma = self.createCombinationSel( OutputList      = self.name + "_Eta2PiPiGamma",
+                                                        DecayDescriptor = "eta -> pi+ pi- gamma",
+                                                        DaughterLists   = [ self.LoosePionList, self.TightGammaList],
+                                                        PreVertexCuts   = _eta_cut,
+                                                        PostVertexCuts  = _pipix_cut )
+
+    ##########################################################################
+    ## Basic Function
+    ##########################################################################
+    def createSubSel( self, OutputList, InputList, Cuts ) :
+        '''create a selection using a FilterDesktop'''
+        filter = FilterDesktop(Code = Cuts)
+        return Selection( OutputList,
+                Algorithm = filter,
+                RequiredSelections = [ InputList ] )
+
+    def createCombinationSel( self, OutputList,
+            DecayDescriptor,
+            DaughterLists,
+            DaughterCuts = {} ,
+            PreVertexCuts = "ALL",
+            PostVertexCuts = "ALL") :
+        '''create a selection using a ParticleCombiner with a single decay descriptor'''
+        if type(DecayDescriptor) is list:
+            combiner = CombineParticles( DecayDescriptors = DecayDescriptor,
+                    DaughtersCuts = DaughterCuts,
+                    MotherCut = PostVertexCuts,
+                    CombinationCut = PreVertexCuts,
+                    ReFitPVs = True)
+            return Selection ( OutputList,
+                    Algorithm = combiner,
+                    RequiredSelections = DaughterLists)
+        else:
+            combiner = CombineParticles( DecayDescriptor = DecayDescriptor,
+                    DaughtersCuts = DaughterCuts,
+                    MotherCut = PostVertexCuts,
+                    CombinationCut = PreVertexCuts,
+                    ReFitPVs = True)
+            return Selection ( OutputList,
+                    Algorithm = combiner,
+                    RequiredSelections = DaughterLists)
+    #print "DEBUG here is :",__file__,sys._getframe().f_lineno 
diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingLambdac2PEta.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingLambdac2PEta.py
new file mode 100644
index 0000000000000000000000000000000000000000..56113d582cd215b55ef08ce3316267de50d19669
--- /dev/null
+++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingLambdac2PEta.py
@@ -0,0 +1,271 @@
+###############################################################################
+# (c) Copyright 2000-2023 CERN for the benefit of the LHCb Collaboration      #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+'''
+Speculative code for charmed baryon searches.
+The following two channels are used:
+Lambda_b0-> pi (Lambda_c+ -> p+ eta)
+Lambda_b0-> pi (Lambda_c+ -> p+ eta')
+'''
+
+
+__author__ = ['Xiao-Rui Lyu', 'Pei-Rong Li', 'Miroslav Saur', 'Qi-Le Niu']
+__date__ = '2023/07/12'
+__version__ = '$Revision: 0.1 $'
+__all__ = ('StrippingLambdac2PEta'
+           ,'default_config')
+
+
+from GaudiConfUtils.ConfigurableGenerators import FilterDesktop, CombineParticles
+from StandardParticles import  StdAllLoosePions, StdAllLooseProtons, StdLooseProtons, StdLoosePions
+from StandardParticles import StdLooseMergedPi0, StdLooseResolvedPi0
+from StandardParticles import StdLooseResolvedEta, StdLooseEta2gg
+from PhysSelPython.Wrappers import Selection, DataOnDemand, MergedSelection
+from PhysSelPython.Wrappers import MultiSelectionSequence
+from StrippingConf.StrippingLine import StrippingLine
+from StrippingUtils.Utils import LineBuilder
+from GaudiKernel.SystemOfUnits import MeV, GeV, mm, picosecond
+import sys
+
+
+default_name='Lambdac2PEta'
+    #### This is the dictionary of all tunable cuts ########
+default_config={
+      'NAME'        : 'Lambdac2PEta',
+      'WGs'         : ['Charm'],
+      'BUILDERTYPE' : 'StrippingLambdac2PEta',
+      'STREAMS'     : ['Charm'],
+      'CONFIG'      : {
+          'GEC_nLongTrk' : 160    # adimensional
+        , 'signalPrescale'       :   1.0
+        , 'TRCHI2DOFMax'            :   3.0
+        , 'TrGhostProbMax'          :   0.25 # same for all particles
+        , 'MINIPCHI2'               :   3.0  # adimensiional
+        , 'ProtonP'                 :   3.0*GeV
+        , 'ProtonPT'                :   500*MeV
+        , 'Proton_PIDpPIDpi_Min'    :   5.0
+        , 'Proton_PIDpPIDK_Min'     :   0.0
+        , 'PionP'                   :   3*GeV
+        , 'PionPT'                  :   250*MeV
+        , 'PionPIDK'                :   5.0
+        , 'ProbNNp'                 :   0.4
+        , 'ProbNNpi'                :   0.4
+        , 'ProbNNpiMax'             :   0.9
+
+        , 'Lc_M_HalfWin'           :   200.0*MeV
+        , 'Lb_M_HalfWin'           :   200.0*MeV
+        , 'Lc_Daug_1of3_MIPCHI2DV_Min': 3.0
+        , 'Lc_ADOCAMAX_Max'         :   0.15*mm
+        , 'Lc_APT_Min'              :   1.2*GeV
+        , 'Lc_AP_Min'               :   15*GeV
+        , 'Lc_VCHI2_Max'            :  30.0
+        , 'Lc_BPVVDCHI2_Min'        :  16.0
+        , 'Lc_BPVVDZ_Min'           :  0.5*mm
+        , 'Lc_BPVDIRA_Min'          :   0.95
+
+        #For Lb
+        , 'Lb_AP_Min': 20*GeV 
+        , 'Lb_APT_Min': 1.5*GeV 
+        , 'Lb_VCHI2_Max': 30 
+        , 'Lb_BPVVDCHI2_Min': 16 
+        , 'Lb_BPVVDZ_Min': 0.7*mm 
+        , 'Lb_BPVDIRA_Min': 0.95 
+      } ## end of 'CONFIG' 
+}  ## end of default_config
+
+#-------------------------------------------------------------------------------------------------------------
+class StrippingLambdac2PEta(LineBuilder) : 
+    __configuration_keys__ = default_config['CONFIG'].keys()
+
+    def __init__(self, name, config) :
+        LineBuilder.__init__(self, name, config)
+        self.name = name
+        self.config = config
+       
+        GECs = { "Code":"( recSummaryTrack(LHCb.RecSummary.nLongTracks, TrLONG) < %(GEC_nLongTrk)s )" % config,
+                     "Preambulo": ["from LoKiTracks.decorators import *"]}
+        
+        ##########################################################################
+        ## Basic particles: p+, pi
+        ##########################################################################
+
+        self.selPi = Selection( "SelPifor" + name,
+                Algorithm = self._piFilter("Pifor"+name),
+                RequiredSelections = [StdLoosePions])
+
+        self.selProton = Selection( "SelPfor" + name,
+                Algorithm = self._protonFilter("Pfor"+name),
+                RequiredSelections = [StdLooseProtons])
+
+        self.makeEta()
+        # then use self.Eta2PiPiPi0 and self.Eta2PiPiGamma
+
+
+        ##########################################################################
+        self.DmesonSLList = self.makeLine()
+
+
+    #------------------------------------------------------------------------------------------
+    #------------------------------------------------------------------------------------------
+    # Sub Function
+    #------------------------------------------------------------------------------------------
+    #------------------------------------------------------------------------------------------
+    def _protonFilter( self, _name ):
+        _code = "  (TRCHI2DOF < %(TRCHI2DOFMax)s)"\
+                "& (PT > %(ProtonPT)s) & (P>%(ProtonP)s)"\
+                "& (TRGHOSTPROB< %(TrGhostProbMax)s)"\
+                "& (MIPCHI2DV(PRIMARY)> %(MINIPCHI2)s)"\
+                "& (PROBNNp > %(ProbNNp)s) & (PROBNNpi < %(ProbNNpiMax)s)"\
+                "& (HASRICH)&(PIDp-PIDpi>%(Proton_PIDpPIDpi_Min)s)"\
+                "& (HASRICH)&(PIDp-PIDK>%(Proton_PIDpPIDK_Min)s)"% self.config
+        _pr = FilterDesktop(Code = _code)
+        return _pr
+
+
+    def _piFilter( self , _name):
+        _code = "  (TRCHI2DOF < %(TRCHI2DOFMax)s)"\
+                "& (P>%(PionP)s) & (PT > %(PionPT)s)"\
+                "& (TRGHOSTPROB< %(TrGhostProbMax)s)"\
+                "& (MIPCHI2DV(PRIMARY)> %(MINIPCHI2)s)"\
+                "& (PIDK< %(PionPIDK)s) "\
+                "& (HASRICH)&(PROBNNpi > %(ProbNNpi)s) " % self.config
+        _pi = FilterDesktop(Code = _code )
+        return _pi
+
+
+    def makeLb0Line(self, line_name, prescale, Lc):
+        comb_cut = "in_range(200, AM, 200000)"
+        vertex_cut  = "ALL"
+
+        Lb0 = self.createCombinationSel(OutputList = "Lb02LcPi_" + line_name,
+                DecayDescriptor = "[Lambda_b0 -> Lambda_c+ pi-]cc",
+                DaughterLists   = [Lc, self.selPi],
+                PreVertexCuts   = comb_cut,
+                PostVertexCuts  = vertex_cut )
+        Lb0Line = StrippingLine( line_name, 
+                prescale = prescale,
+                selection = Lb0, 
+                EnableFlavourTagging = False )
+        return Lb0Line
+
+
+    ##------------------------------------------------------------------------------------------
+    ##  -------------------- Begin to DpSL  ------------
+    def makeLine( self ):
+
+        _strCutCombfor = "(AMINCHILD(MIPCHI2DV(PRIMARY))>%(Lc_Daug_1of3_MIPCHI2DV_Min)s)" \
+                    "& (AP>%(Lc_AP_Min)s)" \
+                    "& (ADAMASS('Lambda_c+') < %(Lc_M_HalfWin)s)" \
+                    "& (APT>%(Lc_APT_Min)s)" % self.config
+
+        _strCutMothfor = "(VFASPF(VCHI2) < %(Lc_VCHI2_Max)s)" \
+                      "& (ADMASS('Lambda_c+') < %(Lc_M_HalfWin)s)" \
+                      "& (BPVVDCHI2>%(Lc_BPVVDCHI2_Min)s)" \
+                      "& (BPVDIRA>%(Lc_BPVDIRA_Min)s)" % self.config
+
+        _strCutComb_Mass   = "(ADAMASS('Lambda_c+') < 1.1*%(Lc_M_HalfWin)s)" % self.config
+        _strCutMoth_Mass   = "(ADMASS('Lambda_c+') < %(Lc_M_HalfWin)s)" % self.config
+
+        _strCutComb   = _strCutCombfor + '&' + _strCutComb_Mass
+        _strCutMoth   = _strCutMothfor + '&' + _strCutMoth_Mass
+        
+        ''' Stripping Lambda_c+ -> p+ eta '''
+        PEta2PiPiPi0 = self.createCombinationSel(OutputList = "Lc2PEta2PiPiPi0" + self.name,
+                DecayDescriptor = "[Lambda_c+ -> p+ eta]cc",
+                DaughterLists   = [self.selProton, self.Eta2PiPiPi0],
+                PreVertexCuts   = _strCutComb,
+                PostVertexCuts  = _strCutMoth )
+        self.registerLine(self.makeLb0Line(
+            line_name=self.name + "Lb2LcPiLc2Eta2PiPiPi0",
+            prescale=self.config['signalPrescale'],
+            Lc=PEta2PiPiPi0
+            ))
+
+        ''' Stripping Lambda_c+ -> p+ eta_prime '''
+        PEtap2PiPiEta = self.createCombinationSel(OutputList = "Lc2PEtap2PiPiEta" + self.name,
+                DecayDescriptor = "[Lambda_c+ -> p+ eta_prime]cc",
+                DaughterLists   = [self.selProton, self.Etap2PiPiEta],
+                PreVertexCuts   = _strCutComb,
+                PostVertexCuts  = _strCutMoth )
+        self.registerLine(self.makeLb0Line(
+            line_name=self.name + "Lb2LcPiLc2Etap2PiPiEta",
+            prescale=self.config['signalPrescale'],
+            Lc=PEtap2PiPiEta
+            ))
+
+    ##  --------------------  End of DpSL  ------------
+    ##------------------------------------------------------------------------------------------
+    def makeEta(self):
+        #get standard containers
+        self.Pi0List     = DataOnDemand(Location = "Phys/StdLoosePi02gg/Particles")
+        self.LoosePionList    = DataOnDemand(Location = "Phys/StdLoosePions/Particles")
+
+        #clean neutrals
+        _tightpi0_cut   = "(CHILD(CL,1)>0.05) & (CHILD(CL,2)>0.05) & (PT>0.0*GeV)"
+
+        #pipi vertex cuts
+        _pipix_cut      = "(BPVVDZ>0) & (VFASPF(VCHI2)<9) & (BPVDIRA>0.95) & (BPVVDCHI2>25)"
+
+        #pipix0 cuts
+        _eta_cut        = "(ADAMASS('eta')<100*MeV)       & (APT>1500*MeV)"
+        _etap_cut       = "(ADAMASS('eta_prime')<200*MeV) & (APT>1500*MeV)"
+
+        #filter standard containers
+        self.TightPi0List   = self.createSubSel( OutputList = self.name + '_TightPi0',   InputList  = self.Pi0List,     Cuts = _tightpi0_cut)
+
+        #-------------
+
+        self.Eta2PiPiPi0 = self.createCombinationSel( OutputList      = self.name + "_Eta2PiPiPi0",
+                                                      DecayDescriptor = "eta -> pi+ pi- pi0",
+                                                      DaughterLists   = [ self.LoosePionList, self.TightPi0List],
+                                                      PreVertexCuts   = _eta_cut,
+                                                      PostVertexCuts  = _pipix_cut)
+        #-------------
+        self.Etap2PiPiEta = self.createCombinationSel( OutputList      = self.name + "_Etap2PiPiEta",
+                                                      DecayDescriptor = "eta_prime -> pi+ pi- eta",
+                                                      DaughterLists   = [ self.LoosePionList, self.Eta2PiPiPi0],
+                                                      PreVertexCuts   = _etap_cut,
+                                                      PostVertexCuts  = _pipix_cut)
+
+    ##########################################################################
+    ## Basic Function
+    ##########################################################################
+    def createSubSel( self, OutputList, InputList, Cuts ) :
+        '''create a selection using a FilterDesktop'''
+        filter = FilterDesktop(Code = Cuts)
+        return Selection( OutputList,
+                Algorithm = filter,
+                RequiredSelections = [ InputList ] )
+
+    def createCombinationSel( self, OutputList,
+            DecayDescriptor,
+            DaughterLists,
+            DaughterCuts = {} ,
+            PreVertexCuts = "ALL",
+            PostVertexCuts = "ALL") :
+        '''create a selection using a ParticleCombiner with a single decay descriptor'''
+        if type(DecayDescriptor) is list:
+            combiner = CombineParticles( DecayDescriptors = DecayDescriptor,
+                    DaughtersCuts = DaughterCuts,
+                    MotherCut = PostVertexCuts,
+                    CombinationCut = PreVertexCuts,
+                    ReFitPVs = True)
+            return Selection ( OutputList,
+                    Algorithm = combiner,
+                    RequiredSelections = DaughterLists)
+        else:
+            combiner = CombineParticles( DecayDescriptor = DecayDescriptor,
+                    DaughtersCuts = DaughterCuts,
+                    MotherCut = PostVertexCuts,
+                    CombinationCut = PreVertexCuts,
+                    ReFitPVs = True)
+            return Selection ( OutputList,
+                    Algorithm = combiner,
+                    RequiredSelections = DaughterLists)
diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingNeutralCBaryons.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingNeutralCBaryons.py
index 65e4490b8c0e3e4606c9dda75daab6926db55d87..4424f47d8dac122dc8c24ae63e36719dfa5f7ef5 100644
--- a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingNeutralCBaryons.py
+++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingNeutralCBaryons.py
@@ -1,5 +1,5 @@
 ###############################################################################
-# (c) Copyright 2000-2019 CERN for the benefit of the LHCb Collaboration      #
+# (c) Copyright 2000-2023 CERN for the benefit of the LHCb Collaboration      #
 #                                                                             #
 # This software is distributed under the terms of the GNU General Public      #
 # Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
@@ -21,20 +21,27 @@ Xi_c0 -> p+ K-
 Omega+c0 -> Lambda KS0
 Omega_c0 -> p+ K-
 Omega_c0 -> Labda K- pi+
+
+Update on 2023/07/06
+Added following decays:
+Xi_c0 -> p+ K+ K- pi-
+Xi_c0 -> Lz pi+ pi-
+Optimized following decays:
+Xi_c0 -> p+ K-
+Omega+c0 -> Lambda KS0
+Xi_c0 -> Lambda KS0
 '''
 
 
-__author__ = ['Xuesong Liu, Xiao-Rui Lyu, Zhenwei Yang', 'Miroslav Saur', 'Ziyi Wang']
-__date__ = '2021/03/19'
+__author__ = ['Xuesong Liu, Xiao-Rui Lyu, Zhenwei Yang', 'Miroslav Saur', 'Ziyi Wang', 'Pei-Rong Li', 'Ying-Hao Wang']
+__date__ = '2023/07/06'
 __version__ = '$Revision: 1.1 $'
 __all__ = ('StrippingNeutralCBaryonsConf'
            ,'default_config')
 
 
-from Gaudi.Configuration import *
 from GaudiConfUtils.ConfigurableGenerators import FilterDesktop, CombineParticles
-from StandardParticles import StdLoosePions, StdNoPIDsDownPions, StdLooseKaons, StdLooseDownKaons
-from StandardParticles import  StdAllLoosePions, StdAllLooseKaons, StdAllLooseProtons
+from StandardParticles import  StdAllLoosePions, StdAllLooseKaons, StdAllLooseProtons, StdNoPIDsDownPions, StdLooseDownKaons
 
 from PhysSelPython.Wrappers import Selection, DataOnDemand, MergedSelection
 from PhysSelPython.Wrappers import MultiSelectionSequence
@@ -78,8 +85,8 @@ default_config={
                    , 'LambdaDeltaZ_MIN'       :  5.0 * mm
                    , 'LambdaPr_PT_MIN'        : 500. * MeV
                    , 'LambdaPi_PT_MIN'        : 100. * MeV
-      } ## end of 'CONFIG' 
-}  ## end of default_config
+      }## end of 'CONFIG'
+}## end of default_config
 
 #-------------------------------------------------------------------------------------------------------------
 class StrippingNeutralCBaryonsConf(LineBuilder) :
@@ -209,7 +216,7 @@ class StrippingNeutralCBaryonsConf(LineBuilder) :
                                                  Cuts = "(BPVVDZ > 0.0 * mm) " \
                                                  "& (BPVVDZ < 2300.0 * mm) " \
                                                  "& (BPVDIRA > 0.99995 ) " \
-                                                 "& (ADMASS('KS0') < 40.0 *MeV) " \
+                                                 "& (ADMASS('KS0') < 60.0 *MeV) " \
                                                  "& (BPVVDCHI2> 100)" % self.config \
                                                  )
 
@@ -217,8 +224,8 @@ class StrippingNeutralCBaryonsConf(LineBuilder) :
                                                  InputList = self.KS0ListLooseDD ,
                                                  Cuts = "(BPVVDZ > -1000.0 * mm) " \
                                                  "& (BPVVDZ < 650.0 * mm) " \
-                                                 "& (BPVDIRA > 0.99997 ) " \
-                                                 "& (ADMASS('KS0') < 20.0 *MeV) " \
+                                                 "& (BPVDIRA > 0.99 ) " \
+                                                 "& (ADMASS('KS0') < 60.0 *MeV) " \
                                                  "& (BPVVDCHI2> 100)" % self.config \
                                                  )
 
@@ -277,6 +284,30 @@ class StrippingNeutralCBaryonsConf(LineBuilder) :
             Xic02LambdaKpiLine = StrippingLine( self.name + "Xic02LambdaKpiLine", algos = [ Xic02LambdaKpi ], EnableFlavourTagging = True )
             self.registerLine (Xic02LambdaKpiLine)
 
+            ''' Stripping Xi_c0->Lambda0(LL) pi+ pi-'''
+            Xic02LambdaLLpipi = self.createCombinationSel(OutputList = "Xic02LambdaLLpipi"+ self.name,
+                                                           DecayDescriptor = "[Xi_c0 -> Lambda0 pi+ pi- ]cc",
+                                                           DaughterLists   = [self.LambdaListLL, self.GoodLongPionsList, self.GoodLongPionsList],
+                                                           DaughterCuts    = {"pi+"     : " (MIPCHI2DV(PRIMARY)>4)",
+                                                                              "pi-"     : " (MIPCHI2DV(PRIMARY)>4)"},
+                                                           PreVertexCuts   = "(ADAMASS('Xi_c0') < 120 *MeV) & (ADOCACHI2CUT(30, '')) & (ADOCAMAX('')<2.0*mm)",
+                                                           PostVertexCuts  = "(ADMASS('Xi_c0') < 90 *MeV) &(VFASPF(VCHI2/VDOF)< 12.) & (BPVVDCHI2 > 16.0) & (BPVDIRA >0.999) "
+                                                           )
+            Xic02LambdaLLpipiLine = StrippingLine( self.name + "Xic02LambdaLLpipiLine", algos = [ Xic02LambdaLLpipi ], EnableFlavourTagging = True )
+            self.registerLine (Xic02LambdaLLpipiLine)
+
+            ''' Stripping Xi_c0->Lambda0(DD) pi+ pi-'''
+            Xic02LambdaDDpipi = self.createCombinationSel(OutputList = "Xic02LambdaDDpipi"+ self.name,
+                                                           DecayDescriptor = "[Xi_c0 -> Lambda0 pi+ pi- ]cc",
+                                                           DaughterLists   = [self.LambdaListDD, self.GoodLongPionsList, self.GoodLongPionsList],
+                                                           DaughterCuts    = {"pi+"     : " (MIPCHI2DV(PRIMARY)>4)",
+                                                                              "pi-"     : " (MIPCHI2DV(PRIMARY)>4)"},
+                                                           PreVertexCuts   = "(ADAMASS('Xi_c0') < 120 *MeV) & (ADOCACHI2CUT(30, '')) & (ADOCAMAX('')<2.0*mm)",
+                                                           PostVertexCuts  = "(ADMASS('Xi_c0') < 90 *MeV) &(VFASPF(VCHI2/VDOF)< 12.) & (BPVVDCHI2 > 16.0) & (BPVDIRA >0.999) "
+                                                           )
+            Xic02LambdaDDpipiLine = StrippingLine( self.name + "Xic02LambdaDDpipiLine", algos = [ Xic02LambdaDDpipi ], EnableFlavourTagging = True )
+            self.registerLine (Xic02LambdaDDpipiLine)
+
             ''' Stripping Xi_c- -> Lambda0(DD) pi-(Long)'''
             Ximinus2LambdaPiDDL = self.createCombinationSel(OutputList = "Ximinus2LambdaPiDDL"+ self.name,
                                                          DecayDescriptor = "[Xi- -> Lambda0 pi-]cc",
@@ -325,13 +356,26 @@ class StrippingNeutralCBaryonsConf(LineBuilder) :
                                                          DaughterLists   = [self.GoodTightProtonsList, self.GoodTightKaonsList],
                                                          DaughterCuts    = {"K-"      : " (MIPCHI2DV(PRIMARY)>4)",
                                                                             "p+"     : " (MIPCHI2DV(PRIMARY)>4)"},
-                                                         PreVertexCuts   = "(ADAMASS('Xi_c0') < 120 *MeV)",
+                                                         PreVertexCuts   = "(ADAMASS('Xi_c0') < 120 *MeV) & (ADOCACHI2CUT(30, '')) & (ADOCAMAX('')<2.5*mm)",
                                                          PostVertexCuts  = "(ADMASS('Xi_c0') < 90 *MeV) &(VFASPF(VCHI2/VDOF)< 12.) & (BPVVDCHI2 > 16.0) & (BPVDIRA >0.999) "
                                                          )
-            #Xic02pKLine = StrippingLine( self.name + "Xic02pKLine", prescale = 0.5, algos = [ Xic02pK ], EnableFlavourTagging = True )
             Xic02pKLine = StrippingLine( self.name + "Xic02pKLine", algos = [ Xic02pK ], EnableFlavourTagging = True )
             self.registerLine (Xic02pKLine)
 
+            ''' Stripping Xi_c0 -> p+ K+ K- pi-'''
+            Xic02pKKpi = self.createCombinationSel(OutputList = "Xic02pKKpi"+ self.name,
+                                                         DecayDescriptor = "[Xi_c0 -> p+ K+ K- pi-]cc",
+                                                         DaughterLists   = [self.GoodTightProtonsList, self.GoodTightKaonsList, self.GoodTightKaonsList, self.GoodLongPionsList],
+                                                         DaughterCuts    = {"K-"      : " (MIPCHI2DV(PRIMARY)>4)",
+                                                                            "K+"      : " (MIPCHI2DV(PRIMARY)>4)",
+                                                                            "pi-"      : " (MIPCHI2DV(PRIMARY)>4)",
+                                                                            "p+"     : " (MIPCHI2DV(PRIMARY)>4)"},
+                                                         PreVertexCuts   = "(ADAMASS('Xi_c0') < 120 *MeV)",
+                                                         PostVertexCuts  = "(ADMASS('Xi_c0') < 90 *MeV) &(VFASPF(VCHI2/VDOF)< 12.) & (BPVVDCHI2 > 16.0) & (BPVDIRA >0.999) "
+                                                         )
+            Xic02pKKpiLine = StrippingLine( self.name + "Xic02pKKpiLine", algos = [ Xic02pKKpi ], EnableFlavourTagging = True )
+            self.registerLine (Xic02pKKpiLine)
+
             ''' Stripping Xi_c0->Xi- pi+'''
             Xic02Xipi = self.createCombinationSel(OutputList = "Xic02Xipi"+ self.name,
                                                          DecayDescriptor = "[Xi_c0 -> Xi- pi+]cc",
diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingXib2Xic0PiXic02pK.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingXib2Xic0PiXic02pK.py
new file mode 100644
index 0000000000000000000000000000000000000000..18f994365fcc8e977e263421da9167058902f402
--- /dev/null
+++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingXib2Xic0PiXic02pK.py
@@ -0,0 +1,150 @@
+###############################################################################
+# (c) Copyright 2000-2023 CERN for the benefit of the LHCb Collaboration      #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+'''
+1)Xi_b- -> Xi_c0 pi-, Xi_c0 -> p+ K-
+
+'''
+
+__author__ = ['Xiao-Rui Lyu', 'Miroslav Saur', 'Ziyi Wang', 'Pei-Rong Li', 'Ying-Hao Wang']
+__date__ = '2023/07/06'
+__version__ = '$Revision: 0.1 $'
+__all__ = ('StrippingXib2Xic0PiXic02pKConf'
+           ,'default_config')
+
+
+from GaudiConfUtils.ConfigurableGenerators import FilterDesktop, CombineParticles
+from StandardParticles import  StdAllLoosePions, StdAllLooseKaons, StdAllLooseProtons
+
+from PhysSelPython.Wrappers import Selection, DataOnDemand, MergedSelection
+from PhysSelPython.Wrappers import MultiSelectionSequence
+from StrippingConf.StrippingLine import StrippingLine
+from StrippingUtils.Utils import LineBuilder
+from GaudiKernel.SystemOfUnits import MeV, mm, picosecond
+
+
+default_name='Xib2Xic0PiXic02pK'
+    #### This is the dictionary of all tunable cuts ########
+default_config={
+      'NAME'        :   'Xib2Xic0PiXic02pK',
+      'WGs'         :   ['Charm'],
+      'BUILDERTYPE' : 'StrippingXib2Xic0PiXic02pKConf',
+      'STREAMS'     : ['Charm'],
+      'CONFIG'      : {
+                     'TRCHI2DOFMax'           : 3.0
+                   , 'PionPIDK'               :  10.0
+                   , 'tight_ProtonPIDp'       : 7 #to be studied
+                   , 'tight_ProtonPIDppi'     :  5.0
+                   , 'tight_ProtonPIDpK'      :  0.0
+                   , 'tight_KaonPIDpi'        :  5.0
+                   , 'tight_KaonPIDK'         :  0.0
+                   , 'TrGhostProbMax'         :  0.25
+                   , 'ProbNNkMin'             :  0.10
+      }## end of 'CONFIG'
+}## end of default_config
+
+#-------------------------------------------------------------------------------------------------------------
+class StrippingXib2Xic0PiXic02pKConf(LineBuilder) :
+        __configuration_keys__ = default_config['CONFIG'].keys()
+
+        def __init__(self, name, config) :
+            LineBuilder.__init__(self, name, config)
+            self.name = name
+            self.config = config
+
+            # take all long tracks - Long Protons
+            self.LongProtonsList = MergedSelection("LongProtonsFor" + self.name,
+                                                   RequiredSelections =  [DataOnDemand(Location = "Phys/StdAllLooseProtons/Particles")])
+
+            # take all long tracks - Long Pions
+            self.LongPionsList = MergedSelection("LongPionsFor" + self.name,
+                                                   RequiredSelections =  [DataOnDemand(Location = "Phys/StdAllLoosePions/Particles")])
+
+            # take all long tracks - Long Kaons
+            self.LongKaonsList = MergedSelection("LongKaonsFor" + self.name,
+                                                   RequiredSelections =  [DataOnDemand(Location = "Phys/StdAllLooseKaons/Particles")])
+
+            # Good tracks - Tight Protons
+            self.GoodTightProtonsList = self.createSubSel( OutputList = "GoodTightProtonsFor" + self.name,
+                                                InputList = self.LongProtonsList,
+                                                Cuts = "(TRCHI2DOF < %(TRCHI2DOFMax)s )"\
+                                                " & (TRGHOSTPROB <%(TrGhostProbMax)s )" \
+                                                " & (PIDp > %(tight_ProtonPIDp)s) "\
+                                                " & ((PIDp-PIDpi) > %(tight_ProtonPIDppi)s) "\
+                                                " & ((PIDp-PIDK)  > %(tight_ProtonPIDpK)s) " % self.config )
+            # Good tracks - Long Pions
+            self.GoodLongPionsList = self.createSubSel( OutputList = "GoodLongPionsFor" + self.name,
+                                                InputList = self.LongPionsList,
+                                                Cuts = "(TRCHI2DOF < %(TRCHI2DOFMax)s )"\
+                                                " & (TRGHOSTPROB <%(TrGhostProbMax)s )" \
+                                                " & (PIDK < %(PionPIDK)s )" % self.config )
+
+            # Good tracks - Tight Kaons
+            self.GoodTightKaonsList = self.createSubSel( OutputList = "GoodTightKaonsFor" + self.name,
+                                                InputList = self.LongKaonsList,
+                                                Cuts = "(TRCHI2DOF < %(TRCHI2DOFMax)s )"\
+                                                " & (TRGHOSTPROB < %(TrGhostProbMax)s )" \
+                                                " & (PROBNNk > %(ProbNNkMin)s )" \
+                                                " & ((PIDK-PIDpi)>%(tight_KaonPIDpi)s)"\
+                                                " & (PIDK > %(tight_KaonPIDK)s )" % self.config )
+
+            # Xi_c0 -> p+ K- list
+            self.Xic0List = self.createCombinationSel(OutputList = "Xic0For"+ self.name,
+                                                         DecayDescriptor = "[Xi_c0 -> p+ K-]cc",
+                                                         DaughterLists   = [self.GoodTightProtonsList, self.GoodTightKaonsList],
+                                                         DaughterCuts    = {"K-"      : " (MIPCHI2DV(PRIMARY)>4)",
+                                                                            "p+"     : " (MIPCHI2DV(PRIMARY)>4)"},
+                                                         PreVertexCuts   = "(ADAMASS('Xi_c0') < 120 *MeV) & (ADOCACHI2CUT(30, '')) & (ADOCAMAX('')<2.5*mm)",
+                                                         PostVertexCuts  = "(ADMASS('Xi_c0') < 90 *MeV) &(VFASPF(VCHI2/VDOF)< 12.) & (BPVVDCHI2 > 16.0) & (BPVDIRA >0.999) "
+                                                         )
+
+            self.XibList = self.makeXib()
+
+        #------------------------------------------------------------------------------------------
+        #------------------------------------------------------------------------------------------
+
+        def createSubSel( self, OutputList, InputList, Cuts ) :
+            '''create a selection using a FilterDesktop'''
+            filter = FilterDesktop(Code = Cuts)
+            return Selection( OutputList,
+                             Algorithm = filter,
+                             RequiredSelections = [ InputList ] )
+
+        def createCombinationSel( self, OutputList,
+                                 DecayDescriptor,
+                                 DaughterLists,
+                                 DaughterCuts = {} ,
+                                 PreVertexCuts = "ALL",
+                                 PostVertexCuts = "ALL" ) :
+            '''create a selection using a ParticleCombiner with a single decay descriptor'''
+            combiner = CombineParticles( DecayDescriptor = DecayDescriptor,
+                                        DaughtersCuts = DaughterCuts,
+                                        MotherCut = PostVertexCuts,
+                                        CombinationCut = PreVertexCuts,
+                                        ReFitPVs = True)
+            return Selection ( OutputList,
+                              Algorithm = combiner,
+                              RequiredSelections = DaughterLists)
+
+        def makeXib( self ):
+
+            ''' Stripping Xi_b- -> Xi_c0 pi-'''
+            Xib2Xic0piXic02pK = self.createCombinationSel(OutputList = "Xib2Xic0piXic02pK"+ self.name,
+                                                         DecayDescriptor = "[Xi_b- -> Xi_c0 pi-]cc",
+                                                         DaughterLists   = [self.Xic0List, self.GoodLongPionsList],
+                                                         DaughterCuts    = {"pi-"      : " (MIPCHI2DV(PRIMARY)>4)"
+                                                         },
+                                                         PreVertexCuts   = "(ADAMASS('Xi_b-') < 800 *MeV)",
+                                                         PostVertexCuts  = "(ADMASS('Xi_b-') < 400 *MeV)"
+                                                         )
+            Xib2Xic0piXic02pKLine = StrippingLine( self.name + "Xib2Xic0piXic02pKLine", algos = [ Xib2Xic0piXic02pK ], EnableFlavourTagging = True )
+            self.registerLine (Xib2Xic0piXic02pKLine)
+
+        #------------------------------------------------------------------------------------------
diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingXic0ToXiMuNu.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingXic0ToXiMuNu.py
new file mode 100755
index 0000000000000000000000000000000000000000..d908d70e453fd6cf71072e5698294b00cb5f6982
--- /dev/null
+++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingXic0ToXiMuNu.py
@@ -0,0 +1,138 @@
+###############################################################################
+# (c) Copyright 2023 CERN for the benefit of the LHCb Collaboration           #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+"""
+Stripping lines for Xic0 -> Xi- mu+ nu
+The lines are used to complement the inclusive Xi Turbo lines by adding
+Velo raw banks to study if the Xi- can be reconstructed as an upstream track.
+"""
+from GaudiConfUtils.ConfigurableGenerators import CombineParticles
+from Configurables import FilterDesktop
+from PhysConf.Selections import (
+    FilterSelection, CombineSelection, MergedSelection)
+from PhysSelPython.Wrappers import AutomaticData
+from StrippingUtils.Utils import LineBuilder
+from StrippingConf.StrippingLine import StrippingLine
+__author__ = ["Patrik Adlarson", "Artur Ukleja",
+              "Marian Stahl", "Laurent Dufour"]
+
+__all__ = ("Xic0ToXiMuNuConf", "default_config")
+
+moduleName = "Xic0ToXiMuNu"
+
+
+# Import Packages
+
+# Default configuration dictionary
+default_config = {
+    "NAME": "Xic0ToXiMuNu",
+    "BUILDERTYPE": "Xic0ToXiMuNuConf",
+    "CONFIG": {
+        "descriptor_xi": ["[Xi- -> Lambda0 pi-]cc"],
+        "descriptor_ximu": ["[Xi_c0 -> Xi- mu+]cc"],
+        "RequiredRawEvents": ["Velo"],
+        "bach_pion": {
+            "tes": "Phys/StdAllNoPIDsPions/Particles",
+            "filter": "(PT > 120*MeV) & (P > 1000*MeV) & (MIPDV(PRIMARY)>0.01*mm) & (MIPCHI2DV(PRIMARY) > 9.0) & (PROBNNpi>0.03)"
+        },
+        "down_pion": {
+            "tes": "Phys/StdNoPIDsDownPions/Particles",
+            "filter": "(P>1000*MeV) & (PT>150*MeV) & (PROBNNpi>0.03)"
+        },
+        "bach_muon": {
+            "tes": "Phys/StdAllNoPIDsMuons/Particles",
+            "filter": "(PT>200*MeV) & (P>3000*MeV) & (PROBNNmu>0.3) & (BPVIPCHI2()>4)"
+        },
+        "lambda_ll": {
+            "tes": "Phys/StdVeryLooseLambdaLL/Particles",
+            "filter": """(ADMASS('Lambda0')<20*MeV) & (P>6*GeV) & (PT>200*MeV) & (BPVVDZ>8*mm) & (BPVLTIME() > 2.0*ps) & (CHI2VXNDF<20) &
+                    (MAXTREE('p+'==ABSID,MIPCHI2DV(PRIMARY))>9) & (MAXTREE('pi-'==ABSID,MIPCHI2DV(PRIMARY))>24) & 
+                    (MAXTREE('p+'==ABSID,PT)>100*MeV) & (MAXTREE('p+'==ABSID,P)>5.0*GeV) & (VFASPF(VZ) > -100.*mm) & (VFASPF(VZ) <  640.*mm) & (BPVVDCHI2 > 100)"""
+        },
+        "lambda_dd": {
+            "tes": "Phys/StdLooseLambdaDD/Particles",
+            "filter": """(ADMASS('Lambda0')<20*MeV) & (P>12*GeV) & (PT>400*MeV) & (CHILDIP(1)<2*mm) & (MAXTREE('p+'==ABSID,P)>9*GeV) & (CHI2VXNDF<30) &
+                    (MAXTREE('p+'==ABSID,PT)>200*MeV) & (MAXTREE('pi+'==ABSID,PT)>150*MeV) & (VFASPF(VZ) >  300.*mm) & (VFASPF(VZ) < 2485.*mm)"""
+        },
+        "xi_lll": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ACHILD(2,MIPCHI2DV(PRIMARY))>9) & (ADOCA(1,2)<0.5*mm) & (ACHI2DOCA(1,2)<20)",
+            "mother_cut": """(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) & (BPVVDCHI2>15) & (BPVLTIME() > 2.0*picosecond) & 
+            (P>8*GeV) & (PT>400*MeV) """
+        },
+        "xi_ddl": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ADOCA(1,2)<2.5*mm) & (ACHI2DOCA(1,2)<12) ",
+            "mother_cut": """(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) & (BPVVDCHI2>20) & (BPVLTIME() > 2.0*picosecond) &
+            (P>15*GeV) & (PT>600*MeV)"""
+        },
+        "xi_ddd": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ACHILD(2,MIPCHI2DV(PRIMARY))>20) & (ADOCA(1,2)<5*mm) & (ACHI2DOCA(1,2)<12)",
+            "mother_cut": """(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) &  (BPVVDCHI2>10) & (BPVLTIME() > 2.0*picosecond) &
+            (P>15*GeV) & (PT>600*MeV)"""
+        },
+        "amass_ximu": "(in_range(1400*MeV,AMASS(),4500*MeV)) & ",
+        "xc0_lll": {
+            "comb_cut": """AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<1.5)""",
+            "mother_cut": """(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>12*GeV) & (PT>200*MeV)"""
+        },
+        "xc0_ddl": {
+            "comb_cut": """AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<3.5)""",
+            "mother_cut": """(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>20*GeV) & (PT>200*MeV) """
+        },
+        "xc0_ddd": {
+            "comb_cut": """AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<5.5)""",
+            "mother_cut": """(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>20*GeV) & (PT>200*MeV)"""
+        },
+    },
+    "STREAMS": {
+        "CharmCompleteEvent": ["StrippingXic0ToXiMuNu_{0}Line".format(tt) for tt in ["LLL", "DDL", "DDD"]]
+    },
+    "WGs": ["Charm"]
+}
+
+
+class Xic0ToXiMuNuConf(LineBuilder):
+
+    __configuration_keys__ = default_config["CONFIG"].keys()
+
+    def __init__(self, moduleName, config):
+        LineBuilder.__init__(self, moduleName, config)
+        # decay products
+        bach_pion = FilterSelection(moduleName+"_bach_pion", [AutomaticData(
+            config["bach_pion"]["tes"])], Code=config["bach_pion"]["filter"])
+        down_pion = FilterSelection(moduleName+"_down_pion", [AutomaticData(
+            config["down_pion"]["tes"])], Code=config["down_pion"]["filter"])
+        bach_muon = FilterSelection(moduleName+"_bach_muon", [AutomaticData(
+            config["bach_muon"]["tes"])], Code=config["bach_muon"]["filter"])
+        lambda_ll = FilterSelection(moduleName+"_lambda_ll", [AutomaticData(
+            config["lambda_ll"]["tes"])], Code=config["lambda_ll"]["filter"])
+        lambda_dd = FilterSelection(moduleName+"_lambda_dd", [AutomaticData(
+            config["lambda_dd"]["tes"])], Code=config["lambda_dd"]["filter"])
+        xi_lll = CombineSelection(moduleName+"_xi_lll", [lambda_ll, bach_pion], DecayDescriptors=config["descriptor_xi"],
+                                  CombinationCut=config["xi_lll"]["comb_cut"], MotherCut=config["xi_lll"]["mother_cut"])
+        xi_ddl = CombineSelection(moduleName+"_xi_ddl", [lambda_dd, bach_pion], DecayDescriptors=config["descriptor_xi"],
+                                  CombinationCut=config["xi_ddl"]["comb_cut"], MotherCut=config["xi_ddl"]["mother_cut"])
+        xi_ddd = CombineSelection(moduleName+"_xi_ddd", [lambda_dd, down_pion], DecayDescriptors=config["descriptor_xi"],
+                                  CombinationCut=config["xi_ddd"]["comb_cut"], MotherCut=config["xi_ddd"]["mother_cut"])
+        # charm baryon candidates; this could look a bit nicer when looping over track types and channels...
+
+        ximu_lll = CombineSelection(moduleName+"_ximu_lll", [xi_lll, bach_muon], DecayDescriptors=config["descriptor_ximu"],
+                                    CombinationCut=config["amass_ximu"]+config["xc0_lll"]["comb_cut"], MotherCut=config["xc0_lll"]["mother_cut"])
+        ximu_ddl = CombineSelection(moduleName+"_ximu_ddl", [xi_ddl, bach_muon], DecayDescriptors=config["descriptor_ximu"],
+                                    CombinationCut=config["amass_ximu"]+config["xc0_ddl"]["comb_cut"], MotherCut=config["xc0_ddl"]["mother_cut"])
+        ximu_ddd = CombineSelection(moduleName+"_ximu_ddd", [xi_ddd, bach_muon], DecayDescriptors=config["descriptor_ximu"],
+                                    CombinationCut=config["amass_ximu"]+config["xc0_ddd"]["comb_cut"], MotherCut=config["xc0_ddd"]["mother_cut"])
+
+        # Create the stripping lines
+        self.registerLine(StrippingLine(
+            moduleName+"_LLLLine", RequiredRawEvents=config["RequiredRawEvents"], algos=[ximu_lll], MDSTFlag=True))
+        self.registerLine(StrippingLine(
+            moduleName+"_DDLLine", RequiredRawEvents=config["RequiredRawEvents"], algos=[ximu_ddl], MDSTFlag=True))
+        self.registerLine(StrippingLine(
+            moduleName+"_DDDLine", RequiredRawEvents=config["RequiredRawEvents"], algos=[ximu_ddd], MDSTFlag=True))
diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingXic0ToXiMuNu_WS.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingXic0ToXiMuNu_WS.py
new file mode 100644
index 0000000000000000000000000000000000000000..5316c56de5b4af0d70f09cff5751a2fbb68a8f34
--- /dev/null
+++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingXic0ToXiMuNu_WS.py
@@ -0,0 +1,140 @@
+###############################################################################
+# (c) Copyright 2023 CERN for the benefit of the LHCb Collaboration           #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+"""
+Stripping lines for Xic0 -> Xi- mu+ nu
+The lines are used to complement the inclusive Xi Turbo lines by adding
+Velo raw banks to study if the Xi- can be reconstructed as an upstream track.
+The wrong sign StrippingLine is needed to understand the background from when Xi- 
+is wrongly combined with a muon from another event.
+"""
+from GaudiConfUtils.ConfigurableGenerators import CombineParticles
+from Configurables import FilterDesktop
+from PhysConf.Selections import (
+    FilterSelection, CombineSelection, MergedSelection)
+from PhysSelPython.Wrappers import AutomaticData
+from StrippingUtils.Utils import LineBuilder
+from StrippingConf.StrippingLine import StrippingLine
+__author__ = ["Patrik Adlarson", "Artur Ukleja",
+              "Marian Stahl", "Laurent Dufour"]
+
+__all__ = ("Xic0ToXiMuNu_WSConf", "default_config")
+
+moduleName = "Xic0ToXiMuNu_WS"
+
+
+# Import Packages
+
+# Default configuration dictionary
+default_config = {
+    "NAME": "Xic0ToXiMuNu_WS",
+    "BUILDERTYPE": "Xic0ToXiMuNu_WSConf",
+    "CONFIG": {
+        "descriptor_xi": ["[Xi- -> Lambda0 pi-]cc"],
+        "descriptor_ximu": ["[Xi_c0 -> Xi- mu-]cc"],
+        "RequiredRawEvents": ["Velo"],
+        "bach_pion": {
+            "tes": "Phys/StdAllNoPIDsPions/Particles",
+            "filter": "(PT > 120*MeV) & (P > 1000*MeV) & (MIPDV(PRIMARY)>0.01*mm) & (MIPCHI2DV(PRIMARY) > 9.0) & (PROBNNpi>0.03)"
+        },
+        "down_pion": {
+            "tes": "Phys/StdNoPIDsDownPions/Particles",
+            "filter": "(P>1000*MeV) & (PT>150*MeV) & (PROBNNpi>0.03)"
+        },
+        "bach_muon": {
+            "tes": "Phys/StdAllNoPIDsMuons/Particles",
+            "filter": "(PT>200*MeV) & (P>3000*MeV) & (PROBNNmu>0.3) & (BPVIPCHI2()>4)"
+        },
+        "lambda_ll": {
+            "tes": "Phys/StdVeryLooseLambdaLL/Particles",
+            "filter": """(ADMASS('Lambda0')<20*MeV) & (P>6*GeV) & (PT>200*MeV) & (BPVVDZ>8*mm) & (BPVLTIME() > 2.0*ps) & (CHI2VXNDF<20) &
+                    (MAXTREE('p+'==ABSID,MIPCHI2DV(PRIMARY))>9) & (MAXTREE('pi-'==ABSID,MIPCHI2DV(PRIMARY))>24) & 
+                    (MAXTREE('p+'==ABSID,PT)>100*MeV) & (MAXTREE('p+'==ABSID,P)>5.0*GeV) & (VFASPF(VZ) > -100.*mm) & (VFASPF(VZ) <  640.*mm) & (BPVVDCHI2 > 100)"""
+        },
+        "lambda_dd": {
+            "tes": "Phys/StdLooseLambdaDD/Particles",
+            "filter": """(ADMASS('Lambda0')<20*MeV) & (P>12*GeV) & (PT>400*MeV) & (CHILDIP(1)<2*mm) & (MAXTREE('p+'==ABSID,P)>9*GeV) & (CHI2VXNDF<30) &
+                    (MAXTREE('p+'==ABSID,PT)>200*MeV) & (MAXTREE('pi+'==ABSID,PT)>150*MeV) & (VFASPF(VZ) >  300.*mm) & (VFASPF(VZ) < 2485.*mm)"""
+        },
+        "xi_lll": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ACHILD(2,MIPCHI2DV(PRIMARY))>9) & (ADOCA(1,2)<0.5*mm) & (ACHI2DOCA(1,2)<20)",
+            "mother_cut": """(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) & (BPVVDCHI2>15) & (BPVLTIME() > 2.0*picosecond) & 
+            (P>8*GeV) & (PT>400*MeV) """
+        },
+        "xi_ddl": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ADOCA(1,2)<2.5*mm) & (ACHI2DOCA(1,2)<12) ",
+            "mother_cut": """(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) & (BPVVDCHI2>20) & (BPVLTIME() > 2.0*picosecond) &
+            (P>15*GeV) & (PT>600*MeV)"""
+        },
+        "xi_ddd": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ACHILD(2,MIPCHI2DV(PRIMARY))>20) & (ADOCA(1,2)<5*mm) & (ACHI2DOCA(1,2)<12)",
+            "mother_cut": """(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) &  (BPVVDCHI2>10) & (BPVLTIME() > 2.0*picosecond) &
+            (P>15*GeV) & (PT>600*MeV)"""
+        },
+        "amass_ximu": "(in_range(1400*MeV,AMASS(),4500*MeV)) & ",
+        "xc0_lll": {
+            "comb_cut": """AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<1.5)""",
+            "mother_cut": """(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>12*GeV) & (PT>200*MeV)"""
+        },
+        "xc0_ddl": {
+            "comb_cut": """AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<3.5)""",
+            "mother_cut": """(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>20*GeV) & (PT>200*MeV) """
+        },
+        "xc0_ddd": {
+            "comb_cut": """AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<5.5)""",
+            "mother_cut": """(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>20*GeV) & (PT>200*MeV)"""
+        },
+    },
+    "STREAMS": {
+        "CharmCompleteEvent": ["StrippingXic0ToXiMuNu_WS_{0}Line".format(tt) for tt in ["LLL", "DDL", "DDD"]]
+    },
+    "WGs": ["Charm"]
+}
+
+
+class Xic0ToXiMuNu_WSConf(LineBuilder):
+
+    __configuration_keys__ = default_config["CONFIG"].keys()
+
+    def __init__(self, moduleName, config):
+        LineBuilder.__init__(self, moduleName, config)
+        # decay products
+        bach_pion = FilterSelection(moduleName+"_bach_pion", [AutomaticData(
+            config["bach_pion"]["tes"])], Code=config["bach_pion"]["filter"])
+        down_pion = FilterSelection(moduleName+"_down_pion", [AutomaticData(
+            config["down_pion"]["tes"])], Code=config["down_pion"]["filter"])
+        bach_muon = FilterSelection(moduleName+"_bach_muon", [AutomaticData(
+            config["bach_muon"]["tes"])], Code=config["bach_muon"]["filter"])
+        lambda_ll = FilterSelection(moduleName+"_lambda_ll", [AutomaticData(
+            config["lambda_ll"]["tes"])], Code=config["lambda_ll"]["filter"])
+        lambda_dd = FilterSelection(moduleName+"_lambda_dd", [AutomaticData(
+            config["lambda_dd"]["tes"])], Code=config["lambda_dd"]["filter"])
+        xi_lll = CombineSelection(moduleName+"_xi_lll", [lambda_ll, bach_pion], DecayDescriptors=config["descriptor_xi"],
+                                  CombinationCut=config["xi_lll"]["comb_cut"], MotherCut=config["xi_lll"]["mother_cut"])
+        xi_ddl = CombineSelection(moduleName+"_xi_ddl", [lambda_dd, bach_pion], DecayDescriptors=config["descriptor_xi"],
+                                  CombinationCut=config["xi_ddl"]["comb_cut"], MotherCut=config["xi_ddl"]["mother_cut"])
+        xi_ddd = CombineSelection(moduleName+"_xi_ddd", [lambda_dd, down_pion], DecayDescriptors=config["descriptor_xi"],
+                                  CombinationCut=config["xi_ddd"]["comb_cut"], MotherCut=config["xi_ddd"]["mother_cut"])
+        # charm baryon candidates; this could look a bit nicer when looping over track types and channels...
+
+        ximu_lll = CombineSelection(moduleName+"_ximu_lll", [xi_lll, bach_muon], DecayDescriptors=config["descriptor_ximu"],
+                                    CombinationCut=config["amass_ximu"]+config["xc0_lll"]["comb_cut"], MotherCut=config["xc0_lll"]["mother_cut"])
+        ximu_ddl = CombineSelection(moduleName+"_ximu_ddl", [xi_ddl, bach_muon], DecayDescriptors=config["descriptor_ximu"],
+                                    CombinationCut=config["amass_ximu"]+config["xc0_ddl"]["comb_cut"], MotherCut=config["xc0_ddl"]["mother_cut"])
+        ximu_ddd = CombineSelection(moduleName+"_ximu_ddd", [xi_ddd, bach_muon], DecayDescriptors=config["descriptor_ximu"],
+                                    CombinationCut=config["amass_ximu"]+config["xc0_ddd"]["comb_cut"], MotherCut=config["xc0_ddd"]["mother_cut"])
+
+        # Create the stripping lines
+        self.registerLine(StrippingLine(
+            moduleName+"_LLLLine", RequiredRawEvents=config["RequiredRawEvents"], algos=[ximu_lll], MDSTFlag=True))
+        self.registerLine(StrippingLine(
+            moduleName+"_DDLLine", RequiredRawEvents=config["RequiredRawEvents"], algos=[ximu_ddl], MDSTFlag=True))
+        self.registerLine(StrippingLine(
+            moduleName+"_DDDLine", RequiredRawEvents=config["RequiredRawEvents"], algos=[ximu_ddd], MDSTFlag=True))
diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingXic2PHH.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingXic2PHH.py
new file mode 100644
index 0000000000000000000000000000000000000000..ee622d656638017e0165666ca6cc18a4ea8edcff
--- /dev/null
+++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/StrippingXic2PHH.py
@@ -0,0 +1,410 @@
+###############################################################################
+# (c) Copyright 2000-2023 CERN for the benefit of the LHCb Collaboration      #
+#                                                                             #
+# This software is distributed under the terms of the GNU General Public      #
+# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
+#                                                                             #
+# In applying this licence, CERN does not waive the privileges and immunities #
+# granted to it by virtue of its status as an Intergovernmental Organization  #
+# or submit itself to any jurisdiction.                                       #
+###############################################################################
+__author__ = ['Hong-Jian Wang']
+__date__ = '07/03/2023'
+__version__ = '$Revision: 0.1 $'
+__all__ = ('StrippingXic2PHH'
+           ,'default_config')
+
+from Gaudi.Configuration import *
+from GaudiConfUtils.ConfigurableGenerators import FilterDesktop, CombineParticles
+from StandardParticles import StdLoosePions, StdLooseKaons, StdLooseProtons
+from StandardParticles import StdLooseKsLL, StdLooseKsDD
+from PhysSelPython.Wrappers import Selection, DataOnDemand, MergedSelection
+from PhysSelPython.Wrappers import MultiSelectionSequence
+from StrippingConf.StrippingLine import StrippingLine
+from StrippingUtils.Utils import LineBuilder
+from GaudiKernel.SystemOfUnits import MeV, GeV, mm, picosecond
+import sys
+
+default_name='Xic2PHH'
+    #### This is the dictionary of all tunable cuts ########
+default_config={
+      'NAME'        : 'Xic2PHH',
+      'WGs'         : ['Charm'],
+      'BUILDERTYPE' : 'StrippingXic2PHH',
+      'STREAMS'     : ['Charm'],
+      'CONFIG'      : {
+          'GEC_nLongTrk' : 250    # adimensional
+        , 'signalPrescaleViaXicPKK'     :   1.0
+        , 'signalPrescaleViaXicPPhi2KK' :   1.0
+        , 'signalPrescaleViaXicPPiPi'   :   1.0
+        , 'signalPrescaleViaXicPKS0LL'  :   1.0
+        , 'signalPrescaleViaXicPKS0DD'  :   1.0
+        , 'TRCHI2DOFMax'            :   3.0
+        , 'GhostProb'               :   0.3
+        , 'TrGhostProbMax'          :   0.25 # same for all particles
+        , 'MINIPCHI2'               :   4.0  # adimensiional, orig. 9
+        , 'PionP'                   :   3.0*GeV
+        , 'PionPT'                  :   500*MeV
+        , 'PionPIDK'                :  10.0
+        , 'Pion_PIDpiPIDK_Min'      :   0.0
+        , 'KaonP'                   :   2.0*GeV
+        , 'KaonPT'                  :   200*MeV
+        , 'KaonPIDK'                :  10.0
+        , 'Kaon_PIDKPIDpi_Min'      :   5.0
+        , 'ProtonP'                 :   3.0*GeV
+        , 'ProtonPT'                :   500*MeV
+        , 'Proton_PIDpPIDpi_Min'    :   5.0
+        , 'Proton_PIDpPIDK_Min'     :   0.0
+        , 'ProbNNpMin'              :   0.2 #ProbNNp cut for proton in L0, to suppress the bkg of L0
+        , 'ProbNNp'                 :   0.4
+        , 'ProbNNk'                 :   0.4
+        , 'ProbNNpi'                :   0.5
+        , 'ProbNNpiMax'             :   0.95
+        , 'Xic_ADAMASS_HalfWin'     : 170.0*MeV
+        , 'Xic_ADMASS_HalfWin'      : 120.0*MeV
+        , 'Xic_BPVVDCHI2_Min'       :  25.0
+        , 'Xic_BPVDIRA_Min'         :   0.9
+        , 'pKK_AM_Min'              :  2380.0*MeV
+        , 'ppipi_AM_Min'            :  2380.0*MeV
+        , 'Xic_AM_Max'              :  2550.0*MeV
+        # KS (DD)
+        , 'MinKsPT_DD'              : 200 * MeV
+        , 'MaxKsVCHI2NDOF_DD'       : 20.0
+        , 'MinDz_DD'                : 250. * mm
+        , 'MaxDz_DD'                : 9999 * mm
+        , 'MinKsIpChi2_DD'          : 3
+        , 'KSCutDIRA_DD'            : 0.999
+        , 'KSCutMass_DD'            : 50 * MeV
+        , 'KSCutFDChi2_DD'          : 5
+        # KS (LL)
+        , 'MinKsPT_LL'              : 200 * MeV
+        , 'MaxKsVCHI2NDOF_LL'       : 20.0
+        , 'MinDz_LL'                : 0 * mm
+        , 'MaxDz_LL'                : 9999 * mm
+        , 'MinKsIpChi2_LL'          : 3
+        , 'KSCutDIRA_LL'            : 0.999
+        , 'KSCutMass_LL'            : 35 * MeV
+        , 'KSCutFDChi2_LL'          : 5
+        # phi1020
+        , 'MinPhiPT'                : 200 * MeV
+        , 'MinPhiP'                 : 3 * GeV
+        , 'MinPhiEta'               : 2.0
+        , 'MaxPhiEta'               : 5.0
+        , 'BPVIPCHI2_Phi'           : 4
+        , 'PhiCutMass'              : 20 * MeV
+      } ## end of 'CONFIG'
+}  ## end of default_config
+
+#-------------------------------------------------------------------------------------------------------------
+class StrippingXic2PHH(LineBuilder) :
+    __configuration_keys__ = default_config['CONFIG'].keys()
+
+    def __init__(self, name, config) :
+        LineBuilder.__init__(self, name, config)
+        self.name = name
+        self.config = config
+       
+        GECs = { "Code":"( recSummaryTrack(LHCb.RecSummary.nLongTracks, TrLONG) < %(GEC_nLongTrk)s )" % config,
+                     "Preambulo": ["from LoKiTracks.decorators import *"]}
+        
+        ##########################################################################
+        ## Basic particles: K, pi, p
+        ##########################################################################
+        self.selKaon = Selection( "SelKfor" + name,
+                Algorithm = self._kaonFilter("Kfor"+name),
+                RequiredSelections = [StdLooseKaons])
+
+        self.selPion = Selection( "SelPifor" + name,
+                Algorithm = self._pionFilter("Pifor"+name),
+                RequiredSelections = [StdLoosePions])
+
+        self.selProton = Selection( "SelPfor" + name,
+                Algorithm = self._protonFilter("Pfor"+name),
+                RequiredSelections = [StdLooseProtons])
+        ##########################################################################
+        ## KS0 -> pi+ pi-
+        ##########################################################################
+        _stdLooseKs0LL = DataOnDemand("Phys/StdLooseKsLL/Particles")
+        _stdLooseKs0DD = DataOnDemand("Phys/StdLooseKsDD/Particles")
+
+        self.selKs0LL = Selection("SelKsLL0for"+name,
+                Algorithm = self._Ks0LLFilter("Ks0LLfor"+name),
+                RequiredSelections = [_stdLooseKs0LL])
+
+        self.selKs0DD = Selection("SelKs0DDfor"+name,
+                Algorithm = self._Ks0DDFilter("Ks0DDfor"+name),
+                RequiredSelections = [_stdLooseKs0DD])
+        ##########################################################################
+        ## Xi- -> Lambda0 pi- 
+        ##########################################################################
+        self.phi2KK = self.createCombinationSel(OutputList = "phi2KKfor"+ self.name,
+                DecayDescriptor = "[phi(1020) -> K+ K-]cc",
+                DaughterLists   = [self.selKaon],
+                DaughterCuts    = {"K+" : "(MIPCHI2DV(PRIMARY)>4) "},
+                PreVertexCuts   = "(ADAMASS('phi(1020)') < 40*MeV) & (ADOCACHI2CUT(30, ''))",
+                PostVertexCuts  = "  (PT > %(MinPhiPT)s) & (P > %(MinPhiP)s)"\
+                                  "& (BPVIPCHI2() > %(BPVIPCHI2_Phi)s)"\
+                                  "& (in_range(%(MinPhiEta)s, ETA, %(MaxPhiEta)s))"\
+                                  "& (ADMASS('phi(1020)') < %(PhiCutMass)s)" % self.config )
+        self.Xic2PHHList = self.makeXic2PHH()
+
+    #------------------------------------------------------------------------------------------
+    #------------------------------------------------------------------------------------------
+    # Sub Function
+    #------------------------------------------------------------------------------------------
+    #------------------------------------------------------------------------------------------
+    def _pionFilter( self , _name):
+        _code = "  (TRCHI2DOF < %(TRCHI2DOFMax)s)"\
+                "& (P>%(PionP)s) & (PT > %(PionPT)s)"\
+                "& (TRGHOSTPROB< %(TrGhostProbMax)s)"\
+                "& (MIPCHI2DV(PRIMARY)> %(MINIPCHI2)s)"\
+                "& (PIDK< %(PionPIDK)s)"\
+                "& (PROBNNpi > %(ProbNNpi)s)" % self.config
+        _pi = FilterDesktop(Code = _code )
+        return _pi
+
+    def _kaonFilter( self , _name ):
+        _code = "  (TRCHI2DOF < %(TRCHI2DOFMax)s)"\
+                "& (P>%(KaonP)s) & (PT > %(KaonPT)s)"\
+                "& (TRGHOSTPROB< %(TrGhostProbMax)s)"\
+                "& (MIPCHI2DV(PRIMARY)> %(MINIPCHI2)s)"\
+                "& (PIDK> %(KaonPIDK)s) & (PROBNNpi < %(ProbNNpiMax)s)"\
+                "& (PROBNNk > %(ProbNNk)s)"\
+                "& (HASRICH)&(PIDK-PIDpi>%(Kaon_PIDKPIDpi_Min)s)"% self.config
+        _ka = FilterDesktop(Code = _code )
+        return _ka
+
+    def _protonFilter( self, _name ):
+        _code = "  (TRCHI2DOF < %(TRCHI2DOFMax)s)"\
+                "& (PT > %(ProtonPT)s) & (P>%(ProtonP)s)"\
+                "& (TRGHOSTPROB < %(TrGhostProbMax)s)"\
+                "& (MIPCHI2DV(PRIMARY)> %(MINIPCHI2)s)"\
+                "& (PROBNNp > %(ProbNNp)s) & (PROBNNpi < %(ProbNNpiMax)s)"\
+                "& (HASRICH)&(PIDp-PIDpi > %(Proton_PIDpPIDpi_Min)s)"\
+                "& (HASRICH)&(PIDp-PIDK > %(Proton_PIDpPIDK_Min)s)"% self.config
+        _pr = FilterDesktop(Code = _code)
+        return _pr
+
+    def _Ks0LLFilter( self, _name):
+        _code = "  (PT > %(MinKsPT_LL)s)" \
+                "& (BPVVDZ > %(MinDz_LL)s ) " \
+                "& (BPVVDZ < %(MaxDz_LL)s ) " \
+                "& (MIPCHI2DV(PRIMARY) > %(MinKsIpChi2_LL)s) "\
+                "& (BPVDIRA > %(KSCutDIRA_LL)s )" \
+                "& (ADMASS('KS0') < %(KSCutMass_LL)s)" \
+                "& (BPVVDCHI2 > %(KSCutFDChi2_LL)s)" % self.config
+        _Ks0LL = FilterDesktop(Code = _code)
+        return _Ks0LL
+
+    def _Ks0DDFilter( self , _name):
+        _code = "   (PT > %(MinKsPT_DD)s)" \
+                " & (BPVVDZ > %(MinDz_DD)s ) " \
+                " & (BPVVDZ < %(MaxDz_DD)s ) " \
+                " & (MIPCHI2DV(PRIMARY) > %(MinKsIpChi2_DD)s) "\
+                " & (BPVDIRA > %(KSCutDIRA_DD)s )" \
+                " & (ADMASS('KS0') < %(KSCutMass_DD)s)" \
+                " & (BPVVDCHI2 > %(KSCutFDChi2_DD)s)" % self.config
+        _Ks0DD = FilterDesktop(Code = _code)
+        return _Ks0DD
+
+    ##------------------------------------------------------------------------------------------
+    ## --------------------  Begin to makeXic2PHH  ------------
+    def makeXic2PHH( self ):
+        #Cut for Basic
+
+        _PreVertexCuts   = "(ADAMASS('Xi_c+') < 120*MeV) & (ADOCACHI2CUT(30, ''))"
+        _PostVertexCuts  = "(ADMASS('Xi_c+')<90*MeV)"\
+                           "& (VFASPF(VCHI2)<25)"\
+                           "& (P> 1000*MeV) & (PT > 250*MeV)"\
+                           "& (BPVVDCHI2 > 49.0 )"\
+                           "& (VFASPF(VCHI2/VDOF) < 12.0)"
+
+        _strCutMothfor = "(BPVVDCHI2>%(Xic_BPVVDCHI2_Min)s)" \
+                         "& (BPVDIRA>%(Xic_BPVDIRA_Min)s)" % self.config
+
+        _strCutComb_XicMass = "(ADAMASS('Xi_c+') < %(Xic_ADAMASS_HalfWin)s )" % self.config
+        _strCutMoth_XicMass = "(ADMASS('Xi_c+') < %(Xic_ADMASS_HalfWin)s)" % self.config
+        
+        _strCutMothforXicPlus   = _strCutMothfor + '&' + _strCutMoth_XicMass + '&' + _PostVertexCuts
+
+        _strCutComb_MassPKK   = "(AM>%(pKK_AM_Min)s) & (AM<%(Xic_AM_Max)s)" % self.config
+        _strCutComb_MassPPiPi = "(AM>%(ppipi_AM_Min)s) & (AM<%(Xic_AM_Max)s)" % self.config
+
+        _strCutComb_Xic2PKK   = _strCutComb_XicMass + '&' + _strCutComb_MassPKK   + '&' + _PreVertexCuts
+        _strCutComb_Xic2PPiPi = _strCutComb_XicMass + '&' + _strCutComb_MassPPiPi + '&' + _PreVertexCuts
+        _strCutMothPHH = _strCutMothforXicPlus
+
+        ''' Stripping Xi_c+ -> p+ K+ K- '''
+        Xic2PKK = self.createCombinationSel(OutputList = "Xic2PKK" + self.name,
+                DecayDescriptor = "[Xi_c+ -> p+ K+ K-]cc",
+                DaughterLists   = [self.selProton, self.selKaon],
+                PreVertexCuts   = _strCutComb_Xic2PKK,
+                PostVertexCuts  = _strCutMothPHH )
+        Xic2PKKLine = StrippingLine( self.name + "Xicp2PKKLine",
+                prescale = self.config['signalPrescaleViaXicPKK'],
+                algos = [ Xic2PKK ],
+                EnableFlavourTagging = False,
+                RelatedInfoTools = self._getRelInfoXic2PKK() )
+        self.registerLine (Xic2PKKLine)
+
+        ''' Stripping Xi_c+ -> p+ (phi(1020) -> K+ K-) '''
+        Xic2PPhi2KK = self.createCombinationSel(OutputList = "Xic2PPhi2KK" + self.name,
+                DecayDescriptor = "[Xi_c+ -> p+ phi(1020)]cc",
+                DaughterLists   = [self.selProton, self.phi2KK],
+                PreVertexCuts   = _strCutComb_Xic2PKK,
+                PostVertexCuts  = _strCutMothPHH )
+        Xic2PPhi2KKLine = StrippingLine( self.name + "Xicp2PPhi2KKLine",
+                prescale = self.config['signalPrescaleViaXicPPhi2KK'],
+                algos = [ Xic2PPhi2KK ],
+                EnableFlavourTagging = False,
+                RelatedInfoTools = self._getRelInfoXic2PPhi2KK() )
+        self.registerLine (Xic2PPhi2KKLine)
+
+        ''' Stripping Xi_c+ -> p+ pi+ pi-'''
+        Xic2PPiPi = self.createCombinationSel(OutputList = "Xic2PPiPi" + self.name,
+                DecayDescriptor = "[Xi_c+ -> p+ pi+ pi-]cc",
+                DaughterLists   = [self.selProton, self.selPion],
+                PreVertexCuts   = _strCutComb_Xic2PPiPi,
+                PostVertexCuts  = _strCutMothPHH )
+        Xic2PPiPiLine = StrippingLine( self.name + "Xicp2PPiPiLine",
+                prescale = self.config['signalPrescaleViaXicPPiPi'],
+                algos = [ Xic2PPiPi ],
+                EnableFlavourTagging = False,
+                RelatedInfoTools = self._getRelInfoXic2PPiPi() )
+        self.registerLine (Xic2PPiPiLine)
+
+        ''' Stripping Xi_c+ -> p+ KS0(LL)'''
+        Xic2PKS0LL = self.createCombinationSel(OutputList = "Xic2PKS0LL" + self.name,
+                DecayDescriptor = "[Xi_c+ -> p+ KS0]cc",
+                DaughterLists   = [self.selProton, self.selKs0LL],
+                PreVertexCuts   = _strCutComb_Xic2PPiPi,
+                PostVertexCuts  = _strCutMothPHH )
+        Xic2PKS0LLLine = StrippingLine( self.name + "Xicp2PKS0LLLine",
+                prescale = self.config['signalPrescaleViaXicPKS0LL'],
+                algos = [ Xic2PKS0LL ],
+                EnableFlavourTagging = False,
+                RelatedInfoTools = self._getRelInfoXic2PKS0() )
+        self.registerLine (Xic2PKS0LLLine)
+
+        ''' Stripping Xi_c+ -> p+ KS0(DD)'''
+        Xic2PKS0DD = self.createCombinationSel(OutputList = "Xic2PKS0D" + self.name,
+                DecayDescriptor = "[Xi_c+ -> p+ KS0]cc",
+                DaughterLists   = [self.selProton, self.selKs0DD],
+                PreVertexCuts   = _strCutComb_Xic2PPiPi,
+                PostVertexCuts  = _strCutMothPHH )
+        Xic2PKS0DDLine = StrippingLine( self.name + "Xicp2PKS0DDLine",
+                prescale = self.config['signalPrescaleViaXicPKS0DD'],
+                algos = [ Xic2PKS0DD ],
+                EnableFlavourTagging = False,
+                RelatedInfoTools = self._getRelInfoXic2PKS0() )
+        self.registerLine (Xic2PKS0DDLine)
+
+    ##  --------------------  end of makeXic2PHH  ------------
+    ##------------------------------------------------------------------------------------------
+
+    ##########################################################################
+    ## Basic Function
+    ##########################################################################
+    def createSubSel( self, OutputList, InputList, Cuts ) :
+        '''create a selection using a FilterDesktop'''
+        filter = FilterDesktop(Code = Cuts)
+        return Selection( OutputList,
+                Algorithm = filter,
+                RequiredSelections = [ InputList ] )
+
+    def createCombinationSel( self, OutputList,
+            DecayDescriptor,
+            DaughterLists,
+            DaughterCuts = {} ,
+            PreVertexCuts = "ALL",
+            PostVertexCuts = "ALL") :
+        '''create a selection using a ParticleCombiner with a single decay descriptor'''
+        combiner = CombineParticles( DecayDescriptor = DecayDescriptor,
+                DaughtersCuts = DaughterCuts,
+                MotherCut = PostVertexCuts,
+                CombinationCut = PreVertexCuts,
+                ReFitPVs = True)
+        return Selection ( OutputList,
+                Algorithm = combiner,
+                RequiredSelections = DaughterLists)
+    #print "DEBUG here is :",__file__,sys._getframe().f_lineno
+
+    def _getRelInfoXic2PKK(self):
+        relInfo = []
+        for coneAngle in [0.8,1.0,1.3,1.7]:
+            conestr = str(coneAngle).replace('.','')
+            relInfo += [
+            { "Type"         : "RelInfoConeVariables",
+            "ConeAngle"    : coneAngle,
+            "Variables"    : ['CONEANGLE', 'CONEMULT', 'CONEPTASYM'],
+            "DaughterLocations" : {
+                "^[Xi_c+ -> p+ K+ K-]CC" : 'P2ConeVar%s_Xic' % conestr,
+                "[Xi_c+ -> ^p+ K+ K-]CC" : 'P2ConeVar%s_proton' % conestr,
+                "[Xi_c+ -> p+ ^K+ K-]CC" : 'P2ConeVar%s_K1' % conestr,
+                "[Xi_c+ -> p+ K+ ^K-]CC" : 'P2ConeVar%s_K2' % conestr } }
+                       ]
+        relInfo += [ { "Type" : "RelInfoVertexIsolation",
+            "DaughterLocations" : {
+                "^[Xi_c+ -> p+ K+ K-]CC" : 'VertexIsoInfo_Xic'} } ]
+        return relInfo
+
+    def _getRelInfoXic2PPhi2KK(self):
+        relInfo = []
+        for coneAngle in [0.8,1.0,1.3,1.7]:
+            conestr = str(coneAngle).replace('.','')
+            relInfo += [
+            { "Type"         : "RelInfoConeVariables",
+            "ConeAngle"    : coneAngle,
+            "Variables"    : ['CONEANGLE', 'CONEMULT', 'CONEPTASYM'],
+            "DaughterLocations" : {
+                "^[Xi_c+ -> p+ (phi(1020) -> K+ K-)]CC" : 'P2ConeVar%s_Xic' % conestr,
+                "[Xi_c+ -> ^p+ (phi(1020) -> K+ K-)]CC" : 'P2ConeVar%s_proton' % conestr,
+                "[Xi_c+ -> p+ ^(phi(1020) -> K+ K-)]CC" : 'P2ConeVar%s_phi' % conestr,
+                "[Xi_c+ -> p+ (phi(1020) -> ^K+ K-)]CC" : 'P2ConeVar%s_K1' % conestr,
+                "[Xi_c+ -> p+ (phi(1020) -> K+ ^K-)]CC" : 'P2ConeVar%s_K2' % conestr } }
+                       ]
+        relInfo += [ { "Type" : "RelInfoVertexIsolation",
+            "DaughterLocations" : {
+                "^[Xi_c+ -> p+ (phi(1020) -> K+ K-)]CC" : 'VertexIsoInfo_Xic',
+                "[Xi_c+ -> p+ ^(phi(1020) -> K+ K-)]CC" : 'VertexIsoInfo_phi'} } ]
+        return relInfo
+
+    def _getRelInfoXic2PPiPi(self):
+        relInfo = []
+        for coneAngle in [0.8,1.0,1.3,1.7]:
+            conestr = str(coneAngle).replace('.','')
+            relInfo += [
+            { "Type"         : "RelInfoConeVariables",
+            "ConeAngle"    : coneAngle,
+            "Variables"    : ['CONEANGLE', 'CONEMULT', 'CONEPTASYM'],
+            "DaughterLocations" : {
+                "^[Xi_c+ -> p+ pi+ pi-]CC" : 'P2ConeVar%s_Xic' % conestr,
+                "[Xi_c+ -> ^p+ pi+ pi-]CC" : 'P2ConeVar%s_proton' % conestr,
+                "[Xi_c+ -> p+ ^pi+ pi-]CC" : 'P2ConeVar%s_pi1' % conestr,
+                "[Xi_c+ -> p+ pi+ ^pi-]CC" : 'P2ConeVar%s_pi2' % conestr } }
+                       ]
+        relInfo += [ { "Type" : "RelInfoVertexIsolation",
+            "DaughterLocations" : {
+                "^[Xi_c+ -> p+ pi+ pi-]CC" : 'VertexIsoInfo_Xic'} } ]
+        return relInfo
+
+    def _getRelInfoXic2PKS0(self):
+        relInfo = []
+        for coneAngle in [0.8,1.0,1.3,1.7]:
+            conestr = str(coneAngle).replace('.','')
+            relInfo += [
+            { "Type"         : "RelInfoConeVariables",
+            "ConeAngle"    : coneAngle,
+            "Variables"    : ['CONEANGLE', 'CONEMULT', 'CONEPTASYM'],
+            "DaughterLocations" : {
+                "^[Xi_c+ -> p+ (KS0 -> pi+ pi-)]CC" : 'P2ConeVar%s_Xic' % conestr,
+                "[Xi_c+ -> ^p+ (KS0 -> pi+ pi-)]CC" : 'P2ConeVar%s_proton' % conestr,
+                "[Xi_c+ -> p+ ^(KS0 -> pi+ pi-)]CC" : 'P2ConeVar%s_KS0' % conestr,
+                "[Xi_c+ -> p+ (KS0 -> ^pi+ pi-)]CC" : 'P2ConeVar%s_pi1' % conestr,
+                "[Xi_c+ -> p+ (KS0 -> pi+ ^pi-)]CC" : 'P2ConeVar%s_pi2' % conestr } }
+                       ]
+        relInfo += [ { "Type" : "RelInfoVertexIsolation",
+            "DaughterLocations" : {
+                "^[Xi_c+ -> p+ (KS0 -> pi+ pi-)]CC" : 'VertexIsoInfo_Xic',
+                "[Xi_c+ -> p+ ^(KS0 -> pi+ pi-)]CC" : 'VertexIsoInfo_KS0'} } ]
+        return relInfo
diff --git a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/__init__.py b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/__init__.py
index a49a51f04431f7a05e9a2dc1a9a8ba426e1e7716..131e42f4ae5707b27269b490fa218ec29af56c97 100644
--- a/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/__init__.py
+++ b/Phys/StrippingSelections/python/StrippingSelections/StrippingCharm/__init__.py
@@ -9,7 +9,21 @@
 # or submit itself to any jurisdiction.                                       #
 ###############################################################################
 
-_selections = ('StrippingLambdacForNeutronPID', 'StrippingXiccSL','StrippingD2KPiPiMuNu','StrippingBs2st2pKpipipi', 'StrippingDstarD2KSHHPi0','StrippingCharmFromBSemi', 'StrippingXcpToXiPipHp', 'StrippingLambdac2V0H', 'StrippingNeutralCBaryons', 'StrippingD2HMuNu', 'StrippingXcpToLambdaKSHp', 'StrippingDstarD2XGamma', 'StrippingCharmedBaryonSL' )
+_selections = ( 'StrippingXic0ToXiMuNu', 
+                'StrippingXic0ToXiMuNu_WS', 
+                'StrippingDstarD02ETau', 
+                'StrippingCharm2PPX', 
+                'StrippingCharmedBaryonSL', 
+                'StrippingCharmedMesonSL', 
+                'StrippingLambdac2LambdaEtaPi', 
+                'StrippingNeutralCBaryons', 
+                'StrippingXib2Xic0PiXic02pK', 
+                'StrippingHc2V2H', 
+                'StrippingHc2V3H', 
+                'StrippingHc2V02H', 
+                'StrippingHc2V03H', 
+                'StrippingXic2PHH', 
+                'StrippingLambdac2PEta' )
 
 for _sel in _selections :
     try :
diff --git a/Phys/StrippingSettings/python/StrippingSettings/Stripping28r2p2/LineConfigDictionaries_Charm.py b/Phys/StrippingSettings/python/StrippingSettings/Stripping28r2p2/LineConfigDictionaries_Charm.py
index 759f4f0ebef538abf99beff2691d1127ebc2e0b2..3c77505f5047c0dd5f764b36c644a37a4be0ab02 100644
--- a/Phys/StrippingSettings/python/StrippingSettings/Stripping28r2p2/LineConfigDictionaries_Charm.py
+++ b/Phys/StrippingSettings/python/StrippingSettings/Stripping28r2p2/LineConfigDictionaries_Charm.py
@@ -16,3 +16,937 @@
 ##  Contact person: Sergio Jaimes     (sergio.jaimes@cern.ch)                 ##
 ################################################################################
 
+Charm2PPX = {
+    "BUILDERTYPE": "StrippingCharm2PPXConf", 
+    "CONFIG": {
+        "Comb_ADOCACHI2_MAX": 16, 
+        "Daug_1ofAll_BPVIPCHI2_MIN": 9.0, 
+        "Daug_1ofAll_PT_MIN": 700.0, 
+        "Daug_All_BPVIPCHI2_MIN": 4.0, 
+        "Daug_All_CloneDist_MIN": 5000, 
+        "Daug_All_MIPCHI2_MIN": 4.0, 
+        "Daug_All_PT_MIN": 200.0, 
+        "Daug_All_TrChostProb_MAX": 0.5, 
+        "Daug_ETA_MAX": 4.9, 
+        "Daug_ETA_MIN": 2.0, 
+        "Daug_P_MAX": 100000.0, 
+        "Daug_P_MIN": 3200.0, 
+        "Hc_BPVCTAU_MIN": 0.05, 
+        "Hc_BPVVDCHI2_MIN": 9.0, 
+        "Hc_MASS_MAX": 3500.0, 
+        "Hc_PT_MIN": 1000.0, 
+        "Hc_VCHI2VDOF_MAX": 25.0, 
+        "Hcs_MASS_MAX": 3650.0, 
+        "Hlt1Filter": None, 
+        "Hlt2Filter": None, 
+        "HsComb_ADOCACHI2_MAX": 16, 
+        "HsDaug_1ofAll_BPVIPCHI2_MIN": 9.0, 
+        "HsDaug_1ofAll_PT_MIN": -500.0, 
+        "HsDownDaug_1ofAll_BPVIPCHI2_MIN": -9.0, 
+        "HsDown_BPVVDCHI2_MIN": 4.0, 
+        "HsProton_1ofAll_ProbNN_MIN": 0.5, 
+        "Hs_BPVCTAU_MIN": 0.1, 
+        "Hs_BPVVDCHI2_MIN": 9.0, 
+        "Hs_MASS_MAX": 2125.0, 
+        "Hs_PT_MIN": -1000.0, 
+        "Hs_VCHI2VDOF_MAX": 25.0, 
+        "Kaon_ProbNN_MIN": 0.1, 
+        "Lam_MASS_MAX": 1170.0, 
+        "Lc_MASS_MAX": 2350.0, 
+        "Pc_MASS_MAX": 3100.0, 
+        "Pion_ProbNN_MIN": 0.1, 
+        "PostscaleHc2LamPPi": 1.0, 
+        "PostscaleHc2LamPPiPi": 1.0, 
+        "PostscaleHc2PP": 1.0, 
+        "PostscaleHc2PPK": 1.0, 
+        "PostscaleHc2PPKPi": 1.0, 
+        "PostscaleHc2PPKPiPi": 1.0, 
+        "PostscaleHc2PPKs": 1.0, 
+        "PostscaleHc2PPKsPi": 1.0, 
+        "PostscaleHcs2LamLamPi": 1.0, 
+        "PostscaleHcs2LamPKPi": 1.0, 
+        "PostscaleHcs2PPKKPi": 1.0, 
+        "PostscaleHcs2PPKsK": 1.0, 
+        "PostscaleHs2PPPi": 1.0, 
+        "PostscaleL2PPi": 1.0, 
+        "PostscaleLc2PKPi": 1.0, 
+        "PostscalePc2PKPiPi": 1.0, 
+        "PostscalePc2PKsPi": 1.0, 
+        "PostscalePs2PPiPi": 1.0, 
+        "PrescaleHc2LamPPi": 1.0, 
+        "PrescaleHc2LamPPiPi": 1.0, 
+        "PrescaleHc2PP": 1.0, 
+        "PrescaleHc2PPK": 1.0, 
+        "PrescaleHc2PPKPi": 1.0, 
+        "PrescaleHc2PPKPiPi": 1.0, 
+        "PrescaleHc2PPKs": 1.0, 
+        "PrescaleHc2PPKsPi": 1.0, 
+        "PrescaleHcs2LamLamPi": 1.0, 
+        "PrescaleHcs2LamPKPi": 1.0, 
+        "PrescaleHcs2PPKKPi": 1.0, 
+        "PrescaleHcs2PPKsK": 1.0, 
+        "PrescaleHs2PPPi": 1.0, 
+        "PrescaleL2PPi": 0.01, 
+        "PrescaleLc2PKPi": 0.01, 
+        "PrescalePc2PKPiPi": 0.1, 
+        "PrescalePc2PKsPi": 0.1, 
+        "PrescalePs2PPiPi": 0.1, 
+        "Proton_1ofAll_ProbNN_MIN": 0.5, 
+        "Proton_PT_MIN": 300.0, 
+        "Proton_P_MIN": 10000.0, 
+        "Proton_ProbNN_MIN": 0.1, 
+        "Proton_ProbNNk_MAX": 0.8, 
+        "Proton_ProbNNpi_MAX": 0.55, 
+        "Ps_MASS_MAX": 1650.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+CharmedBaryonSL = {
+    "BUILDERTYPE": "StrippingCharmedBaryonSL", 
+    "CONFIG": {
+        "GEC_nLongTrk": 250, 
+        "GhostProb": 0.3, 
+        "KaonP": 3000.0, 
+        "KaonPIDK": 10.0, 
+        "KaonPT": 500.0, 
+        "KaonPT_ForOm": 100.0, 
+        "KaonP_ForOm": 2000.0, 
+        "Kaon_PIDKPIDpi_Min": 5.0, 
+        "L0Mu_AM_Min": 1250.0, 
+        "LambdaCutDIRA": 0.99, 
+        "LambdaDDCutFDChi2": 100.0, 
+        "LambdaDDCutMass": 20.0, 
+        "LambdaDDMaxVZ": 2275.0, 
+        "LambdaDDMinVZ": 400.0, 
+        "LambdaDDPMin": 5000.0, 
+        "LambdaDDPTMin": 800.0, 
+        "LambdaDaugTrackChi2": 4.0, 
+        "LambdaLDCutFDChi2": 100.0, 
+        "LambdaLDCutMass": 20.0, 
+        "LambdaLDPMin": 3000.0, 
+        "LambdaLDPTMin": 800.0, 
+        "LambdaLLCutFDChi2": 100.0, 
+        "LambdaLLCutMass": 20.0, 
+        "LambdaLLMaxVZ": 400.0, 
+        "LambdaLLMinVZ": -100.0, 
+        "LambdaLLPMin": 5000.0, 
+        "LambdaLLPTMin": 800.0, 
+        "LambdaPi_PT_MIN": 100.0, 
+        "LambdaPr_PT_MIN": 500.0, 
+        "LambdaVertexChi2": 5.0, 
+        "Lc_ADMASS_HalfWin": 80.0, 
+        "Lc_ADMASS_HalfWin_Tight": 55.0, 
+        "Lc_ADOCAMAX_Max": 0.5, 
+        "Lc_ADOCAMAX_Max_Tight": 0.15, 
+        "Lc_AM_Max": 2370.0, 
+        "Lc_APT_Min": 1000.0, 
+        "Lc_APT_Min_Tight_PKMu": 1600.0, 
+        "Lc_APT_Min_Tight_PPiMu": 1600.0, 
+        "Lc_AP_Min_Tight": 25000.0, 
+        "Lc_BPVDIRA_Min": 0.9, 
+        "Lc_BPVDIRA_Min_Tight": 0.99, 
+        "Lc_BPVVDCHI2_Min": 16.0, 
+        "Lc_BPVVDCHI2_Min_Tight": 25.0, 
+        "Lc_Daug_1of3_MIPCHI2DV_Min": 4.0, 
+        "Lc_Daug_1of3_MIPCHI2DV_Min_Tight": 9.0, 
+        "Lc_VCHI2_Max": 30.0, 
+        "Lc_VCHI2_Max_Tight": 20.0, 
+        "MINIPCHI2": 4.0, 
+        "MisID_PROB_Max": 0.7, 
+        "MuonIPCHI2": 5.0, 
+        "MuonP": 3000.0, 
+        "MuonPIDmu": 0.0, 
+        "MuonPT": 500.0, 
+        "Oc_AM_Max": 2780.0, 
+        "OmMu_AM_Min": 1780.0, 
+        "Omegac0_4Dau_VCHI2_Max": 60.0, 
+        "Omegac0_ADAMASS_HalfWin": 170.0, 
+        "Omegac0_ADMASS_HalfWin": 120.0, 
+        "Omegac0_BPVDIRA_Min": 0.9, 
+        "Omegac0_BPVVDCHI2_Min": 25.0, 
+        "P_Min_Tight": 3500.0, 
+        "PionP": 3000.0, 
+        "PionPIDK": 10.0, 
+        "PionPT": 500.0, 
+        "PionPT_ForXi": 100.0, 
+        "PionP_ForXi": 2000.0, 
+        "Pion_PIDpiPIDK_Min": 0.0, 
+        "ProbNNk": 0.4, 
+        "ProbNNp": 0.4, 
+        "ProbNNpMin": 0.2, 
+        "ProbNNpi": 0.5, 
+        "ProbNNpiMax": 0.95, 
+        "ProtonP": 3000.0, 
+        "ProtonPT": 500.0, 
+        "Proton_PIDpPIDK_Min": 0.0, 
+        "Proton_PIDpPIDpi_Min": 5.0, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "XiMu_AM_Min": 1430.0, 
+        "Xic_ADAMASS_HalfWin": 170.0, 
+        "Xic_ADMASS_HalfWin": 120.0, 
+        "Xic_AM_Max": 2550.0, 
+        "Xic_BPVDIRA_Min": 0.9, 
+        "Xic_BPVVDCHI2_Min": 25.0, 
+        "controlPrescaleViaLcL0DDPiNC": 0.8, 
+        "controlPrescaleViaLcL0LLPiNC": 0.4, 
+        "controlPrescaleViaLcPKPiNC": 0.09, 
+        "controlPrescaleViaLcPKPiNC_Tight": 0.5, 
+        "controlPrescaleViaLcPPiPiNC": 0.06, 
+        "controlPrescaleViaLcPPiPiNC_Tight": 0.5, 
+        "controlPrescaleViaOmegac0NC": 1.0, 
+        "controlPrescaleViaXicL0DDPiNC": 0.8, 
+        "controlPrescaleViaXicL0LLPiNC": 0.4, 
+        "controlPrescaleViaXicXiPiNC": 1.0, 
+        "pKMu_AM_Min": 1550.0, 
+        "ppiMu_AM_Min": 1200.0, 
+        "signalPrescaleViaLc": 1.0, 
+        "signalPrescaleViaLcL0DDMuNu": 0.8, 
+        "signalPrescaleViaLcPKMuNu_Tight": 1.0, 
+        "signalPrescaleViaLcPPiMuNu": 0.25, 
+        "signalPrescaleViaLcPPiMuNu_Tight": 1.0, 
+        "signalPrescaleViaOmegac0": 1.0, 
+        "signalPrescaleViaXic": 1.0, 
+        "signalPrescaleViaXicL0DDMuNu": 0.8, 
+        "signalPrescaleViaXicL0LLMuNu": 0.8
+    }, 
+    "STREAMS": [ "CharmCompleteEvent" ], 
+    "WGs": [ "Charm" ]
+}
+
+CharmedMesonSL = {
+    "BUILDERTYPE": "StrippingCharmedMesonSL", 
+    "CONFIG": {
+        "B0SL_M_Max": 5600.0, 
+        "B0SL_M_Min": 2800.0, 
+        "B0_M_Max": 5600.0, 
+        "B0_M_Min": 5100.0, 
+        "B_APT_Min": 1500.0, 
+        "B_AP_Min": 20000.0, 
+        "B_BPVDIRA_Min": 0.95, 
+        "B_BPVVDCHI2_Min": 16, 
+        "B_VCHI2_Max": 30, 
+        "BpSL_M_Max": 5700.0, 
+        "BpSL_M_Min": 3000.0, 
+        "Bp_M_Max": 5500.0, 
+        "Bp_M_Min": 5100.0, 
+        "D0SL_AM_Max": 1960.0, 
+        "D0_ADMASS_Max": 1900.0, 
+        "D0_ADMASS_Min": 1820.0, 
+        "DpSL_AM_Max": 2080.0, 
+        "Dp_ADMASS_Max": 2030.0, 
+        "Dp_ADMASS_Min": 1800.0, 
+        "Dp_ADOCAMAX_Max": 0.25, 
+        "Dp_APT_Min": 1200.0, 
+        "Dp_AP_Min": 20000.0, 
+        "Dp_BPVDIRA_Min": 0.95, 
+        "Dp_BPVVDCHI2_Min": 16.0, 
+        "Dp_Daug_1of3_MIPCHI2DV_Min": 4.0, 
+        "Dp_VCHI2_Max": 30.0, 
+        "EtaPiMu_AM_Min": 800.0, 
+        "GEC_nLongTrk": 160, 
+        "GhostProb": 0.3, 
+        "KKMu_AM_Min": 1100.0, 
+        "KaonP": 3000.0, 
+        "KaonPIDK": 10.0, 
+        "KaonPT": 250.0, 
+        "Kaon_PIDKPIDpi_Min": 5.0, 
+        "MINIPCHI2": 4.0, 
+        "MuonIPCHI2": 4.0, 
+        "MuonP": 3000.0, 
+        "MuonPIDmu": 0.0, 
+        "MuonPT": 250.0, 
+        "PiKKMu_AM_Min": 1240.0, 
+        "PiPiMu_AM_Min": 400.0, 
+        "PiPiPiMu_AM_Min": 530.0, 
+        "PionP": 3000.0, 
+        "PionPIDK": 5.0, 
+        "PionPT": 250.0, 
+        "Pion_PIDpiPIDK_Min": 0.0, 
+        "ProbNNk": 0.4, 
+        "ProbNNpi": 0.5, 
+        "ProbNNpiMax": 0.9, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "controlPrescaleViaD02KKpipi": 1.0, 
+        "controlPrescaleViaD02etapipi": 1.0, 
+        "controlPrescaleViaD02pipipipi": 1.0, 
+        "controlPrescaleViaD2KKpi": 1.0, 
+        "controlPrescaleViaD2pipipi": 1.0, 
+        "signalPrescaleViaD02KKpimunu": 1.0, 
+        "signalPrescaleViaD02etapimunu": 1.0, 
+        "signalPrescaleViaD02pipipimunu": 1.0, 
+        "signalPrescaleViaD2KKmunu": 1.0, 
+        "signalPrescaleViaD2pipimunu": 1.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+DstarD02ETau = {
+    "BUILDERTYPE": "StrippingDstarD02ETauConf", 
+    "CONFIG": {
+        "CUTBASED_MCORR_B_HIGH": "8600", 
+        "CUTBASED_MCORR_B_LOW": "3600", 
+        "CUTBASED_MCORR_D0_HIGH": "8000", 
+        "CUTBASED_MCORR_D0_LOW": "1000", 
+        "CUTBASED_MISS_MASS": "876", 
+        "CUTBASED_MISS_MASS_HIGH": "250", 
+        "CUTBASED_MISS_MASS_HIGH_KTHREEPI": "1500", 
+        "CUTBASED_MISS_MASS_LOW": "0", 
+        "CUTBASED_M_B": "2865", 
+        "CUTBASED_M_D0_HIGH": "2000", 
+        "CUTBASED_M_D0_LOW": "500", 
+        "CUTBASED_M_TAU_HIGH": "1592", 
+        "CUTBASED_M_TAU_LOW": "829", 
+        "CUTBASED_PROBNNE_E": "0.1", 
+        "CUTBASED_PROBNNK_K": "0.2", 
+        "CUTBASED_PROBNNPI_THREE_PI": "0.5", 
+        "CUTBASED_TAU_BPVVDCHI2": "16", 
+        "CUTBASED_TAU_BPVVDRHO": "0.33", 
+        "CUTBASED_TAU_BPVVDRHO_HIGH": "7", 
+        "CUTBASED_TAU_BPVVDRHO_LOW": "0.05", 
+        "CUTBASED_TAU_BPVVDZ": "0.5", 
+        "CUTBASED_TAU_TAU_HIGH": "3", 
+        "CUTBASED_TAU_TAU_LOW": "-2.5", 
+        "CUTBASED_TAU_VCHI2": "16", 
+        "CUTBASED_VCHI2_TAU": "20.6", 
+        "ConeAngles": {
+            "08": 0.8, 
+            "10": 1.0, 
+            "12": 1.2, 
+            "14": 1.4
+        }, 
+        "ConeVariables": [
+            "CONEANGLE", 
+            "CONEMULT", 
+            "CONEPTASYM"
+        ], 
+        "DstD0DMWin_HIGH": "100.", 
+        "DstD0DMWin_LOW": "-10.", 
+        "DstMassWin_HIGH": "100.", 
+        "DstMassWin_LOW": "-1250.", 
+        "DstmVtxChi2": "10.", 
+        "HLT_DECISIONS_HAD": {
+            "Hlt2Topo(2|3|4)Body.*Decision%TOS": 0
+        }, 
+        "MINIPCHI2BPV_E": "16", 
+        "MINIPCHI2BPV_PI_FROM_DTSM": "10", 
+        "MINIPCHI2BPV_THREE_PI": "16", 
+        "MINIPCHI2PV_D0": "50", 
+        "PROBNNGHOST_E": "0.4", 
+        "PROBNNGHOST_THREE_PI": "0.4", 
+        "PT_D0": "1000", 
+        "PT_E": "110", 
+        "PT_PI_FROM_DTSM": "110", 
+        "PT_THREE_PI": "110", 
+        "P_D0": "2000", 
+        "P_E": "0", 
+        "P_THREE_PI": "500", 
+        "PrescaleETauBox": 1.0, 
+        "PrescaleETauSSBox": 1.0, 
+        "PrescaleK3piBox": 0.025, 
+        "PrescaleK3piSSBox": 0.025, 
+        "RelInfoTools_D02ETau": [
+            {
+                "DaughterLocations": {
+                    "[D*(2010)+ ->  (Charm -> ^l l) pi+]CC": "Tau_VertexIsoInfo", 
+                    "[D*(2010)+ ->  (Charm -> l ^l) pi+]CC": "E_VertexIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> l  l) ^pi+]CC": "pi_VertexIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> l  l) pi+]CC": "D0_VertexIsoInfo"
+                }, 
+                "Location": "DstVars_VertexIsoInfo", 
+                "Type": "RelInfoVertexIsolation"
+            }, 
+            {
+                "ConeSize": 0.5, 
+                "DaughterLocations": {
+                    "[D*(2010)+ ->  (Charm -> ^l l) pi+]CC": "Tau_ConeIsoInfo", 
+                    "[D*(2010)+ ->  (Charm -> l ^l) pi+]CC": "E_ConeIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> l  l) ^pi+]CC": "pi_ConeIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> l  l) pi+]CC": "D0_ConeIsoInfo"
+                }, 
+                "Location": "DstVars_ConeIsoInfo", 
+                "Type": "RelInfoConeIsolation", 
+                "Variables": []
+            }
+        ], 
+        "RelInfoTools_D02K3pi": [
+            {
+                "DaughterLocations": {
+                    "[D*(2010)+ -> ^(Charm -> X X X X) ^pi+]CC": "pi_VertexIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> X X X X) pi+]CC": "D0_VertexIsoInfo"
+                }, 
+                "Location": "DstVars_VertexIsoInfo", 
+                "Type": "RelInfoVertexIsolation"
+            }, 
+            {
+                "ConeSize": 0.5, 
+                "DaughterLocations": {
+                    "[D*(2010)+ -> ^(Charm -> X X X X) ^pi+]CC": "pi_ConeIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> X X X X) pi+]CC": "D0_ConeIsoInfo"
+                }, 
+                "Location": "DstVars_ConeIsoInfo", 
+                "Type": "RelInfoConeIsolation", 
+                "Variables": []
+            }
+        ], 
+        "TAU_AMAXDOCA_PIS": "0.2", 
+        "TAU_BPVDIRA": "-1.", 
+        "TAU_M_HIGH": "2100", 
+        "TAU_M_HIGH_COMB": "2100", 
+        "TAU_M_LOW": "400", 
+        "TAU_M_LOW_COMB": "400", 
+        "TAU_PT": "700.", 
+        "TRACKCHI2_E": "4", 
+        "TRACKCHI2_PI_FROM_DTSM": "7", 
+        "TRACKCHI2_THREE_PI": "4", 
+        "TRGHOPROB_E": "0.4", 
+        "TRGHOPROB_THREE_PI": "0.4", 
+        "prefix": ""
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+#Hc2V02H = {
+#    "BUILDERTYPE": "StrippingHc2V02HConf", 
+#    "CONFIG": {
+#        "Bach_PT_MIN": 250.0, 
+#        "Bach_P_MIN": 2000.0, 
+#        "Comb_ADAMASS_WIN": 120.0, 
+#        "Comb_ADOCAMAX_MAX": 0.4, 
+#        "Hlt1Filter": None, 
+#        "Hlt2Filter": None, 
+#        "Lambda0_FDCHI2_MIN_DD": 4, 
+#        "Lambda0_FDCHI2_MIN_LL": 4, 
+#        "Lambda0_PT_MIN": 250.0, 
+#        "Lambda0_P_MIN": 6000.0, 
+#        "Lambda0_VCHI2VDOF_MAX_DD": 25.0, 
+#        "Lambda0_VCHI2VDOF_MAX_LL": 12.0, 
+#        "LambdaMinFD_DD": 500.0, 
+#        "LambdaMinFD_LL": 5.0, 
+#        "MIPCHI2DV_PRIMARY_Min": 2, 
+#        "PostscaleXic2LambdaKKDD": 1.0, 
+#        "PostscaleXic2LambdaKKLL": 1.0, 
+#        "PostscaleXic2LambdaKPiDD": 1.0, 
+#        "PostscaleXic2LambdaKPiLL": 1.0, 
+#        "PostscaleXic2LambdaPiKDD": 1.0, 
+#        "PostscaleXic2LambdaPiKLL": 1.0, 
+#        "PostscaleXic2LambdaPiPiDD": 1.0, 
+#        "PostscaleXic2LambdaPiPiLL": 1.0, 
+#        "PrescaleXic2LambdaKKDD": 1.0, 
+#        "PrescaleXic2LambdaKKLL": 1.0, 
+#        "PrescaleXic2LambdaKPiDD": 1.0, 
+#        "PrescaleXic2LambdaKPiLL": 1.0, 
+#        "PrescaleXic2LambdaPiKDD": 1.0, 
+#        "PrescaleXic2LambdaPiKLL": 1.0, 
+#        "PrescaleXic2LambdaPiPiDD": 1.0, 
+#        "PrescaleXic2LambdaPiPiLL": 1.0, 
+#        "ProbNNkMin": 0.1, 
+#        "ProbNNpMin_L0_DD": 0.1, 
+#        "ProbNNpMin_L0_LL": 0.1, 
+#        "ProbNNpiMin": 0.1, 
+#        "ProbNNpiMin_L0_DD": 0.1, 
+#        "ProbNNpiMin_L0_LL": 0.1, 
+#        "TrGhostProbMax": 0.3, 
+#        "Xic_ADMASS_WIN": 90.0, 
+#        "Xic_PT_min": 250.0, 
+#        "Xic_P_min": 10000.0, 
+#        "Xic_VCHI2VDOF_MAX_DD": 3.0, 
+#        "Xic_VCHI2VDOF_MAX_LL": 3.0, 
+#        "Xic_acosBPVDIRA_MAX_DD": 0.0316, 
+#        "Xic_acosBPVDIRA_MAX_LL": 0.02, 
+#        "p_L0_PT_LL_min": 100.0, 
+#        "p_L0_P_LL_min": 2000.0, 
+#        "pi_L0_PT_LL_min": 100.0, 
+#        "pi_L0_P_LL_min": 2000.0
+#    }, 
+#    "STREAMS": [ "Charm" ], 
+#    "WGs": [ "Charm" ]
+#}
+
+Hc2V03H = {
+    "BUILDERTYPE": "StrippingHc2V03HConf", 
+    "CONFIG": {
+        "Bach_IPCHI2_MAX": 9, 
+        "Bach_IPCHI2_MIN": 1, 
+        "Bach_PT_MIN": 150.0, 
+        "Bach_P_MIN": 2000.0, 
+        "Comb_ADAMASS_WIN": 90.0, 
+        "Comb_ADOCAMAX_MAX": 0.5, 
+        "Hlt1Filter": None, 
+        "Hlt2Filter": None, 
+        "Lambda0_FDCHI2_MIN": 49, 
+        "Lambda0_PT_MIN": 500.0, 
+        "Lambda0_P_MIN": 10000.0, 
+        "Lambda0_VCHI2VDOF_MAX": 12.0, 
+        "LambdaMinFD_DD": 200.0, 
+        "LambdaMinFD_LL": 25.0, 
+        "Lambdac_ADMASS_WIN": 75.0, 
+        "Lambdac_PVDispCut_DD": "(BPVVDCHI2 > 9.0)", 
+        "Lambdac_PVDispCut_LL": "(BPVVDCHI2 > 16.0)", 
+        "Lambdac_VCHI2VDOF_MAX_DD": 3.0, 
+        "Lambdac_VCHI2VDOF_MAX_LL": 3.0, 
+        "Lambdac_acosBPVDIRA_MAX_DD": 0.045, 
+        "Lambdac_acosBPVDIRA_MAX_LL": 0.14, 
+        "PostscaleLambdac2Lambda3PiDD": 1.0, 
+        "PostscaleLambdac2Lambda3PiLL": 1.0, 
+        "PostscaleLambdac2LambdaK2PiDD": 1.0, 
+        "PostscaleLambdac2LambdaK2PiLL": 1.0, 
+        "PostscaleXic2LambdaK2PiDD": 1.0, 
+        "PostscaleXic2LambdaK2PiLL": 1.0, 
+        "PrescaleLambdac2Lambda3PiDD": 1.0, 
+        "PrescaleLambdac2Lambda3PiLL": 1.0, 
+        "PrescaleLambdac2LambdaK2PiDD": 1.0, 
+        "PrescaleLambdac2LambdaK2PiLL": 1.0, 
+        "PrescaleXic2LambdaK2PiDD": 1.0, 
+        "PrescaleXic2LambdaK2PiLL": 1.0, 
+        "ProbNNpMin_DD": 0.0, 
+        "ProbNNpMin_LL": 0.1, 
+        "Xic_ADMASS_WIN": 75.0, 
+        "Xic_PVDispCut_DD": "(BPVVDCHI2 > 9.0)", 
+        "Xic_PVDispCut_LL": "(BPVVDCHI2 > 16.0)", 
+        "Xic_VCHI2VDOF_MAX_DD": 3.0, 
+        "Xic_VCHI2VDOF_MAX_LL": 3.0, 
+        "Xic_acosBPVDIRA_MAX_DD": 0.045, 
+        "Xic_acosBPVDIRA_MAX_LL": 0.14
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Hc2V2H = {
+    "BUILDERTYPE": "StrippingHc2V2HConf", 
+    "CONFIG": {
+        "Bach_PT_MIN": 150.0, 
+        "Bach_P_MIN": 2000.0, 
+        "Comb_ADAMASS_WIN": 120.0, 
+        "Comb_ADOCAMAX_MAX": 0.5, 
+        "Hc_ADMASS_WIN": 90.0, 
+        "Hc_PVDispCut_DDD": "(BPVVDCHI2 >  9.0)", 
+        "Hc_PVDispCut_DDL": "(BPVVDCHI2 > 16.0)", 
+        "Hc_PVDispCut_LLL": "(BPVVDCHI2 > 16.0)", 
+        "Hc_VCHI2VDOF_MAX_DDD": 12.0, 
+        "Hc_VCHI2VDOF_MAX_DDL": 12.0, 
+        "Hc_VCHI2VDOF_MAX_LLL": 12.0, 
+        "Hc_acosBPVDIRA_MAX_DDD": 0.14, 
+        "Hc_acosBPVDIRA_MAX_DDL": 0.045, 
+        "Hc_acosBPVDIRA_MAX_LLL": 0.14, 
+        "Hlt1Filter": None, 
+        "Hlt2Filter": None, 
+        "Lambda0_FDCHI2_MIN": 49, 
+        "Lambda0_PT_MIN": 250.0, 
+        "Lambda0_P_MIN": 2000.0, 
+        "Lambda0_VCHI2VDOF_MAX": 12.0, 
+        "LambdaMinFD_DD": 0.0, 
+        "LambdaMinFD_LL": 25.0, 
+        "PostscaleLambdac2XiKPiDDD": 1.0, 
+        "PostscaleLambdac2XiKPiDDL": 1.0, 
+        "PostscaleLambdac2XiKPiLLL": 1.0, 
+        "PostscaleXic2XiPiPiDDD": 1.0, 
+        "PostscaleXic2XiPiPiDDL": 1.0, 
+        "PostscaleXic2XiPiPiLLL": 1.0, 
+        "PrescaleLambdac2XiKPiDDD": 1.0, 
+        "PrescaleLambdac2XiKPiDDL": 1.0, 
+        "PrescaleLambdac2XiKPiLLL": 1.0, 
+        "PrescaleXic2XiPiPiDDD": 1.0, 
+        "PrescaleXic2XiPiPiDDL": 1.0, 
+        "PrescaleXic2XiPiPiLLL": 1.0, 
+        "ProbNNpMin_DD": 0.0, 
+        "ProbNNpMin_LL": 0.1, 
+        "Xim_FDCHI2_MIN": 16, 
+        "Xim_PT_MIN": 250.0, 
+        "Xim_P_MIN": 2000.0, 
+        "Xim_VCHI2VDOF_MAX": 12.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Hc2V3H = {
+    "BUILDERTYPE": "StrippingHc2V3HConf", 
+    "CONFIG": {
+        "Bach_IPCHI2_MAX": 9, 
+        "Bach_IPCHI2_MIN": 1, 
+        "Bach_PT_MIN": 200.0, 
+        "Bach_P_MIN": 2000.0, 
+        "Comb_ADAMASS_WIN": 120.0, 
+        "Comb_ADOCAMAX_MAX": 0.5, 
+        "Hlt1Filter": None, 
+        "Hlt2Filter": None, 
+        "Lambda0_FDCHI2_MIN": 25, 
+        "Lambda0_PT_MIN": 250.0, 
+        "Lambda0_P_MIN": 2000.0, 
+        "Lambda0_VCHI2VDOF_MAX": 12.0, 
+        "PostscaleXic2XimPiPiPiDDD": 1.0, 
+        "PostscaleXic2XimPiPiPiDDL": 1.0, 
+        "PostscaleXic2XimPiPiPiLLL": 1.0, 
+        "PrescaleXic2XimPiPiPiDDD": 1.0, 
+        "PrescaleXic2XimPiPiPiDDL": 1.0, 
+        "PrescaleXic2XimPiPiPiLLL": 1.0, 
+        "ProbNNpMin_DD": 0.0, 
+        "ProbNNpMin_LL": 0.1, 
+        "Xic_ADMASS_WIN": 90.0, 
+        "Xic_PVDispCut_DDD": "(BPVVDCHI2 > 9.0)", 
+        "Xic_PVDispCut_DDL": "(BPVVDCHI2 > 9.0)", 
+        "Xic_PVDispCut_LLL": "(BPVVDCHI2 > 16.0)", 
+        "Xic_VCHI2VDOF_MAX_DDD": 5.0, 
+        "Xic_VCHI2VDOF_MAX_DDL": 5.0, 
+        "Xic_VCHI2VDOF_MAX_LLL": 5.0, 
+        "Xic_acosBPVDIRA_MAX_DDD": 0.14, 
+        "Xic_acosBPVDIRA_MAX_DDL": 0.14, 
+        "Xic_acosBPVDIRA_MAX_LLL": 0.14, 
+        "Xim_FDCHI2_MIN": 9, 
+        "Xim_PT_MIN": 250.0, 
+        "Xim_P_MIN": 2000.0, 
+        "Xim_VCHI2VDOF_MAX": 12.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Lambdac2LambdaEtaPi = {
+    "BUILDERTYPE": "StrippingLambdac2LambdaEtaPi", 
+    "CONFIG": {
+        "GEC_nLongTrk": 160, 
+        "GhostProb": 0.3, 
+        "KaonP": 3000.0, 
+        "KaonPIDK": 10.0, 
+        "KaonPT": 250.0, 
+        "Kaon_PIDKPIDpi_Min": 5.0, 
+        "LambdaDDCutFDChi2": 100.0, 
+        "LambdaDDCutMass": 50.0, 
+        "LambdaDDPMin": 2000.0, 
+        "LambdaDDPTMin": 500.0, 
+        "LambdaLLCutFDChi2": 100.0, 
+        "LambdaLLCutMass": 50.0, 
+        "LambdaLLPMin": 2000.0, 
+        "LambdaLLPTMin": 500.0, 
+        "LambdaVertexChi2": 10.0, 
+        "Lb_APT_Min": 1500.0, 
+        "Lb_AP_Min": 20000.0, 
+        "Lb_BPVDIRA_Min": 0.95, 
+        "Lb_BPVVDCHI2_Min": 16, 
+        "Lb_M_HalfWin": 200.0, 
+        "Lb_VCHI2_Max": 30, 
+        "Lc_ADOCAMAX_Max": 0.15, 
+        "Lc_APT_Min": 1200.0, 
+        "Lc_AP_Min": 15000.0, 
+        "Lc_BPVDIRA_Min": 0.95, 
+        "Lc_BPVVDCHI2_Min": 16.0, 
+        "Lc_BPVVDZ_Min": 0.5, 
+        "Lc_Daug_1of3_MIPCHI2DV_Min": 3.0, 
+        "Lc_M_HalfWin": 200.0, 
+        "Lc_VCHI2_Max": 30.0, 
+        "MINIPCHI2": 3.0, 
+        "MuonIPCHI2": 4.0, 
+        "MuonP": 3000.0, 
+        "MuonPIDmu": 0.0, 
+        "MuonPT": 250.0, 
+        "PionP": 3000.0, 
+        "PionPIDK": 5.0, 
+        "PionPT": 250.0, 
+        "Pion_PIDpiPIDK_Min": 0.0, 
+        "ProbNNk": 0.4, 
+        "ProbNNp": 0.4, 
+        "ProbNNpMin": 0.2, 
+        "ProbNNpi": 0.4, 
+        "ProbNNpiMax": 0.9, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "signalPrescale": 1.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Lambdac2PEta = {
+    "BUILDERTYPE": "StrippingLambdac2PEta", 
+    "CONFIG": {
+        "GEC_nLongTrk": 160, 
+        "Lb_APT_Min": 1500.0, 
+        "Lb_AP_Min": 20000.0, 
+        "Lb_BPVDIRA_Min": 0.95, 
+        "Lb_BPVVDCHI2_Min": 16, 
+        "Lb_BPVVDZ_Min": 0.7, 
+        "Lb_M_HalfWin": 200.0, 
+        "Lb_VCHI2_Max": 30, 
+        "Lc_ADOCAMAX_Max": 0.15, 
+        "Lc_APT_Min": 1200.0, 
+        "Lc_AP_Min": 15000.0, 
+        "Lc_BPVDIRA_Min": 0.95, 
+        "Lc_BPVVDCHI2_Min": 16.0, 
+        "Lc_BPVVDZ_Min": 0.5, 
+        "Lc_Daug_1of3_MIPCHI2DV_Min": 3.0, 
+        "Lc_M_HalfWin": 200.0, 
+        "Lc_VCHI2_Max": 30.0, 
+        "MINIPCHI2": 3.0, 
+        "PionP": 3000.0, 
+        "PionPIDK": 5.0, 
+        "PionPT": 250.0, 
+        "ProbNNp": 0.4, 
+        "ProbNNpi": 0.4, 
+        "ProbNNpiMax": 0.9, 
+        "ProtonP": 3000.0, 
+        "ProtonPT": 500.0, 
+        "Proton_PIDpPIDK_Min": 0.0, 
+        "Proton_PIDpPIDpi_Min": 5.0, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "signalPrescale": 1.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+NeutralCBaryons = {
+    "BUILDERTYPE": "StrippingNeutralCBaryonsConf", 
+    "CONFIG": {
+        "Bachelor_PT_MIN": 50.0, 
+        "KaonPIDK": -5.0, 
+        "LambdaDDMassWin": 5.7, 
+        "LambdaDDMaxVZ": 2275.0, 
+        "LambdaDDMinVZ": 400.0, 
+        "LambdaDDVtxChi2Max": 5.0, 
+        "LambdaDeltaZ_MIN": 5.0, 
+        "LambdaLLMassWin": 5.7, 
+        "LambdaLLMaxVZ": 400.0, 
+        "LambdaLLMinDecayTime": 0.005, 
+        "LambdaLLMinVZ": -100.0, 
+        "LambdaLLVtxChi2Max": 5.0, 
+        "LambdaPi_PT_MIN": 100.0, 
+        "LambdaPr_PT_MIN": 500.0, 
+        "PionPIDK": 10.0, 
+        "ProbNNkMin": 0.1, 
+        "ProbNNpMinDD": 0.05, 
+        "ProbNNpMinLL": 0.1, 
+        "ProtonPIDp": 5, 
+        "ProtonPIDpK": -3, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "tight_KaonPIDK": 0.0, 
+        "tight_KaonPIDpi": 5.0, 
+        "tight_ProtonPIDp": 7, 
+        "tight_ProtonPIDpK": 0.0, 
+        "tight_ProtonPIDppi": 5.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Xib2Xic0PiXic02pK = {
+    "BUILDERTYPE": "StrippingXib2Xic0PiXic02pKConf", 
+    "CONFIG": {
+        "PionPIDK": 10.0, 
+        "ProbNNkMin": 0.1, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "tight_KaonPIDK": 0.0, 
+        "tight_KaonPIDpi": 5.0, 
+        "tight_ProtonPIDp": 7, 
+        "tight_ProtonPIDpK": 0.0, 
+        "tight_ProtonPIDppi": 5.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Xic0ToXiMuNu = {
+    "BUILDERTYPE": "Xic0ToXiMuNuConf", 
+    "CONFIG": {
+        "RequiredRawEvents": [ "Velo" ], 
+        "amass_ximu": "(in_range(1400*MeV,AMASS(),4500*MeV)) & ", 
+        "bach_muon": {
+            "filter": "(PT>200*MeV) & (P>3000*MeV) & (PROBNNmu>0.3) & (BPVIPCHI2()>4)", 
+            "tes": "Phys/StdAllNoPIDsMuons/Particles"
+        }, 
+        "bach_pion": {
+            "filter": "(PT > 120*MeV) & (P > 1000*MeV) & (MIPDV(PRIMARY)>0.01*mm) & (MIPCHI2DV(PRIMARY) > 9.0) & (PROBNNpi>0.03)", 
+            "tes": "Phys/StdAllNoPIDsPions/Particles"
+        }, 
+        "descriptor_xi": [
+            "[Xi- -> Lambda0 pi-]cc"
+        ], 
+        "descriptor_ximu": [
+            "[Xi_c0 -> Xi- mu+]cc"
+        ], 
+        "down_pion": {
+            "filter": "(P>1000*MeV) & (PT>150*MeV) & (PROBNNpi>0.03)", 
+            "tes": "Phys/StdNoPIDsDownPions/Particles"
+        }, 
+        "lambda_dd": {
+            "filter": "(ADMASS('Lambda0')<20*MeV) & (P>12*GeV) & (PT>400*MeV) & (CHILDIP(1)<2*mm) & (MAXTREE('p+'==ABSID,P)>9*GeV) & (CHI2VXNDF<30) &\n                    (MAXTREE('p+'==ABSID,PT)>200*MeV) & (MAXTREE('pi+'==ABSID,PT)>150*MeV) & (VFASPF(VZ) >  300.*mm) & (VFASPF(VZ) < 2485.*mm)", 
+            "tes": "Phys/StdLooseLambdaDD/Particles"
+        }, 
+        "lambda_ll": {
+            "filter": "(ADMASS('Lambda0')<20*MeV) & (P>6*GeV) & (PT>200*MeV) & (BPVVDZ>8*mm) & (BPVLTIME() > 2.0*ps) & (CHI2VXNDF<20) &\n                    (MAXTREE('p+'==ABSID,MIPCHI2DV(PRIMARY))>9) & (MAXTREE('pi-'==ABSID,MIPCHI2DV(PRIMARY))>24) & \n                    (MAXTREE('p+'==ABSID,PT)>100*MeV) & (MAXTREE('p+'==ABSID,P)>5.0*GeV) & (VFASPF(VZ) > -100.*mm) & (VFASPF(VZ) <  640.*mm) & (BPVVDCHI2 > 100)", 
+            "tes": "Phys/StdVeryLooseLambdaLL/Particles"
+        }, 
+        "xc0_ddd": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<5.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>20*GeV) & (PT>200*MeV)"
+        }, 
+        "xc0_ddl": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<3.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>20*GeV) & (PT>200*MeV) "
+        }, 
+        "xc0_lll": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<1.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>12*GeV) & (PT>200*MeV)"
+        }, 
+        "xi_ddd": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ACHILD(2,MIPCHI2DV(PRIMARY))>20) & (ADOCA(1,2)<5*mm) & (ACHI2DOCA(1,2)<12)", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) &  (BPVVDCHI2>10) & (BPVLTIME() > 2.0*picosecond) &\n            (P>15*GeV) & (PT>600*MeV)"
+        }, 
+        "xi_ddl": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ADOCA(1,2)<2.5*mm) & (ACHI2DOCA(1,2)<12) ", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) & (BPVVDCHI2>20) & (BPVLTIME() > 2.0*picosecond) &\n            (P>15*GeV) & (PT>600*MeV)"
+        }, 
+        "xi_lll": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ACHILD(2,MIPCHI2DV(PRIMARY))>9) & (ADOCA(1,2)<0.5*mm) & (ACHI2DOCA(1,2)<20)", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) & (BPVVDCHI2>15) & (BPVLTIME() > 2.0*picosecond) & \n            (P>8*GeV) & (PT>400*MeV) "
+        }
+    }, 
+    "STREAMS": {
+        "CharmCompleteEvent": [
+            "StrippingXic0ToXiMuNu_LLLLine", 
+            "StrippingXic0ToXiMuNu_DDLLine", 
+            "StrippingXic0ToXiMuNu_DDDLine"
+        ]
+    }, 
+    "WGs": [ "Charm" ]
+}
+
+Xic0ToXiMuNu_WS = {
+    "BUILDERTYPE": "Xic0ToXiMuNu_WSConf", 
+    "CONFIG": {
+        "RequiredRawEvents": [ "Velo" ], 
+        "amass_ximu": "(in_range(1400*MeV,AMASS(),4500*MeV)) & ", 
+        "bach_muon": {
+            "filter": "(PT>200*MeV) & (P>3000*MeV) & (PROBNNmu>0.3) & (BPVIPCHI2()>4)", 
+            "tes": "Phys/StdAllNoPIDsMuons/Particles"
+        }, 
+        "bach_pion": {
+            "filter": "(PT > 120*MeV) & (P > 1000*MeV) & (MIPDV(PRIMARY)>0.01*mm) & (MIPCHI2DV(PRIMARY) > 9.0) & (PROBNNpi>0.03)", 
+            "tes": "Phys/StdAllNoPIDsPions/Particles"
+        }, 
+        "descriptor_xi": [
+            "[Xi- -> Lambda0 pi-]cc"
+        ], 
+        "descriptor_ximu": [
+            "[Xi_c0 -> Xi- mu-]cc"
+        ], 
+        "down_pion": {
+            "filter": "(P>1000*MeV) & (PT>150*MeV) & (PROBNNpi>0.03)", 
+            "tes": "Phys/StdNoPIDsDownPions/Particles"
+        }, 
+        "lambda_dd": {
+            "filter": "(ADMASS('Lambda0')<20*MeV) & (P>12*GeV) & (PT>400*MeV) & (CHILDIP(1)<2*mm) & (MAXTREE('p+'==ABSID,P)>9*GeV) & (CHI2VXNDF<30) &\n                    (MAXTREE('p+'==ABSID,PT)>200*MeV) & (MAXTREE('pi+'==ABSID,PT)>150*MeV) & (VFASPF(VZ) >  300.*mm) & (VFASPF(VZ) < 2485.*mm)", 
+            "tes": "Phys/StdLooseLambdaDD/Particles"
+        }, 
+        "lambda_ll": {
+            "filter": "(ADMASS('Lambda0')<20*MeV) & (P>6*GeV) & (PT>200*MeV) & (BPVVDZ>8*mm) & (BPVLTIME() > 2.0*ps) & (CHI2VXNDF<20) &\n                    (MAXTREE('p+'==ABSID,MIPCHI2DV(PRIMARY))>9) & (MAXTREE('pi-'==ABSID,MIPCHI2DV(PRIMARY))>24) & \n                    (MAXTREE('p+'==ABSID,PT)>100*MeV) & (MAXTREE('p+'==ABSID,P)>5.0*GeV) & (VFASPF(VZ) > -100.*mm) & (VFASPF(VZ) <  640.*mm) & (BPVVDCHI2 > 100)", 
+            "tes": "Phys/StdVeryLooseLambdaLL/Particles"
+        }, 
+        "xc0_ddd": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<5.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>20*GeV) & (PT>200*MeV)"
+        }, 
+        "xc0_ddl": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<3.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>20*GeV) & (PT>200*MeV) "
+        }, 
+        "xc0_lll": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<1.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>12*GeV) & (PT>200*MeV)"
+        }, 
+        "xi_ddd": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ACHILD(2,MIPCHI2DV(PRIMARY))>20) & (ADOCA(1,2)<5*mm) & (ACHI2DOCA(1,2)<12)", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) &  (BPVVDCHI2>10) & (BPVLTIME() > 2.0*picosecond) &\n            (P>15*GeV) & (PT>600*MeV)"
+        }, 
+        "xi_ddl": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ADOCA(1,2)<2.5*mm) & (ACHI2DOCA(1,2)<12) ", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) & (BPVVDCHI2>20) & (BPVLTIME() > 2.0*picosecond) &\n            (P>15*GeV) & (PT>600*MeV)"
+        }, 
+        "xi_lll": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ACHILD(2,MIPCHI2DV(PRIMARY))>9) & (ADOCA(1,2)<0.5*mm) & (ACHI2DOCA(1,2)<20)", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) & (BPVVDCHI2>15) & (BPVLTIME() > 2.0*picosecond) & \n            (P>8*GeV) & (PT>400*MeV) "
+        }
+    }, 
+    "STREAMS": {
+        "CharmCompleteEvent": [
+            "StrippingXic0ToXiMuNu_WS_LLLLine", 
+            "StrippingXic0ToXiMuNu_WS_DDLLine", 
+            "StrippingXic0ToXiMuNu_WS_DDDLine"
+        ]
+    }, 
+    "WGs": [ "Charm" ]
+}
+
+Xic2PHH = {
+    "BUILDERTYPE": "StrippingXic2PHH", 
+    "CONFIG": {
+        "BPVIPCHI2_Phi": 4, 
+        "GEC_nLongTrk": 250, 
+        "GhostProb": 0.3, 
+        "KSCutDIRA_DD": 0.999, 
+        "KSCutDIRA_LL": 0.999, 
+        "KSCutFDChi2_DD": 5, 
+        "KSCutFDChi2_LL": 5, 
+        "KSCutMass_DD": 50.0, 
+        "KSCutMass_LL": 35.0, 
+        "KaonP": 2000.0, 
+        "KaonPIDK": 10.0, 
+        "KaonPT": 200.0, 
+        "Kaon_PIDKPIDpi_Min": 5.0, 
+        "MINIPCHI2": 4.0, 
+        "MaxDz_DD": 9999.0, 
+        "MaxDz_LL": 9999.0, 
+        "MaxKsVCHI2NDOF_DD": 20.0, 
+        "MaxKsVCHI2NDOF_LL": 20.0, 
+        "MaxPhiEta": 5.0, 
+        "MinDz_DD": 250.0, 
+        "MinDz_LL": 0.0, 
+        "MinKsIpChi2_DD": 3, 
+        "MinKsIpChi2_LL": 3, 
+        "MinKsPT_DD": 200.0, 
+        "MinKsPT_LL": 200.0, 
+        "MinPhiEta": 2.0, 
+        "MinPhiP": 3000.0, 
+        "MinPhiPT": 200.0, 
+        "PhiCutMass": 20.0, 
+        "PionP": 3000.0, 
+        "PionPIDK": 10.0, 
+        "PionPT": 500.0, 
+        "Pion_PIDpiPIDK_Min": 0.0, 
+        "ProbNNk": 0.4, 
+        "ProbNNp": 0.4, 
+        "ProbNNpMin": 0.2, 
+        "ProbNNpi": 0.5, 
+        "ProbNNpiMax": 0.95, 
+        "ProtonP": 3000.0, 
+        "ProtonPT": 500.0, 
+        "Proton_PIDpPIDK_Min": 0.0, 
+        "Proton_PIDpPIDpi_Min": 5.0, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "Xic_ADAMASS_HalfWin": 170.0, 
+        "Xic_ADMASS_HalfWin": 120.0, 
+        "Xic_AM_Max": 2550.0, 
+        "Xic_BPVDIRA_Min": 0.9, 
+        "Xic_BPVVDCHI2_Min": 25.0, 
+        "pKK_AM_Min": 2380.0, 
+        "ppipi_AM_Min": 2380.0, 
+        "signalPrescaleViaXicPKK": 1.0, 
+        "signalPrescaleViaXicPKS0DD": 1.0, 
+        "signalPrescaleViaXicPKS0LL": 1.0, 
+        "signalPrescaleViaXicPPhi2KK": 1.0, 
+        "signalPrescaleViaXicPPiPi": 1.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
diff --git a/Phys/StrippingSettings/python/StrippingSettings/Stripping29r2p3/LineConfigDictionaries_Charm.py b/Phys/StrippingSettings/python/StrippingSettings/Stripping29r2p3/LineConfigDictionaries_Charm.py
index d992d617d5ca7128baa78ee9ab4d28ff5a991852..b725c573b33251429057ed63d76e0583df75ed91 100644
--- a/Phys/StrippingSettings/python/StrippingSettings/Stripping29r2p3/LineConfigDictionaries_Charm.py
+++ b/Phys/StrippingSettings/python/StrippingSettings/Stripping29r2p3/LineConfigDictionaries_Charm.py
@@ -16,3 +16,937 @@
 ##  Contact person: Sergio Jaimes     (sergio.jaimes@cern.ch)                 ##
 ################################################################################
 
+Charm2PPX = {
+    "BUILDERTYPE": "StrippingCharm2PPXConf", 
+    "CONFIG": {
+        "Comb_ADOCACHI2_MAX": 16, 
+        "Daug_1ofAll_BPVIPCHI2_MIN": 9.0, 
+        "Daug_1ofAll_PT_MIN": 700.0, 
+        "Daug_All_BPVIPCHI2_MIN": 4.0, 
+        "Daug_All_CloneDist_MIN": 5000, 
+        "Daug_All_MIPCHI2_MIN": 4.0, 
+        "Daug_All_PT_MIN": 200.0, 
+        "Daug_All_TrChostProb_MAX": 0.5, 
+        "Daug_ETA_MAX": 4.9, 
+        "Daug_ETA_MIN": 2.0, 
+        "Daug_P_MAX": 100000.0, 
+        "Daug_P_MIN": 3200.0, 
+        "Hc_BPVCTAU_MIN": 0.05, 
+        "Hc_BPVVDCHI2_MIN": 9.0, 
+        "Hc_MASS_MAX": 3500.0, 
+        "Hc_PT_MIN": 1000.0, 
+        "Hc_VCHI2VDOF_MAX": 25.0, 
+        "Hcs_MASS_MAX": 3650.0, 
+        "Hlt1Filter": None, 
+        "Hlt2Filter": None, 
+        "HsComb_ADOCACHI2_MAX": 16, 
+        "HsDaug_1ofAll_BPVIPCHI2_MIN": 9.0, 
+        "HsDaug_1ofAll_PT_MIN": -500.0, 
+        "HsDownDaug_1ofAll_BPVIPCHI2_MIN": -9.0, 
+        "HsDown_BPVVDCHI2_MIN": 4.0, 
+        "HsProton_1ofAll_ProbNN_MIN": 0.5, 
+        "Hs_BPVCTAU_MIN": 0.1, 
+        "Hs_BPVVDCHI2_MIN": 9.0, 
+        "Hs_MASS_MAX": 2125.0, 
+        "Hs_PT_MIN": -1000.0, 
+        "Hs_VCHI2VDOF_MAX": 25.0, 
+        "Kaon_ProbNN_MIN": 0.1, 
+        "Lam_MASS_MAX": 1170.0, 
+        "Lc_MASS_MAX": 2350.0, 
+        "Pc_MASS_MAX": 3100.0, 
+        "Pion_ProbNN_MIN": 0.1, 
+        "PostscaleHc2LamPPi": 1.0, 
+        "PostscaleHc2LamPPiPi": 1.0, 
+        "PostscaleHc2PP": 1.0, 
+        "PostscaleHc2PPK": 1.0, 
+        "PostscaleHc2PPKPi": 1.0, 
+        "PostscaleHc2PPKPiPi": 1.0, 
+        "PostscaleHc2PPKs": 1.0, 
+        "PostscaleHc2PPKsPi": 1.0, 
+        "PostscaleHcs2LamLamPi": 1.0, 
+        "PostscaleHcs2LamPKPi": 1.0, 
+        "PostscaleHcs2PPKKPi": 1.0, 
+        "PostscaleHcs2PPKsK": 1.0, 
+        "PostscaleHs2PPPi": 1.0, 
+        "PostscaleL2PPi": 1.0, 
+        "PostscaleLc2PKPi": 1.0, 
+        "PostscalePc2PKPiPi": 1.0, 
+        "PostscalePc2PKsPi": 1.0, 
+        "PostscalePs2PPiPi": 1.0, 
+        "PrescaleHc2LamPPi": 1.0, 
+        "PrescaleHc2LamPPiPi": 1.0, 
+        "PrescaleHc2PP": 1.0, 
+        "PrescaleHc2PPK": 1.0, 
+        "PrescaleHc2PPKPi": 1.0, 
+        "PrescaleHc2PPKPiPi": 1.0, 
+        "PrescaleHc2PPKs": 1.0, 
+        "PrescaleHc2PPKsPi": 1.0, 
+        "PrescaleHcs2LamLamPi": 1.0, 
+        "PrescaleHcs2LamPKPi": 1.0, 
+        "PrescaleHcs2PPKKPi": 1.0, 
+        "PrescaleHcs2PPKsK": 1.0, 
+        "PrescaleHs2PPPi": 1.0, 
+        "PrescaleL2PPi": 0.01, 
+        "PrescaleLc2PKPi": 0.01, 
+        "PrescalePc2PKPiPi": 0.1, 
+        "PrescalePc2PKsPi": 0.1, 
+        "PrescalePs2PPiPi": 0.1, 
+        "Proton_1ofAll_ProbNN_MIN": 0.5, 
+        "Proton_PT_MIN": 300.0, 
+        "Proton_P_MIN": 10000.0, 
+        "Proton_ProbNN_MIN": 0.1, 
+        "Proton_ProbNNk_MAX": 0.8, 
+        "Proton_ProbNNpi_MAX": 0.55, 
+        "Ps_MASS_MAX": 1650.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+CharmedBaryonSL = {
+    "BUILDERTYPE": "StrippingCharmedBaryonSL", 
+    "CONFIG": {
+        "GEC_nLongTrk": 250, 
+        "GhostProb": 0.3, 
+        "KaonP": 3000.0, 
+        "KaonPIDK": 10.0, 
+        "KaonPT": 500.0, 
+        "KaonPT_ForOm": 100.0, 
+        "KaonP_ForOm": 2000.0, 
+        "Kaon_PIDKPIDpi_Min": 5.0, 
+        "L0Mu_AM_Min": 1250.0, 
+        "LambdaCutDIRA": 0.99, 
+        "LambdaDDCutFDChi2": 100.0, 
+        "LambdaDDCutMass": 20.0, 
+        "LambdaDDMaxVZ": 2275.0, 
+        "LambdaDDMinVZ": 400.0, 
+        "LambdaDDPMin": 5000.0, 
+        "LambdaDDPTMin": 800.0, 
+        "LambdaDaugTrackChi2": 4.0, 
+        "LambdaLDCutFDChi2": 100.0, 
+        "LambdaLDCutMass": 20.0, 
+        "LambdaLDPMin": 3000.0, 
+        "LambdaLDPTMin": 800.0, 
+        "LambdaLLCutFDChi2": 100.0, 
+        "LambdaLLCutMass": 20.0, 
+        "LambdaLLMaxVZ": 400.0, 
+        "LambdaLLMinVZ": -100.0, 
+        "LambdaLLPMin": 5000.0, 
+        "LambdaLLPTMin": 800.0, 
+        "LambdaPi_PT_MIN": 100.0, 
+        "LambdaPr_PT_MIN": 500.0, 
+        "LambdaVertexChi2": 5.0, 
+        "Lc_ADMASS_HalfWin": 80.0, 
+        "Lc_ADMASS_HalfWin_Tight": 55.0, 
+        "Lc_ADOCAMAX_Max": 0.5, 
+        "Lc_ADOCAMAX_Max_Tight": 0.15, 
+        "Lc_AM_Max": 2370.0, 
+        "Lc_APT_Min": 1000.0, 
+        "Lc_APT_Min_Tight_PKMu": 1600.0, 
+        "Lc_APT_Min_Tight_PPiMu": 1600.0, 
+        "Lc_AP_Min_Tight": 25000.0, 
+        "Lc_BPVDIRA_Min": 0.9, 
+        "Lc_BPVDIRA_Min_Tight": 0.99, 
+        "Lc_BPVVDCHI2_Min": 16.0, 
+        "Lc_BPVVDCHI2_Min_Tight": 25.0, 
+        "Lc_Daug_1of3_MIPCHI2DV_Min": 4.0, 
+        "Lc_Daug_1of3_MIPCHI2DV_Min_Tight": 9.0, 
+        "Lc_VCHI2_Max": 30.0, 
+        "Lc_VCHI2_Max_Tight": 20.0, 
+        "MINIPCHI2": 4.0, 
+        "MisID_PROB_Max": 0.7, 
+        "MuonIPCHI2": 5.0, 
+        "MuonP": 3000.0, 
+        "MuonPIDmu": 0.0, 
+        "MuonPT": 500.0, 
+        "Oc_AM_Max": 2780.0, 
+        "OmMu_AM_Min": 1780.0, 
+        "Omegac0_4Dau_VCHI2_Max": 60.0, 
+        "Omegac0_ADAMASS_HalfWin": 170.0, 
+        "Omegac0_ADMASS_HalfWin": 120.0, 
+        "Omegac0_BPVDIRA_Min": 0.9, 
+        "Omegac0_BPVVDCHI2_Min": 25.0, 
+        "P_Min_Tight": 3500.0, 
+        "PionP": 3000.0, 
+        "PionPIDK": 10.0, 
+        "PionPT": 500.0, 
+        "PionPT_ForXi": 100.0, 
+        "PionP_ForXi": 2000.0, 
+        "Pion_PIDpiPIDK_Min": 0.0, 
+        "ProbNNk": 0.4, 
+        "ProbNNp": 0.4, 
+        "ProbNNpMin": 0.2, 
+        "ProbNNpi": 0.5, 
+        "ProbNNpiMax": 0.95, 
+        "ProtonP": 3000.0, 
+        "ProtonPT": 500.0, 
+        "Proton_PIDpPIDK_Min": 0.0, 
+        "Proton_PIDpPIDpi_Min": 5.0, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "XiMu_AM_Min": 1430.0, 
+        "Xic_ADAMASS_HalfWin": 170.0, 
+        "Xic_ADMASS_HalfWin": 120.0, 
+        "Xic_AM_Max": 2550.0, 
+        "Xic_BPVDIRA_Min": 0.9, 
+        "Xic_BPVVDCHI2_Min": 25.0, 
+        "controlPrescaleViaLcL0DDPiNC": 0.8, 
+        "controlPrescaleViaLcL0LLPiNC": 0.4, 
+        "controlPrescaleViaLcPKPiNC": 0.09, 
+        "controlPrescaleViaLcPKPiNC_Tight": 0.5, 
+        "controlPrescaleViaLcPPiPiNC": 0.06, 
+        "controlPrescaleViaLcPPiPiNC_Tight": 0.5, 
+        "controlPrescaleViaOmegac0NC": 1.0, 
+        "controlPrescaleViaXicL0DDPiNC": 0.8, 
+        "controlPrescaleViaXicL0LLPiNC": 0.4, 
+        "controlPrescaleViaXicXiPiNC": 1.0, 
+        "pKMu_AM_Min": 1550.0, 
+        "ppiMu_AM_Min": 1200.0, 
+        "signalPrescaleViaLc": 1.0, 
+        "signalPrescaleViaLcL0DDMuNu": 0.8, 
+        "signalPrescaleViaLcPKMuNu_Tight": 1.0, 
+        "signalPrescaleViaLcPPiMuNu": 0.25, 
+        "signalPrescaleViaLcPPiMuNu_Tight": 1.0, 
+        "signalPrescaleViaOmegac0": 1.0, 
+        "signalPrescaleViaXic": 1.0, 
+        "signalPrescaleViaXicL0DDMuNu": 0.8, 
+        "signalPrescaleViaXicL0LLMuNu": 0.8
+    }, 
+    "STREAMS": [ "CharmCompleteEvent" ], 
+    "WGs": [ "Charm" ]
+}
+
+CharmedMesonSL = {
+    "BUILDERTYPE": "StrippingCharmedMesonSL", 
+    "CONFIG": {
+        "B0SL_M_Max": 5600.0, 
+        "B0SL_M_Min": 2800.0, 
+        "B0_M_Max": 5600.0, 
+        "B0_M_Min": 5100.0, 
+        "B_APT_Min": 1500.0, 
+        "B_AP_Min": 20000.0, 
+        "B_BPVDIRA_Min": 0.95, 
+        "B_BPVVDCHI2_Min": 16, 
+        "B_VCHI2_Max": 30, 
+        "BpSL_M_Max": 5700.0, 
+        "BpSL_M_Min": 3000.0, 
+        "Bp_M_Max": 5500.0, 
+        "Bp_M_Min": 5100.0, 
+        "D0SL_AM_Max": 1960.0, 
+        "D0_ADMASS_Max": 1900.0, 
+        "D0_ADMASS_Min": 1820.0, 
+        "DpSL_AM_Max": 2080.0, 
+        "Dp_ADMASS_Max": 2030.0, 
+        "Dp_ADMASS_Min": 1800.0, 
+        "Dp_ADOCAMAX_Max": 0.25, 
+        "Dp_APT_Min": 1200.0, 
+        "Dp_AP_Min": 20000.0, 
+        "Dp_BPVDIRA_Min": 0.95, 
+        "Dp_BPVVDCHI2_Min": 16.0, 
+        "Dp_Daug_1of3_MIPCHI2DV_Min": 4.0, 
+        "Dp_VCHI2_Max": 30.0, 
+        "EtaPiMu_AM_Min": 800.0, 
+        "GEC_nLongTrk": 160, 
+        "GhostProb": 0.3, 
+        "KKMu_AM_Min": 1100.0, 
+        "KaonP": 3000.0, 
+        "KaonPIDK": 10.0, 
+        "KaonPT": 250.0, 
+        "Kaon_PIDKPIDpi_Min": 5.0, 
+        "MINIPCHI2": 4.0, 
+        "MuonIPCHI2": 4.0, 
+        "MuonP": 3000.0, 
+        "MuonPIDmu": 0.0, 
+        "MuonPT": 250.0, 
+        "PiKKMu_AM_Min": 1240.0, 
+        "PiPiMu_AM_Min": 400.0, 
+        "PiPiPiMu_AM_Min": 530.0, 
+        "PionP": 3000.0, 
+        "PionPIDK": 5.0, 
+        "PionPT": 250.0, 
+        "Pion_PIDpiPIDK_Min": 0.0, 
+        "ProbNNk": 0.4, 
+        "ProbNNpi": 0.5, 
+        "ProbNNpiMax": 0.9, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "controlPrescaleViaD02KKpipi": 1.0, 
+        "controlPrescaleViaD02etapipi": 1.0, 
+        "controlPrescaleViaD02pipipipi": 1.0, 
+        "controlPrescaleViaD2KKpi": 1.0, 
+        "controlPrescaleViaD2pipipi": 1.0, 
+        "signalPrescaleViaD02KKpimunu": 1.0, 
+        "signalPrescaleViaD02etapimunu": 1.0, 
+        "signalPrescaleViaD02pipipimunu": 1.0, 
+        "signalPrescaleViaD2KKmunu": 1.0, 
+        "signalPrescaleViaD2pipimunu": 1.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+DstarD02ETau = {
+    "BUILDERTYPE": "StrippingDstarD02ETauConf", 
+    "CONFIG": {
+        "CUTBASED_MCORR_B_HIGH": "8600", 
+        "CUTBASED_MCORR_B_LOW": "3600", 
+        "CUTBASED_MCORR_D0_HIGH": "8000", 
+        "CUTBASED_MCORR_D0_LOW": "1000", 
+        "CUTBASED_MISS_MASS": "876", 
+        "CUTBASED_MISS_MASS_HIGH": "250", 
+        "CUTBASED_MISS_MASS_HIGH_KTHREEPI": "1500", 
+        "CUTBASED_MISS_MASS_LOW": "0", 
+        "CUTBASED_M_B": "2865", 
+        "CUTBASED_M_D0_HIGH": "2000", 
+        "CUTBASED_M_D0_LOW": "500", 
+        "CUTBASED_M_TAU_HIGH": "1592", 
+        "CUTBASED_M_TAU_LOW": "829", 
+        "CUTBASED_PROBNNE_E": "0.1", 
+        "CUTBASED_PROBNNK_K": "0.2", 
+        "CUTBASED_PROBNNPI_THREE_PI": "0.5", 
+        "CUTBASED_TAU_BPVVDCHI2": "16", 
+        "CUTBASED_TAU_BPVVDRHO": "0.33", 
+        "CUTBASED_TAU_BPVVDRHO_HIGH": "7", 
+        "CUTBASED_TAU_BPVVDRHO_LOW": "0.05", 
+        "CUTBASED_TAU_BPVVDZ": "0.5", 
+        "CUTBASED_TAU_TAU_HIGH": "3", 
+        "CUTBASED_TAU_TAU_LOW": "-2.5", 
+        "CUTBASED_TAU_VCHI2": "16", 
+        "CUTBASED_VCHI2_TAU": "20.6", 
+        "ConeAngles": {
+            "08": 0.8, 
+            "10": 1.0, 
+            "12": 1.2, 
+            "14": 1.4
+        }, 
+        "ConeVariables": [
+            "CONEANGLE", 
+            "CONEMULT", 
+            "CONEPTASYM"
+        ], 
+        "DstD0DMWin_HIGH": "100.", 
+        "DstD0DMWin_LOW": "-10.", 
+        "DstMassWin_HIGH": "100.", 
+        "DstMassWin_LOW": "-1250.", 
+        "DstmVtxChi2": "10.", 
+        "HLT_DECISIONS_HAD": {
+            "Hlt2Topo(2|3|4)Body.*Decision%TOS": 0
+        }, 
+        "MINIPCHI2BPV_E": "16", 
+        "MINIPCHI2BPV_PI_FROM_DTSM": "10", 
+        "MINIPCHI2BPV_THREE_PI": "16", 
+        "MINIPCHI2PV_D0": "50", 
+        "PROBNNGHOST_E": "0.4", 
+        "PROBNNGHOST_THREE_PI": "0.4", 
+        "PT_D0": "1000", 
+        "PT_E": "110", 
+        "PT_PI_FROM_DTSM": "110", 
+        "PT_THREE_PI": "110", 
+        "P_D0": "2000", 
+        "P_E": "0", 
+        "P_THREE_PI": "500", 
+        "PrescaleETauBox": 1.0, 
+        "PrescaleETauSSBox": 1.0, 
+        "PrescaleK3piBox": 0.025, 
+        "PrescaleK3piSSBox": 0.025, 
+        "RelInfoTools_D02ETau": [
+            {
+                "DaughterLocations": {
+                    "[D*(2010)+ ->  (Charm -> ^l l) pi+]CC": "Tau_VertexIsoInfo", 
+                    "[D*(2010)+ ->  (Charm -> l ^l) pi+]CC": "E_VertexIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> l  l) ^pi+]CC": "pi_VertexIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> l  l) pi+]CC": "D0_VertexIsoInfo"
+                }, 
+                "Location": "DstVars_VertexIsoInfo", 
+                "Type": "RelInfoVertexIsolation"
+            }, 
+            {
+                "ConeSize": 0.5, 
+                "DaughterLocations": {
+                    "[D*(2010)+ ->  (Charm -> ^l l) pi+]CC": "Tau_ConeIsoInfo", 
+                    "[D*(2010)+ ->  (Charm -> l ^l) pi+]CC": "E_ConeIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> l  l) ^pi+]CC": "pi_ConeIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> l  l) pi+]CC": "D0_ConeIsoInfo"
+                }, 
+                "Location": "DstVars_ConeIsoInfo", 
+                "Type": "RelInfoConeIsolation", 
+                "Variables": []
+            }
+        ], 
+        "RelInfoTools_D02K3pi": [
+            {
+                "DaughterLocations": {
+                    "[D*(2010)+ -> ^(Charm -> X X X X) ^pi+]CC": "pi_VertexIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> X X X X) pi+]CC": "D0_VertexIsoInfo"
+                }, 
+                "Location": "DstVars_VertexIsoInfo", 
+                "Type": "RelInfoVertexIsolation"
+            }, 
+            {
+                "ConeSize": 0.5, 
+                "DaughterLocations": {
+                    "[D*(2010)+ -> ^(Charm -> X X X X) ^pi+]CC": "pi_ConeIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> X X X X) pi+]CC": "D0_ConeIsoInfo"
+                }, 
+                "Location": "DstVars_ConeIsoInfo", 
+                "Type": "RelInfoConeIsolation", 
+                "Variables": []
+            }
+        ], 
+        "TAU_AMAXDOCA_PIS": "0.2", 
+        "TAU_BPVDIRA": "-1.", 
+        "TAU_M_HIGH": "2100", 
+        "TAU_M_HIGH_COMB": "2100", 
+        "TAU_M_LOW": "400", 
+        "TAU_M_LOW_COMB": "400", 
+        "TAU_PT": "700.", 
+        "TRACKCHI2_E": "4", 
+        "TRACKCHI2_PI_FROM_DTSM": "7", 
+        "TRACKCHI2_THREE_PI": "4", 
+        "TRGHOPROB_E": "0.4", 
+        "TRGHOPROB_THREE_PI": "0.4", 
+        "prefix": ""
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+#Hc2V02H = {
+#    "BUILDERTYPE": "StrippingHc2V02HConf", 
+#    "CONFIG": {
+#        "Bach_PT_MIN": 250.0, 
+#        "Bach_P_MIN": 2000.0, 
+#        "Comb_ADAMASS_WIN": 120.0, 
+#        "Comb_ADOCAMAX_MAX": 0.4, 
+#        "Hlt1Filter": None, 
+#        "Hlt2Filter": None, 
+#        "Lambda0_FDCHI2_MIN_DD": 4, 
+#        "Lambda0_FDCHI2_MIN_LL": 4, 
+#        "Lambda0_PT_MIN": 250.0, 
+#        "Lambda0_P_MIN": 6000.0, 
+#        "Lambda0_VCHI2VDOF_MAX_DD": 25.0, 
+#        "Lambda0_VCHI2VDOF_MAX_LL": 12.0, 
+#        "LambdaMinFD_DD": 500.0, 
+#        "LambdaMinFD_LL": 5.0, 
+#        "MIPCHI2DV_PRIMARY_Min": 2, 
+#        "PostscaleXic2LambdaKKDD": 1.0, 
+#        "PostscaleXic2LambdaKKLL": 1.0, 
+#        "PostscaleXic2LambdaKPiDD": 1.0, 
+#        "PostscaleXic2LambdaKPiLL": 1.0, 
+#        "PostscaleXic2LambdaPiKDD": 1.0, 
+#        "PostscaleXic2LambdaPiKLL": 1.0, 
+#        "PostscaleXic2LambdaPiPiDD": 1.0, 
+#        "PostscaleXic2LambdaPiPiLL": 1.0, 
+#        "PrescaleXic2LambdaKKDD": 1.0, 
+#        "PrescaleXic2LambdaKKLL": 1.0, 
+#        "PrescaleXic2LambdaKPiDD": 1.0, 
+#        "PrescaleXic2LambdaKPiLL": 1.0, 
+#        "PrescaleXic2LambdaPiKDD": 1.0, 
+#        "PrescaleXic2LambdaPiKLL": 1.0, 
+#        "PrescaleXic2LambdaPiPiDD": 1.0, 
+#        "PrescaleXic2LambdaPiPiLL": 1.0, 
+#        "ProbNNkMin": 0.1, 
+#        "ProbNNpMin_L0_DD": 0.1, 
+#        "ProbNNpMin_L0_LL": 0.1, 
+#        "ProbNNpiMin": 0.1, 
+#        "ProbNNpiMin_L0_DD": 0.1, 
+#        "ProbNNpiMin_L0_LL": 0.1, 
+#        "TrGhostProbMax": 0.3, 
+#        "Xic_ADMASS_WIN": 90.0, 
+#        "Xic_PT_min": 250.0, 
+#        "Xic_P_min": 10000.0, 
+#        "Xic_VCHI2VDOF_MAX_DD": 3.0, 
+#        "Xic_VCHI2VDOF_MAX_LL": 3.0, 
+#        "Xic_acosBPVDIRA_MAX_DD": 0.0316, 
+#        "Xic_acosBPVDIRA_MAX_LL": 0.02, 
+#        "p_L0_PT_LL_min": 100.0, 
+#        "p_L0_P_LL_min": 2000.0, 
+#        "pi_L0_PT_LL_min": 100.0, 
+#        "pi_L0_P_LL_min": 2000.0
+#    }, 
+#    "STREAMS": [ "Charm" ], 
+#    "WGs": [ "Charm" ]
+#}
+
+Hc2V03H = {
+    "BUILDERTYPE": "StrippingHc2V03HConf", 
+    "CONFIG": {
+        "Bach_IPCHI2_MAX": 9, 
+        "Bach_IPCHI2_MIN": 1, 
+        "Bach_PT_MIN": 150.0, 
+        "Bach_P_MIN": 2000.0, 
+        "Comb_ADAMASS_WIN": 90.0, 
+        "Comb_ADOCAMAX_MAX": 0.5, 
+        "Hlt1Filter": None, 
+        "Hlt2Filter": None, 
+        "Lambda0_FDCHI2_MIN": 49, 
+        "Lambda0_PT_MIN": 500.0, 
+        "Lambda0_P_MIN": 10000.0, 
+        "Lambda0_VCHI2VDOF_MAX": 12.0, 
+        "LambdaMinFD_DD": 200.0, 
+        "LambdaMinFD_LL": 25.0, 
+        "Lambdac_ADMASS_WIN": 75.0, 
+        "Lambdac_PVDispCut_DD": "(BPVVDCHI2 > 9.0)", 
+        "Lambdac_PVDispCut_LL": "(BPVVDCHI2 > 16.0)", 
+        "Lambdac_VCHI2VDOF_MAX_DD": 3.0, 
+        "Lambdac_VCHI2VDOF_MAX_LL": 3.0, 
+        "Lambdac_acosBPVDIRA_MAX_DD": 0.045, 
+        "Lambdac_acosBPVDIRA_MAX_LL": 0.14, 
+        "PostscaleLambdac2Lambda3PiDD": 1.0, 
+        "PostscaleLambdac2Lambda3PiLL": 1.0, 
+        "PostscaleLambdac2LambdaK2PiDD": 1.0, 
+        "PostscaleLambdac2LambdaK2PiLL": 1.0, 
+        "PostscaleXic2LambdaK2PiDD": 1.0, 
+        "PostscaleXic2LambdaK2PiLL": 1.0, 
+        "PrescaleLambdac2Lambda3PiDD": 1.0, 
+        "PrescaleLambdac2Lambda3PiLL": 1.0, 
+        "PrescaleLambdac2LambdaK2PiDD": 1.0, 
+        "PrescaleLambdac2LambdaK2PiLL": 1.0, 
+        "PrescaleXic2LambdaK2PiDD": 1.0, 
+        "PrescaleXic2LambdaK2PiLL": 1.0, 
+        "ProbNNpMin_DD": 0.0, 
+        "ProbNNpMin_LL": 0.1, 
+        "Xic_ADMASS_WIN": 75.0, 
+        "Xic_PVDispCut_DD": "(BPVVDCHI2 > 9.0)", 
+        "Xic_PVDispCut_LL": "(BPVVDCHI2 > 16.0)", 
+        "Xic_VCHI2VDOF_MAX_DD": 3.0, 
+        "Xic_VCHI2VDOF_MAX_LL": 3.0, 
+        "Xic_acosBPVDIRA_MAX_DD": 0.045, 
+        "Xic_acosBPVDIRA_MAX_LL": 0.14
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Hc2V2H = {
+    "BUILDERTYPE": "StrippingHc2V2HConf", 
+    "CONFIG": {
+        "Bach_PT_MIN": 150.0, 
+        "Bach_P_MIN": 2000.0, 
+        "Comb_ADAMASS_WIN": 120.0, 
+        "Comb_ADOCAMAX_MAX": 0.5, 
+        "Hc_ADMASS_WIN": 90.0, 
+        "Hc_PVDispCut_DDD": "(BPVVDCHI2 >  9.0)", 
+        "Hc_PVDispCut_DDL": "(BPVVDCHI2 > 16.0)", 
+        "Hc_PVDispCut_LLL": "(BPVVDCHI2 > 16.0)", 
+        "Hc_VCHI2VDOF_MAX_DDD": 12.0, 
+        "Hc_VCHI2VDOF_MAX_DDL": 12.0, 
+        "Hc_VCHI2VDOF_MAX_LLL": 12.0, 
+        "Hc_acosBPVDIRA_MAX_DDD": 0.14, 
+        "Hc_acosBPVDIRA_MAX_DDL": 0.045, 
+        "Hc_acosBPVDIRA_MAX_LLL": 0.14, 
+        "Hlt1Filter": None, 
+        "Hlt2Filter": None, 
+        "Lambda0_FDCHI2_MIN": 49, 
+        "Lambda0_PT_MIN": 250.0, 
+        "Lambda0_P_MIN": 2000.0, 
+        "Lambda0_VCHI2VDOF_MAX": 12.0, 
+        "LambdaMinFD_DD": 0.0, 
+        "LambdaMinFD_LL": 25.0, 
+        "PostscaleLambdac2XiKPiDDD": 1.0, 
+        "PostscaleLambdac2XiKPiDDL": 1.0, 
+        "PostscaleLambdac2XiKPiLLL": 1.0, 
+        "PostscaleXic2XiPiPiDDD": 1.0, 
+        "PostscaleXic2XiPiPiDDL": 1.0, 
+        "PostscaleXic2XiPiPiLLL": 1.0, 
+        "PrescaleLambdac2XiKPiDDD": 1.0, 
+        "PrescaleLambdac2XiKPiDDL": 1.0, 
+        "PrescaleLambdac2XiKPiLLL": 1.0, 
+        "PrescaleXic2XiPiPiDDD": 1.0, 
+        "PrescaleXic2XiPiPiDDL": 1.0, 
+        "PrescaleXic2XiPiPiLLL": 1.0, 
+        "ProbNNpMin_DD": 0.0, 
+        "ProbNNpMin_LL": 0.1, 
+        "Xim_FDCHI2_MIN": 16, 
+        "Xim_PT_MIN": 250.0, 
+        "Xim_P_MIN": 2000.0, 
+        "Xim_VCHI2VDOF_MAX": 12.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Hc2V3H = {
+    "BUILDERTYPE": "StrippingHc2V3HConf", 
+    "CONFIG": {
+        "Bach_IPCHI2_MAX": 9, 
+        "Bach_IPCHI2_MIN": 1, 
+        "Bach_PT_MIN": 200.0, 
+        "Bach_P_MIN": 2000.0, 
+        "Comb_ADAMASS_WIN": 120.0, 
+        "Comb_ADOCAMAX_MAX": 0.5, 
+        "Hlt1Filter": None, 
+        "Hlt2Filter": None, 
+        "Lambda0_FDCHI2_MIN": 25, 
+        "Lambda0_PT_MIN": 250.0, 
+        "Lambda0_P_MIN": 2000.0, 
+        "Lambda0_VCHI2VDOF_MAX": 12.0, 
+        "PostscaleXic2XimPiPiPiDDD": 1.0, 
+        "PostscaleXic2XimPiPiPiDDL": 1.0, 
+        "PostscaleXic2XimPiPiPiLLL": 1.0, 
+        "PrescaleXic2XimPiPiPiDDD": 1.0, 
+        "PrescaleXic2XimPiPiPiDDL": 1.0, 
+        "PrescaleXic2XimPiPiPiLLL": 1.0, 
+        "ProbNNpMin_DD": 0.0, 
+        "ProbNNpMin_LL": 0.1, 
+        "Xic_ADMASS_WIN": 90.0, 
+        "Xic_PVDispCut_DDD": "(BPVVDCHI2 > 9.0)", 
+        "Xic_PVDispCut_DDL": "(BPVVDCHI2 > 9.0)", 
+        "Xic_PVDispCut_LLL": "(BPVVDCHI2 > 16.0)", 
+        "Xic_VCHI2VDOF_MAX_DDD": 5.0, 
+        "Xic_VCHI2VDOF_MAX_DDL": 5.0, 
+        "Xic_VCHI2VDOF_MAX_LLL": 5.0, 
+        "Xic_acosBPVDIRA_MAX_DDD": 0.14, 
+        "Xic_acosBPVDIRA_MAX_DDL": 0.14, 
+        "Xic_acosBPVDIRA_MAX_LLL": 0.14, 
+        "Xim_FDCHI2_MIN": 9, 
+        "Xim_PT_MIN": 250.0, 
+        "Xim_P_MIN": 2000.0, 
+        "Xim_VCHI2VDOF_MAX": 12.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Lambdac2LambdaEtaPi = {
+    "BUILDERTYPE": "StrippingLambdac2LambdaEtaPi", 
+    "CONFIG": {
+        "GEC_nLongTrk": 160, 
+        "GhostProb": 0.3, 
+        "KaonP": 3000.0, 
+        "KaonPIDK": 10.0, 
+        "KaonPT": 250.0, 
+        "Kaon_PIDKPIDpi_Min": 5.0, 
+        "LambdaDDCutFDChi2": 100.0, 
+        "LambdaDDCutMass": 50.0, 
+        "LambdaDDPMin": 2000.0, 
+        "LambdaDDPTMin": 500.0, 
+        "LambdaLLCutFDChi2": 100.0, 
+        "LambdaLLCutMass": 50.0, 
+        "LambdaLLPMin": 2000.0, 
+        "LambdaLLPTMin": 500.0, 
+        "LambdaVertexChi2": 10.0, 
+        "Lb_APT_Min": 1500.0, 
+        "Lb_AP_Min": 20000.0, 
+        "Lb_BPVDIRA_Min": 0.95, 
+        "Lb_BPVVDCHI2_Min": 16, 
+        "Lb_M_HalfWin": 200.0, 
+        "Lb_VCHI2_Max": 30, 
+        "Lc_ADOCAMAX_Max": 0.15, 
+        "Lc_APT_Min": 1200.0, 
+        "Lc_AP_Min": 15000.0, 
+        "Lc_BPVDIRA_Min": 0.95, 
+        "Lc_BPVVDCHI2_Min": 16.0, 
+        "Lc_BPVVDZ_Min": 0.5, 
+        "Lc_Daug_1of3_MIPCHI2DV_Min": 3.0, 
+        "Lc_M_HalfWin": 200.0, 
+        "Lc_VCHI2_Max": 30.0, 
+        "MINIPCHI2": 3.0, 
+        "MuonIPCHI2": 4.0, 
+        "MuonP": 3000.0, 
+        "MuonPIDmu": 0.0, 
+        "MuonPT": 250.0, 
+        "PionP": 3000.0, 
+        "PionPIDK": 5.0, 
+        "PionPT": 250.0, 
+        "Pion_PIDpiPIDK_Min": 0.0, 
+        "ProbNNk": 0.4, 
+        "ProbNNp": 0.4, 
+        "ProbNNpMin": 0.2, 
+        "ProbNNpi": 0.4, 
+        "ProbNNpiMax": 0.9, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "signalPrescale": 1.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Lambdac2PEta = {
+    "BUILDERTYPE": "StrippingLambdac2PEta", 
+    "CONFIG": {
+        "GEC_nLongTrk": 160, 
+        "Lb_APT_Min": 1500.0, 
+        "Lb_AP_Min": 20000.0, 
+        "Lb_BPVDIRA_Min": 0.95, 
+        "Lb_BPVVDCHI2_Min": 16, 
+        "Lb_BPVVDZ_Min": 0.7, 
+        "Lb_M_HalfWin": 200.0, 
+        "Lb_VCHI2_Max": 30, 
+        "Lc_ADOCAMAX_Max": 0.15, 
+        "Lc_APT_Min": 1200.0, 
+        "Lc_AP_Min": 15000.0, 
+        "Lc_BPVDIRA_Min": 0.95, 
+        "Lc_BPVVDCHI2_Min": 16.0, 
+        "Lc_BPVVDZ_Min": 0.5, 
+        "Lc_Daug_1of3_MIPCHI2DV_Min": 3.0, 
+        "Lc_M_HalfWin": 200.0, 
+        "Lc_VCHI2_Max": 30.0, 
+        "MINIPCHI2": 3.0, 
+        "PionP": 3000.0, 
+        "PionPIDK": 5.0, 
+        "PionPT": 250.0, 
+        "ProbNNp": 0.4, 
+        "ProbNNpi": 0.4, 
+        "ProbNNpiMax": 0.9, 
+        "ProtonP": 3000.0, 
+        "ProtonPT": 500.0, 
+        "Proton_PIDpPIDK_Min": 0.0, 
+        "Proton_PIDpPIDpi_Min": 5.0, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "signalPrescale": 1.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+NeutralCBaryons = {
+    "BUILDERTYPE": "StrippingNeutralCBaryonsConf", 
+    "CONFIG": {
+        "Bachelor_PT_MIN": 50.0, 
+        "KaonPIDK": -5.0, 
+        "LambdaDDMassWin": 5.7, 
+        "LambdaDDMaxVZ": 2275.0, 
+        "LambdaDDMinVZ": 400.0, 
+        "LambdaDDVtxChi2Max": 5.0, 
+        "LambdaDeltaZ_MIN": 5.0, 
+        "LambdaLLMassWin": 5.7, 
+        "LambdaLLMaxVZ": 400.0, 
+        "LambdaLLMinDecayTime": 0.005, 
+        "LambdaLLMinVZ": -100.0, 
+        "LambdaLLVtxChi2Max": 5.0, 
+        "LambdaPi_PT_MIN": 100.0, 
+        "LambdaPr_PT_MIN": 500.0, 
+        "PionPIDK": 10.0, 
+        "ProbNNkMin": 0.1, 
+        "ProbNNpMinDD": 0.05, 
+        "ProbNNpMinLL": 0.1, 
+        "ProtonPIDp": 5, 
+        "ProtonPIDpK": -3, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "tight_KaonPIDK": 0.0, 
+        "tight_KaonPIDpi": 5.0, 
+        "tight_ProtonPIDp": 7, 
+        "tight_ProtonPIDpK": 0.0, 
+        "tight_ProtonPIDppi": 5.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Xib2Xic0PiXic02pK = {
+    "BUILDERTYPE": "StrippingXib2Xic0PiXic02pKConf", 
+    "CONFIG": {
+        "PionPIDK": 10.0, 
+        "ProbNNkMin": 0.1, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "tight_KaonPIDK": 0.0, 
+        "tight_KaonPIDpi": 5.0, 
+        "tight_ProtonPIDp": 7, 
+        "tight_ProtonPIDpK": 0.0, 
+        "tight_ProtonPIDppi": 5.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Xic0ToXiMuNu = {
+    "BUILDERTYPE": "Xic0ToXiMuNuConf", 
+    "CONFIG": {
+        "RequiredRawEvents": [ "Velo" ], 
+        "amass_ximu": "(in_range(1400*MeV,AMASS(),4500*MeV)) & ", 
+        "bach_muon": {
+            "filter": "(PT>200*MeV) & (P>3000*MeV) & (PROBNNmu>0.3) & (BPVIPCHI2()>4)", 
+            "tes": "Phys/StdAllNoPIDsMuons/Particles"
+        }, 
+        "bach_pion": {
+            "filter": "(PT > 120*MeV) & (P > 1000*MeV) & (MIPDV(PRIMARY)>0.01*mm) & (MIPCHI2DV(PRIMARY) > 9.0) & (PROBNNpi>0.03)", 
+            "tes": "Phys/StdAllNoPIDsPions/Particles"
+        }, 
+        "descriptor_xi": [
+            "[Xi- -> Lambda0 pi-]cc"
+        ], 
+        "descriptor_ximu": [
+            "[Xi_c0 -> Xi- mu+]cc"
+        ], 
+        "down_pion": {
+            "filter": "(P>1000*MeV) & (PT>150*MeV) & (PROBNNpi>0.03)", 
+            "tes": "Phys/StdNoPIDsDownPions/Particles"
+        }, 
+        "lambda_dd": {
+            "filter": "(ADMASS('Lambda0')<20*MeV) & (P>12*GeV) & (PT>400*MeV) & (CHILDIP(1)<2*mm) & (MAXTREE('p+'==ABSID,P)>9*GeV) & (CHI2VXNDF<30) &\n                    (MAXTREE('p+'==ABSID,PT)>200*MeV) & (MAXTREE('pi+'==ABSID,PT)>150*MeV) & (VFASPF(VZ) >  300.*mm) & (VFASPF(VZ) < 2485.*mm)", 
+            "tes": "Phys/StdLooseLambdaDD/Particles"
+        }, 
+        "lambda_ll": {
+            "filter": "(ADMASS('Lambda0')<20*MeV) & (P>6*GeV) & (PT>200*MeV) & (BPVVDZ>8*mm) & (BPVLTIME() > 2.0*ps) & (CHI2VXNDF<20) &\n                    (MAXTREE('p+'==ABSID,MIPCHI2DV(PRIMARY))>9) & (MAXTREE('pi-'==ABSID,MIPCHI2DV(PRIMARY))>24) & \n                    (MAXTREE('p+'==ABSID,PT)>100*MeV) & (MAXTREE('p+'==ABSID,P)>5.0*GeV) & (VFASPF(VZ) > -100.*mm) & (VFASPF(VZ) <  640.*mm) & (BPVVDCHI2 > 100)", 
+            "tes": "Phys/StdVeryLooseLambdaLL/Particles"
+        }, 
+        "xc0_ddd": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<5.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>20*GeV) & (PT>200*MeV)"
+        }, 
+        "xc0_ddl": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<3.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>20*GeV) & (PT>200*MeV) "
+        }, 
+        "xc0_lll": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<1.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>12*GeV) & (PT>200*MeV)"
+        }, 
+        "xi_ddd": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ACHILD(2,MIPCHI2DV(PRIMARY))>20) & (ADOCA(1,2)<5*mm) & (ACHI2DOCA(1,2)<12)", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) &  (BPVVDCHI2>10) & (BPVLTIME() > 2.0*picosecond) &\n            (P>15*GeV) & (PT>600*MeV)"
+        }, 
+        "xi_ddl": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ADOCA(1,2)<2.5*mm) & (ACHI2DOCA(1,2)<12) ", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) & (BPVVDCHI2>20) & (BPVLTIME() > 2.0*picosecond) &\n            (P>15*GeV) & (PT>600*MeV)"
+        }, 
+        "xi_lll": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ACHILD(2,MIPCHI2DV(PRIMARY))>9) & (ADOCA(1,2)<0.5*mm) & (ACHI2DOCA(1,2)<20)", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) & (BPVVDCHI2>15) & (BPVLTIME() > 2.0*picosecond) & \n            (P>8*GeV) & (PT>400*MeV) "
+        }
+    }, 
+    "STREAMS": {
+        "CharmCompleteEvent": [
+            "StrippingXic0ToXiMuNu_LLLLine", 
+            "StrippingXic0ToXiMuNu_DDLLine", 
+            "StrippingXic0ToXiMuNu_DDDLine"
+        ]
+    }, 
+    "WGs": [ "Charm" ]
+}
+
+Xic0ToXiMuNu_WS = {
+    "BUILDERTYPE": "Xic0ToXiMuNu_WSConf", 
+    "CONFIG": {
+        "RequiredRawEvents": [ "Velo" ], 
+        "amass_ximu": "(in_range(1400*MeV,AMASS(),4500*MeV)) & ", 
+        "bach_muon": {
+            "filter": "(PT>200*MeV) & (P>3000*MeV) & (PROBNNmu>0.3) & (BPVIPCHI2()>4)", 
+            "tes": "Phys/StdAllNoPIDsMuons/Particles"
+        }, 
+        "bach_pion": {
+            "filter": "(PT > 120*MeV) & (P > 1000*MeV) & (MIPDV(PRIMARY)>0.01*mm) & (MIPCHI2DV(PRIMARY) > 9.0) & (PROBNNpi>0.03)", 
+            "tes": "Phys/StdAllNoPIDsPions/Particles"
+        }, 
+        "descriptor_xi": [
+            "[Xi- -> Lambda0 pi-]cc"
+        ], 
+        "descriptor_ximu": [
+            "[Xi_c0 -> Xi- mu-]cc"
+        ], 
+        "down_pion": {
+            "filter": "(P>1000*MeV) & (PT>150*MeV) & (PROBNNpi>0.03)", 
+            "tes": "Phys/StdNoPIDsDownPions/Particles"
+        }, 
+        "lambda_dd": {
+            "filter": "(ADMASS('Lambda0')<20*MeV) & (P>12*GeV) & (PT>400*MeV) & (CHILDIP(1)<2*mm) & (MAXTREE('p+'==ABSID,P)>9*GeV) & (CHI2VXNDF<30) &\n                    (MAXTREE('p+'==ABSID,PT)>200*MeV) & (MAXTREE('pi+'==ABSID,PT)>150*MeV) & (VFASPF(VZ) >  300.*mm) & (VFASPF(VZ) < 2485.*mm)", 
+            "tes": "Phys/StdLooseLambdaDD/Particles"
+        }, 
+        "lambda_ll": {
+            "filter": "(ADMASS('Lambda0')<20*MeV) & (P>6*GeV) & (PT>200*MeV) & (BPVVDZ>8*mm) & (BPVLTIME() > 2.0*ps) & (CHI2VXNDF<20) &\n                    (MAXTREE('p+'==ABSID,MIPCHI2DV(PRIMARY))>9) & (MAXTREE('pi-'==ABSID,MIPCHI2DV(PRIMARY))>24) & \n                    (MAXTREE('p+'==ABSID,PT)>100*MeV) & (MAXTREE('p+'==ABSID,P)>5.0*GeV) & (VFASPF(VZ) > -100.*mm) & (VFASPF(VZ) <  640.*mm) & (BPVVDCHI2 > 100)", 
+            "tes": "Phys/StdVeryLooseLambdaLL/Particles"
+        }, 
+        "xc0_ddd": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<5.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>20*GeV) & (PT>200*MeV)"
+        }, 
+        "xc0_ddl": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<3.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>20*GeV) & (PT>200*MeV) "
+        }, 
+        "xc0_lll": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<1.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>12*GeV) & (PT>200*MeV)"
+        }, 
+        "xi_ddd": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ACHILD(2,MIPCHI2DV(PRIMARY))>20) & (ADOCA(1,2)<5*mm) & (ACHI2DOCA(1,2)<12)", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) &  (BPVVDCHI2>10) & (BPVLTIME() > 2.0*picosecond) &\n            (P>15*GeV) & (PT>600*MeV)"
+        }, 
+        "xi_ddl": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ADOCA(1,2)<2.5*mm) & (ACHI2DOCA(1,2)<12) ", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) & (BPVVDCHI2>20) & (BPVLTIME() > 2.0*picosecond) &\n            (P>15*GeV) & (PT>600*MeV)"
+        }, 
+        "xi_lll": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ACHILD(2,MIPCHI2DV(PRIMARY))>9) & (ADOCA(1,2)<0.5*mm) & (ACHI2DOCA(1,2)<20)", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) & (BPVVDCHI2>15) & (BPVLTIME() > 2.0*picosecond) & \n            (P>8*GeV) & (PT>400*MeV) "
+        }
+    }, 
+    "STREAMS": {
+        "CharmCompleteEvent": [
+            "StrippingXic0ToXiMuNu_WS_LLLLine", 
+            "StrippingXic0ToXiMuNu_WS_DDLLine", 
+            "StrippingXic0ToXiMuNu_WS_DDDLine"
+        ]
+    }, 
+    "WGs": [ "Charm" ]
+}
+
+Xic2PHH = {
+    "BUILDERTYPE": "StrippingXic2PHH", 
+    "CONFIG": {
+        "BPVIPCHI2_Phi": 4, 
+        "GEC_nLongTrk": 250, 
+        "GhostProb": 0.3, 
+        "KSCutDIRA_DD": 0.999, 
+        "KSCutDIRA_LL": 0.999, 
+        "KSCutFDChi2_DD": 5, 
+        "KSCutFDChi2_LL": 5, 
+        "KSCutMass_DD": 50.0, 
+        "KSCutMass_LL": 35.0, 
+        "KaonP": 2000.0, 
+        "KaonPIDK": 10.0, 
+        "KaonPT": 200.0, 
+        "Kaon_PIDKPIDpi_Min": 5.0, 
+        "MINIPCHI2": 4.0, 
+        "MaxDz_DD": 9999.0, 
+        "MaxDz_LL": 9999.0, 
+        "MaxKsVCHI2NDOF_DD": 20.0, 
+        "MaxKsVCHI2NDOF_LL": 20.0, 
+        "MaxPhiEta": 5.0, 
+        "MinDz_DD": 250.0, 
+        "MinDz_LL": 0.0, 
+        "MinKsIpChi2_DD": 3, 
+        "MinKsIpChi2_LL": 3, 
+        "MinKsPT_DD": 200.0, 
+        "MinKsPT_LL": 200.0, 
+        "MinPhiEta": 2.0, 
+        "MinPhiP": 3000.0, 
+        "MinPhiPT": 200.0, 
+        "PhiCutMass": 20.0, 
+        "PionP": 3000.0, 
+        "PionPIDK": 10.0, 
+        "PionPT": 500.0, 
+        "Pion_PIDpiPIDK_Min": 0.0, 
+        "ProbNNk": 0.4, 
+        "ProbNNp": 0.4, 
+        "ProbNNpMin": 0.2, 
+        "ProbNNpi": 0.5, 
+        "ProbNNpiMax": 0.95, 
+        "ProtonP": 3000.0, 
+        "ProtonPT": 500.0, 
+        "Proton_PIDpPIDK_Min": 0.0, 
+        "Proton_PIDpPIDpi_Min": 5.0, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "Xic_ADAMASS_HalfWin": 170.0, 
+        "Xic_ADMASS_HalfWin": 120.0, 
+        "Xic_AM_Max": 2550.0, 
+        "Xic_BPVDIRA_Min": 0.9, 
+        "Xic_BPVVDCHI2_Min": 25.0, 
+        "pKK_AM_Min": 2380.0, 
+        "ppipi_AM_Min": 2380.0, 
+        "signalPrescaleViaXicPKK": 1.0, 
+        "signalPrescaleViaXicPKS0DD": 1.0, 
+        "signalPrescaleViaXicPKS0LL": 1.0, 
+        "signalPrescaleViaXicPPhi2KK": 1.0, 
+        "signalPrescaleViaXicPPiPi": 1.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
diff --git a/Phys/StrippingSettings/python/StrippingSettings/Stripping34r0p3/LineConfigDictionaries_Charm.py b/Phys/StrippingSettings/python/StrippingSettings/Stripping34r0p3/LineConfigDictionaries_Charm.py
index a40c913843f3cb8b5be69855f648dd25b7bd0f67..ddd0f4db88f27c8b0478df7f0442292c1c7f681e 100644
--- a/Phys/StrippingSettings/python/StrippingSettings/Stripping34r0p3/LineConfigDictionaries_Charm.py
+++ b/Phys/StrippingSettings/python/StrippingSettings/Stripping34r0p3/LineConfigDictionaries_Charm.py
@@ -1,5 +1,5 @@
 ###############################################################################
-# (c) Copyright 2000-2019 CERN for the benefit of the LHCb Collaboration      #
+# (c) Copyright 2000-2023 CERN for the benefit of the LHCb Collaboration      #
 #                                                                             #
 # This software is distributed under the terms of the GNU General Public      #
 # Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING".   #
@@ -16,3 +16,937 @@
 ##  Contact person: Sergio Jaimes     (sergio.jaimes@cern.ch)                 ##
 ################################################################################
 
+Charm2PPX = {
+    "BUILDERTYPE": "StrippingCharm2PPXConf", 
+    "CONFIG": {
+        "Comb_ADOCACHI2_MAX": 16, 
+        "Daug_1ofAll_BPVIPCHI2_MIN": 9.0, 
+        "Daug_1ofAll_PT_MIN": 700.0, 
+        "Daug_All_BPVIPCHI2_MIN": 4.0, 
+        "Daug_All_CloneDist_MIN": 5000, 
+        "Daug_All_MIPCHI2_MIN": 4.0, 
+        "Daug_All_PT_MIN": 200.0, 
+        "Daug_All_TrChostProb_MAX": 0.5, 
+        "Daug_ETA_MAX": 4.9, 
+        "Daug_ETA_MIN": 2.0, 
+        "Daug_P_MAX": 100000.0, 
+        "Daug_P_MIN": 3200.0, 
+        "Hc_BPVCTAU_MIN": 0.05, 
+        "Hc_BPVVDCHI2_MIN": 9.0, 
+        "Hc_MASS_MAX": 3500.0, 
+        "Hc_PT_MIN": 1000.0, 
+        "Hc_VCHI2VDOF_MAX": 25.0, 
+        "Hcs_MASS_MAX": 3650.0, 
+        "Hlt1Filter": None, 
+        "Hlt2Filter": None, 
+        "HsComb_ADOCACHI2_MAX": 16, 
+        "HsDaug_1ofAll_BPVIPCHI2_MIN": 9.0, 
+        "HsDaug_1ofAll_PT_MIN": -500.0, 
+        "HsDownDaug_1ofAll_BPVIPCHI2_MIN": -9.0, 
+        "HsDown_BPVVDCHI2_MIN": 4.0, 
+        "HsProton_1ofAll_ProbNN_MIN": 0.5, 
+        "Hs_BPVCTAU_MIN": 0.1, 
+        "Hs_BPVVDCHI2_MIN": 9.0, 
+        "Hs_MASS_MAX": 2125.0, 
+        "Hs_PT_MIN": -1000.0, 
+        "Hs_VCHI2VDOF_MAX": 25.0, 
+        "Kaon_ProbNN_MIN": 0.1, 
+        "Lam_MASS_MAX": 1170.0, 
+        "Lc_MASS_MAX": 2350.0, 
+        "Pc_MASS_MAX": 3100.0, 
+        "Pion_ProbNN_MIN": 0.1, 
+        "PostscaleHc2LamPPi": 1.0, 
+        "PostscaleHc2LamPPiPi": 1.0, 
+        "PostscaleHc2PP": 1.0, 
+        "PostscaleHc2PPK": 1.0, 
+        "PostscaleHc2PPKPi": 1.0, 
+        "PostscaleHc2PPKPiPi": 1.0, 
+        "PostscaleHc2PPKs": 1.0, 
+        "PostscaleHc2PPKsPi": 1.0, 
+        "PostscaleHcs2LamLamPi": 1.0, 
+        "PostscaleHcs2LamPKPi": 1.0, 
+        "PostscaleHcs2PPKKPi": 1.0, 
+        "PostscaleHcs2PPKsK": 1.0, 
+        "PostscaleHs2PPPi": 1.0, 
+        "PostscaleL2PPi": 1.0, 
+        "PostscaleLc2PKPi": 1.0, 
+        "PostscalePc2PKPiPi": 1.0, 
+        "PostscalePc2PKsPi": 1.0, 
+        "PostscalePs2PPiPi": 1.0, 
+        "PrescaleHc2LamPPi": 1.0, 
+        "PrescaleHc2LamPPiPi": 1.0, 
+        "PrescaleHc2PP": 1.0, 
+        "PrescaleHc2PPK": 1.0, 
+        "PrescaleHc2PPKPi": 1.0, 
+        "PrescaleHc2PPKPiPi": 1.0, 
+        "PrescaleHc2PPKs": 1.0, 
+        "PrescaleHc2PPKsPi": 1.0, 
+        "PrescaleHcs2LamLamPi": 1.0, 
+        "PrescaleHcs2LamPKPi": 1.0, 
+        "PrescaleHcs2PPKKPi": 1.0, 
+        "PrescaleHcs2PPKsK": 1.0, 
+        "PrescaleHs2PPPi": 1.0, 
+        "PrescaleL2PPi": 0.01, 
+        "PrescaleLc2PKPi": 0.01, 
+        "PrescalePc2PKPiPi": 0.1, 
+        "PrescalePc2PKsPi": 0.1, 
+        "PrescalePs2PPiPi": 0.1, 
+        "Proton_1ofAll_ProbNN_MIN": 0.5, 
+        "Proton_PT_MIN": 300.0, 
+        "Proton_P_MIN": 10000.0, 
+        "Proton_ProbNN_MIN": 0.1, 
+        "Proton_ProbNNk_MAX": 0.8, 
+        "Proton_ProbNNpi_MAX": 0.55, 
+        "Ps_MASS_MAX": 1650.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+CharmedBaryonSL = {
+    "BUILDERTYPE": "StrippingCharmedBaryonSL", 
+    "CONFIG": {
+        "GEC_nLongTrk": 250, 
+        "GhostProb": 0.3, 
+        "KaonP": 3000.0, 
+        "KaonPIDK": 10.0, 
+        "KaonPT": 500.0, 
+        "KaonPT_ForOm": 100.0, 
+        "KaonP_ForOm": 2000.0, 
+        "Kaon_PIDKPIDpi_Min": 5.0, 
+        "L0Mu_AM_Min": 1250.0, 
+        "LambdaCutDIRA": 0.99, 
+        "LambdaDDCutFDChi2": 100.0, 
+        "LambdaDDCutMass": 20.0, 
+        "LambdaDDMaxVZ": 2275.0, 
+        "LambdaDDMinVZ": 400.0, 
+        "LambdaDDPMin": 5000.0, 
+        "LambdaDDPTMin": 800.0, 
+        "LambdaDaugTrackChi2": 4.0, 
+        "LambdaLDCutFDChi2": 100.0, 
+        "LambdaLDCutMass": 20.0, 
+        "LambdaLDPMin": 3000.0, 
+        "LambdaLDPTMin": 800.0, 
+        "LambdaLLCutFDChi2": 100.0, 
+        "LambdaLLCutMass": 20.0, 
+        "LambdaLLMaxVZ": 400.0, 
+        "LambdaLLMinVZ": -100.0, 
+        "LambdaLLPMin": 5000.0, 
+        "LambdaLLPTMin": 800.0, 
+        "LambdaPi_PT_MIN": 100.0, 
+        "LambdaPr_PT_MIN": 500.0, 
+        "LambdaVertexChi2": 5.0, 
+        "Lc_ADMASS_HalfWin": 80.0, 
+        "Lc_ADMASS_HalfWin_Tight": 55.0, 
+        "Lc_ADOCAMAX_Max": 0.5, 
+        "Lc_ADOCAMAX_Max_Tight": 0.15, 
+        "Lc_AM_Max": 2370.0, 
+        "Lc_APT_Min": 1000.0, 
+        "Lc_APT_Min_Tight_PKMu": 1600.0, 
+        "Lc_APT_Min_Tight_PPiMu": 1600.0, 
+        "Lc_AP_Min_Tight": 25000.0, 
+        "Lc_BPVDIRA_Min": 0.9, 
+        "Lc_BPVDIRA_Min_Tight": 0.99, 
+        "Lc_BPVVDCHI2_Min": 16.0, 
+        "Lc_BPVVDCHI2_Min_Tight": 25.0, 
+        "Lc_Daug_1of3_MIPCHI2DV_Min": 4.0, 
+        "Lc_Daug_1of3_MIPCHI2DV_Min_Tight": 9.0, 
+        "Lc_VCHI2_Max": 30.0, 
+        "Lc_VCHI2_Max_Tight": 20.0, 
+        "MINIPCHI2": 4.0, 
+        "MisID_PROB_Max": 0.7, 
+        "MuonIPCHI2": 5.0, 
+        "MuonP": 3000.0, 
+        "MuonPIDmu": 0.0, 
+        "MuonPT": 500.0, 
+        "Oc_AM_Max": 2780.0, 
+        "OmMu_AM_Min": 1780.0, 
+        "Omegac0_4Dau_VCHI2_Max": 60.0, 
+        "Omegac0_ADAMASS_HalfWin": 170.0, 
+        "Omegac0_ADMASS_HalfWin": 120.0, 
+        "Omegac0_BPVDIRA_Min": 0.9, 
+        "Omegac0_BPVVDCHI2_Min": 25.0, 
+        "P_Min_Tight": 3500.0, 
+        "PionP": 3000.0, 
+        "PionPIDK": 10.0, 
+        "PionPT": 500.0, 
+        "PionPT_ForXi": 100.0, 
+        "PionP_ForXi": 2000.0, 
+        "Pion_PIDpiPIDK_Min": 0.0, 
+        "ProbNNk": 0.4, 
+        "ProbNNp": 0.4, 
+        "ProbNNpMin": 0.2, 
+        "ProbNNpi": 0.5, 
+        "ProbNNpiMax": 0.95, 
+        "ProtonP": 3000.0, 
+        "ProtonPT": 500.0, 
+        "Proton_PIDpPIDK_Min": 0.0, 
+        "Proton_PIDpPIDpi_Min": 5.0, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "XiMu_AM_Min": 1430.0, 
+        "Xic_ADAMASS_HalfWin": 170.0, 
+        "Xic_ADMASS_HalfWin": 120.0, 
+        "Xic_AM_Max": 2550.0, 
+        "Xic_BPVDIRA_Min": 0.9, 
+        "Xic_BPVVDCHI2_Min": 25.0, 
+        "controlPrescaleViaLcL0DDPiNC": 0.8, 
+        "controlPrescaleViaLcL0LLPiNC": 0.4, 
+        "controlPrescaleViaLcPKPiNC": 0.09, 
+        "controlPrescaleViaLcPKPiNC_Tight": 0.5, 
+        "controlPrescaleViaLcPPiPiNC": 0.06, 
+        "controlPrescaleViaLcPPiPiNC_Tight": 0.5, 
+        "controlPrescaleViaOmegac0NC": 1.0, 
+        "controlPrescaleViaXicL0DDPiNC": 0.8, 
+        "controlPrescaleViaXicL0LLPiNC": 0.4, 
+        "controlPrescaleViaXicXiPiNC": 1.0, 
+        "pKMu_AM_Min": 1550.0, 
+        "ppiMu_AM_Min": 1200.0, 
+        "signalPrescaleViaLc": 1.0, 
+        "signalPrescaleViaLcL0DDMuNu": 0.8, 
+        "signalPrescaleViaLcPKMuNu_Tight": 1.0, 
+        "signalPrescaleViaLcPPiMuNu": 0.25, 
+        "signalPrescaleViaLcPPiMuNu_Tight": 1.0, 
+        "signalPrescaleViaOmegac0": 1.0, 
+        "signalPrescaleViaXic": 1.0, 
+        "signalPrescaleViaXicL0DDMuNu": 0.8, 
+        "signalPrescaleViaXicL0LLMuNu": 0.8
+    }, 
+    "STREAMS": [ "CharmCompleteEvent" ], 
+    "WGs": [ "Charm" ]
+}
+
+CharmedMesonSL = {
+    "BUILDERTYPE": "StrippingCharmedMesonSL", 
+    "CONFIG": {
+        "B0SL_M_Max": 5600.0, 
+        "B0SL_M_Min": 2800.0, 
+        "B0_M_Max": 5600.0, 
+        "B0_M_Min": 5100.0, 
+        "B_APT_Min": 1500.0, 
+        "B_AP_Min": 20000.0, 
+        "B_BPVDIRA_Min": 0.95, 
+        "B_BPVVDCHI2_Min": 16, 
+        "B_VCHI2_Max": 30, 
+        "BpSL_M_Max": 5700.0, 
+        "BpSL_M_Min": 3000.0, 
+        "Bp_M_Max": 5500.0, 
+        "Bp_M_Min": 5100.0, 
+        "D0SL_AM_Max": 1960.0, 
+        "D0_ADMASS_Max": 1900.0, 
+        "D0_ADMASS_Min": 1820.0, 
+        "DpSL_AM_Max": 2080.0, 
+        "Dp_ADMASS_Max": 2030.0, 
+        "Dp_ADMASS_Min": 1800.0, 
+        "Dp_ADOCAMAX_Max": 0.25, 
+        "Dp_APT_Min": 1200.0, 
+        "Dp_AP_Min": 20000.0, 
+        "Dp_BPVDIRA_Min": 0.95, 
+        "Dp_BPVVDCHI2_Min": 16.0, 
+        "Dp_Daug_1of3_MIPCHI2DV_Min": 4.0, 
+        "Dp_VCHI2_Max": 30.0, 
+        "EtaPiMu_AM_Min": 800.0, 
+        "GEC_nLongTrk": 160, 
+        "GhostProb": 0.3, 
+        "KKMu_AM_Min": 1100.0, 
+        "KaonP": 3000.0, 
+        "KaonPIDK": 10.0, 
+        "KaonPT": 250.0, 
+        "Kaon_PIDKPIDpi_Min": 5.0, 
+        "MINIPCHI2": 4.0, 
+        "MuonIPCHI2": 4.0, 
+        "MuonP": 3000.0, 
+        "MuonPIDmu": 0.0, 
+        "MuonPT": 250.0, 
+        "PiKKMu_AM_Min": 1240.0, 
+        "PiPiMu_AM_Min": 400.0, 
+        "PiPiPiMu_AM_Min": 530.0, 
+        "PionP": 3000.0, 
+        "PionPIDK": 5.0, 
+        "PionPT": 250.0, 
+        "Pion_PIDpiPIDK_Min": 0.0, 
+        "ProbNNk": 0.4, 
+        "ProbNNpi": 0.5, 
+        "ProbNNpiMax": 0.9, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "controlPrescaleViaD02KKpipi": 1.0, 
+        "controlPrescaleViaD02etapipi": 1.0, 
+        "controlPrescaleViaD02pipipipi": 1.0, 
+        "controlPrescaleViaD2KKpi": 1.0, 
+        "controlPrescaleViaD2pipipi": 1.0, 
+        "signalPrescaleViaD02KKpimunu": 1.0, 
+        "signalPrescaleViaD02etapimunu": 1.0, 
+        "signalPrescaleViaD02pipipimunu": 1.0, 
+        "signalPrescaleViaD2KKmunu": 1.0, 
+        "signalPrescaleViaD2pipimunu": 1.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+DstarD02ETau = {
+    "BUILDERTYPE": "StrippingDstarD02ETauConf", 
+    "CONFIG": {
+        "CUTBASED_MCORR_B_HIGH": "8600", 
+        "CUTBASED_MCORR_B_LOW": "3600", 
+        "CUTBASED_MCORR_D0_HIGH": "8000", 
+        "CUTBASED_MCORR_D0_LOW": "1000", 
+        "CUTBASED_MISS_MASS": "876", 
+        "CUTBASED_MISS_MASS_HIGH": "250", 
+        "CUTBASED_MISS_MASS_HIGH_KTHREEPI": "1500", 
+        "CUTBASED_MISS_MASS_LOW": "0", 
+        "CUTBASED_M_B": "2865", 
+        "CUTBASED_M_D0_HIGH": "2000", 
+        "CUTBASED_M_D0_LOW": "500", 
+        "CUTBASED_M_TAU_HIGH": "1592", 
+        "CUTBASED_M_TAU_LOW": "829", 
+        "CUTBASED_PROBNNE_E": "0.1", 
+        "CUTBASED_PROBNNK_K": "0.2", 
+        "CUTBASED_PROBNNPI_THREE_PI": "0.5", 
+        "CUTBASED_TAU_BPVVDCHI2": "16", 
+        "CUTBASED_TAU_BPVVDRHO": "0.33", 
+        "CUTBASED_TAU_BPVVDRHO_HIGH": "7", 
+        "CUTBASED_TAU_BPVVDRHO_LOW": "0.05", 
+        "CUTBASED_TAU_BPVVDZ": "0.5", 
+        "CUTBASED_TAU_TAU_HIGH": "3", 
+        "CUTBASED_TAU_TAU_LOW": "-2.5", 
+        "CUTBASED_TAU_VCHI2": "16", 
+        "CUTBASED_VCHI2_TAU": "20.6", 
+        "ConeAngles": {
+            "08": 0.8, 
+            "10": 1.0, 
+            "12": 1.2, 
+            "14": 1.4
+        }, 
+        "ConeVariables": [
+            "CONEANGLE", 
+            "CONEMULT", 
+            "CONEPTASYM"
+        ], 
+        "DstD0DMWin_HIGH": "100.", 
+        "DstD0DMWin_LOW": "-10.", 
+        "DstMassWin_HIGH": "100.", 
+        "DstMassWin_LOW": "-1250.", 
+        "DstmVtxChi2": "10.", 
+        "HLT_DECISIONS_HAD": {
+            "Hlt2Topo(2|3|4)Body.*Decision%TOS": 0
+        }, 
+        "MINIPCHI2BPV_E": "16", 
+        "MINIPCHI2BPV_PI_FROM_DTSM": "10", 
+        "MINIPCHI2BPV_THREE_PI": "16", 
+        "MINIPCHI2PV_D0": "50", 
+        "PROBNNGHOST_E": "0.4", 
+        "PROBNNGHOST_THREE_PI": "0.4", 
+        "PT_D0": "1000", 
+        "PT_E": "110", 
+        "PT_PI_FROM_DTSM": "110", 
+        "PT_THREE_PI": "110", 
+        "P_D0": "2000", 
+        "P_E": "0", 
+        "P_THREE_PI": "500", 
+        "PrescaleETauBox": 1.0, 
+        "PrescaleETauSSBox": 1.0, 
+        "PrescaleK3piBox": 0.025, 
+        "PrescaleK3piSSBox": 0.025, 
+        "RelInfoTools_D02ETau": [
+            {
+                "DaughterLocations": {
+                    "[D*(2010)+ ->  (Charm -> ^l l) pi+]CC": "Tau_VertexIsoInfo", 
+                    "[D*(2010)+ ->  (Charm -> l ^l) pi+]CC": "E_VertexIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> l  l) ^pi+]CC": "pi_VertexIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> l  l) pi+]CC": "D0_VertexIsoInfo"
+                }, 
+                "Location": "DstVars_VertexIsoInfo", 
+                "Type": "RelInfoVertexIsolation"
+            }, 
+            {
+                "ConeSize": 0.5, 
+                "DaughterLocations": {
+                    "[D*(2010)+ ->  (Charm -> ^l l) pi+]CC": "Tau_ConeIsoInfo", 
+                    "[D*(2010)+ ->  (Charm -> l ^l) pi+]CC": "E_ConeIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> l  l) ^pi+]CC": "pi_ConeIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> l  l) pi+]CC": "D0_ConeIsoInfo"
+                }, 
+                "Location": "DstVars_ConeIsoInfo", 
+                "Type": "RelInfoConeIsolation", 
+                "Variables": []
+            }
+        ], 
+        "RelInfoTools_D02K3pi": [
+            {
+                "DaughterLocations": {
+                    "[D*(2010)+ -> ^(Charm -> X X X X) ^pi+]CC": "pi_VertexIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> X X X X) pi+]CC": "D0_VertexIsoInfo"
+                }, 
+                "Location": "DstVars_VertexIsoInfo", 
+                "Type": "RelInfoVertexIsolation"
+            }, 
+            {
+                "ConeSize": 0.5, 
+                "DaughterLocations": {
+                    "[D*(2010)+ -> ^(Charm -> X X X X) ^pi+]CC": "pi_ConeIsoInfo", 
+                    "[D*(2010)+ -> ^(Charm -> X X X X) pi+]CC": "D0_ConeIsoInfo"
+                }, 
+                "Location": "DstVars_ConeIsoInfo", 
+                "Type": "RelInfoConeIsolation", 
+                "Variables": []
+            }
+        ], 
+        "TAU_AMAXDOCA_PIS": "0.2", 
+        "TAU_BPVDIRA": "-1.", 
+        "TAU_M_HIGH": "2100", 
+        "TAU_M_HIGH_COMB": "2100", 
+        "TAU_M_LOW": "400", 
+        "TAU_M_LOW_COMB": "400", 
+        "TAU_PT": "700.", 
+        "TRACKCHI2_E": "4", 
+        "TRACKCHI2_PI_FROM_DTSM": "7", 
+        "TRACKCHI2_THREE_PI": "4", 
+        "TRGHOPROB_E": "0.4", 
+        "TRGHOPROB_THREE_PI": "0.4", 
+        "prefix": ""
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Hc2V02H = {
+    "BUILDERTYPE": "StrippingHc2V02HConf", 
+    "CONFIG": {
+        "Bach_PT_MIN": 250.0, 
+        "Bach_P_MIN": 2000.0, 
+        "Comb_ADAMASS_WIN": 120.0, 
+        "Comb_ADOCAMAX_MAX": 0.4, 
+        "Hlt1Filter": None, 
+        "Hlt2Filter": None, 
+        "Lambda0_FDCHI2_MIN_DD": 4, 
+        "Lambda0_FDCHI2_MIN_LL": 4, 
+        "Lambda0_PT_MIN": 250.0, 
+        "Lambda0_P_MIN": 6000.0, 
+        "Lambda0_VCHI2VDOF_MAX_DD": 25.0, 
+        "Lambda0_VCHI2VDOF_MAX_LL": 12.0, 
+        "LambdaMinFD_DD": 500.0, 
+        "LambdaMinFD_LL": 5.0, 
+        "MIPCHI2DV_PRIMARY_Min": 2, 
+        "PostscaleXic2LambdaKKDD": 1.0, 
+        "PostscaleXic2LambdaKKLL": 1.0, 
+        "PostscaleXic2LambdaKPiDD": 1.0, 
+        "PostscaleXic2LambdaKPiLL": 1.0, 
+        "PostscaleXic2LambdaPiKDD": 1.0, 
+        "PostscaleXic2LambdaPiKLL": 1.0, 
+        "PostscaleXic2LambdaPiPiDD": 1.0, 
+        "PostscaleXic2LambdaPiPiLL": 1.0, 
+        "PrescaleXic2LambdaKKDD": 1.0, 
+        "PrescaleXic2LambdaKKLL": 1.0, 
+        "PrescaleXic2LambdaKPiDD": 1.0, 
+        "PrescaleXic2LambdaKPiLL": 1.0, 
+        "PrescaleXic2LambdaPiKDD": 1.0, 
+        "PrescaleXic2LambdaPiKLL": 1.0, 
+        "PrescaleXic2LambdaPiPiDD": 1.0, 
+        "PrescaleXic2LambdaPiPiLL": 1.0, 
+        "ProbNNkMin": 0.1, 
+        "ProbNNpMin_L0_DD": 0.1, 
+        "ProbNNpMin_L0_LL": 0.1, 
+        "ProbNNpiMin": 0.1, 
+        "ProbNNpiMin_L0_DD": 0.1, 
+        "ProbNNpiMin_L0_LL": 0.1, 
+        "TrGhostProbMax": 0.3, 
+        "Xic_ADMASS_WIN": 90.0, 
+        "Xic_PT_min": 250.0, 
+        "Xic_P_min": 10000.0, 
+        "Xic_VCHI2VDOF_MAX_DD": 3.0, 
+        "Xic_VCHI2VDOF_MAX_LL": 3.0, 
+        "Xic_acosBPVDIRA_MAX_DD": 0.0316, 
+        "Xic_acosBPVDIRA_MAX_LL": 0.02, 
+        "p_L0_PT_LL_min": 100.0, 
+        "p_L0_P_LL_min": 2000.0, 
+        "pi_L0_PT_LL_min": 100.0, 
+        "pi_L0_P_LL_min": 2000.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Hc2V03H = {
+    "BUILDERTYPE": "StrippingHc2V03HConf", 
+    "CONFIG": {
+        "Bach_IPCHI2_MAX": 9, 
+        "Bach_IPCHI2_MIN": 1, 
+        "Bach_PT_MIN": 150.0, 
+        "Bach_P_MIN": 2000.0, 
+        "Comb_ADAMASS_WIN": 90.0, 
+        "Comb_ADOCAMAX_MAX": 0.5, 
+        "Hlt1Filter": None, 
+        "Hlt2Filter": None, 
+        "Lambda0_FDCHI2_MIN": 49, 
+        "Lambda0_PT_MIN": 500.0, 
+        "Lambda0_P_MIN": 10000.0, 
+        "Lambda0_VCHI2VDOF_MAX": 12.0, 
+        "LambdaMinFD_DD": 200.0, 
+        "LambdaMinFD_LL": 25.0, 
+        "Lambdac_ADMASS_WIN": 75.0, 
+        "Lambdac_PVDispCut_DD": "(BPVVDCHI2 > 9.0)", 
+        "Lambdac_PVDispCut_LL": "(BPVVDCHI2 > 16.0)", 
+        "Lambdac_VCHI2VDOF_MAX_DD": 3.0, 
+        "Lambdac_VCHI2VDOF_MAX_LL": 3.0, 
+        "Lambdac_acosBPVDIRA_MAX_DD": 0.045, 
+        "Lambdac_acosBPVDIRA_MAX_LL": 0.14, 
+        "PostscaleLambdac2Lambda3PiDD": 1.0, 
+        "PostscaleLambdac2Lambda3PiLL": 1.0, 
+        "PostscaleLambdac2LambdaK2PiDD": 1.0, 
+        "PostscaleLambdac2LambdaK2PiLL": 1.0, 
+        "PostscaleXic2LambdaK2PiDD": 1.0, 
+        "PostscaleXic2LambdaK2PiLL": 1.0, 
+        "PrescaleLambdac2Lambda3PiDD": 1.0, 
+        "PrescaleLambdac2Lambda3PiLL": 1.0, 
+        "PrescaleLambdac2LambdaK2PiDD": 1.0, 
+        "PrescaleLambdac2LambdaK2PiLL": 1.0, 
+        "PrescaleXic2LambdaK2PiDD": 1.0, 
+        "PrescaleXic2LambdaK2PiLL": 1.0, 
+        "ProbNNpMin_DD": 0.0, 
+        "ProbNNpMin_LL": 0.1, 
+        "Xic_ADMASS_WIN": 75.0, 
+        "Xic_PVDispCut_DD": "(BPVVDCHI2 > 9.0)", 
+        "Xic_PVDispCut_LL": "(BPVVDCHI2 > 16.0)", 
+        "Xic_VCHI2VDOF_MAX_DD": 3.0, 
+        "Xic_VCHI2VDOF_MAX_LL": 3.0, 
+        "Xic_acosBPVDIRA_MAX_DD": 0.045, 
+        "Xic_acosBPVDIRA_MAX_LL": 0.14
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Hc2V2H = {
+    "BUILDERTYPE": "StrippingHc2V2HConf", 
+    "CONFIG": {
+        "Bach_PT_MIN": 150.0, 
+        "Bach_P_MIN": 2000.0, 
+        "Comb_ADAMASS_WIN": 120.0, 
+        "Comb_ADOCAMAX_MAX": 0.5, 
+        "Hc_ADMASS_WIN": 90.0, 
+        "Hc_PVDispCut_DDD": "(BPVVDCHI2 >  9.0)", 
+        "Hc_PVDispCut_DDL": "(BPVVDCHI2 > 16.0)", 
+        "Hc_PVDispCut_LLL": "(BPVVDCHI2 > 16.0)", 
+        "Hc_VCHI2VDOF_MAX_DDD": 12.0, 
+        "Hc_VCHI2VDOF_MAX_DDL": 12.0, 
+        "Hc_VCHI2VDOF_MAX_LLL": 12.0, 
+        "Hc_acosBPVDIRA_MAX_DDD": 0.14, 
+        "Hc_acosBPVDIRA_MAX_DDL": 0.045, 
+        "Hc_acosBPVDIRA_MAX_LLL": 0.14, 
+        "Hlt1Filter": None, 
+        "Hlt2Filter": None, 
+        "Lambda0_FDCHI2_MIN": 49, 
+        "Lambda0_PT_MIN": 250.0, 
+        "Lambda0_P_MIN": 2000.0, 
+        "Lambda0_VCHI2VDOF_MAX": 12.0, 
+        "LambdaMinFD_DD": 0.0, 
+        "LambdaMinFD_LL": 25.0, 
+        "PostscaleLambdac2XiKPiDDD": 1.0, 
+        "PostscaleLambdac2XiKPiDDL": 1.0, 
+        "PostscaleLambdac2XiKPiLLL": 1.0, 
+        "PostscaleXic2XiPiPiDDD": 1.0, 
+        "PostscaleXic2XiPiPiDDL": 1.0, 
+        "PostscaleXic2XiPiPiLLL": 1.0, 
+        "PrescaleLambdac2XiKPiDDD": 1.0, 
+        "PrescaleLambdac2XiKPiDDL": 1.0, 
+        "PrescaleLambdac2XiKPiLLL": 1.0, 
+        "PrescaleXic2XiPiPiDDD": 1.0, 
+        "PrescaleXic2XiPiPiDDL": 1.0, 
+        "PrescaleXic2XiPiPiLLL": 1.0, 
+        "ProbNNpMin_DD": 0.0, 
+        "ProbNNpMin_LL": 0.1, 
+        "Xim_FDCHI2_MIN": 16, 
+        "Xim_PT_MIN": 250.0, 
+        "Xim_P_MIN": 2000.0, 
+        "Xim_VCHI2VDOF_MAX": 12.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Hc2V3H = {
+    "BUILDERTYPE": "StrippingHc2V3HConf", 
+    "CONFIG": {
+        "Bach_IPCHI2_MAX": 9, 
+        "Bach_IPCHI2_MIN": 1, 
+        "Bach_PT_MIN": 200.0, 
+        "Bach_P_MIN": 2000.0, 
+        "Comb_ADAMASS_WIN": 120.0, 
+        "Comb_ADOCAMAX_MAX": 0.5, 
+        "Hlt1Filter": None, 
+        "Hlt2Filter": None, 
+        "Lambda0_FDCHI2_MIN": 25, 
+        "Lambda0_PT_MIN": 250.0, 
+        "Lambda0_P_MIN": 2000.0, 
+        "Lambda0_VCHI2VDOF_MAX": 12.0, 
+        "PostscaleXic2XimPiPiPiDDD": 1.0, 
+        "PostscaleXic2XimPiPiPiDDL": 1.0, 
+        "PostscaleXic2XimPiPiPiLLL": 1.0, 
+        "PrescaleXic2XimPiPiPiDDD": 1.0, 
+        "PrescaleXic2XimPiPiPiDDL": 1.0, 
+        "PrescaleXic2XimPiPiPiLLL": 1.0, 
+        "ProbNNpMin_DD": 0.0, 
+        "ProbNNpMin_LL": 0.1, 
+        "Xic_ADMASS_WIN": 90.0, 
+        "Xic_PVDispCut_DDD": "(BPVVDCHI2 > 9.0)", 
+        "Xic_PVDispCut_DDL": "(BPVVDCHI2 > 9.0)", 
+        "Xic_PVDispCut_LLL": "(BPVVDCHI2 > 16.0)", 
+        "Xic_VCHI2VDOF_MAX_DDD": 5.0, 
+        "Xic_VCHI2VDOF_MAX_DDL": 5.0, 
+        "Xic_VCHI2VDOF_MAX_LLL": 5.0, 
+        "Xic_acosBPVDIRA_MAX_DDD": 0.14, 
+        "Xic_acosBPVDIRA_MAX_DDL": 0.14, 
+        "Xic_acosBPVDIRA_MAX_LLL": 0.14, 
+        "Xim_FDCHI2_MIN": 9, 
+        "Xim_PT_MIN": 250.0, 
+        "Xim_P_MIN": 2000.0, 
+        "Xim_VCHI2VDOF_MAX": 12.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Lambdac2LambdaEtaPi = {
+    "BUILDERTYPE": "StrippingLambdac2LambdaEtaPi", 
+    "CONFIG": {
+        "GEC_nLongTrk": 160, 
+        "GhostProb": 0.3, 
+        "KaonP": 3000.0, 
+        "KaonPIDK": 10.0, 
+        "KaonPT": 250.0, 
+        "Kaon_PIDKPIDpi_Min": 5.0, 
+        "LambdaDDCutFDChi2": 100.0, 
+        "LambdaDDCutMass": 50.0, 
+        "LambdaDDPMin": 2000.0, 
+        "LambdaDDPTMin": 500.0, 
+        "LambdaLLCutFDChi2": 100.0, 
+        "LambdaLLCutMass": 50.0, 
+        "LambdaLLPMin": 2000.0, 
+        "LambdaLLPTMin": 500.0, 
+        "LambdaVertexChi2": 10.0, 
+        "Lb_APT_Min": 1500.0, 
+        "Lb_AP_Min": 20000.0, 
+        "Lb_BPVDIRA_Min": 0.95, 
+        "Lb_BPVVDCHI2_Min": 16, 
+        "Lb_M_HalfWin": 200.0, 
+        "Lb_VCHI2_Max": 30, 
+        "Lc_ADOCAMAX_Max": 0.15, 
+        "Lc_APT_Min": 1200.0, 
+        "Lc_AP_Min": 15000.0, 
+        "Lc_BPVDIRA_Min": 0.95, 
+        "Lc_BPVVDCHI2_Min": 16.0, 
+        "Lc_BPVVDZ_Min": 0.5, 
+        "Lc_Daug_1of3_MIPCHI2DV_Min": 3.0, 
+        "Lc_M_HalfWin": 200.0, 
+        "Lc_VCHI2_Max": 30.0, 
+        "MINIPCHI2": 3.0, 
+        "MuonIPCHI2": 4.0, 
+        "MuonP": 3000.0, 
+        "MuonPIDmu": 0.0, 
+        "MuonPT": 250.0, 
+        "PionP": 3000.0, 
+        "PionPIDK": 5.0, 
+        "PionPT": 250.0, 
+        "Pion_PIDpiPIDK_Min": 0.0, 
+        "ProbNNk": 0.4, 
+        "ProbNNp": 0.4, 
+        "ProbNNpMin": 0.2, 
+        "ProbNNpi": 0.4, 
+        "ProbNNpiMax": 0.9, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "signalPrescale": 1.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Lambdac2PEta = {
+    "BUILDERTYPE": "StrippingLambdac2PEta", 
+    "CONFIG": {
+        "GEC_nLongTrk": 160, 
+        "Lb_APT_Min": 1500.0, 
+        "Lb_AP_Min": 20000.0, 
+        "Lb_BPVDIRA_Min": 0.95, 
+        "Lb_BPVVDCHI2_Min": 16, 
+        "Lb_BPVVDZ_Min": 0.7, 
+        "Lb_M_HalfWin": 200.0, 
+        "Lb_VCHI2_Max": 30, 
+        "Lc_ADOCAMAX_Max": 0.15, 
+        "Lc_APT_Min": 1200.0, 
+        "Lc_AP_Min": 15000.0, 
+        "Lc_BPVDIRA_Min": 0.95, 
+        "Lc_BPVVDCHI2_Min": 16.0, 
+        "Lc_BPVVDZ_Min": 0.5, 
+        "Lc_Daug_1of3_MIPCHI2DV_Min": 3.0, 
+        "Lc_M_HalfWin": 200.0, 
+        "Lc_VCHI2_Max": 30.0, 
+        "MINIPCHI2": 3.0, 
+        "PionP": 3000.0, 
+        "PionPIDK": 5.0, 
+        "PionPT": 250.0, 
+        "ProbNNp": 0.4, 
+        "ProbNNpi": 0.4, 
+        "ProbNNpiMax": 0.9, 
+        "ProtonP": 3000.0, 
+        "ProtonPT": 500.0, 
+        "Proton_PIDpPIDK_Min": 0.0, 
+        "Proton_PIDpPIDpi_Min": 5.0, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "signalPrescale": 1.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+NeutralCBaryons = {
+    "BUILDERTYPE": "StrippingNeutralCBaryonsConf", 
+    "CONFIG": {
+        "Bachelor_PT_MIN": 50.0, 
+        "KaonPIDK": -5.0, 
+        "LambdaDDMassWin": 5.7, 
+        "LambdaDDMaxVZ": 2275.0, 
+        "LambdaDDMinVZ": 400.0, 
+        "LambdaDDVtxChi2Max": 5.0, 
+        "LambdaDeltaZ_MIN": 5.0, 
+        "LambdaLLMassWin": 5.7, 
+        "LambdaLLMaxVZ": 400.0, 
+        "LambdaLLMinDecayTime": 0.005, 
+        "LambdaLLMinVZ": -100.0, 
+        "LambdaLLVtxChi2Max": 5.0, 
+        "LambdaPi_PT_MIN": 100.0, 
+        "LambdaPr_PT_MIN": 500.0, 
+        "PionPIDK": 10.0, 
+        "ProbNNkMin": 0.1, 
+        "ProbNNpMinDD": 0.05, 
+        "ProbNNpMinLL": 0.1, 
+        "ProtonPIDp": 5, 
+        "ProtonPIDpK": -3, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "tight_KaonPIDK": 0.0, 
+        "tight_KaonPIDpi": 5.0, 
+        "tight_ProtonPIDp": 7, 
+        "tight_ProtonPIDpK": 0.0, 
+        "tight_ProtonPIDppi": 5.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Xib2Xic0PiXic02pK = {
+    "BUILDERTYPE": "StrippingXib2Xic0PiXic02pKConf", 
+    "CONFIG": {
+        "PionPIDK": 10.0, 
+        "ProbNNkMin": 0.1, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "tight_KaonPIDK": 0.0, 
+        "tight_KaonPIDpi": 5.0, 
+        "tight_ProtonPIDp": 7, 
+        "tight_ProtonPIDpK": 0.0, 
+        "tight_ProtonPIDppi": 5.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+
+Xic0ToXiMuNu = {
+    "BUILDERTYPE": "Xic0ToXiMuNuConf", 
+    "CONFIG": {
+        "RequiredRawEvents": [ "Velo" ], 
+        "amass_ximu": "(in_range(1400*MeV,AMASS(),4500*MeV)) & ", 
+        "bach_muon": {
+            "filter": "(PT>200*MeV) & (P>3000*MeV) & (PROBNNmu>0.3) & (BPVIPCHI2()>4)", 
+            "tes": "Phys/StdAllNoPIDsMuons/Particles"
+        }, 
+        "bach_pion": {
+            "filter": "(PT > 120*MeV) & (P > 1000*MeV) & (MIPDV(PRIMARY)>0.01*mm) & (MIPCHI2DV(PRIMARY) > 9.0) & (PROBNNpi>0.03)", 
+            "tes": "Phys/StdAllNoPIDsPions/Particles"
+        }, 
+        "descriptor_xi": [
+            "[Xi- -> Lambda0 pi-]cc"
+        ], 
+        "descriptor_ximu": [
+            "[Xi_c0 -> Xi- mu+]cc"
+        ], 
+        "down_pion": {
+            "filter": "(P>1000*MeV) & (PT>150*MeV) & (PROBNNpi>0.03)", 
+            "tes": "Phys/StdNoPIDsDownPions/Particles"
+        }, 
+        "lambda_dd": {
+            "filter": "(ADMASS('Lambda0')<20*MeV) & (P>12*GeV) & (PT>400*MeV) & (CHILDIP(1)<2*mm) & (MAXTREE('p+'==ABSID,P)>9*GeV) & (CHI2VXNDF<30) &\n                    (MAXTREE('p+'==ABSID,PT)>200*MeV) & (MAXTREE('pi+'==ABSID,PT)>150*MeV) & (VFASPF(VZ) >  300.*mm) & (VFASPF(VZ) < 2485.*mm)", 
+            "tes": "Phys/StdLooseLambdaDD/Particles"
+        }, 
+        "lambda_ll": {
+            "filter": "(ADMASS('Lambda0')<20*MeV) & (P>6*GeV) & (PT>200*MeV) & (BPVVDZ>8*mm) & (BPVLTIME() > 2.0*ps) & (CHI2VXNDF<20) &\n                    (MAXTREE('p+'==ABSID,MIPCHI2DV(PRIMARY))>9) & (MAXTREE('pi-'==ABSID,MIPCHI2DV(PRIMARY))>24) & \n                    (MAXTREE('p+'==ABSID,PT)>100*MeV) & (MAXTREE('p+'==ABSID,P)>5.0*GeV) & (VFASPF(VZ) > -100.*mm) & (VFASPF(VZ) <  640.*mm) & (BPVVDCHI2 > 100)", 
+            "tes": "Phys/StdVeryLooseLambdaLL/Particles"
+        }, 
+        "xc0_ddd": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<5.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>20*GeV) & (PT>200*MeV)"
+        }, 
+        "xc0_ddl": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<3.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>20*GeV) & (PT>200*MeV) "
+        }, 
+        "xc0_lll": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<1.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>12*GeV) & (PT>200*MeV)"
+        }, 
+        "xi_ddd": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ACHILD(2,MIPCHI2DV(PRIMARY))>20) & (ADOCA(1,2)<5*mm) & (ACHI2DOCA(1,2)<12)", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) &  (BPVVDCHI2>10) & (BPVLTIME() > 2.0*picosecond) &\n            (P>15*GeV) & (PT>600*MeV)"
+        }, 
+        "xi_ddl": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ADOCA(1,2)<2.5*mm) & (ACHI2DOCA(1,2)<12) ", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) & (BPVVDCHI2>20) & (BPVLTIME() > 2.0*picosecond) &\n            (P>15*GeV) & (PT>600*MeV)"
+        }, 
+        "xi_lll": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ACHILD(2,MIPCHI2DV(PRIMARY))>9) & (ADOCA(1,2)<0.5*mm) & (ACHI2DOCA(1,2)<20)", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) & (BPVVDCHI2>15) & (BPVLTIME() > 2.0*picosecond) & \n            (P>8*GeV) & (PT>400*MeV) "
+        }
+    }, 
+    "STREAMS": {
+        "CharmCompleteEvent": [
+            "StrippingXic0ToXiMuNu_LLLLine", 
+            "StrippingXic0ToXiMuNu_DDLLine", 
+            "StrippingXic0ToXiMuNu_DDDLine"
+        ]
+    }, 
+    "WGs": [ "Charm" ]
+}
+
+Xic0ToXiMuNu_WS = {
+    "BUILDERTYPE": "Xic0ToXiMuNu_WSConf", 
+    "CONFIG": {
+        "RequiredRawEvents": [ "Velo" ], 
+        "amass_ximu": "(in_range(1400*MeV,AMASS(),4500*MeV)) & ", 
+        "bach_muon": {
+            "filter": "(PT>200*MeV) & (P>3000*MeV) & (PROBNNmu>0.3) & (BPVIPCHI2()>4)", 
+            "tes": "Phys/StdAllNoPIDsMuons/Particles"
+        }, 
+        "bach_pion": {
+            "filter": "(PT > 120*MeV) & (P > 1000*MeV) & (MIPDV(PRIMARY)>0.01*mm) & (MIPCHI2DV(PRIMARY) > 9.0) & (PROBNNpi>0.03)", 
+            "tes": "Phys/StdAllNoPIDsPions/Particles"
+        }, 
+        "descriptor_xi": [
+            "[Xi- -> Lambda0 pi-]cc"
+        ], 
+        "descriptor_ximu": [
+            "[Xi_c0 -> Xi- mu-]cc"
+        ], 
+        "down_pion": {
+            "filter": "(P>1000*MeV) & (PT>150*MeV) & (PROBNNpi>0.03)", 
+            "tes": "Phys/StdNoPIDsDownPions/Particles"
+        }, 
+        "lambda_dd": {
+            "filter": "(ADMASS('Lambda0')<20*MeV) & (P>12*GeV) & (PT>400*MeV) & (CHILDIP(1)<2*mm) & (MAXTREE('p+'==ABSID,P)>9*GeV) & (CHI2VXNDF<30) &\n                    (MAXTREE('p+'==ABSID,PT)>200*MeV) & (MAXTREE('pi+'==ABSID,PT)>150*MeV) & (VFASPF(VZ) >  300.*mm) & (VFASPF(VZ) < 2485.*mm)", 
+            "tes": "Phys/StdLooseLambdaDD/Particles"
+        }, 
+        "lambda_ll": {
+            "filter": "(ADMASS('Lambda0')<20*MeV) & (P>6*GeV) & (PT>200*MeV) & (BPVVDZ>8*mm) & (BPVLTIME() > 2.0*ps) & (CHI2VXNDF<20) &\n                    (MAXTREE('p+'==ABSID,MIPCHI2DV(PRIMARY))>9) & (MAXTREE('pi-'==ABSID,MIPCHI2DV(PRIMARY))>24) & \n                    (MAXTREE('p+'==ABSID,PT)>100*MeV) & (MAXTREE('p+'==ABSID,P)>5.0*GeV) & (VFASPF(VZ) > -100.*mm) & (VFASPF(VZ) <  640.*mm) & (BPVVDCHI2 > 100)", 
+            "tes": "Phys/StdVeryLooseLambdaLL/Particles"
+        }, 
+        "xc0_ddd": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<5.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>20*GeV) & (PT>200*MeV)"
+        }, 
+        "xc0_ddl": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<3.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>20*GeV) & (PT>200*MeV) "
+        }, 
+        "xc0_lll": {
+            "comb_cut": "AHASCHILD( (ABSID == 'mu+') ) & (ADOCA(1,2)<1.5)", 
+            "mother_cut": "(VFASPF(VCHI2/VDOF)<25) & (BPVVDCHI2>4) & (P>12*GeV) & (PT>200*MeV)"
+        }, 
+        "xi_ddd": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ACHILD(2,MIPCHI2DV(PRIMARY))>20) & (ADOCA(1,2)<5*mm) & (ACHI2DOCA(1,2)<12)", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) &  (BPVVDCHI2>10) & (BPVLTIME() > 2.0*picosecond) &\n            (P>15*GeV) & (PT>600*MeV)"
+        }, 
+        "xi_ddl": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ADOCA(1,2)<2.5*mm) & (ACHI2DOCA(1,2)<12) ", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) & (BPVVDCHI2>20) & (BPVLTIME() > 2.0*picosecond) &\n            (P>15*GeV) & (PT>600*MeV)"
+        }, 
+        "xi_lll": {
+            "comb_cut": "(ASUM(PT)>0.5*GeV) & (ADAMASS('Xi-')<30*MeV) & (ACHILD(2,MIPCHI2DV(PRIMARY))>9) & (ADOCA(1,2)<0.5*mm) & (ACHI2DOCA(1,2)<20)", 
+            "mother_cut": "(ADMASS('Xi-')<25*MeV) & (VFASPF(VCHI2PDOF) < 10.0) & (BPVVDCHI2>15) & (BPVLTIME() > 2.0*picosecond) & \n            (P>8*GeV) & (PT>400*MeV) "
+        }
+    }, 
+    "STREAMS": {
+        "CharmCompleteEvent": [
+            "StrippingXic0ToXiMuNu_WS_LLLLine", 
+            "StrippingXic0ToXiMuNu_WS_DDLLine", 
+            "StrippingXic0ToXiMuNu_WS_DDDLine"
+        ]
+    }, 
+    "WGs": [ "Charm" ]
+}
+
+Xic2PHH = {
+    "BUILDERTYPE": "StrippingXic2PHH", 
+    "CONFIG": {
+        "BPVIPCHI2_Phi": 4, 
+        "GEC_nLongTrk": 250, 
+        "GhostProb": 0.3, 
+        "KSCutDIRA_DD": 0.999, 
+        "KSCutDIRA_LL": 0.999, 
+        "KSCutFDChi2_DD": 5, 
+        "KSCutFDChi2_LL": 5, 
+        "KSCutMass_DD": 50.0, 
+        "KSCutMass_LL": 35.0, 
+        "KaonP": 2000.0, 
+        "KaonPIDK": 10.0, 
+        "KaonPT": 200.0, 
+        "Kaon_PIDKPIDpi_Min": 5.0, 
+        "MINIPCHI2": 4.0, 
+        "MaxDz_DD": 9999.0, 
+        "MaxDz_LL": 9999.0, 
+        "MaxKsVCHI2NDOF_DD": 20.0, 
+        "MaxKsVCHI2NDOF_LL": 20.0, 
+        "MaxPhiEta": 5.0, 
+        "MinDz_DD": 250.0, 
+        "MinDz_LL": 0.0, 
+        "MinKsIpChi2_DD": 3, 
+        "MinKsIpChi2_LL": 3, 
+        "MinKsPT_DD": 200.0, 
+        "MinKsPT_LL": 200.0, 
+        "MinPhiEta": 2.0, 
+        "MinPhiP": 3000.0, 
+        "MinPhiPT": 200.0, 
+        "PhiCutMass": 20.0, 
+        "PionP": 3000.0, 
+        "PionPIDK": 10.0, 
+        "PionPT": 500.0, 
+        "Pion_PIDpiPIDK_Min": 0.0, 
+        "ProbNNk": 0.4, 
+        "ProbNNp": 0.4, 
+        "ProbNNpMin": 0.2, 
+        "ProbNNpi": 0.5, 
+        "ProbNNpiMax": 0.95, 
+        "ProtonP": 3000.0, 
+        "ProtonPT": 500.0, 
+        "Proton_PIDpPIDK_Min": 0.0, 
+        "Proton_PIDpPIDpi_Min": 5.0, 
+        "TRCHI2DOFMax": 3.0, 
+        "TrGhostProbMax": 0.25, 
+        "Xic_ADAMASS_HalfWin": 170.0, 
+        "Xic_ADMASS_HalfWin": 120.0, 
+        "Xic_AM_Max": 2550.0, 
+        "Xic_BPVDIRA_Min": 0.9, 
+        "Xic_BPVVDCHI2_Min": 25.0, 
+        "pKK_AM_Min": 2380.0, 
+        "ppipi_AM_Min": 2380.0, 
+        "signalPrescaleViaXicPKK": 1.0, 
+        "signalPrescaleViaXicPKS0DD": 1.0, 
+        "signalPrescaleViaXicPKS0LL": 1.0, 
+        "signalPrescaleViaXicPPhi2KK": 1.0, 
+        "signalPrescaleViaXicPPiPi": 1.0
+    }, 
+    "STREAMS": [ "Charm" ], 
+    "WGs": [ "Charm" ]
+}
+