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.