diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_open_charm/bbaryon_to_lightbaryon_dh.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_open_charm/bbaryon_to_lightbaryon_dh.py index cbcc7a6ad8913fb4551af03cbfb7a13697347b96..4907edbe20867bd210e1a000073ae7aad41c5d52 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_open_charm/bbaryon_to_lightbaryon_dh.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_open_charm/bbaryon_to_lightbaryon_dh.py @@ -753,19 +753,20 @@ def make_LbToD0PPi_D0ToKsTTHH(process): @check_process def make_XibmToDmPPi_DmToHHH(process): if process == "spruce": - d = d_builder.make_dplus_to_hhh(pi_pidk_max=None, k_pidk_min=None) - proton = basic_builder.make_tightpid_soft_protons() - pion = basic_builder.make_soft_pions(pi_pidk_max=None) + d = d_builder.make_dplus_to_kmpippip(k_pidk_min=0, pi_pidk_max=0) + proton = basic_builder.make_tightpid_soft_protons(p_pidp_min=0, p_pidkmp_max=0) + pion = basic_builder.make_tightpid_soft_pions(pi_pidk_max=0) elif process == "hlt2": - d = d_builder.make_dplus_to_hhh() - proton = basic_builder.make_tightpid_soft_protons() - pion = basic_builder.make_tightpid_soft_pions() + d = d_builder.make_dplus_to_kmpippip(k_pidk_min=0, pi_pidk_max=0) + proton = basic_builder.make_tightpid_soft_protons(p_pidp_min=0, p_pidkmp_max=0) + pion = basic_builder.make_tightpid_soft_pions(pi_pidk_max=0) # note the order we write the decay descriptor in because the b2chh builder makes a # cut on the 1,2 i.e. h+h- combination line_alg = b_builder.make_xib2chh( particles=[proton, pion, d], descriptors=["[Xi_b- -> p+ pi- D-]cc"], sum_pt_min=6 * GeV, + bpvltime_min=0.3 * picosecond, ) return line_alg @@ -776,19 +777,20 @@ def make_XibmToDmPPi_DmToHHH(process): @check_process def make_XibmToDmPK_DmToHHH(process): if process == "spruce": - d = d_builder.make_dplus_to_hhh(pi_pidk_max=None, k_pidk_min=None) - proton = basic_builder.make_tightpid_soft_protons() - kaon = basic_builder.make_soft_kaons(k_pidk_min=None) + d = d_builder.make_dplus_to_kmpippip(k_pidk_min=0, pi_pidk_max=0) + proton = basic_builder.make_tightpid_soft_protons(p_pidp_min=0, p_pidkmp_max=0) + kaon = basic_builder.make_tightpid_soft_kaons(k_pidk_min=0) elif process == "hlt2": - d = d_builder.make_dplus_to_hhh() - proton = basic_builder.make_tightpid_soft_protons() - kaon = basic_builder.make_tightpid_soft_kaons() + d = d_builder.make_dplus_to_kmpippip(k_pidk_min=0, pi_pidk_max=0) + proton = basic_builder.make_tightpid_soft_protons(p_pidp_min=0, p_pidkmp_max=0) + kaon = basic_builder.make_tightpid_soft_kaons(k_pidk_min=0) # note the order we write the decay descriptor in because the b2chh builder makes a # cut on the 1,2 i.e. h+h- combination line_alg = b_builder.make_xib2chh( particles=[proton, kaon, d], descriptors=["[Xi_b- -> p+ K- D-]cc"], sum_pt_min=6 * GeV, + bpvltime_min=0.3 * picosecond, ) return line_alg @@ -799,13 +801,13 @@ def make_XibmToDmPK_DmToHHH(process): @check_process def make_XibmToDsmPPi_DsmToHHH(process): if process == "spruce": - ds = d_builder.make_dsplus_to_hhh(pi_pidk_max=None, k_pidk_min=None) - proton = basic_builder.make_tightpid_soft_protons() - pion = basic_builder.make_soft_pions(pi_pidk_max=None) + ds = d_builder.make_dsplus_to_kpkmpip(k_pidk_min=0, pi_pidk_max=0) + proton = basic_builder.make_tightpid_soft_protons(p_pidp_min=0, p_pidkmp_max=0) + pion = basic_builder.make_tightpid_soft_pions(pi_pidk_max=0) elif process == "hlt2": - ds = d_builder.make_dsplus_to_hhh() - proton = basic_builder.make_tightpid_soft_protons() - pion = basic_builder.make_tightpid_soft_pions() + ds = d_builder.make_dsplus_to_kpkmpip(k_pidk_min=0, pi_pidk_max=0) + proton = basic_builder.make_tightpid_soft_protons(p_pidp_min=0, p_pidkmp_max=0) + pion = basic_builder.make_tightpid_soft_pions(pi_pidk_max=0) # note the order we write the decay descriptor in because the b2chh builder makes a # cut on the 1,2 i.e. h+h- combination line_alg = b_builder.make_xib2chh( @@ -823,13 +825,13 @@ def make_XibmToDsmPPi_DsmToHHH(process): @check_process def make_XibmToDsmPK_DsmToHHH(process): if process == "spruce": - ds = d_builder.make_dsplus_to_hhh(pi_pidk_max=None, k_pidk_min=None) - proton = basic_builder.make_tightpid_soft_protons() - kaon = basic_builder.make_soft_kaons(k_pidk_min=None) + ds = d_builder.make_dsplus_to_kpkmpip(k_pidk_min=0, pi_pidk_max=0) + proton = basic_builder.make_tightpid_soft_protons(p_pidp_min=0, p_pidkmp_max=0) + kaon = basic_builder.make_tightpid_soft_kaons(k_pidk_min=0) elif process == "hlt2": - ds = d_builder.make_dsplus_to_hhh() - proton = basic_builder.make_tightpid_soft_protons() - kaon = basic_builder.make_tightpid_soft_kaons() + ds = d_builder.make_dsplus_to_kpkmpip(k_pidk_min=0, pi_pidk_max=0) + proton = basic_builder.make_tightpid_soft_protons(p_pidp_min=0, p_pidkmp_max=0) + kaon = basic_builder.make_tightpid_soft_kaons(k_pidk_min=0) # note the order we write the decay descriptor in because the b2chh builder makes a # cut on the 1,2 i.e. h+h- combination line_alg = b_builder.make_xib2chh( @@ -847,13 +849,13 @@ def make_XibmToDsmPK_DsmToHHH(process): @check_process def make_XibmToDstmPPi_DstmToD0Pi_D0ToHH(process, MVACut=0.35): if process == "spruce": - dzero = d_builder.make_dzero_to_hh(pi_pidk_max=None, k_pidk_min=None) - proton = basic_builder.make_tightpid_soft_protons() - pion = basic_builder.make_soft_pions(p_pidp_min=None) + dzero = d_builder.make_dzero_to_kpi(k_pidk_min=0, pi_pidk_max=0) + proton = basic_builder.make_tightpid_soft_protons(p_pidp_min=0, p_pidkmp_max=0) + pion = basic_builder.make_tightpid_soft_pions(pi_pidk_max=0) elif process == "hlt2": - dzero = d_builder.make_dzero_to_hh() - proton = basic_builder.make_tightpid_soft_protons() - pion = basic_builder.make_soft_pions() + dzero = d_builder.make_dzero_to_kpi(k_pidk_min=0, pi_pidk_max=0) + proton = basic_builder.make_tightpid_soft_protons(p_pidp_min=0, p_pidkmp_max=0) + pion = basic_builder.make_tightpid_soft_pions(pi_pidk_max=0) dstar = d_builder.make_dstar_to_dzeropi(dzero) # note the order we write the decay descriptor in because the b2chh builder makes a # cut on the 1,2 i.e. h+h- combination @@ -870,13 +872,13 @@ def make_XibmToDstmPPi_DstmToD0Pi_D0ToHH(process, MVACut=0.35): @check_process def make_XibmToDstmPK_DstmToD0Pi_D0ToHH(process, MVACut=0.35): if process == "spruce": - dzero = d_builder.make_dzero_to_hh(pi_pidk_max=None, k_pidk_min=None) - proton = basic_builder.make_tightpid_soft_protons() - kaon = basic_builder.make_soft_kaons(k_pidk_min=None) + dzero = d_builder.make_dzero_to_kpi(k_pidk_min=0, pi_pidk_max=0) + proton = basic_builder.make_tightpid_soft_protons(p_pidp_min=0, p_pidkmp_max=0) + kaon = basic_builder.make_tightpid_soft_kaons(k_pidk_min=0) elif process == "hlt2": - dzero = d_builder.make_dzero_to_hh() - proton = basic_builder.make_tightpid_soft_protons() - kaon = basic_builder.make_soft_kaons() + dzero = d_builder.make_dzero_to_kpi(k_pidk_min=0, pi_pidk_max=0) + proton = basic_builder.make_tightpid_soft_protons(p_pidp_min=0, p_pidkmp_max=0) + kaon = basic_builder.make_tightpid_soft_kaons(k_pidk_min=0) dstar = d_builder.make_dstar_to_dzeropi(dzero) # note the order we write the decay descriptor in because the b2chh builder makes a # cut on the 1,2 i.e. h+h- combination diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_open_charm/builders/basic_builder.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_open_charm/builders/basic_builder.py index 94a6d9582f7650905d16a501323551955e0faf9b..93539384ad0c7f8da2bf1aca430ea7d81cba079d 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_open_charm/builders/basic_builder.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/b_to_open_charm/builders/basic_builder.py @@ -208,21 +208,25 @@ def make_tightpid_tight_protons(p_pidp_min=-5): @configurable -def make_soft_protons(p_pidp_min=-10, p_min=2 * GeV, pt_min=100 * MeV): - """Return accompanyingprotons filtered by thresholds common to B2OC very soft selections.""" +def make_soft_protons( + p_pidp_min=-10, p_pidkmp_max=None, p_min=2 * GeV, pt_min=100 * MeV +): + """Return accompanying protons filtered by thresholds common to B2OC very soft selections.""" protons = filter_particles( make_particles=make_has_rich_long_protons, p_min=p_min, pt_min=pt_min ) if p_pidp_min is not None: code = F.PID_P > p_pidp_min + if p_pidkmp_max is not None: + code &= (F.PID_K - F.PID_P) < p_pidkmp_max protons = ParticleFilter(protons, F.FILTER(code)) return protons @configurable -def make_tightpid_soft_protons(p_pidp_min=-5): +def make_tightpid_soft_protons(p_pidp_min=-5, p_pidkmp_max=None): """Return soft accompanying protons filtered by thresholds with tightened PID cut.""" - return make_soft_protons(p_pidp_min=p_pidp_min) + return make_soft_protons(p_pidp_min=p_pidp_min, p_pidkmp_max=p_pidkmp_max) @configurable