MCAmbulance is a small python package to correct Monte-Carlo samples of
MCAmbulance relies on
- numpy
- scipy
The missing phase-space factors and the reweighting strategy are described in detail in the preprint arXiv:2602.18378. MCAmbulance uses masses and widths based on the default values in basf2, taken from evt.pdl.
The following decays are supported:
-
$B \rightarrow D_0^\ast(\rightarrow D \pi) \ell \nu$ , based on DECAY_BELLE2.DEC -
$B \rightarrow D_0^\ast(\rightarrow D \eta) \ell \nu$ , based on 1196708001.dec and 1296708001.dec -
$B \rightarrow D_0^\ast(\rightarrow D \pi \pi) \ell \nu$ , based on 1196700003.dec and 1296700003.dec (Note, this decay violates parity) -
$B \rightarrow D_0^\ast(\rightarrow D^\ast \pi \pi) \ell \nu$ , based on 1196700004.dec and 1296700004.dec -
$B \rightarrow D_1^\prime(\rightarrow D^\ast \pi) \ell \nu$ , based on DECAY_BELLE2.DEC -
$B \rightarrow D_1^\prime(\rightarrow D^\ast \eta) \ell \nu$ , based on 1196708000.dec and 1296708000.dec -
$B \rightarrow D_1^\prime(\rightarrow D \pi \pi) \ell \nu$ , based on 1196700001.dec and 1296700001.dec -
$B \rightarrow D_1^\prime(\rightarrow D^\ast \pi \pi) \ell \nu$ , based on 1196700002.dec and 1296700002.dec
In addition, we provide ISGW2 implementations of
$B \rightarrow D_0^\ast(\rightarrow D \pi) \ell \nu$ $B \rightarrow D_1^\prime(\rightarrow D^\ast \pi) \ell \nu$
Note that decays simulated with the PHSP model are not affected, and so we do not provide code to reweight them.
- Clone this repository into a local directory.
git clone <repo-url>- Add the repository root (the directory that contains the
mcambulance/folder) to yourPYTHONPATH:
export PYTHONPATH="/path/to/MCAmbulance:${PYTHONPATH}"If you don't want to set environment variables, you can add the repo to sys.path at runtime:
import sys
sys.path.insert(0, "/path/to/MCAmbulance") # repo root containing `mcambulance/`
import mcambulanceCorrecting
from mcambulance import MCAmbulance
d0_d_pi_fix = MCAmbulance('bp', 'd0_d_pi', 'mu')
weights = d0_d_pi_fix.CorrectionWeight(dpi_invM)
Here, dpi_invM is a numpy array containing the truth-level weights now contains the correction weights for each event.
The constructor of MCAmbulance takes three arguments:
-
bmeson:bporb0for charged or neutral$B$ mesons, respectively -
channel:d0_d_pi,d0_d_eta,d0_d_pipi,d0_dstar_pipi,d1p_dstar_pi, ... -
lepton:e,muortau
To select the ISGW2 implementations, channel is either d0_d_pi_isgw2 or d1p_dstar_pi_isgw2.
In addition, we support the BCL model for
If you use MCAmbulance, you should cite the following references:
- MCAmbulance: Florian Herren and Raynette van Tonder, arXiv:2602.18378
- EvtGen: David J. Lange, Nucl.Instrum.Meth.A 462 (2001) 152-155
- basf2: Belle-II Framework Software Group, Comput.Softw.Big Sci. 3 (2019) 1, 1
- LLSW parametrisation: Adam K. Leibovich, Zoltan Ligeti, Ian M. Stewart and Mark B. Wise, Phys.Rev.Lett. 78 (1997) 3995-3998 & Phys.Rev.D 57 (1998) 308-330
- Default form factor values: Florian U. Bernlochner and Zoltan Ligeti, Phys.Rev.D 95 (2017) 1, 014022
- If using the ISGW2 form factors: Daryl Scora and Nathan Isgur, Phys.Rev.D 52 (1992) 2783-2812
- Florian Herren florian.s.herren@gmail.com
- Raynette van Tonder raynette.vantonder@kit.edu
- Ilias Tsaklidis