ALPcouplings

Classes

class alpaca.ALPcouplings(values: dict, scale: float, basis: str, ew_scale: float = 100.0, VuL: ndarray | None = None, VdL: ndarray | None = None, VuR: ndarray | None = None, VdR: ndarray | None = None, VeL: ndarray | None = None, VeR: ndarray | None = None)

Container for ALP couplings.

Members

valuesdict

dict containing the ALP couplings.

scalefloat

Energy scale where the couplings are defined, in GeV.

basisstr

Basis in which the couplings are defined. The available bases are:

  • ‘derivative_above’:

    Basis with the explicitly shift-symmetric couplings of the fermion currents to the derivative of the ALP; above the EW scale.

  • ‘massbasis_ew’:

    Basis with the couplings of the fermion currents to the ALP in the mass basis of the fermions, at the EW scale.

  • ‘RL_below’:

    Basis with the couplings of the fermion currents to the ALP in the mass basis of the fermions, below the EW scale.

  • ‘VA_below’:

    Basis with the couplings of the fermion currents to the ALP in the mass basis of the fermions, below the EW scale, with vector and axial-vector couplings.

ew_scalefloat

Energy scale of the electroweak symmetry breaking scale, in GeV.

__init__(values: dict, scale: float, basis: str, ew_scale: float = 100.0, VuL: ndarray | None = None, VdL: ndarray | None = None, VuR: ndarray | None = None, VdR: ndarray | None = None, VeL: ndarray | None = None, VeR: ndarray | None = None)

Constructor method

Parameters

valuesdict

dict containing the ALP couplings.

scalefloat

Energy scale where the couplings are defined, in GeV.

basisstr

Basis in which the couplings are defined. The available bases are:

  • ‘derivative_above’:

    Basis with the explicitly shift-symmetric couplings of the fermion currents to the derivative of the ALP; above the EW scale.

  • ‘massbasis_ew’:

    Basis with the couplings of the fermion currents to the ALP in the mass basis of the fermions, at the EW scale.

  • ‘RL_below’:

    Basis with the couplings of the fermion currents to the ALP in the mass basis of the fermions, below the EW scale.

  • ‘VA_below’:

    Basis with the couplings of the fermion currents to the ALP in the mass basis of the fermions, below the EW scale, with vector and axial-vector couplings.

ew_scalefloat, optional

Energy scale of the electroweak symmetry breaking scale, in GeV. Defaults to 100 GeV

VuLnp.ndarray, optional

Unitary rotation of the left-handed up-type quarks to diagonalize Yu. If None, it is set to the identity. (Only used in ‘derivative_above’ and ‘massbasis_ew’ bases)

VdLnp.ndarray, optional

Unitary rotation of the left-handed down-type quarks to diagonalize Yd. If None, it is set to the CKM matrix. (Only used in ‘derivative_above’ and ‘massbasis_ew’ bases)

VuRnp.ndarray, optional

Unitary rotation of the right-handed up-type quarks to diagonalize Yu. If None, it is set to the identity. (Only used in ‘derivative_above’ and ‘massbasis_ew’ bases)

VdRnp.ndarray, optional

Unitary rotation of the right-handed down-type quarks to diagonalize Yd. If None, it is set to the identity. (Only used in ‘derivative_above’ and ‘massbasis_ew’ bases)

VeLnp.ndarray, optional

Unitary rotation of the left-handed leptons to diagonalize Ye. If None, it is set to the identity. (Only used in ‘derivative_above’ and ‘massbasis_ew’ bases)

VeRnp.ndarray, optional

Unitary rotation of the right-handed leptons to diagonalize Ye. If None, it is set to the identity. (Only used in ‘derivative_above’ and ‘massbasis_ew’ bases)

Raises

ValueError

If attempting to translate to an unrecognized basis.

TypeError

If attempting to assign a non-numeric value

AttributeError

If the matrices VuL and VdL are provided at the same time.

classmethod load(file: str | PathLike | TextIOBase) ALPcouplings

Load the object from a JSON file.

Parameters

filestr | PathLike | TextIOBase

Name of the file, or object, where the object is saved.

Returns

aALPcouplings

Object loaded from the file.

match_run(scale_out: float, basis: str, integrator: str = 'scipy', beta: str = 'full', match_tildecouplings=True, scipy_method: str = 'RK45', scipy_rtol: float = 0.001, scipy_atol: float = 1e-06, **kwargs) ALPcouplings

Match and run the couplings to another basis and energy scale.

Parameters

scale_outfloat

Energy scale where the couplings are to be evolved, in GeV.

basisstr

Target basis to translate.

integratorstr, optional

Method to use for the RG evolution. The available integrators are:

  • ‘scipy’:

    Use the scipy.integrate.odeint function.

  • ‘leadinglog’:

    Use the leading-log approximation.

  • ‘symbolic’:

    Use the leading-log approximation with symbolic expressions.

  • ‘no_rge’:

    Return the couplings at the final scale without running them.

betastr, optional

Beta function to use for the RG evolution. The available beta functions are:

  • ‘ytop’:

    Use the beta function for the top Yukawa coupling.

  • ‘full’:

    Use the full beta function.

match_tildecouplingsbool, optional

Whether to implement the matching conditions with the ‘tilde’ version of the gauge couplings instead of the bare ones. The use of the ‘tilde’ coefficients partially captures 2-loop effects in the matching, and ensures RG invariance, as discussed in Bauer et al. (2020) arXiv:2012.12272. Defaults to True.

scipy_methodstr, optional

Method to use for the scipy integrator. Defaults to ‘RK45’. Other available options are ‘RK23’, ‘DOP853’, and ‘BDF’. See the documentation of scipy.integrate.solve_ivp for more information.

scipy_rtolfloat, optional

Relative tolerance for the scipy integrator. Defaults to 1e-3.

scipy_atolfloat, optional

Absolute tolerance for the scipy integrator. Defaults to 1e-6.

Returns

aALPcouplings

Evolved couplings.

Raises

KeyError

If attempting to translate to an unrecognized basis.

save(file: str | PathLike | TextIOBase) None

Save the object to a JSON file.

Parameters

filestr | PathLike | TextIOBase

Name of the file, or object, where the object will be saved.

translate(basis: str) ALPcouplings

Translate the couplings to another basis at the same energy scale.

Parameters

basisstr

Target basis to translate.

Returns

aALPcouplings

Translated couplings.

Raises

ValueError

If attempting to translate to an unrecognized basis.

Objects

alpaca.ALPcouplingsEncoder

JSON encoder for ALPcouplings objects and structures containing them.

Usage

>>> import json
>>> from alpaca import ALPcouplings, ALPcouplingsEncoder
>>> a = ALPcouplings({'cG': 1.0}, 1e3, 'derivative_above')
>>> with open('file.json', 'wt') as f:
...     json.dump(a, f, cls=ALPcouplingsEncoder)
alpaca.ALPcouplingsDecoder

JSON decoder for ALPcouplings objects and structures containing them.

Usage

>>> import json
>>> from alpaca import ALPcouplingsDecoder
>>> with open('file.json', 'rt') as f:
...     a = json.load(f, cls=ALPcouplingsDecoder)