a Code for the Combination of Indirect and Direct Constraints on High Energy Physics Models Logo
Metastability.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016 HEPfit Collaboration
3  *
4  *
5  * For the licensing terms see doc/COPYING.
6  */
7 
8 #ifndef METASTABILITY_H
9 #define METASTABILITY_H
10 
11 #include <gslpp.h>
12 #include <gsl/gsl_math.h>
13 #include "ThObservable.h"
14 #include "ScalarPotential.h"
15 #include "SUSY.h"
16 
22 class FindAction: public ThObservable {
23 public:
24 
28  FindAction(const StandardModel& SM_i);
29 
33  ~FindAction();
34 
38  double computeThValue();
39 
42 
43  gslpp::vector<double> rkqs(double y01, double y02, double dydr0, double r0, double dr, double epsfrac[2], double epsabs[2]);
44 
45 protected:
47 
48 private:
49  const SUSY& mySUSY;
50 
51  double func(double rpar)
52  {
53  double exsol=ExactSolution(rpar, phi0par, dVpar, d2Vpar)(0);
54  return fabs(exsol)-fabs(delta_phi_cutoffpar);
55  };
56 
57  double invertedpotential(double x)
58  {
60  }
61 
62  double fPS(double x);
63  double Simpsonintegrand(double r, double phi, double dphi, double VphiMin_i);
64  double deformedV(double phi);
65  gslpp::vector<double> InitialConditions(double delta_phi0, double rmin, double delta_phi_cutoff, double distance, double dV_at_delta_phi0, double d2V_at_phi0);
66 // gslpp::vector<double> splinepath(double x1, double x2, double x3, double Vmin0, gslpp::vector<double> dV0, double Vmin, gslpp::vector<double> dV);
67  gslpp::vector<double> ExactSolution(double r, double phi0, double dV, double d2V);
68  gslpp::vector<double> integrateProfile(double r0, double y01, double y02, double dr0, double epsfrac[2], double epsabs[2], double drmin, double rmax, double distance);
69  gslpp::vector<double> dY(double y1, double y2, double r);
70  int dYfunc(double r, const double y[], double ODE[], void *flags);
71  int dYJac(double r, const double y[], double *dfdy, double dfdt[], void *order);
72 
73 /*******************************************************************************
74  * GSL Function Conversion BEGIN *
75  * ****************************************************************************/
76 
77 template<class F>
78 static double gslFunctionAdapterS( double x, void* p)
79 {
80  // Here I do recover the "right" pointer, safer to use static_cast
81  // than reinterpret_cast.
82  F* function = static_cast<F*>( p );
83  return (*function)( x );
84 }
85 
86 template<class F>
87 gsl_function convertToGslFunctionS( const F& f )
88 {
89  gsl_function gslFunction;
90 
91  const void* p = &f;
92  assert (p != 0);
93 
94  gslFunction.function = &gslFunctionAdapterS<F>;
95  // Just to eliminate the const.
96  gslFunction.params = const_cast<void*>( p );
97 
98  return gslFunction;
99 }
100 
101 /*******************************************************************************
102  * GSL Function conversion END *
103  * ****************************************************************************/
104 
105 };
106 
107 #endif /* METASTABILITY_H */
108 
FindAction::rpar
double rpar
Definition: Metastability.h:40
FindAction::convertToGslFunctionS
gsl_function convertToGslFunctionS(const F &f)
Definition: Metastability.h:86
ScalarPotential.h
SUSYScalarPotential
SUSYScalarPotential.
Definition: ScalarPotential.h:18
ThObservable.h
FindAction::InitialConditions
gslpp::vector< double > InitialConditions(double delta_phi0, double rmin, double delta_phi_cutoff, double distance, double dV_at_delta_phi0, double d2V_at_phi0)
Definition: Metastability.cpp:340
gslpp.h
FindAction::phi0par
double phi0par
Definition: Metastability.h:40
StandardModel
A model class for the Standard Model.
Definition: StandardModel.h:477
FindAction::Simpsonintegrand
double Simpsonintegrand(double r, double phi, double dphi, double VphiMin_i)
Definition: Metastability.cpp:312
FindAction::gslFunctionAdapterS
static double gslFunctionAdapterS(double x, void *p)
Definition: Metastability.h:77
FindAction::rkqs
gslpp::vector< double > rkqs(double y01, double y02, double dydr0, double r0, double dr, double epsfrac[2], double epsabs[2])
FindAction::x1par
double x1par
Definition: Metastability.h:40
FindAction::delta_phi_cutoffpar
double delta_phi_cutoffpar
Definition: Metastability.h:40
FindAction::d2Vpar
double d2Vpar
Definition: Metastability.h:40
FindAction::FindAction
FindAction(const StandardModel &SM_i)
FindAction constructor.
Definition: Metastability.cpp:18
FindAction::invertedpotential
double invertedpotential(double x)
Definition: Metastability.h:57
SUSY
A base class for SUSY models.
Definition: SUSY.h:26
FindAction::ExactSolution
gslpp::vector< double > ExactSolution(double r, double phi0, double dV, double d2V)
Definition: Metastability.cpp:409
FindAction::fPS
double fPS(double x)
FindAction
FindAction.
Definition: Metastability.h:22
FindAction::mySUSY
const SUSY & mySUSY
Definition: Metastability.h:49
SUSYScalarPotential::potential
double potential(gslpp::vector< double > coefficients, double field1, double field2, double field3)
Definition: ScalarPotential.cpp:118
gslpp::vector< double >
A class for constructing and defining operations on real vectors.
Definition: gslpp_vector_double.h:33
FindAction::dYJac
int dYJac(double r, const double y[], double *dfdy, double dfdt[], void *order)
FindAction::deformedV
double deformedV(double phi)
Definition: Metastability.cpp:317
ThObservable
A class for a model prediction of an observable.
Definition: ThObservable.h:25
FindAction::mySUSYScalarPotential
SUSYScalarPotential * mySUSYScalarPotential
Definition: Metastability.h:46
FindAction::integrateProfile
gslpp::vector< double > integrateProfile(double r0, double y01, double y02, double dr0, double epsfrac[2], double epsabs[2], double drmin, double rmax, double distance)
Definition: Metastability.cpp:457
FindAction::~FindAction
~FindAction()
FindAction destructor.
Definition: Metastability.cpp:26
FindAction::dVpar
double dVpar
Definition: Metastability.h:40
FindAction::x3par
double x3par
Definition: Metastability.h:40
SUSY.h
FindAction::dYfunc
int dYfunc(double r, const double y[], double ODE[], void *flags)
FindAction::func
double func(double rpar)
Definition: Metastability.h:51
FindAction::potentialcoefficientspar
gslpp::vector< double > potentialcoefficientspar
Definition: Metastability.h:41
FindAction::dY
gslpp::vector< double > dY(double y1, double y2, double r)
Definition: Metastability.cpp:548
FindAction::computeThValue
double computeThValue()
Definition: Metastability.cpp:31
FindAction::x2par
double x2par
Definition: Metastability.h:40