Quick-start notebook for the axion module#
Importing the modules#
[1]:
#start by importing the controller and manipulate modules
from analytical.controller import *
from numerical.manipulate import *
#reimport numpy (though it is pulled by numerical) for smarter syntax highlighting in vscode
import numpy
Analytical part#
[ ]:
axion_analytical=analytical_pipeline("../../MyModels/axion/axionSM.cfg")
Numerical part#
first create the NumRate class object
[ ]:
axion_rate=NumRate(*axion_analytical,1)
Now all methods of the class are available. For illustration purposes we output the full rate at 10 values of k/T for an axion-gluon coupling only. We rescale \(f_\mathrm{PQ}\) by setting its value to 1 and we use a strong coupling \(g_3\) corresponding to \(\alpha_s=0.06\)
[4]:
k=numpy.linspace(1,10,10)
#the tuple for the couplings is the union of the gauge and other couplings
#from the output of the analytical pipeline we have
# {'gauge': ('g1', 'g2', 'g3'), 'noneq': ('fPQ',), 'others': ('c1', 'c2', 'c3', 'ct', 'ht')}
rate = axion_rate.rate(k,1.,(0.,0.,numpy.sqrt(4.*numpy.pi*0.06),0,0,1.,0,0),0)
Strict LO-scheme rate
[9]:
rate[1]
[9]:
array([6.24468720482499e-6, 2.48806377023693e-5, 3.35216329472938e-5,
3.89866431064388e-5, 4.30820774272845e-5, 4.64391827454089e-5,
4.93197028763330e-5, 5.18530080251627e-5, 5.41151703842284e-5,
5.61573931901464e-5], dtype=object)
Subtracted-scheme rate
[10]:
rate[2]
[10]:
array([1.32458357276370e-5, 2.68517915080078e-5, 3.44196852859558e-5,
3.94963238927934e-5, 4.34096375330550e-5, 4.66671741757908e-5,
4.94874378831309e-5, 5.19815453260401e-5, 5.42167932436927e-5,
5.62397439824078e-5], dtype=object)
Tuned-scheme rate
[11]:
rate[3]
[11]:
array([2.13516715648551e-5, 3.50716746267359e-5, 4.25672158519041e-5,
4.74800571298319e-5, 5.12012593583113e-5, 5.42733060334197e-5,
5.69285281412678e-5, 5.92808393892183e-5, 6.13957319484079e-5,
6.33165674566682e-5], dtype=object)