1 from __future__ 
import print_function
    16 gPrime = sqrt((4.0*(Mz**2 - Mw**2))/(vEW**2)) 
    17 h_t = (sqrt(2)*Mt)/vEW 
    18 lambda_h = (Mh**2)/(2.0*vEW**2) 
    21 cli_tool = 
"../../build/bin/run_cmd_line_potential"    26     c_h = (1.0/48.0)*(9*(g**2) + 3*(gPrime**2) + 2*(6*h_t + 12*lambda_h + lambda_m));
    27     c_s = (1.0/12.0)*(2*lambda_m + 3*lambda_s)
    30     v = 
lambda T: sqrt(vEW**2 - (c_h/lambda_h)*T**2)
    33     m_h = 
lambda T: sqrt(2.0*lambda_h*(v(T)**2))
    36     m_s_Tc = sqrt(((v(Tc)**2)/2)*(lambda_m - 2*sqrt(lambda_h*lambda_s)));
    39     m_s = 
lambda T: sqrt(m_s_Tc**2 + (((lambda_m*c_h)/(2*lambda_h)) - c_s)*(Tc**2 - T**2))
    42     lambda_e_sq = (m_s_Tc**4 - lambda_m*(v(Tc)**2)*m_s_Tc**2)/(v(Tc)**4)
    45     w = 
lambda T: sqrt((m_h(T)**2 * (lambda_m*v(T)**2 - 2*m_s(T)**2)) /
    46                        (v(T)**2 * (4*lambda_e_sq + lambda_m**2)))
    49     Rh = (m_h(Tc)**2)/(w(Tc)**2)
    50     Rs = (m_s_Tc**2)/(v(Tc)**2)
    54     lambda_smin = (4.0/lambda_h)*(2*c_h**2 - lambda_h*(lambda_m/6.0)
    55         - 2*c_h*sqrt(c_h**2 - lambda_h*(lambda_m/6.0)))
    56     lambda_smax = (lambda_m**2)/(4*lambda_h)
    58     if (lambda_s < lambda_smin) 
or (lambda_s > lambda_smax):
    59         raise Exception(
"Error: for these parameters, lambda_s must be "    60                         "in the interval ({}, {}) to obtain a barrier "    61                         "between vacua at the critical temperature".format(
    62             lambda_smin, lambda_smax))
    65     potential_str = 
"(1.0/8.0)*{m_h_Tc}^2*{v_Tc}^2*(" \
    66                     "(4*{Rs}*h^2*s^2)/({Rh}*{v_Tc}^2*{w0}^2) + " \
    67                     "((h^2)/({v_Tc}^2) + (s^2)/({w0}^2) - 1)^2) " \
    68                     "- (1.0/2.0)*({Tc}^2 - {T}^2)*({c_h}*h^2 + {c_s}*s^2)"    71         "true_vac" : (v(T), 0),
    72         "false_vac" : (0, w(T)),
    73         "order_param" : v(Tc) / Tc,
    74         "potential_str" : potential_str.format(
    75             m_h_Tc=m_h(Tc), v_Tc=v(Tc), Rs=Rs, Rh=Rh, w0=w(Tc), Tc=Tc, T=T, c_h=c_h, c_s=c_s
    81     :param data: output of generate_potential...    82     :return: dict containing "cli_output","action"    88         "--global-minimum", str(data[
"true_vac"][0]), str(data[
"true_vac"][1]),
    89         "--local-minimum", str(data[
"false_vac"][0]), str(data[
"false_vac"][1]),
    90         "--output-path", 
"output",
    93         "--potential", data[
"potential_str"]
    98     cli_output = subprocess.check_output(command).splitlines()
   102     for entry 
in cli_output:
   103         if entry.startswith(
"# Action"):
   104             action = 
float(entry.split(
" ")[2])
   106     return {
"cli_output" : cli_output, 
"action": action}
   108 if __name__ == 
"__main__":
   110     parser = argparse.ArgumentParser(description=
'SM + singlet: Z2-symmetric example from arxiv:1107.5441')
   112     parser.add_argument(
'-T', 
'--temp', type=float, required=
True,
   113                         help=
'create potential at this temperature')
   114     parser.add_argument(
'-Tc', 
'--crit-temp', type=float, required=
True,
   115                         help=
'critical temperature for this potential')
   116     parser.add_argument(
'--lambda-m', type=float, required=
True,
   117                         help=
'mixed quartic coupling parameter')
   118     parser.add_argument(
'--lambda-s', type=float, required=
True,
   119                         help=
'singlet quartic coupling parameter')
   121     args = parser.parse_args()
   127     print(output[
"action"])
 
def generate_potential(T, Tc, lambda_m, lambda_s)