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

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

#include <GeneralTHDMRunner.h>

Detailed Description

An RGE running algorithm for the GeneralTHDM parameters.

Author
HEPfit Collaboration

Renormalization group evolution of the relevant SM and GeneralTHDM parameters

Definition at line 21 of file GeneralTHDMRunner.h.

Public Member Functions

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

Public Attributes

const GeneralTHDMmyGTHDM
 

Constructor & Destructor Documentation

◆ GeneralTHDMRunner()

GeneralTHDMRunner::GeneralTHDMRunner ( const StandardModel SM_i)

GeneralTHDMRunner constructor.

Definition at line 13 of file GeneralTHDMRunner.cpp.

13  : myGTHDM(static_cast<const GeneralTHDM*> (&SM_i))
14 {}

◆ ~GeneralTHDMRunner()

GeneralTHDMRunner::~GeneralTHDMRunner ( )
virtual

Runner destructor.

Definition at line 16 of file GeneralTHDMRunner.cpp.

17 {};

Member Function Documentation

◆ RGEGeneralTHDMRunner()

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

Definition at line 261 of file GeneralTHDMRunner.cpp.

262 {
263  //Define which stepping function should be used
264  const gsl_odeiv2_step_type * T = gsl_odeiv2_step_rk4;
265 
266  //Allocate space for the stepping function
267  gsl_odeiv2_step * s = gsl_odeiv2_step_alloc(T, NumberOfRGEs);
268 
269  //Define the absolute (A) and relative (R) error on y at each step.
270  //The real error will be compared to the following error estimate:
271  // A + R * |y_i|
272  gsl_odeiv2_control * c = gsl_odeiv2_control_y_new(1e-6, 0.0);
273 
274  //Allocate space for the evolutor
275  gsl_odeiv2_evolve * e = gsl_odeiv2_evolve_alloc(NumberOfRGEs);
276 
277  //Definition of the RGE system (the Jacobian is not necessary for the RK4 method; it's an empty function here)
278  gsl_odeiv2_system RGEsystem = {RGEsGTHDM, JacobianGTHDM, NumberOfRGEs, &order};
279 
280  //Set starting and end point as natural logarithmic scales (conversion from decadic log scale)
281  double t1 = Q1*log(10.0);
282  double t2 = Q2*log(10.0);
283  double tNLOuni = NLOuniscale*log(10.0);
284 
285  //Set initial step size
286  double InitialStepSize = 1e-6;
287 
288  //Run!
289  while (t1 < t2)
290  {
291  int status = gsl_odeiv2_evolve_apply (e, c, s, &RGEsystem, &t1, t2, &InitialStepSize, InitialValues);
292  if(status != GSL_SUCCESS) break;
293 
294  //intermediate checks if appropriate
295  if(RGEcheckGTHDM(InitialValues,t1,Rpeps,tNLOuni) != 0) break;
296  }
297 
298  gsl_odeiv2_evolve_free (e);
299  gsl_odeiv2_control_free (c);
300  gsl_odeiv2_step_free (s);
301 
302  //Return the decadic log scale at which the evolution stopped
303  return t1/log(10.0);
304 }

Member Data Documentation

◆ myGTHDM

const GeneralTHDM* GeneralTHDMRunner::myGTHDM

Definition at line 36 of file GeneralTHDMRunner.h.


The documentation for this class was generated from the following files:
gslpp::log
complex log(const complex &z)
Definition: gslpp_complex.cpp:342
RGEsGTHDM
int RGEsGTHDM(double t, const double y[], double beta[], void *flags)
Definition: GeneralTHDMRunner.cpp:19
RGEcheckGTHDM
int RGEcheckGTHDM(const double InitialValues[], const double t1, const double Rpeps, const double tNLOuni)
Definition: GeneralTHDMRunner.cpp:215
JacobianGTHDM
int JacobianGTHDM(double t, const double y[], double *dfdy, double dfdt[], void *order)
Definition: GeneralTHDMRunner.cpp:210
GeneralTHDMRunner::myGTHDM
const GeneralTHDM * myGTHDM
Definition: GeneralTHDMRunner.h:36