a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
RunnerTHDMW Class Reference

An RGE running algorithm for the THDMW parameters. More...

#include <RunnerTHDMW.h>

Detailed Description

An RGE running algorithm for the THDMW parameters.

Author
HEPfit Collaboration

Renormalization group evolution of the relevant SM and THDMW parameters

Definition at line 33 of file RunnerTHDMW.h.

Public Member Functions

virtual double RGERunnercustodialMW (double InitialValues[], unsigned long int NumberOfRGEs, double Q1, double Q2, int order, double Rpeps, double tNLOuni)
 
virtual double RGERunnerMW (double InitialValues[], unsigned long int NumberOfRGEs, double Q1, double Q2, int order, double Rpeps, double tNLOuni)
 
virtual double RGERunnerTHDMW (double InitialValues[], unsigned long int NumberOfRGEs, double Q1, double Q2, int order, double Rpeps, double tNLOuni)
 
 RunnerTHDMW (const StandardModel &SM_i)
 RunnerTHDMW constructor. More...
 
virtual ~RunnerTHDMW ()
 Runner destructor. More...
 

Public Attributes

const THDMWmyTHDMW
 

Constructor & Destructor Documentation

◆ RunnerTHDMW()

RunnerTHDMW::RunnerTHDMW ( const StandardModel SM_i)

RunnerTHDMW constructor.

Definition at line 13 of file RunnerTHDMW.cpp.

13  : myTHDMW(static_cast<const THDMW*> (&SM_i))
14 {}

◆ ~RunnerTHDMW()

RunnerTHDMW::~RunnerTHDMW ( )
virtual

Runner destructor.

Definition at line 16 of file RunnerTHDMW.cpp.

17 {};

Member Function Documentation

◆ RGERunnercustodialMW()

double RunnerTHDMW::RGERunnercustodialMW ( double  InitialValues[],
unsigned long int  NumberOfRGEs,
double  Q1,
double  Q2,
int  order,
double  Rpeps,
double  tNLOuni 
)
virtual

Definition at line 927 of file RunnerTHDMW.cpp.

928 {
929  //Define which stepping function should be used
930  const gsl_odeiv2_step_type * T = gsl_odeiv2_step_rk4;
931 
932  //Allocate space for the stepping function
933  gsl_odeiv2_step * s = gsl_odeiv2_step_alloc(T, NumberOfRGEs);
934 
935  //Define the absolute (A) and relative (R) error on y at each step.
936  //The real error will be compared to the following error estimate:
937  // A + R * |y_i|
938  gsl_odeiv2_control * c = gsl_odeiv2_control_y_new(1e-6, 0.0);
939 
940  //Allocate space for the evolutor
941  gsl_odeiv2_evolve * e = gsl_odeiv2_evolve_alloc(NumberOfRGEs);
942 
943  //Definition of the RGE system (the Jacobian is not necessary for the RK4 method; it's an empty function here)
944  gsl_odeiv2_system RGEsystem = {RGEscustodialMW, JacobianTHDMW, NumberOfRGEs, &order};
945 
946  //Set starting and end point as natural logarithmic scales (conversion from decadic log scale)
947  double t1 = Q1*log(10.0);
948  double t2 = Q2*log(10.0);
949  double tNLOuni = NLOuniscale*log(10.0);
950 
951  //Set initial step size
952  double InitialStepSize = 1e-6;
953 
954  //Run!
955  while (t1 < t2)
956  {
957  int status = gsl_odeiv2_evolve_apply (e, c, s, &RGEsystem, &t1, t2, &InitialStepSize, InitialValues);
958  if(status != GSL_SUCCESS) break;
959 
960  //intermediate checks if appropriate
961  if(RGEcheckcustodialMW(InitialValues,t1,Rpeps,tNLOuni) != 0) break;
962  }
963 
964  gsl_odeiv2_evolve_free (e);
965  gsl_odeiv2_control_free (c);
966  gsl_odeiv2_step_free (s);
967 
968  //Return the decadic log scale at which the evolution stopped
969  return t1/log(10.0);
970 }

◆ RGERunnerMW()

double RunnerTHDMW::RGERunnerMW ( double  InitialValues[],
unsigned long int  NumberOfRGEs,
double  Q1,
double  Q2,
int  order,
double  Rpeps,
double  tNLOuni 
)
virtual

Definition at line 882 of file RunnerTHDMW.cpp.

883 {
884  //Define which stepping function should be used
885  const gsl_odeiv2_step_type * T = gsl_odeiv2_step_rk4;
886 
887  //Allocate space for the stepping function
888  gsl_odeiv2_step * s = gsl_odeiv2_step_alloc(T, NumberOfRGEs);
889 
890  //Define the absolute (A) and relative (R) error on y at each step.
891  //The real error will be compared to the following error estimate:
892  // A + R * |y_i|
893  gsl_odeiv2_control * c = gsl_odeiv2_control_y_new(1e-6, 0.0);
894 
895  //Allocate space for the evolutor
896  gsl_odeiv2_evolve * e = gsl_odeiv2_evolve_alloc(NumberOfRGEs);
897 
898  //Definition of the RGE system (the Jacobian is not necessary for the RK4 method; it's an empty function here)
899  gsl_odeiv2_system RGEsystem = {RGEsMW, JacobianTHDMW, NumberOfRGEs, &order};
900 
901  //Set starting and end point as natural logarithmic scales (conversion from decadic log scale)
902  double t1 = Q1*log(10.0);
903  double t2 = Q2*log(10.0);
904  double tNLOuni = NLOuniscale*log(10.0);
905 
906  //Set initial step size
907  double InitialStepSize = 1e-6;
908 
909  //Run!
910  while (t1 < t2)
911  {
912  int status = gsl_odeiv2_evolve_apply (e, c, s, &RGEsystem, &t1, t2, &InitialStepSize, InitialValues);
913  if(status != GSL_SUCCESS) break;
914 
915  //intermediate checks if appropriate
916  if(RGEcheckMW(InitialValues,t1,Rpeps,tNLOuni) != 0) break;
917  }
918 
919  gsl_odeiv2_evolve_free (e);
920  gsl_odeiv2_control_free (c);
921  gsl_odeiv2_step_free (s);
922 
923  //Return the decadic log scale at which the evolution stopped
924  return t1/log(10.0);
925 }

◆ RGERunnerTHDMW()

double RunnerTHDMW::RGERunnerTHDMW ( double  InitialValues[],
unsigned long int  NumberOfRGEs,
double  Q1,
double  Q2,
int  order,
double  Rpeps,
double  tNLOuni 
)
virtual

Definition at line 837 of file RunnerTHDMW.cpp.

838 {
839  //Define which stepping function should be used
840  const gsl_odeiv2_step_type * T = gsl_odeiv2_step_rk4;
841 
842  //Allocate space for the stepping function
843  gsl_odeiv2_step * s = gsl_odeiv2_step_alloc(T, NumberOfRGEs);
844 
845  //Define the absolute (A) and relative (R) error on y at each step.
846  //The real error will be compared to the following error estimate:
847  // A + R * |y_i|
848  gsl_odeiv2_control * c = gsl_odeiv2_control_y_new(1e-6, 0.0);
849 
850  //Allocate space for the evolutor
851  gsl_odeiv2_evolve * e = gsl_odeiv2_evolve_alloc(NumberOfRGEs);
852 
853  //Definition of the RGE system (the Jacobian is not necessary for the RK4 method; it's an empty function here)
854  gsl_odeiv2_system RGEsystem = {RGEsTHDMW, JacobianTHDMW, NumberOfRGEs, &order};
855 
856  //Set starting and end point as natural logarithmic scales (conversion from decadic log scale)
857  double t1 = Q1*log(10.0);
858  double t2 = Q2*log(10.0);
859  double tNLOuni = NLOuniscale*log(10.0);
860 
861  //Set initial step size
862  double InitialStepSize = 1e-6;
863 
864  //Run!
865  while (t1 < t2)
866  {
867  int status = gsl_odeiv2_evolve_apply (e, c, s, &RGEsystem, &t1, t2, &InitialStepSize, InitialValues);
868  if(status != GSL_SUCCESS) break;
869 
870  //intermediate checks if appropriate
871  if(RGEcheckTHDMW(InitialValues,t1,Rpeps,tNLOuni) != 0) break;
872  }
873 
874  gsl_odeiv2_evolve_free (e);
875  gsl_odeiv2_control_free (c);
876  gsl_odeiv2_step_free (s);
877 
878  //Return the decadic log scale at which the evolution stopped
879  return t1/log(10.0);
880 }

Member Data Documentation

◆ myTHDMW

const THDMW* RunnerTHDMW::myTHDMW

Definition at line 50 of file RunnerTHDMW.h.


The documentation for this class was generated from the following files:
RGEcheckMW
int RGEcheckMW(const double InitialValues[], const double t1, const double Rpeps, const double tNLOuni)
Definition: RunnerTHDMW.cpp:550
gslpp::log
complex log(const complex &z)
Definition: gslpp_complex.cpp:342
RGEcheckcustodialMW
int RGEcheckcustodialMW(const double InitialValues[], const double t1, const double Rpeps, const double tNLOuni)
Definition: RunnerTHDMW.cpp:715
RunnerTHDMW::myTHDMW
const THDMW * myTHDMW
Definition: RunnerTHDMW.h:50
RGEsMW
int RGEsMW(double t, const double y[], double beta[], void *flags)
Definition: RunnerTHDMW.cpp:139
RGEcheckTHDMW
int RGEcheckTHDMW(const double InitialValues[], const double t1, const double Rpeps, const double tNLOuni)
Definition: RunnerTHDMW.cpp:334
RGEsTHDMW
int RGEsTHDMW(double t, const double y[], double beta[], void *flags)
Definition: RunnerTHDMW.cpp:19
JacobianTHDMW
int JacobianTHDMW(double t, const double y[], double *dfdy, double dfdt[], void *order)
Definition: RunnerTHDMW.cpp:329
RGEscustodialMW
int RGEscustodialMW(double t, const double y[], double beta[], void *flags)
Definition: RunnerTHDMW.cpp:260