diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xgamma_conv_exclusive_hlt2.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xgamma_conv_exclusive_hlt2.py index b7769f5f2c365968b8479536a9fa58246af78743..d34cef02a29a309d02a2c4c312f040e1f40639ec 100755 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xgamma_conv_exclusive_hlt2.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xgamma_conv_exclusive_hlt2.py @@ -34,6 +34,11 @@ data 13.03.25 author: Fionn Bishop date: 20.03.25 +- B0 -> Lambda0bar P+ pi- gamma + +author: Niladri Sahoo +date: 21.03.25 + """ import Functors as F @@ -53,6 +58,7 @@ from Hlt2Conf.lines.rd.builders.b_to_xgamma_exclusive_builders import ( make_rad_dstp_dzpip, make_rad_kstarp, make_rad_l0barp, + make_rad_l0barppi, make_rad_lambda_dd, make_rad_lambda_ll, make_rad_loose_nonres_kk, @@ -680,3 +686,124 @@ def bc_to_dsstgamma_gammatoeeDD_line( calo_digits=RD_PERSIST_CALO_DIGITS, monitoring_variables=_RD_MONITORING_VARIABLES, ) + + +############################### +### B0 -> Lambdabar p+ pi- gamma ### +############################### + + +@register_line_builder(all_lines) +def bd_to_lambdappigamma_LL_gammatoeeLL_line( + name="Hlt2RD_BdToL0barPPiGamma_LL_GammaToEELL", + persistreco=False, + prescale=1.0, +): + l0barppi = make_rad_l0barppi(l0bar_topology="LL") + + b = make_b2xgamma_gamma2ee_excl( + intermediate=l0barppi, + dielectron="LL", + descriptor="[B0 -> f_2(2300) gamma]cc", + name="rd_BdToL0barPPiGamma_LL_GammaToEELL_Combiner_{hash}", + ) + + iso_parts = isolation_parts(b) + + return Hlt2Line( + name=name, + algs=rd_prefilter() + [l0barppi, b], + prescale=prescale, + persistreco=persistreco, + calo_digits=RD_PERSIST_CALO_DIGITS, + calo_clusters=RD_PERSIST_CALO_CLUSTERS, + monitoring_variables=_RD_MONITORING_VARIABLES, + extra_outputs=iso_parts, + ) + + +@register_line_builder(all_lines) +def bd_to_lambdappigamma_DD_gammatoeeLL_line( + name="Hlt2RD_BdToL0barPPiGamma_DD_GammaToEELL", + persistreco=False, + prescale=1.0, +): + l0barppi = make_rad_l0barppi(l0bar_topology="DD") + + b = make_b2xgamma_gamma2ee_excl( + intermediate=l0barppi, + dielectron="LL", + descriptor="[B0 -> f_2(2300) gamma]cc", + name="rd_BdToL0barPPiGamma_DD_GammaToEELL_Combiner_{hash}", + ) + + iso_parts = isolation_parts(b) + + return Hlt2Line( + name=name, + algs=rd_prefilter() + [l0barppi, b], + prescale=prescale, + persistreco=persistreco, + calo_digits=RD_PERSIST_CALO_DIGITS, + calo_clusters=RD_PERSIST_CALO_CLUSTERS, + monitoring_variables=_RD_MONITORING_VARIABLES, + extra_outputs=iso_parts, + ) + + +@register_line_builder(all_lines) +def bd_to_lambdappigamma_LL_gammatoeeDD_line( + name="Hlt2RD_BdToL0barPPiGamma_LL_GammaToEEDD", + persistreco=False, + prescale=1.0, +): + l0barppi = make_rad_l0barppi(l0bar_topology="LL") + + b = make_b2xgamma_gamma2ee_excl( + intermediate=l0barppi, + dielectron="DD", + descriptor="[B0 -> f_2(2300) gamma]cc", + name="rd_BdToL0barPPiGamma_LL_GammaToEEDD_Combiner_{hash}", + ) + + iso_parts = isolation_parts(b) + + return Hlt2Line( + name=name, + algs=rd_prefilter() + [l0barppi, b], + prescale=prescale, + persistreco=persistreco, + calo_digits=RD_PERSIST_CALO_DIGITS, + calo_clusters=RD_PERSIST_CALO_CLUSTERS, + monitoring_variables=_RD_MONITORING_VARIABLES, + extra_outputs=iso_parts, + ) + + +@register_line_builder(all_lines) +def bd_to_lambdappigamma_DD_gammatoeeDD_line( + name="Hlt2RD_BdToL0barPPiGamma_DD_GammaToEEDD", + persistreco=False, + prescale=1.0, +): + l0barppi = make_rad_l0barppi(l0bar_topology="DD") + + b = make_b2xgamma_gamma2ee_excl( + intermediate=l0barppi, + dielectron="DD", + descriptor="[B0 -> f_2(2300) gamma]cc", + name="rd_BdToL0barPPiGamma_DD_GammaToEEDD_Combiner_{hash}", + ) + + iso_parts = isolation_parts(b) + + return Hlt2Line( + name=name, + algs=rd_prefilter() + [l0barppi, b], + prescale=prescale, + persistreco=persistreco, + calo_digits=RD_PERSIST_CALO_DIGITS, + calo_clusters=RD_PERSIST_CALO_CLUSTERS, + monitoring_variables=_RD_MONITORING_VARIABLES, + extra_outputs=iso_parts, + ) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xgamma_conv_exclusive_spruce.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xgamma_conv_exclusive_spruce.py index c0336205ed5538af6de424d1af629f4c3c6bcad9..d92be3884358859acb6be1f7faa4bcf03c6d340e 100644 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xgamma_conv_exclusive_spruce.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/b_to_xgamma_conv_exclusive_spruce.py @@ -16,6 +16,12 @@ PID-exclusive B -> XX gamma Hlt2 lines with converted gamma author: Fionn Bishop date: 05.02.24 + +- B0 -> Lambda0bar P+ pi- gamma + +author: Niladri Sahoo +date: 21.03.25 + """ from Moore.config import register_line_builder @@ -25,6 +31,7 @@ from Hlt2Conf.lines.rd.builders.b_to_xgamma_exclusive_builders import ( isolation_parts, make_b2xgamma_gamma2ee_excl, make_rad_l0barp, + make_rad_l0barppi, make_rad_loose_nonres_kpi, ) from Hlt2Conf.lines.rd.builders.rd_prefilters import ( @@ -188,3 +195,111 @@ def bu_to_lambdapgamma_DD_gammatoeeDD_line( calo_digits=RD_PERSIST_CALO_DIGITS, calo_clusters=RD_PERSIST_CALO_CLUSTERS, ) + + +@register_line_builder(sprucing_lines) +def bd_to_lambdappigamma_LL_gammatoeeLL_line( + name="SpruceRD_BdToL0barPPiGamma_LL_GammaToEELL", + prescale=1.0, +): + l0barppi = make_rad_l0barppi(l0bar_topology="LL") + + b = make_b2xgamma_gamma2ee_excl( + intermediate=l0barppi, + dielectron="LL", + descriptor="[B0 -> f_2(2300) gamma]cc", + name="rd_BdToL0barPPiGamma_LL_GammaToEELL_Combiner_{hash}", + ) + + iso_parts = isolation_parts(b) + + return SpruceLine( + name=name, + algs=rd_prefilter() + [l0barppi, b], + prescale=prescale, + hlt2_filter_code=["Hlt2RD_BToHHGamma_GammaToEELL_Incl_FullDecision"], + extra_outputs=iso_parts, + calo_digits=RD_PERSIST_CALO_DIGITS, + calo_clusters=RD_PERSIST_CALO_CLUSTERS, + ) + + +@register_line_builder(sprucing_lines) +def bd_to_lambdappigamma_LL_gammatoeeDD_line( + name="SpruceRD_BdToL0barPPiGamma_LL_GammaToEEDD", + prescale=1.0, +): + l0barppi = make_rad_l0barppi(l0bar_topology="LL") + + b = make_b2xgamma_gamma2ee_excl( + intermediate=l0barppi, + dielectron="DD", + descriptor="[B0 -> f_2(2300) gamma]cc", + name="rd_BdToL0barPPiGamma_LL_GammaToEEDD_Combiner_{hash}", + ) + + iso_parts = isolation_parts(b) + + return SpruceLine( + name=name, + algs=rd_prefilter() + [l0barppi, b], + prescale=prescale, + hlt2_filter_code=["Hlt2RD_BToHHGamma_GammaToEEDD_Incl_FullDecision"], + extra_outputs=iso_parts, + calo_digits=RD_PERSIST_CALO_DIGITS, + calo_clusters=RD_PERSIST_CALO_CLUSTERS, + ) + + +@register_line_builder(sprucing_lines) +def bd_to_lambdappigamma_DD_gammatoeeLL_line( + name="SpruceRD_BdToL0barPPiGamma_DD_GammaToEELL", + prescale=1.0, +): + l0barppi = make_rad_l0barppi(l0bar_topology="DD") + + b = make_b2xgamma_gamma2ee_excl( + intermediate=l0barppi, + dielectron="LL", + descriptor="[B0 -> f_2(2300) gamma]cc", + name="rd_BdToL0barPPiGamma_DD_GammaToEELL_Combiner_{hash}", + ) + + iso_parts = isolation_parts(b) + + return SpruceLine( + name=name, + algs=rd_prefilter() + [l0barppi, b], + prescale=prescale, + hlt2_filter_code=["Hlt2RD_BToHHGamma_GammaToEELL_Incl_FullDecision"], + extra_outputs=iso_parts, + calo_digits=RD_PERSIST_CALO_DIGITS, + calo_clusters=RD_PERSIST_CALO_CLUSTERS, + ) + + +@register_line_builder(sprucing_lines) +def bd_to_lambdappigamma_DD_gammatoeeDD_line( + name="SpruceRD_BdToL0barPPiGamma_DD_GammaToEEDD", + prescale=1.0, +): + l0barppi = make_rad_l0barppi(l0bar_topology="DD") + + b = make_b2xgamma_gamma2ee_excl( + intermediate=l0barppi, + dielectron="DD", + descriptor="[B0 -> f_2(2300) gamma]cc", + name="rd_BdToL0barPPiGamma_DD_GammaToEEDD_Combiner_{hash}", + ) + + iso_parts = isolation_parts(b) + + return SpruceLine( + name=name, + algs=rd_prefilter() + [l0barppi, b], + prescale=prescale, + hlt2_filter_code=["Hlt2RD_BToHHGamma_GammaToEEDD_Incl_FullDecision"], + extra_outputs=iso_parts, + calo_digits=RD_PERSIST_CALO_DIGITS, + calo_clusters=RD_PERSIST_CALO_CLUSTERS, + ) diff --git a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/b_to_xgamma_exclusive_builders.py b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/b_to_xgamma_exclusive_builders.py index 059dfd814f2beb96bcf8012b9148b4977c27f441..3256c435e949c5f40de9dc6932f099f357f726ea 100755 --- a/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/b_to_xgamma_exclusive_builders.py +++ b/Hlt/Hlt2Conf/python/Hlt2Conf/lines/rd/builders/b_to_xgamma_exclusive_builders.py @@ -19,6 +19,7 @@ Exclusive builders for Bc authors: Debashis Sahoo, Biplab Dey date: 15.05.2024 + """ from math import cos @@ -732,6 +733,46 @@ def make_rad_lambda_dd(name="rad_lambda_dd_{hash}"): return lambdas +@configurable +def make_rad_l0barppi( + l0bar_topology: str, + name="rad_l0barppi_{hash}", + make_proton=make_rd_has_rich_detached_protons, + make_pion=make_rd_detached_pions, + am_min=2225 * MeV, + am_max=5000 * MeV, + adocachi2_max=30.0, + vchi2pdof_max=10, + pt_min=500 * MeV, +): + """ + Build L0barppi candidates. + """ + if l0bar_topology == "LL": + make_l0 = make_rad_lambda_ll + if l0bar_topology == "DD": + make_l0 = make_rad_lambda_dd + l0 = make_l0() + protons = make_proton() + pions = make_pion() + descriptor = "[f_2(2300) -> Lambda~0 p+ pi-]cc" + combination_code = F.require_all( + in_range(am_min - 25 * MeV, F.MASS, am_max + 25 * MeV), + F.MAXSDOCACHI2CUT(adocachi2_max), + F.PT > pt_min, + ) + vertex_code = F.require_all( + F.CHI2DOF < vchi2pdof_max, in_range(am_min, F.MASS, am_max) + ) + return ParticleCombiner( + [l0, protons, pions], + name=name.replace("l0barppi", "l0barppi_" + l0bar_topology), + DecayDescriptor=descriptor, + CombinationCut=combination_code, + CompositeCut=vertex_code, + ) + + @configurable def make_rad_kstarp( ks_topology: str,