Written completely in Python
Easy to use, concise syntax
Manual available at 2508.08354
Example code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from alpaca.uvmodels import QED_DFSZ, beta
from alpaca.scan import Axis, Scan
from alpaca.sectors import default_sectors
from alpaca.plotting.mpl import exclusionplot
import numpy as np
x_ma = Axis(np.logspace(-1, np.log10(5), 100), 'x', r'$m_a\ [GeV]$')
y_tanbeta = Axis(np.logspace(-1, 1, 100), 'y', r'$\tan\beta$')
y_beta = Axis(lambda x: np.arctan(x), 'y_func', r'$\beta$')
scan = Scan(model=QED_DFSZ, ma=x_ma, fa=1e6, lambda_scale=4e6*np.pi,
            mu_scale=5.1, model_pars={beta: y_beta, 'tanbeta': y_tanbeta})
chi2 = scan.get_chi2(default_sectors['bsa_lfu'], integrator='leadinglog')
chi2_obs = chi2.split_observables()
exclusionplot(x_ma, y_tanbeta, chi2_obs, title=r'$\mathrm{QED-DFSZ},\ f_a = 10^6 \mathrm{GeV}$')