The phenomenology of various LLPs implemented in EventCalc
follows the description used in SensCalc
:
- 1805.08567 for HNLs. Minor changes include improved matching between exclusive and perturbative QCD descriptions of decays into hadrons (separately for neutral and charged current processes and for three various mixing).
- 1904.10447 for Higgs-like scalars. Minor changes include the modification of the decay width into gluons (higher order QCD corrections are taken into account).
- 1904.02091 for the ALPs coupled to photons (in addition, the decay modes
ALP -> gamma l l
and processes of the ALP production in the decays ofpi^0
andeta
are added). - 2409.11096 and references therein for the dark photons.
The phenomenology is very different from the descriptions in the PBC report. This is because the latter is quite outdated.
To make it possible to consider various mixing pattern, EventCalc
has the HNL production yield, HNL tabulated distribution, HNL decay width, branching ratios of all possible HNL decay modes and their matrix elements (to sample the kinematics of decay products) for the pure three mixings (1,0,0), (0,1,0), (0,0,1). Once the user selects the arbitrary mixing pattern (Ue2, Umu2, Utau2)
, the code merges the mentioned quantities:
- The total yields
(yield_e, yield_mu, yield_tau)
for pure mixings are summed with weights(Ue2, Umu2, Utau2)
, giving the total production yieldyield_total
. - The tabulated distributions are summed with weights
(yield_e*Ue2, yield_e*Umu2, yield_tau*Utau2)/yield_total
. - The decay widths
(Gamma_e, Gamma_mu, Gamma_tau)
are summed with weights(Ue2, Umu2, Utau2)
, giving the total decay widthGamma_total
. - The branching ratios and decay matrix elements are summed with weights given by
(Gamma_e*Ue2, Gamma_mu*Umu2, Gamma_tau*Utau2)/Gamma_total
.
Once this is done, we have all the ingredients for calculating the event rate for the given mixing pattern.
When producing LLP fluxes, the following setups have been used to get the fluxes of mesons (their mother particles):
- For light mesons (
Pi0
,Eta
,Eta'
,Rho0
,Omega
, etc.):pythia8
setup from 1904.02091. This means that the cascade enhancement of the fluxes is not included. It would typically result in too soft particles that would be outside of the SHiP acceptance, so there should not be any significant impact on the event rate. Nevertheless, it will be implemented in the future. - For charm and bottom: SHiP study.
- For kaons: 2004.07974 (will be regenerated as well).
- The code starts with sampling the LLP's kinematics within the polar angle coverage of the SHiP experiment. To improve the quality of sampling, it is done in the following way. The code first randomly samples polar angles
theta_random
within the SHiP coverage. It then samples energies within the range[E_min,E_max(theta_random)]
. Here:E_min = max(m_LLP, E_min(l_decay))
, whereE_min(m_LLP, c tau_LLP)
is the minimal energy for which the LLP decay probability is not too exponentially suppressed (it is very important for short lifetimesctau << z_{to SHiP}
); Exp[-15] is taken as this boundary.E_max(theta_random)
is the maximal LLP energy for the given polar angles. It is needed to take into account as for some LLP production channels (e.g., the proton bremsstrahlung, etc.), this dependence is very steep.
- Then, for each pair
(theta_random, E_random)
, the code calculates the weightsf_tabulated(theta_random,E_random)*(E_max(theta_random)-E_min)
, and selects a fraction of the events based on the weigths. The polar acceptanceepsilon_polar
is then defined as the sum of the selected weights. - The code proceeds with sampling random azimuthal angles and generating the decay vertices within the longitudinal coverage of SHiP. This is done in the following way:
- First, one defines the inverse CDF for the
z
displacement of the decay vertex based on the exponential distribution in the LLP decay width:ctau_LLP*cos(theta_LLP)*p_LLP/m_LLP log(1/(1-u))
. If one wants to sample the decays everywhere,u
randomly ranges from 0 to 1. However, for the SHiP case,u
is fixed in a way such thatz
ranges fromz_min,SHiP
(32 m for the current setup) toz_max,SHiP
(82 m). - Having sampled
z
and knowingtheta_LLP,phi_LLP
, the decay point is sampled. - Finally, the decay probability is also calculated:
P_decay = Exp[-z_min/(ctau_LLP cos(theta_LLP)p_LLP/m_LLP)]-Exp[-z_max/(ctau_LLP cos(theta_LLP)p_LLP/m_LLP)]
- First, one defines the inverse CDF for the
- Knowing the decay point position, the code selects only those LLPs which are within the azimuthal acceptance of the decay volume. This is at most O(1) effect given the large azimuthal coverage of SHiP decay volume. Then, it simulates the phase space of LLP's decay products (described below).
It is split into three steps:
EventCalc
simulates the phase space of decay products at the LLP rest frame.- Two-body decays are sampled isotropically, with the two decay products having the same energy.
- Three-body decays
LLP -> 1+2+3
are sampled using the squared matrix element of the process in terms of the LLP mass and energiesE_1
,E_3
of the decay products. - Currently, four-body decays
LLP->1+2+3+4
are sampled assuming unit squared matrix element (to be improved in the future).
- The phase space is passed to
pythia8
for decaying unstable particles such aspi^0
, showering and hadronization. - The resulting phase space is boosted into the LLP's lab frame.
Masses of LLPs to be probed at SHiP are in the GeV range. Therefore, there is no unified description of their hadronic decays: at masses m_LLP <~ 1 GeV, one has to use exclusive description, whereas at larger masses, one may switch to perturbative QCD. In the domain of intermediate masses, matching between these two descriptions has to be done (see, e.g., 1801.04847 as an example of such a discussion).
In EventCalc
, this is performed in the following way:
- The exclusive widths are non-zero below the matching mass and zero above it, while perturbative widths are non-zero above it and zero below.
- For HNLs, neutral current and charged current widths are matched independently from each other, and for each pure mixing, matching is performed separately.
- Consider perturbative QCD decays,
LLP -> quarks
, sayS->c cbar
for explicit example. Often, in the literature it is assumed that the threshold for this channel is just2*m_c
, and the corresponding decay width is included to the total decay width of the LLP already above this di-quark threshold (see, e.g., 2201.065801). It is wrong, as the true threshold is2*m_D
. The approach ofEventCalc
to deal with this and other similar decay modes is the following:- When calculating the decay width and the branching ratio, just replace the quark mass with the corresponding lightest meson mass. This way, the decay
S->cc
is replaced withS->DD
. - However, to sample the proper kinematics of the decay, the actual quark masses have to be used. I.e., above the di-D threshold,
S
decays into twoc
quarks, each with massm_c = 1.27 GeV
. They are then properly hadronized inpythia8
. - The described approach works trivially for 2-body decays. For 3-body decays like
N -> cc nu
, the situation is more subtle. If sampling the full Dalitz phase space of quarks and neutrinos (of course, reweighted by the squared matrix element of the decay), there may be situations when the invariant mass of thecc
pair is still below the di-D threshold, which means that such event would be discarded. This would lead to the double counting of the decay suppression - the first comes from the replacementm_c -> m_D
when calculating the width and branching ratio, while the second comes from the threshold. To avoid the double counting, the invariant mass of thecc
pair inEventCalc
is sampled in a way such that it is always above the di-D threshold. The same applies to the other hadronic decays.
- When calculating the decay width and the branching ratio, just replace the quark mass with the corresponding lightest meson mass. This way, the decay
- Adding more LLPs (ALPs, B-L mediators, HNLs with dipole coupling, inelastic and elastic LDM, etc.). Pending due to their phenomenology revision.
- Adding theoretical uncertainty (decay widths for Higgs-like scalars, B-L production uncertainties, etc.).
- Improving the performance of the code (parallelization of pythia8 run, etc.).
- Adjusting the SHiP setup with the up-to-date setup if needed.
- Adding cascade production from kaons and light mesons for HNLs, Higgs-like scalars, dark photons.
- Adding more sophisticated simulation codes (such as the machinery to simulate HNL-anti-HNL oscillations).
- Introduce individual identifiers for various LLPs (currently, it is 12345678).
- Add the possibility to sample LLPs solely within the azimuthal acceptance (as it is done in the
EventCalc
module in the SensCalc repository). - Add the version adapted for HTCondor.