BandQ: Sprucing - automatic line creation
Allows to semi-automatically create bunch of lines for:
- detached B-> psi + hadrons (Nh<=4), where psi=J/psi, psi(2S), hadrons = pi, K, p, Ks, Lambda0, Xi-, Omega-; Very wide mass cut.
- promptly produced X -> B + hadrons (Nh<=2), where B are from b_for_spectroscopy, either fully reconstructed (JpsiX,DX) or SemiLeptonic modes; M_combination < sum_M_daughters + 1*GeV;
For this one needs to declaring line names + decay descriptors manually:
auto_PsiX_lines[f"{psi_name}PiPi"] = [ f"[B_s0 -> {psi} pi+ pi-]cc", f"[B_s0 -> {psi} pi+ pi+]cc" ]
...
auto_BX_lines["BeautyPi"] = [ f"[ {BX_mother_id} -> B+ pi+]cc",
f"[ {BX_mother_id} -> B+ pi-]cc",
f"[ {BX_mother_id} -> B0 pi+]cc",
...
auto_BX_detached_lines["BcToBsPi"] = [ f"[ {BX_mother_id} -> B_s0 pi+]cc",
f"[ {BX_mother_id} -> B_s0 pi-]cc" ]
...
then passing it to make_spruce_lines
that will automatically create corresponding lines with standart code.
make_spruce_lines(
make_fun=bx_prompt.make_BX_combination,
line_dict=sprucing_lines,
lines_to_add=auto_BX_lines)
Thus saving coding.
===============
in addition doing few improvements (may be separated in dedicated MR) in:
- speed-up of make_b_hadrons via cuts on 12,123,... combinations - not important for
J/psi h1 h2
, but may be a big effect forJ/psi h1 h2 h3 h4
lines, which we might want to create a lot. - minor fix in make_AllB in b_for_spectroscopy. It's currently not used, but just in case.
- fix treatment of
nopid
option in longlived_hadrons - make it consistent with charged_hadrons.
==== small fact:
Firstly wanted to create few lines to search for hexa/penta-quarks with b-quark:
-
J/psi p+ p+ K-
,J/psi p+ p+ K- pi-
,J/psi p+ K+ pi-
- and
Lambda_b0 p+
,Lambda_b0 Lambda0
,Xi_b- p+
,B0 p+
but instead decided to create something much more general.
Edited by Alessandro Bertolin