BSMPT 3.0.7
BSMPT - Beyond the Standard Model Phase Transitions : A C++ package for the computation of the EWPT in BSM models
Loading...
Searching...
No Matches
BSMPT::Models::Class_Template Class Reference

The Class_Template class Template for implementing a new model. More...

#include <BSMPT/models/ClassTemplate.h>

Inheritance diagram for BSMPT::Models::Class_Template:
BSMPT::Class_Potential_Origin

Public Member Functions

 Class_Template (const ISMConstants &smConstants)
 
void ReadAndSet (const std::string &linestr, std::vector< double > &par) override
 
std::vector< std::string > addLegendCT () const override
 
std::vector< std::string > addLegendTemp () const override
 
std::vector< std::string > addLegendTripleCouplings () const override
 
std::vector< std::string > addLegendVEV () const override
 
void set_gen (const std::vector< double > &par) override
 
void set_CT_Pot_Par (const std::vector< double > &par) override
 
void write () const override
 
void TripleHiggsCouplings () override
 
std::vector< double > calc_CT () const override
 
void SetCurvatureArrays () override
 
bool CalculateDebyeSimplified () override
 
bool CalculateDebyeGaugeSimplified () override
 
double VTreeSimplified (const std::vector< double > &v) const override
 
double VCounterSimplified (const std::vector< double > &v) const override
 
void Debugging (const std::vector< double > &input, std::vector< double > &output) const override
 
- Public Member Functions inherited from BSMPT::Class_Potential_Origin
 Class_Potential_Origin (const ISMConstants &smConstants)
 
const auto & Get_Curvature_Higgs_L2 () const
 Get_Curvature_Higgs_L2 allows const ref access to the L_{(S)}^{ij} Tensor.
 
const auto & Get_Curvature_Higgs_L3 () const
 Get_Curvature_Higgs_L3 allows const ref access to the L_{(S)}^{ijk} Tensor.
 
const auto & Get_Curvature_Higgs_L4 () const
 Get_Curvature_Higgs_L4 allows const ref access to the L_{(S)}^{ijkl} Tensor.
 
const auto & Get_Curvature_Gauge_G2H2 () const
 Get_Curvature_Gauge_G2H2 allows const ref access to the G^{abij} Tensor.
 
const auto & Get_Curvature_Lepton_F2H1 () const
 Get_Curvature_Lepton_F2H1 allows const ref access to the Y^{IJk} Tensor for Leptons.
 
const auto & Get_Curvature_Lepton_F2 () const
 Get_Curvature_Lepton_F2 allows const ref access to the Y^{IJ} Tensor for Leptons.
 
const auto & Get_Curvature_Quark_F2H1 () const
 Get_Curvature_Quark_F2H1 allows const ref access to the Y^{IJk} Tensor for Quarks.
 
const auto & Get_Curvature_Quark_F2 () const
 Get_Curvature_Quark_F2 allows const ref access to the Y^{IJ} Tensor for Quarks.
 
const std::vector< std::size_t > & Get_VevOrder () const
 Get_VevOrder allows const ref access to the VevOrder vector.
 
double get_scale () const
 get_scale
 
void set_scale (double scale_new)
 set_scale sets the MSBar renormalisation scale to scale_new
 
std::size_t get_nPar () const
 get_nPar
 
std::size_t get_nParCT () const
 get_nParCT
 
std::size_t get_nVEV () const
 get_nVEV
 
std::vector< double > get_vevTreeMin () const
 get_vevTreeMin
 
double get_vevTreeMin (const std::size_t &k) const
 get_vevTreeMin
 
std::vector< double > get_parStored () const
 get_parStored
 
std::vector< double > get_parCTStored () const
 get_parCTStored
 
std::size_t get_NGauge () const
 get_NGauge
 
std::size_t get_NQuarks () const
 get_NQuarks
 
std::size_t get_NHiggs () const
 get_NHiggs
 
std::size_t get_NChargedHiggs () const
 get_NChargedHiggs
 
std::size_t get_NNeutralHiggs () const
 get_NNeutralHiggs
 
std::size_t get_NLepton () const
 get_NLepton
 
ModelID::ModelIDs get_Model () const
 get_Model
 
const std::vector< std::vector< double > > & get_DebyeHiggs () const
 get_DebyeHiggs get the Debye corrections to the Higgs mass matrix
 
void set_InputLineNumber (int InputLineNumber_in)
 set_InputLineNumber
 
double get_TripleHiggsCorrectionsTreePhysical (std::size_t i, std::size_t j, std::size_t k) const
 get_TripleHiggsCorrectionsTreePhysical
 
double get_TripleHiggsCorrectionsCTPhysical (std::size_t i, std::size_t j, std::size_t k) const
 get_TripleHiggsCorrectionsCTPhysical
 
double get_TripleHiggsCorrectionsCWPhysical (std::size_t i, std::size_t j, std::size_t k) const
 get_TripleHiggsCorrectionsCWPhysical
 
void setUseIndexCol (std::string legend)
 
bool getUseIndexCol ()
 
void sym2Dim (std::vector< std::vector< double > > &Tensor2Dim, std::size_t Nk1, std::size_t Nk2)
 sym2Dim Symmetrize scalar 2-dim tensor
 
void sym3Dim (std::vector< std::vector< std::vector< double > > > &Tensor3Dim, std::size_t Nk1, std::size_t Nk2, std::size_t Nk3)
 sym3Dim Symmetrize scalar 3-dim tensor
 
void sym4Dim (std::vector< std::vector< std::vector< std::vector< double > > > > &Tensor4Dim, std::size_t Nk1, std::size_t Nk2, std::size_t Nk3, std::size_t Nk4)
 sym4Dim Symmetrize scalar 4-dim tensor
 
void initVectors ()
 
virtual double VEff (const std::vector< double > &v, double Temp=0, int diff=0, int Order=1) const
 
double VTree (const std::vector< double > &v, int diff=0, bool ForceExplicitCalculation=false) const
 
double CounterTerm (const std::vector< double > &v, int diff=0, bool ForceExplicitCalculation=false) const
 
double V1Loop (const std::vector< double > &v, double Temp, int diff) const
 
virtual double EWSBVEV (const std::vector< double > &v) const
 
virtual void SetEWVEVZero (std::vector< double > &sol) const
 SetEWVEVZero Set all VEV directions in sol-vector to zero that contibute to EW VEV.
 
void set_All (const std::vector< double > &par, const std::vector< double > &parCT)
 
void CalculatePhysicalCouplings ()
 
std::vector< double > WeinbergFirstDerivative () const
 
std::vector< double > WeinbergSecondDerivative () const
 
Eigen::MatrixXd WeinbergSecondDerivativeAsMatrixXd () const
 
std::vector< double > WeinbergThirdDerivative () const
 
std::vector< double > WeinbergForthDerivative () const
 
void CalculateDebye (bool forceCalculation=false)
 
void CalculateDebyeGauge ()
 
void Prepare_Triple ()
 
std::vector< double > HiggsMassesSquared (const std::vector< double > &v, const double &Temp=0, const int &diff=0) const
 
Eigen::MatrixXd HiggsMassMatrix (const std::vector< double > &v, double Temp=0, int diff=0) const
 HiggsMassMatrix calculates the Higgs mass matrix.
 
std::vector< double > GaugeMassesSquared (const std::vector< double > &v, const double &Temp=0, const int &diff=0) const
 
std::vector< double > QuarkMassesSquared (const std::vector< double > &v, const int &diff=0) const
 
std::vector< double > LeptonMassesSquared (const std::vector< double > &v, const int &diff=0) const
 
std::vector< std::complex< double > > QuarkMasses (const std::vector< double > &v) const
 
Eigen::MatrixXcd QuarkMassMatrix (const std::vector< double > &v) const
 QuarkMassMatrix calculates the Mass Matrix for the Quarks of the form $ M^{IJ} = Y^{IJ} + Y^{IJk} v_k $.
 
std::vector< std::complex< double > > LeptonMasses (const std::vector< double > &v) const
 
Eigen::MatrixXcd LeptonMassMatrix (const std::vector< double > &v) const
 LeptonMassMatrix calculates the Mass Matrix for the Leptons of the form $ M^{IJ} = Y^{IJ} + Y^{IJk} v_k $.
 
double fbase (double MassSquaredA, double MassSquaredB) const
 
double fbaseTri (double MassSquaredA, double MassSquaredB, double MassSquaredC) const
 
double fbaseFour (double MassSquaredA, double MassSquaredB, double MassSquaredC, double MassSquaredD) const
 
double CWTerm (double MassSquared, double cb, int diff=0) const
 
double FCW (double MassSquared) const
 
double boson (double MassSquared, double Temp, double cb, int diff=0) const
 Calculation of the bosonic std::size_tegral + Coleman-Weinberg potential without taking d.o.f. std::size_to account.
 
double boson_legacy (double MassSquared, double Temp, double cb, int diff=0) const
 
double fermion (double MassSquared, double Temp, int diff=0) const
 Calculation of the fermionic std::size_tegral + Coleman-Weinberg potential without taking d.o.f. std::size_to account.
 
double fermion_legacy (double Mass, double Temp, int diff=0) const
 
double Vl (double MassSquared, double Temp, int n, int diff=0) const
 
double Vsf (double MassSquared, double Temp, int n, int diff=0) const
 
double Vsb (double MassSquaredIn, double Temp, int n, int diff=0) const
 
void resetbools ()
 
std::vector< double > MinimizeOrderVEV (const std::vector< double > &VEVminimizer) const
 
std::vector< double > FirstDerivativeOfEigenvalues (const Eigen::Ref< Eigen::MatrixXcd > M, const Eigen::Ref< Eigen::MatrixXcd > MDiff) const
 
std::vector< double > SecondDerivativeOfEigenvaluesNonRepeated (const Eigen::Ref< Eigen::MatrixXd > M, const Eigen::Ref< Eigen::MatrixXd > MDiffX, const Eigen::Ref< Eigen::MatrixXd > MDiffY, const Eigen::Ref< Eigen::MatrixXd > MDiffXY) const
 
bool CheckNLOVEV (const std::vector< double > &v) const
 
void CheckImplementation (const int &WhichMinimizer=Minimizer::WhichMinimizerDefault) const
 
void FindSignSymmetries ()
 FindSignSymmetries checks for all possible sign changes in the VEV components and checks for all possible Z2 symmetries.
 
void SetUseTreeLevel (bool val)
 
std::pair< std::vector< double >, std::vector< double > > initModel (std::string linestr)
 
std::vector< double > initModel (const std::vector< double > &par)
 
std::vector< double > resetScale (const double &newScale)
 resetScale changes the MSBar scale to newScale
 
double CalculateRatioAlpha (const std::vector< double > &vev_symmetric, const std::vector< double > &vev_broken, const double &Temp) const
 
Eigen::VectorXd NablaVCT (const std::vector< double > &v) const
 NablaVCT.
 
Eigen::MatrixXd HessianCT (const std::vector< double > &v) const
 HessianWeinberg.
 
virtual std::vector< double > GetCTIdentities () const
 GetCTIdentities.
 

Public Attributes

double ms
 
double lambda
 
double dms
 
double dlambda
 
double dT
 
double yt
 
double g
 
- Public Attributes inherited from BSMPT::Class_Potential_Origin
const ISMConstants SMConstants
 SMConstants The SM constants used by the model.
 
bool UseVTreeSimplified = false
 UseVTreeSimplified Decides wether VTreeSimplified will be used or not. VTreeSimplified returns 0 if UseVTreeSimplified is false Set in constructor of the implemented models.
 
bool UseVCounterSimplified = false
 UseVCounterSimplified Decides wether VCounterSimplified will be used or not. VCounterSimplified returns 0 if UseVCounterSimplified is false Set in constructor of the implemented models.
 
std::vector< std::vector< double > > SignSymmetries
 

Additional Inherited Members

- Protected Attributes inherited from BSMPT::Class_Potential_Origin
bool UseTreeLevel = false
 UseTreeLevel Enforces VEff to only use the tree-level potential.
 
double scale
 
std::size_t nPar = 0
 
std::size_t nParCT = 0
 
std::vector< double > parStored
 
std::vector< double > parCTStored
 
ModelID::ModelIDs Model = ModelID::ModelIDs::NotSet
 
std::size_t NNeutralHiggs = 0
 
std::size_t NChargedHiggs = 0
 
std::size_t NHiggs = NNeutralHiggs + NChargedHiggs
 
std::size_t NGauge = 4
 
std::size_t NQuarks = 12
 
std::size_t NColour = 3
 NColour Number of colours of the quarks. Do not change this in the current version as we only investigate extended Higgs sectors. If you want to extend the other sectors as well the Debye corrections have to be calculated by hand.
 
std::size_t NLepton = 9
 
std::size_t nVEV = 0
 
std::vector< double > VEVSymmetric
 
std::vector< double > vevTree
 
std::vector< double > vevTreeMin
 
std::vector< double > TripleHiggsCorrectionsCW
 
std::vector< std::vector< std::vector< double > > > TripleHiggsCorrectionsCWPhysical
 
std::vector< std::vector< std::vector< double > > > TripleHiggsCorrectionsTreePhysical
 
std::vector< std::vector< std::vector< double > > > TripleHiggsCorrectionsCTPhysical
 
bool SetCurvatureDone = false
 SetCurvatureDone Used to check if the tensors are set.
 
bool CalcCouplingsdone = false
 CalcCouplingsdone Used to check if CalculatePhysicalCouplings has already been called.
 
bool CalculatedTripleCopulings = false
 CalculatedTripleCopulings Used to check if TripleHiggsCouplings has already been called.
 
int InputLineNumber = -1
 InputLineNumber Used for the error message in fbaseTri.
 
bool UseIndexCol = false
 
std::vector< double > HiggsVev
 
std::vector< double > Curvature_Higgs_L1
 
std::vector< std::vector< double > > Curvature_Higgs_L2
 
std::vector< std::vector< std::vector< double > > > Curvature_Higgs_L3
 
std::vector< std::vector< std::vector< std::vector< double > > > > Curvature_Higgs_L4
 
std::vector< double > Curvature_Higgs_CT_L1
 
std::vector< std::vector< double > > Curvature_Higgs_CT_L2
 
std::vector< std::vector< std::vector< double > > > Curvature_Higgs_CT_L3
 
std::vector< std::vector< std::vector< std::vector< double > > > > Curvature_Higgs_CT_L4
 
std::vector< std::vector< std::vector< std::vector< double > > > > Curvature_Gauge_G2H2
 
std::vector< std::vector< std::vector< std::complex< double > > > > Curvature_Quark_F2H1
 
std::vector< std::vector< std::complex< double > > > Curvature_Quark_F2
 
std::vector< std::vector< std::vector< std::complex< double > > > > Curvature_Lepton_F2H1
 
std::vector< std::vector< std::complex< double > > > Curvature_Lepton_F2
 
std::vector< double > MassSquaredHiggs
 MassSquaredHiggs Stores the masses of the Higgs Bosons calculated in CalculatePhysicalCouplings.
 
std::vector< double > MassSquaredGauge
 MassSquaredGauge Stores the masses of the gauge Bosons calculated in CalculatePhysicalCouplings.
 
std::vector< double > MassSquaredQuark
 MassSquaredQuark Stores the masses of the quarks calculated in CalculatePhysicalCouplings.
 
std::vector< double > MassSquaredLepton
 MassSquaredLepton Stores the masses of the leptons calculated in CalculatePhysicalCouplings.
 
std::vector< std::vector< double > > HiggsRotationMatrix
 
std::vector< std::vector< std::vector< std::vector< double > > > > Couplings_Higgs_Quartic
 Couplings_Higgs_Quartic Stores the quartic Higgs couplings in the mass base.
 
std::vector< std::vector< std::vector< double > > > Couplings_Higgs_Triple
 Couplings_Higgs_Triple Stores the triple Higgs couplings in the mass base.
 
std::vector< std::vector< std::vector< std::vector< double > > > > Couplings_Gauge_Higgs_22
 Couplings_Gauge_Higgs_22 Stores the couplings between two Higgs and two gauge bosons in the mass base.
 
std::vector< std::vector< std::vector< double > > > Couplings_Gauge_Higgs_21
 Couplings_Gauge_Higgs_21 Stores the coupling between two gauge and one Higgs boson in the mass base.
 
std::vector< std::vector< std::vector< std::vector< std::complex< double > > > > > Couplings_Quark_Higgs_22
 Couplings_Quark_Higgs_22 Stores the couplings between two quarks and two Higgs bosons in the mass base.
 
std::vector< std::vector< std::vector< std::complex< double > > > > Couplings_Quark_Higgs_21
 Couplings_Quark_Higgs_21 Stores the couplings between two quarks and one Higgs boson in the mass base.
 
std::vector< std::vector< std::vector< std::vector< std::complex< double > > > > > Couplings_Lepton_Higgs_22
 Couplings_Lepton_Higgs_22 Stores the couplings between two leptons and two Higgs bosons in the mass base.
 
std::vector< std::vector< std::vector< std::complex< double > > > > Couplings_Lepton_Higgs_21
 Couplings_Quark_Higgs_21 Stores the couplings between two leptons and one Higgs boson in the mass base.
 
std::vector< std::vector< std::vector< double > > > LambdaGauge_3
 LambdaGauge_3 Stores the Lambda_{(G)}^{abi} tensor.
 
std::vector< std::vector< std::vector< double > > > LambdaHiggs_3
 LambdaHiggs_3 Stores the Lambda_{(S)}^{ijk} tensor.
 
std::vector< std::vector< std::vector< double > > > LambdaHiggs_3_CT
 LambdaHiggs_3 Stores the Lambda_{(S)}^{ijk} tensor for the counterterm parameters.
 
std::vector< std::vector< std::vector< std::complex< double > > > > LambdaQuark_3
 LambdaQuark_3 Stores the Lambda_{(F)}^{IJk} tensor for quarks , describing the derivative of Lambda_{(F)}^{IJ} w.r.t. the Higgs field k.
 
std::vector< std::vector< std::vector< std::complex< double > > > > LambdaLepton_3
 LambdaLepton_3 Stores the Lambda_{(F)}^{IJk} tensor for leptons , describing the derivative of Lambda_{(F)}^{IJ} w.r.t. the Higgs field k.
 
std::vector< std::vector< std::vector< std::vector< std::complex< double > > > > > LambdaQuark_4
 LambdaQuark_4 Stores the Lambda_{(F)}^{IJkm} tensor for quarks , describing the derivative of Lambda_{(F)}^{IJ} w.r.t. the Higgs fields k and m.
 
std::vector< std::vector< std::vector< std::vector< std::complex< double > > > > > LambdaLepton_4
 LambdaLepton_4 Stores the Lambda_{(F)}^{IJkm} tensor for leptons , describing the derivative of Lambda_{(F)}^{IJ} w.r.t. the Higgs fields k and m.
 
std::vector< std::vector< double > > DebyeHiggs
 DebyeHiggs Stores the debye corrections to the mass matrix of the Higgs bosons.
 
std::vector< std::vector< double > > DebyeGauge
 DebyeGauge Stores the debye corrections to the mass matrix of the gauge bosons.
 
std::vector< std::size_t > VevOrder
 VevOrder Stores the matching order used in MinimizeOrderVEV, set in the constructor of the model.
 

Detailed Description

The Class_Template class Template for implementing a new model.

Constructor & Destructor Documentation

◆ Class_Template()

BSMPT::Models::Class_Template::Class_Template ( const ISMConstants smConstants)

Here you have to adjust NNeutralHiggs, NChargedHiggs, nPar (number of Lagrangian parameters AFTER using the tadpole conditions), nParCT (number of counterterms) as well as nVEV (number of VEVs for minimization)

Member Function Documentation

◆ addLegendCT()

std::vector< std::string > BSMPT::Models::Class_Template::addLegendCT ( ) const
overridevirtual

returns a string which tells the user the chronological order of the counterterms. Use this to complement the legend of the given input file

Implements BSMPT::Class_Potential_Origin.

◆ addLegendTemp()

std::vector< std::string > BSMPT::Models::Class_Template::addLegendTemp ( ) const
overridevirtual

returns a string which tells the user the chronological order of the VEVs and the critical temperature. Use this to complement the legend of the given input file

Implements BSMPT::Class_Potential_Origin.

◆ addLegendTripleCouplings()

std::vector< std::string > BSMPT::Models::Class_Template::addLegendTripleCouplings ( ) const
overridevirtual

returns a string which tells the user the chronological order of the Triple Higgs couplings. Use this to complement the legend of the given input file

Implements BSMPT::Class_Potential_Origin.

◆ addLegendVEV()

std::vector< std::string > BSMPT::Models::Class_Template::addLegendVEV ( ) const
overridevirtual

returns a string which tells the user the chronological order of the VEVs. Use this to complement the legend of the given input file

Implements BSMPT::Class_Potential_Origin.

◆ calc_CT()

std::vector< double > BSMPT::Models::Class_Template::calc_CT ( ) const
overridevirtual

Calculates the counterterms. Here you need to work out the scheme and implement the formulas.

Implements BSMPT::Class_Potential_Origin.

◆ CalculateDebyeGaugeSimplified()

bool BSMPT::Models::Class_Template::CalculateDebyeGaugeSimplified ( )
overridevirtual

You can give the explicit Debye corrections to the gauge boson mass matrix with this function if you know it. Otherwise it is calculated via CalculateDebyeGauge(). If you know the corrections use this and let the function return true, this will save you a lot of computing time.

Implements BSMPT::Class_Potential_Origin.

◆ CalculateDebyeSimplified()

bool BSMPT::Models::Class_Template::CalculateDebyeSimplified ( )
overridevirtual

You can give the explicit Debye corrections to the Higgs mass matrix with this function if you know it. Otherwise it is calculated via CalculateDebye(). If you know the corrections use this and let the function return true, this will save you a lot of computing time.

Implements BSMPT::Class_Potential_Origin.

◆ Debugging()

void BSMPT::Models::Class_Template::Debugging ( const std::vector< double > &  input,
std::vector< double > &  output 
) const
overridevirtual

This is a possible debugging function.

Implements BSMPT::Class_Potential_Origin.

◆ ReadAndSet()

void BSMPT::Models::Class_Template::ReadAndSet ( const std::string &  linestr,
std::vector< double > &  par 
)
overridevirtual

Reads the string linestr and sets the parameter point

Implements BSMPT::Class_Potential_Origin.

◆ set_CT_Pot_Par()

void BSMPT::Models::Class_Template::set_CT_Pot_Par ( const std::vector< double > &  par)
overridevirtual

set your counterterm parameters from the entries of par as well as the entries of Curvature_Higgs_CT_L1 to Curvature_Higgs_CT_L4.

Implements BSMPT::Class_Potential_Origin.

◆ set_gen()

void BSMPT::Models::Class_Template::set_gen ( const std::vector< double > &  par)
overridevirtual

Set Class Object as well as the VEV configuration

Implements BSMPT::Class_Potential_Origin.

◆ SetCurvatureArrays()

void BSMPT::Models::Class_Template::SetCurvatureArrays ( )
overridevirtual

This will set all the tensors needed to describe the tree-level Lagrangian except for the counterterms in the potential. This has to be specified in the model file.

Implements BSMPT::Class_Potential_Origin.

◆ TripleHiggsCouplings()

void BSMPT::Models::Class_Template::TripleHiggsCouplings ( )
overridevirtual

Calculates the triple Higgs couplings at NLO in the mass basis.

Use the vector TripleHiggsCorrectionsCWPhysical to save your couplings and set the nTripleCouplings to the number of couplings you want as output.

Implements BSMPT::Class_Potential_Origin.

◆ VCounterSimplified()

double BSMPT::Models::Class_Template::VCounterSimplified ( const std::vector< double > &  v) const
overridevirtual

You can give the explicit form of your counterterm potential here. This speeds up the computation time.

Implements BSMPT::Class_Potential_Origin.

◆ VTreeSimplified()

double BSMPT::Models::Class_Template::VTreeSimplified ( const std::vector< double > &  v) const
overridevirtual

You can give the explicit form of your tree-level potential here. This speeds up the computation time.

Implements BSMPT::Class_Potential_Origin.

◆ write()

void BSMPT::Models::Class_Template::write ( ) const
overridevirtual

console output of all Parameters

Implements BSMPT::Class_Potential_Origin.


The documentation for this class was generated from the following files: