Example
The following script shows how to initialize a parameter point and how to confront it with some theoretical and experimental constraints:
import numpy as np
from s2hdmTools.paramPoint import ParamPoint
TB = 2.
BE = np.arctan(TB)
paras = {
'type': 2,
'tb': TB,
'al1': BE,
'al2': 0.01,
'al3': 1.4,
'mH1': 125.,
'mH2': 225.,
'mH3': 450.,
'mXi': 265.,
'mA': 600.,
'mHp': 650.,
'vs': 1000.,
'm12sq': 400.**2 * np.sin(BE) * np.cos(BE)}
def main():
pt, IsBounded, IsPertUni, IsEWPO, IsGlobal = analize_point(paras)
print_results(pt, IsBounded, IsPertUni, IsEWPO, IsGlobal)
def analize_point(paras):
pt = ParamPoint(paras)
IsBounded = pt.check_boundedness()
IsPertUni = pt.check_tree_pert_uni()
IsEWPO = pt.check_ewpo()
IsGlobal = pt.check_metastability()
pt.check_collider_constraints()
pt.eval_darkmatter(mode='micro')
pt.eval_darkmatter(mode='direct')
return pt, IsBounded, IsPertUni, IsEWPO, IsGlobal
def print_results(pt, IsBounded, IsPertUni, IsEWPO, IsGlobal):
print("Scalar potential is bounded from below: " + str(IsBounded))
print("Perturbative unitarity counstraints are respected: " + str(IsPertUni))
print("Constraints from EWPO are respected: " + str(IsEWPO))
print("EW minimum is the global minimum of the potential: " + str(IsGlobal))
print()
print("Results from the HiggsBounds analysis: ")
print(pt.HT['HB'])
print()
print("Results from the HiggsSignals analysis: ")
print(pt.HT['HS'])
print()
print("Predicted dark-matter relic abundance: " + str(pt.Micromegas['relic']['Omegahsq']))
print("Dark-matter proton scattering cross section: " + str(pt.directDetection['sigma_proton']))
main()