Skip to content

Instantly share code, notes, and snippets.

@restrepo
Last active September 29, 2015 00:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save restrepo/80256e2e30cbed7096c7 to your computer and use it in GitHub Desktop.
Save restrepo/80256e2e30cbed7096c7 to your computer and use it in GitHub Desktop.
class THDM:
'''
All parameters in the several basis with functions to get the missing ones
th=THDM()
self.general -> dict with general
'''
import numpy as np
def __init__(self):
#general
self.lambdas=np.zeros(8)
self.m22_2=0.
#Physical
self.m_h0=125.;self.m_H0=300.;self.m_A0=400.;self.m_Hp=500.
self.tanb=1;self.lambdas[6]=0.1;self.lambdas[7]=0.1;self.m12_2=1E6
self.sab=0.1
def __call__(self):
print lambdas
print("call")
def phys_to_gen(self,v=2.38711864E+02):
'''based on https://2hdmc.hepforge.org/ src: THDM.cpp: '''
#GF = eval(LHA.blocks['SMINPUTS'][2])
beta=np.arctan(t.tanb);
sb = np.sin(beta)
sb2 = sb*sb
cb = np.cos(beta);
cb2 = cb*cb;
tb = np.tan(beta);
ctb = 1./tb;
alpha = -np.arcsin(t.sab)+beta;
sa = np.sin(alpha);
sa2 = sa*sa;
ca = np.cos(alpha);
ca2 = ca*ca;
cab = np.sqrt(1.-t.sab*t.sab);
v2=v**2 #1./(np.sqrt(2.)*GF);
self.lambdas[1]=( (self.m_H0*self.m_H0*ca2+self.m_h0*self.m_h0*sa2-self.m12_2*tb)/v2/cb2\
-1.5*self.lambdas[6]*tb+0.5*self.lambdas[7]*tb*tb*tb )/2.
self.lambdas[2]=( (self.m_H0*self.m_H0*sa2+self.m_h0*self.m_h0*ca2-self.m12_2*ctb)/v2/sb2\
+0.5*self.lambdas[6]*ctb*ctb*ctb-1.5*self.lambdas[7]*ctb )/2.
self.lambdas[3]=((self.m_H0*self.m_H0-self.m_h0*self.m_h0)*ca*sa+2.*self.m_Hp*self.m_Hp*sb*cb\
-self.m12_2)/v2/sb/cb-0.5*self.lambdas[6]*ctb-0.5*self.lambdas[7]*tb
self.lambdas[4]=((self.m_A0*self.m_A0-2.*self.m_Hp*self.m_Hp)*cb*sb+self.m12_2)/v2/sb/cb\
-0.5*self.lambdas[6]*ctb-0.5*self.lambdas[7]*tb;
self.lambdas[5]=(self.m12_2-self.m_A0*self.m_A0*sb*cb)/v2/sb/cb-0.5*self.lambdas[6]*ctb\
-0.5*self.lambdas[7]*tb;
m22_2 = -0.5/sb*(self.m_h0**2*ca*self.sab+self.m_H0**2*sa*cab)+self.m12_2*ctb
sinba = self.sab
perturbativity=True
if np.abs(self.lambdas).max()>8*np.pi:
perturbativity=False
return perturbativity
def test_phys_to_gen(self):
pass
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment