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{}
const THDMW * myTHDMW
Definition: RunnerTHDMW.h:50
A base class for symmetric Two-Higgs-Doublet-Manohar-Wise models.
Definition: THDMW.h:233

◆ ~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}
int RGEcheckcustodialMW(const double InitialValues[], const double t1, const double Rpeps, const double tNLOuni)
int RGEscustodialMW(double t, const double y[], double beta[], void *flags)
int JacobianTHDMW(double t, const double y[], double *dfdy, double dfdt[], void *order)
Test Observable.

◆ 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}
int RGEcheckMW(const double InitialValues[], const double t1, const double Rpeps, const double tNLOuni)
int RGEsMW(double t, const double y[], double beta[], void *flags)

◆ 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}
int RGEcheckTHDMW(const double InitialValues[], const double t1, const double Rpeps, const double tNLOuni)
int RGEsTHDMW(double t, const double y[], double beta[], void *flags)
Definition: RunnerTHDMW.cpp:19

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: