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

#include <GeneralTHDMEffectivePot.h>

Detailed Description

Definition at line 20 of file GeneralTHDMEffectivePot.h.

Public Member Functions

 EffectivePot_GTHDM (const StandardModel &SM_i)
 EffectivePot_GTHDM constructor. More...
 
gslpp::matrix< double > Mneutral_2 (const double S1, const double S2, const double S3)
 
double potentialfunction (const double *Svec)
 
const double * potentialminimizer (double S1_start, double S2_start, double S3_start)
 

Private Attributes

gslpp::matrix< double > mat_neutral
 

Constructor & Destructor Documentation

◆ EffectivePot_GTHDM()

EffectivePot_GTHDM::EffectivePot_GTHDM ( const StandardModel SM_i)

EffectivePot_GTHDM constructor.

Definition at line 15 of file GeneralTHDMEffectivePot.cpp.

17 : mat_neutral(4,4,0.)
18 {}

Member Function Documentation

◆ Mneutral_2()

gslpp::matrix< double > EffectivePot_GTHDM::Mneutral_2 ( const double  S1,
const double  S2,
const double  S3 
)

Definition at line 60 of file GeneralTHDMEffectivePot.cpp.

61 {
62 
63  mat_neutral.assign(0,0, S1);
64  mat_neutral.assign(1,1, 2.*S2);
65  mat_neutral.assign(2,2, 3.*S1);
66  mat_neutral.assign(3,3, 4.*S3*S3);
67 
68  return mat_neutral;
69 }

◆ potentialfunction()

double EffectivePot_GTHDM::potentialfunction ( const double *  Svec)

Definition at line 46 of file GeneralTHDMEffectivePot.cpp.

47 {
48  const double S1 = Svec[0];
49  const double S2 = Svec[1];
50  const double S3 = Svec[2];
51 
52  double Func = 3./2.*S1*S1*S1*S1 + 3.*S1*S1*S1 - 5.*S1 + S2*S2;
53 
54  double TraceMn2 = (Mneutral_2(S1,S2,S3))(0,0) + (Mneutral_2(S1,S2,S3))(1,1) +
55  (Mneutral_2(S1,S2,S3))(2,2) + (Mneutral_2(S1,S2,S3))(3,3);
56 
57  return Func + TraceMn2;
58 }

◆ potentialminimizer()

const double * EffectivePot_GTHDM::potentialminimizer ( double  S1_start,
double  S2_start,
double  S3_start 
)

Definition at line 20 of file GeneralTHDMEffectivePot.cpp.

21 {
22  ROOT::Math::Minimizer *minimizer = ROOT::Math::Factory::CreateMinimizer("Minuit","Migrad");
23 
24  minimizer->SetMaxFunctionCalls(10000);
25  minimizer->SetMaxIterations(1000);
26  minimizer->SetTolerance(0.01);
27 
28  ROOT::Math::Functor fwrap(this,&EffectivePot_GTHDM::potentialfunction,3);
29 
30  minimizer->SetFunction(fwrap);
31  minimizer->SetVariable(0, "S1", S1_start, 0.1);
32  minimizer->SetVariable(1, "S2", S2_start, 0.1);
33  minimizer->SetVariable(2, "S3", S3_start, 0.1);
34 
35  minimizer->Minimize();
36 
37  const double *minimum = minimizer->X();
38 
39 // std::cout << "min_S1 = " << minimum[0] << std::endl;
40 // std::cout << "min_S2 = " << minimum[1] << std::endl;
41 // std::cout << "min_S3 = " << minimum[2] << std::endl << std::endl;
42 
43  return(minimum);
44 }

Member Data Documentation

◆ mat_neutral

gslpp::matrix<double> EffectivePot_GTHDM::mat_neutral
private

Definition at line 37 of file GeneralTHDMEffectivePot.h.


The documentation for this class was generated from the following files:
gslpp::matrix< double >::assign
void assign(const size_t &i, const size_t &j, const double &a)
Definition: gslpp_matrix_double.cpp:108
EffectivePot_GTHDM::Mneutral_2
gslpp::matrix< double > Mneutral_2(const double S1, const double S2, const double S3)
Definition: GeneralTHDMEffectivePot.cpp:60
EffectivePot_GTHDM::mat_neutral
gslpp::matrix< double > mat_neutral
Definition: GeneralTHDMEffectivePot.h:37
EffectivePot_GTHDM::potentialfunction
double potentialfunction(const double *Svec)
Definition: GeneralTHDMEffectivePot.cpp:46