alpaca.uvmodels

Classes

class alpaca.uvmodels.model_library.ModelBase(model_name: str)

Base class representing a UV model with couplings to ALPs. Specific models should inherit from this class and implement the couplings.

Attributes

model_namestr

The name of the model.

couplingsdict[str, sp.Expr]

A dictionary with the couplings of the model.

Methods

get_couplings(substitutions: dict[sp.Expr, float | complex], scale: float) -> ALPcouplings

Returns the couplings of the model with numerical values.

couplings_latex(nonumber: bool = False) -> str

Returns the couplings of the model in LaTeX format.

E_over_N() -> sp.Rational

Returns the ratio E/N for the model.

E_over_N() Rational

Return the ratio E/N for the model relating the electromagnetic and QCD anomalies.

Returns

sp.Rational

The ratio E/N for the model.

Raises

ZeroDivisionError

If the coupling cG is zero.

couplings_latex(eqnumber: bool = False) str

Return the couplings of the model in LaTeX format.

The couplings are returned inside an align environment, one coupling per line, aligned at the = sign.

Arguments

eqnumberbool

If True, the align environment will number the lines. Default is False.

Returns

str

The couplings of the model in LaTeX format.

get_couplings(substitutions: dict[Expr, float | complex], scale: float, 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) ALPcouplings

Substitute the symbolic variables with numerical values directly into the couplings

Arguments

substitutionsdict[sp.Expr, float | complex]

A dictionary with the values to substitute in the couplings.

scalefloat

The scale at which the couplings are evaluated, in GeV.

ew_scalefloat

The electroweak scale, in GeV. Default is 100.0 GeV.

VuLnp.ndarray, optional

Unitary rotation of the left-handed up-type quarks to diagonalize Yu. If None, it is set to the identity.

VdLnp.ndarray, optional

Unitary rotation of the left-handed down-type quarks to diagonalize Yd. If None, it is set to the CKM matrix.

VuRnp.ndarray, optional

Unitary rotation of the right-handed up-type quarks to diagonalize Yu. If None, it is set to the identity.

VdRnp.ndarray, optional

Unitary rotation of the right-handed down-type quarks to diagonalize Yd. If None, it is set to the identity.

Returns

ALPcouplings

The couplings of the model with numerical values.

symbolic_ALPcouplings(scale: float, 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) ALPcouplings

Return the couplings of the model as a symbolic ALPcouplings object.

Arguments scale : float

The scale at which the couplings are evaluated, in GeV.

ew_scalefloat

The electroweak scale, in GeV. Default is 100.0 GeV.

VuLnp.ndarray, optional

Unitary rotation of the left-handed up-type quarks to diagonalize Yu. If None, it is set to the identity.

VdLnp.ndarray, optional

Unitary rotation of the left-handed down-type quarks to diagonalize Yd. If None, it is set to the CKM matrix.

VuRnp.ndarray, optional

Unitary rotation of the right-handed up-type quarks to diagonalize Yu. If None, it is set to the identity.

VdRnp.ndarray, optional

Unitary rotation of the right-handed down-type quarks to diagonalize Yd. If None, it is set to the identity.

Returns

ALPcouplings

The couplings of the model as a symbolic ALPcouplings object.

class alpaca.uvmodels.PQChargedModel(model_name: str, charges: dict[str, Expr])

A class to define a model given the PQ charges of the SM fermions.

class alpaca.uvmodels.HeavyFermion(SU3_rep: str | int | tuple[int, int] | list[int], SU2_rep: str | int, Y_hyper: float, PQ: float)

A class to represent a heavy fermion with specific group representations and charges.

Attributes:

color_dimint

The dimension of the color representation.

weak_isospin_dimint

The dimension of the weak isospin representation.

dynkin_index_colorsympy.Rational

The Dynkin index for the color representation.

dynkin_index_weaksympy.Rational

The Dynkin index for the weak isospin representation.

hyperchargefloat

The hypercharge of the fermion.

PQfloat

The Peccei-Quinn charge of the fermion.

class alpaca.uvmodels.KSVZ_model(model_name: str, fermions: list[HeavyFermion])

A class to define the KSVZ-like models given the new heavy fermions.

class alpaca.uvmodels.Flaxion(model_name, charges)

A class to define the Flaxion model given the PQ charges of the SM fermions.

get_couplings(eps: float, scale: float, ew_scale=100, coeffs_yu: ndarray | None = None, coeffs_yd: ndarray | None = None, coeffs_ye: ndarray | None = None) ALPcouplings

Substitute the symbolic variables with numerical values directly into the couplings

Arguments

substitutionsdict[sp.Expr, float | complex]

A dictionary with the values to substitute in the couplings.

scalefloat

The scale at which the couplings are evaluated, in GeV.

ew_scalefloat

The electroweak scale, in GeV. Default is 100.0 GeV.

VuLnp.ndarray, optional

Unitary rotation of the left-handed up-type quarks to diagonalize Yu. If None, it is set to the identity.

VdLnp.ndarray, optional

Unitary rotation of the left-handed down-type quarks to diagonalize Yd. If None, it is set to the CKM matrix.

VuRnp.ndarray, optional

Unitary rotation of the right-handed up-type quarks to diagonalize Yu. If None, it is set to the identity.

VdRnp.ndarray, optional

Unitary rotation of the right-handed down-type quarks to diagonalize Yd. If None, it is set to the identity.

Returns

ALPcouplings

The couplings of the model with numerical values.

masses_symbolic(fermion: str) list[Expr]

Return the mass of the SM fermions in the model.

symbolic_ALPcouplings(scale: float, ew_scale: float = 100, VuL: ndarray | None = None, VdL: ndarray | None = None, VuR: ndarray | None = None, VdR: ndarray | None = None, VeL: ndarray | None = None, VeR: ndarray | None = None) ALPcouplings

Return the couplings of the model as a symbolic ALPcouplings object.

Arguments scale : float

The scale at which the couplings are evaluated, in GeV.

ew_scalefloat

The electroweak scale, in GeV. Default is 100.0 GeV.

VuLnp.ndarray, optional

Unitary rotation of the left-handed up-type quarks to diagonalize Yu. If None, it is set to the identity.

VdLnp.ndarray, optional

Unitary rotation of the left-handed down-type quarks to diagonalize Yd. If None, it is set to the CKM matrix.

VuRnp.ndarray, optional

Unitary rotation of the right-handed up-type quarks to diagonalize Yu. If None, it is set to the identity.

VdRnp.ndarray, optional

Unitary rotation of the right-handed down-type quarks to diagonalize Yd. If None, it is set to the identity.

Returns

ALPcouplings

The couplings of the model as a symbolic ALPcouplings object.

Objects

alpaca.uvmodels.beta

Symbol representing the angle beta in the DFSZ-like models.

alpaca.uvmodels.KSVZ_charge

Symbol representing the charge of the KSVZ axion.

alpaca.uvmodels.QED_DFSZ

QED-DFSZ: A DFSZ-like model with couplings to leptons and quarks that does not generate a QCD anomaly.

alpaca.uvmodels.u_DFSZ

u-DFSZ: A DFSZ-like model where the up-type quarks are decoupled.

alpaca.uvmodels.e_DFSZ

e-DFSZ: A DFSZ-like model where the leptons are decoupled.

alpaca.uvmodels.Q_KSVZ

Q_KSVZ: A KSVZ-like model with specific couplings to heavy vector-like quarks.

alpaca.uvmodels.L_KSVZ

L_KSVZ: A KSVZ-like model with specific couplings to heavy vector-like leptons.

alpaca.uvmodels.Y_KSVZ

Y_KSVZ: A KSVZ-like model with specific couplings to heavy vector-like leptons.

alpaca.uvmodels.flaxion_benchmark

Flaxion benchmark: A specific benchmark point for the Flaxion model.

alpaca.uvmodels.nonuniversal_DFSZ

Non-universal DFSZ: A DFSZ-like model with non-universal couplings.