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 GeneralTHDM * myGTHDM
 

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{}
const GeneralTHDM * myGTHDM

◆ ~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 260 of file GeneralTHDMRunner.cpp.

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

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: