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#include <cassert>
17
18
24class FindAction: public ThObservable {
25public:
26
30 FindAction(const StandardModel& SM_i);
31
36
40 double computeThValue();
41
43 gslpp::vector<double> potentialcoefficientspar;
44
45 gslpp::vector<double> rkqs(double y01, double y02, double dydr0, double r0, double dr, double epsfrac[2], double epsabs[2]);
46
47protected:
49
50private:
51 const SUSY& mySUSY;
52
53 double func(double rpar)
54 {
55 double exsol=ExactSolution(rpar, phi0par, dVpar, d2Vpar)(0);
56 return fabs(exsol)-fabs(delta_phi_cutoffpar);
57 };
58
59 double invertedpotential(double x)
60 {
62 }
63
64 double fPS(double x);
65 double Simpsonintegrand(double r, double phi, double dphi, double VphiMin_i);
66 double deformedV(double phi);
67 gslpp::vector<double> InitialConditions(double delta_phi0, double rmin, double delta_phi_cutoff, double distance, double dV_at_delta_phi0, double d2V_at_phi0);
68// gslpp::vector<double> splinepath(double x1, double x2, double x3, double Vmin0, gslpp::vector<double> dV0, double Vmin, gslpp::vector<double> dV);
69 gslpp::vector<double> ExactSolution(double r, double phi0, double dV, double d2V);
70 gslpp::vector<double> integrateProfile(double r0, double y01, double y02, double dr0, double epsfrac[2], double epsabs[2], double drmin, double rmax, double distance);
71 gslpp::vector<double> dY(double y1, double y2, double r);
72 int dYfunc(double r, const double y[], double ODE[], void *flags);
73 int dYJac(double r, const double y[], double *dfdy, double dfdt[], void *order);
74
75/*******************************************************************************
76 * GSL Function Conversion BEGIN *
77 * ****************************************************************************/
78
79template<class F>
80static double gslFunctionAdapterS( double x, void* p)
81{
82 // Here I do recover the "right" pointer, safer to use static_cast
83 // than reinterpret_cast.
84 F* function = static_cast<F*>( p );
85 return (*function)( x );
86}
87
88template<class F>
89gsl_function convertToGslFunctionS( const F& f )
90{
91 gsl_function gslFunction;
92
93 const void* p = &f;
94 assert (p != 0);
95
96 gslFunction.function = &gslFunctionAdapterS<F>;
97 // Just to eliminate the const.
98 gslFunction.params = const_cast<void*>( p );
99
100 return gslFunction;
101}
102
103/*******************************************************************************
104 * GSL Function conversion END *
105 * ****************************************************************************/
106
107};
108
109#endif /* METASTABILITY_H */
110
FindAction.
Definition: Metastability.h:24
double Simpsonintegrand(double r, double phi, double dphi, double VphiMin_i)
static double gslFunctionAdapterS(double x, void *p)
Definition: Metastability.h:80
double invertedpotential(double x)
Definition: Metastability.h:59
gslpp::vector< double > potentialcoefficientspar
Definition: Metastability.h:43
const SUSY & mySUSY
Definition: Metastability.h:51
int dYfunc(double r, const double y[], double ODE[], void *flags)
double phi0par
Definition: Metastability.h:42
gslpp::vector< double > ExactSolution(double r, double phi0, double dV, double d2V)
double computeThValue()
gslpp::vector< double > dY(double y1, double y2, double r)
gslpp::vector< double > InitialConditions(double delta_phi0, double rmin, double delta_phi_cutoff, double distance, double dV_at_delta_phi0, double d2V_at_phi0)
~FindAction()
FindAction destructor.
double x1par
Definition: Metastability.h:42
FindAction(const StandardModel &SM_i)
FindAction constructor.
int dYJac(double r, const double y[], double *dfdy, double dfdt[], void *order)
gsl_function convertToGslFunctionS(const F &f)
Definition: Metastability.h:89
double deformedV(double phi)
double d2Vpar
Definition: Metastability.h:42
double fPS(double x)
double x3par
Definition: Metastability.h:42
double x2par
Definition: Metastability.h:42
SUSYScalarPotential * mySUSYScalarPotential
Definition: Metastability.h:48
gslpp::vector< double > rkqs(double y01, double y02, double dydr0, double r0, double dr, double epsfrac[2], double epsabs[2])
double func(double rpar)
Definition: Metastability.h:53
double delta_phi_cutoffpar
Definition: Metastability.h:42
double dVpar
Definition: Metastability.h:42
gslpp::vector< double > integrateProfile(double r0, double y01, double y02, double dr0, double epsfrac[2], double epsabs[2], double drmin, double rmax, double distance)
double rpar
Definition: Metastability.h:42
A base class for SUSY models.
Definition: SUSY.h:33
SUSYScalarPotential.
double potential(gslpp::vector< double > coefficients, double field1, double field2, double field3)
A model class for the Standard Model.
A class for a model prediction of an observable.
Definition: ThObservable.h:25