gambit is hosted by Hepforge, IPPP Durham
GAMBIT  v1.5.0-2191-ga4742ac
a Global And Modular Bsm Inference Tool

#include <MSSMSpec_head.hpp>

Inheritance diagram for Gambit::SpecBit::MSSMSpec< MI >:
Collaboration diagram for Gambit::SpecBit::MSSMSpec< MI >:

Public Types

typedef MSSMSpec< MI > Self
 These typedefs are inherited, but the name lookup doesn't work so smoothly in templated wrapper classes, so need to help them along: More...
 
typedef Self::MTget MTget
 
typedef Self::MTset MTset
 
typedef Self::GetterMaps GetterMaps
 
typedef Self::SetterMaps SetterMaps
 
typedef SpecTraits< Self >::Model Model
 
typedef SpecTraits< Self >::Input Input
 
- Public Types inherited from Gambit::Spec< MSSMSpec< MI > >
typedef MSSMSpec< MI > D
 
typedef Spec< DSelf
 
typedef SpecTraits< D >::Contents Contents
 Note: Wrapper need to define a specialisation of SpecTraits, which typedefs Model and Input. More...
 
typedef SpecTraits< D >::Model Model
 
typedef SpecTraits< D >::Input Input
 
typedef MapTypes< D, MapTag::GetMTget
 
typedef MapTypes< D, MapTag::SetMTset
 
typedef std::map< Par::Tags, MapCollection< MTget > > GetterMaps
 Will need a map of map collections for both the getters and setters, containing the map collections for the permitted parameter types. More...
 
typedef std::map< Par::Tags, MapCollection< MTset > > SetterMaps
 

Public Member Functions

virtual double GetScale () const
 Returns the renormalisation scale of parameters. More...
 
virtual void SetScale (double scale)
 Manually set the renormalisation scale of parameters somewhat dangerous to allow this but may be needed. More...
 
virtual void RunToScaleOverride (double scale)
 Run spectrum to new scale. More...
 
 MSSMSpec ()
 
 MSSMSpec (MI, str backend_name, str backend_version)
 
virtual ~MSSMSpec ()
 
Modelget_Model ()
 
Inputget_Input ()
 
const Modelget_Model () const
 
const Inputget_Input () const
 
virtual double get_lsp_mass (int &particle_type, int &row, int &col) const
 
virtual int get_numbers_stable_particles () const
 There may be more than one new stable particle this method will tell you how many. More...
 
virtual std::string AccessError (std::string state) const
 
virtual void add_to_SLHAea (int slha_version, SLHAstruct &slha) const
 Add spectrum information to an SLHAea object (if possible) More...
 
template<class MSSMlike >
void get_lowe_data_from (MSSMlike &othermodel)
 TODO: Need to implement this properly... More...
 
void get_external_spectrum (typename MI::Model &othermodel)
 
- Public Member Functions inherited from Gambit::Spec< MSSMSpec< MI > >
std::string getName () const
 Main public interface functions. More...
 
 Spec ()
 Constructor This uses the "Contents" class to verify (once, not every construction) that this wrapper provides all the basic functionality that it is supposed to. More...
 
virtual ~Spec ()
 Virtual destructor. More...
 
virtual std::unique_ptr< SubSpectrumclone () const
 CRTP-style polymorphic clone function Now derived classes will not need to re-implement the clone function. More...
 
bool has (const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool=SafeBool(true)) const
 Spec member function definitions. More...
 
double get (const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool=SafeBool(true)) const
 
void set (const Par::Tags, const double, const str &, const SafeBool=SafeBool(true))
 
bool has (const Par::Tags, const str &, const int, const SpecOverrideOptions=use_overrides, const SafeBool=SafeBool(true)) const
 One index. More...
 
double get (const Par::Tags, const str &, const int, const SpecOverrideOptions=use_overrides, const SafeBool=SafeBool(true)) const
 
void set (const Par::Tags, const double, const str &, const int, const SafeBool=SafeBool(true))
 
bool has (const Par::Tags, const str &, const int, const int, const SpecOverrideOptions=use_overrides) const
 Two indices. More...
 
double get (const Par::Tags, const str &, const int, const int, const SpecOverrideOptions=use_overrides) const
 
void set (const Par::Tags, const double, const str &, const int, const int)
 
Modelget_Model ()
 
const Modelget_Model () const
 
Inputget_Input ()
 
const Inputget_Input () const
 
Modelmodel ()
 Get model object on which to call function pointers. More...
 
const Modelmodel () const
 Return it as const if we are a const object. More...
 
Inputinput ()
 Get struct containing any extra data input on SubSpectrum object creation. More...
 
const Inputinput () const
 Return it as const if we are a const object. More...
 
- Public Member Functions inherited from Gambit::SubSpectrum
virtual const std::map< int, int > & PDG_translator () const
 TODO: extra PDB overloads to handle all the one and two index cases (well all the ones that are feasible...) More...
 
 SubSpectrum ()
 Constructors/destructors. More...
 
virtual ~SubSpectrum ()
 
virtual void writeSLHAfile (int, const str &) const
 Dump out spectrum information to an SLHA file (if possible) More...
 
virtual SLHAstruct getSLHAea (int) const
 Get spectrum information in SLHAea format (if possible) More...
 
virtual double hard_upper () const
 Limits to RGE running; warning/error raised if running beyond these is attempted. More...
 
virtual double soft_upper () const
 
virtual double soft_lower () const
 
virtual double hard_lower () const
 
void RunToScale (double scale, const int behave=0)
 Run spectrum to a new scale This function is a wrapper for RunToScaleOverride which automatically checks limits and raises warnings. More...
 
void set_override (const Par::Tags, const double, const str &, const bool allow_new=false, const bool decouple=false)
 Parameter override functions. More...
 
void set_override (const Par::Tags, const double, const str &, const int, const bool allow_new=false, const bool decouple=false)
 
void set_override (const Par::Tags, const double, const str &, const int, const int, const bool allow_new=false)
 
void set_override_vector (const Par::Tags, const double, const std::vector< str > &, const bool allow_new=false, const bool decouple=false)
 Vector override functions. More...
 
void set_override_vector (const Par::Tags, const double, const std::vector< str > &, const std::vector< int >, const bool allow_new=false, const bool decouple=false)
 
void set_override_vector (const Par::Tags, const double, const std::vector< str > &, const int, const bool allow_new=false, const bool decouple=false)
 
void set_override_vector (const Par::Tags, const double, const str &, const std::vector< int >, const bool allow_new=false, const bool decouple=false)
 
double safeget (const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const
 safeget functions, by Abram More...
 
double safeget (const Par::Tags, const str &, const int, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const
 
double safeget (const Par::Tags, const str &, const int, const int, const SpecOverrideOptions=use_overrides) const
 
double safeget (const Par::Tags, const int, const int, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const
 
double safeget (const Par::Tags, const std::pair< int, int >, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const
 
double safeget (const Par::Tags, const std::pair< str, int >, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const
 
void set_override (const Par::Tags, const double, const int, const int, const bool allow_new=false, const bool decouple=false)
 PDB overloads for setters. More...
 
void set_override (const Par::Tags, const double, const std::pair< int, int >, const bool allow_new=false, const bool decouple=false)
 
void set_override (const Par::Tags, const double, const std::pair< str, int >, const bool allow_new=false, const bool decouple=false)
 PDB overloads of set_override functions. More...
 
bool has (const Par::Tags, const int, const int, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const
 PDB getter/checker overloads. More...
 
double get (const Par::Tags, const int, const int, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const
 
bool has (const Par::Tags, const std::pair< int, int >, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const
 
double get (const Par::Tags, const std::pair< int, int >, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const
 
bool has (const Par::Tags, const std::pair< str, int >, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const
 
double get (const Par::Tags, const std::pair< str, int >, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const
 

Static Public Member Functions

static int index_offset ()
 Interface function overrides. More...
 
static GetterMaps fill_getter_maps ()
 Map filler overrides. More...
 
static SetterMaps fill_setter_maps ()
 
- Static Public Member Functions inherited from Gambit::Spec< MSSMSpec< MI > >
static const std::map< Par::Tags, MapCollection< MTget > > fill_getter_maps ()
 
static const std::map< Par::Tags, MapCollection< MTset > > fill_setter_maps ()
 
static int index_offset ()
 Get integer offset convention used by internal model class (needed by getters which take indices) By default assume no offset. More...
 

Public Attributes

MI model_interface
 
DummyInput dummyinput
 
- Public Attributes inherited from Gambit::Spec< MSSMSpec< MI > >
DummyModel dummymodel
 Default "null" versions of get_Model and get_Input, to be used if wrapper does not override them. More...
 
DummyInput dummyinput
 

Private Attributes

str backend_name
 
str backend_version
 

Static Private Attributes

static const int _index_offset = MI::index_offset
 

Additional Inherited Members

- Static Public Attributes inherited from Gambit::Spec< MSSMSpec< MI > >
static const GetterMaps getter_maps
 Initialise maps (uses filler overrides from DerivedSpec if defined) More...
 
static const SetterMaps setter_maps
 
- Protected Attributes inherited from Gambit::SubSpectrum
std::map< Par::Tags, OverrideMapsoverride_maps
 Map of override maps. More...
 

Detailed Description

template<class MI>
class Gambit::SpecBit::MSSMSpec< MI >

Definition at line 39 of file MSSMSpec_head.hpp.

Member Typedef Documentation

◆ GetterMaps

template<class MI>
typedef Self::GetterMaps Gambit::SpecBit::MSSMSpec< MI >::GetterMaps

Definition at line 73 of file MSSMSpec_head.hpp.

◆ Input

template<class MI>
typedef SpecTraits<Self>::Input Gambit::SpecBit::MSSMSpec< MI >::Input

Definition at line 76 of file MSSMSpec_head.hpp.

◆ Model

template<class MI>
typedef SpecTraits<Self>::Model Gambit::SpecBit::MSSMSpec< MI >::Model

Definition at line 75 of file MSSMSpec_head.hpp.

◆ MTget

template<class MI>
typedef Self::MTget Gambit::SpecBit::MSSMSpec< MI >::MTget

Definition at line 71 of file MSSMSpec_head.hpp.

◆ MTset

template<class MI>
typedef Self::MTset Gambit::SpecBit::MSSMSpec< MI >::MTset

Definition at line 72 of file MSSMSpec_head.hpp.

◆ Self

template<class MI>
typedef MSSMSpec<MI> Gambit::SpecBit::MSSMSpec< MI >::Self

These typedefs are inherited, but the name lookup doesn't work so smoothly in templated wrapper classes, so need to help them along:

Definition at line 70 of file MSSMSpec_head.hpp.

◆ SetterMaps

template<class MI>
typedef Self::SetterMaps Gambit::SpecBit::MSSMSpec< MI >::SetterMaps

Definition at line 74 of file MSSMSpec_head.hpp.

Constructor & Destructor Documentation

◆ MSSMSpec() [1/2]

template<class MI >
Gambit::SpecBit::MSSMSpec< MI >::MSSMSpec ( )

Definition at line 73 of file MSSMSpec.hpp.

74  {}

◆ MSSMSpec() [2/2]

template<class MI>
Gambit::SpecBit::MSSMSpec< MI >::MSSMSpec ( MI  mi,
str  backend_name,
str  backend_version 
)

Definition at line 65 of file MSSMSpec.hpp.

◆ ~MSSMSpec()

template<class MI >
Gambit::SpecBit::MSSMSpec< MI >::~MSSMSpec ( )
virtual

Definition at line 77 of file MSSMSpec.hpp.

78  {}

Member Function Documentation

◆ AccessError()

template<class MI >
std::string Gambit::SpecBit::MSSMSpec< MI >::AccessError ( std::string  state) const
virtual

Definition at line 209 of file MSSMSpec.hpp.

210  {
211  std::string errormsg;
212  errormsg = "Error accessing "+ state + " element is out of bounds";
213  return errormsg;
214  }

◆ add_to_SLHAea()

template<class MI >
void Gambit::SpecBit::MSSMSpec< MI >::add_to_SLHAea ( int  ,
SLHAstruct  
) const
virtual

Add spectrum information to an SLHAea object (if possible)

Reimplemented from Gambit::SubSpectrum.

Definition at line 82 of file MSSMSpec.hpp.

References Gambit::slhahelp::add_MSSM_spectrum_to_SLHAea(), Gambit::SpecBit::MSSMSpec< MI >::backend_name, Gambit::SpecBit::MSSMSpec< MI >::backend_version, Gambit::gambit_version(), Gambit::SLHAea_add(), Gambit::SLHAea_add_block(), and Gambit::SLHAea_block_exists().

83  {
84  std::ostringstream comment;
85 
86  // SPINFO block
87  // TODO: This needs to become more sophisticated to deal with data potentially
88  // produced by different LE and HE spectrum sources. For now whichever subspectrum
89  // adds this block first will "win".
90  if(not SLHAea_block_exists(slha, "SPINFO"))
91  {
92  SLHAea_add_block(slha, "SPINFO");
93  SLHAea_add(slha, "SPINFO", 1, "GAMBIT, using "+backend_name);
94  SLHAea_add(slha, "SPINFO", 2, gambit_version()+" (GAMBIT); "+backend_version+" ("+backend_name+")");
95  }
96 
97  // All other MSSM blocks
98  slhahelp::add_MSSM_spectrum_to_SLHAea(*this, slha, slha_version);
99  }
void SLHAea_add_block(SLHAstruct &, const str &name, const double scale=-1)
Add a new block to an SLHAea object, with or without a scale.
void SLHAea_add(SLHAstruct &slha, const str &block, const int index, const double value, const str &comment="", const bool overwrite=false)
Add an entry to an SLHAea object (if overwrite=false, only if it doesn&#39;t already exist) ...
void add_MSSM_spectrum_to_SLHAea(const SubSpectrum &mssmspec, SLHAstruct &slha, int slha_version)
Add an entire MSSM spectrum to an SLHAea object.
bool SLHAea_block_exists(SLHAstruct &slha, const str &block)
Check if a block exists in an SLHAea object.
str & gambit_version()
Statically construct a string containing the full GAMBIT version information and return a reference t...
Definition: version.cpp:32
Here is the call graph for this function:

◆ fill_getter_maps()

template<class MI >
MSSMSpec< MI >::GetterMaps Gambit::SpecBit::MSSMSpec< MI >::fill_getter_maps ( )
static

Map filler overrides.

Fillers for "Running" parameters.

mass2 - mass dimension 2 parameters

Definition at line 430 of file MSSMSpec.hpp.

References Gambit::Par::dimensionless, Gambit::initSet(), Gambit::Par::mass1, Gambit::Par::mass2, Gambit::Par::Pole_Mass, and Gambit::Par::Pole_Mixing.

Here is the call graph for this function:

◆ fill_setter_maps()

◆ get_external_spectrum()

template<class MI>
void Gambit::SpecBit::MSSMSpec< MI >::get_external_spectrum ( typename MI::Model &  othermodel)
inline

Definition at line 139 of file MSSMSpec_head.hpp.

140  {
141  model_interface.model = othermodel;
142  return;
143  }

◆ get_Input() [1/2]

template<class MI>
Input& Gambit::SpecBit::MSSMSpec< MI >::get_Input ( )
inline

Definition at line 101 of file MSSMSpec_head.hpp.

101 { return dummyinput; /*unused here, but needs to be defined for the interface*/ }

◆ get_Input() [2/2]

template<class MI>
const Input& Gambit::SpecBit::MSSMSpec< MI >::get_Input ( ) const
inline

Definition at line 103 of file MSSMSpec_head.hpp.

103 { return dummyinput; /*unused here, but needs to be defined for the interface*/ }

◆ get_lowe_data_from()

template<class MI>
template<class MSSMlike >
void Gambit::SpecBit::MSSMSpec< MI >::get_lowe_data_from ( MSSMlike &  othermodel)
inline

TODO: Need to implement this properly...

Copy low energy spectrum information from another model object

Definition at line 119 of file MSSMSpec_head.hpp.

120  {
121  // Maybe we can copy the pole masses etc directly, but since I am not sure how to do that, for now I am just copying the soft parameters and recomputing the pole masses. Will have to chat to Peter about this.
122  // Update: Yeah Peter says we definitely should copy the pole and drbar masses directly :).
123 
124  // Actually, we may want to instead write out the data from one object into SLHAea, and then read it into the other. That will let us copy data out of (say) softsusy objects into flexiblesusy ones, and vice-versa, more easily. Of course that will be restricted to the SLHA compatible models... Perhaps we can overload this function to deal with various inputs.
125  //model = othermodel;
126  typename MI::Model& model = model_interface.model;
127 
128  model.set_scale( othermodel.get_scale() );
129  model.set_Yu( othermodel.get_Yu() );
130 
131  //model.calculate_DRbar_parameters();
132  //model.calculate_pole_masses();
133 
134  return;
135  }
Model & model()
Get model object on which to call function pointers.
Definition: spec_head.hpp:234

◆ get_lsp_mass()

template<class MI >
double Gambit::SpecBit::MSSMSpec< MI >::get_lsp_mass ( int particle_type,
int row,
int col 
) const
virtual

sneutrinos 1

up squarks 2

down squarks 3

sleptons 4

charginos 5

gluino 6

Definition at line 115 of file MSSMSpec.hpp.

References Gambit::SpecBit::MSSMSpec< MI >::model_interface.

116  {
117  row = -1; col = -1; particle_type =-1;//set default
118  double mlsp = fabs(model_interface.model.get_physical().MChi(0)); //most common lsp
119  particle_type = 0;
120  row = 0;
121 
123  double temp = model_interface.model.get_physical().MSv(0);
124  if (temp < mlsp) {
125  mlsp = temp;
126  particle_type = 1;
127  row=0;
128  }
129 
131  temp = model_interface.model.get_physical().MSu(0);
132  if (temp < mlsp) {
133  mlsp = temp;
134  particle_type = 2;
135  row=0;
136  }
137 
139  temp = model_interface.model.get_physical().MSd(0);
140  if (temp < mlsp) {
141  mlsp = temp;
142  particle_type = 3;
143  row=0;
144  }
145 
147  temp = model_interface.model.get_physical().MSe(0);
148  if (temp < mlsp) {
149  mlsp = temp;
150  particle_type = 4;
151  row=0;
152  }
153 
155  temp = fabs(model_interface.model.get_physical().MCha(0));
156  if (temp < mlsp) {
157  mlsp = temp;
158  particle_type = 5;
159  row=0;
160  }
161 
163  temp = fabs(model_interface.model.get_physical().MGlu);
164  if (temp < mlsp) {
165  mlsp = temp;
166  particle_type = 6;
167  row=0;
168  }
169 
170  //We have no gravitino mass right now. this should be added.
171  // /// gravitino -1
172  // temp = displayGravitino();
173  // if (temp < mlsp) {
174  // mlsp = temp; posi = 0; posj = 0; particle_type = -1; }
175 
176  return mlsp;
177  }

◆ get_Model() [1/2]

template<class MI>
Model& Gambit::SpecBit::MSSMSpec< MI >::get_Model ( )
inline

Definition at line 100 of file MSSMSpec_head.hpp.

100 { return model_interface.model; }

◆ get_Model() [2/2]

template<class MI>
const Model& Gambit::SpecBit::MSSMSpec< MI >::get_Model ( ) const
inline

Definition at line 102 of file MSSMSpec_head.hpp.

102 { return model_interface.model; }

◆ get_numbers_stable_particles()

template<class MI >
int Gambit::SpecBit::MSSMSpec< MI >::get_numbers_stable_particles ( ) const
virtual

There may be more than one new stable particle this method will tell you how many.

If more than zero you probbaly need to know what model you are working on, so we don't give all stable particles

Reimplemented from Gambit::SubSpectrum.

Definition at line 181 of file MSSMSpec.hpp.

181  {
182  return 1;
183  }

◆ GetScale()

template<class MI >
double Gambit::SpecBit::MSSMSpec< MI >::GetScale ( ) const
virtual

Returns the renormalisation scale of parameters.

Reimplemented from Gambit::SubSpectrum.

Definition at line 198 of file MSSMSpec.hpp.

References Gambit::SpecBit::MSSMSpec< MI >::model_interface.

Referenced by mssm_manipulate(), mssm_print(), Gambit::SpecBit::running_test(), and Gambit::SpecBit::specbit_test_func2().

199  {
200  return model_interface.model.get_scale();
201  }
Here is the caller graph for this function:

◆ index_offset()

template<class MI>
static int Gambit::SpecBit::MSSMSpec< MI >::index_offset ( )
inlinestatic

Interface function overrides.

Definition at line 79 of file MSSMSpec_head.hpp.

79 {return _index_offset;}
static const int _index_offset

◆ RunToScaleOverride()

template<class MI >
void Gambit::SpecBit::MSSMSpec< MI >::RunToScaleOverride ( double  )
virtual

Run spectrum to new scale.

Functions to be overridden in classes derived from Spec<Derived> (i.e. the final wrappers)

Reimplemented from Gambit::SubSpectrum.

Definition at line 193 of file MSSMSpec.hpp.

References Gambit::SpecBit::MSSMSpec< MI >::model_interface.

194  {
195  model_interface.model.run_to(scale);
196  }

◆ SetScale()

template<class MI >
void Gambit::SpecBit::MSSMSpec< MI >::SetScale ( double  )
virtual

Manually set the renormalisation scale of parameters somewhat dangerous to allow this but may be needed.

Reimplemented from Gambit::SubSpectrum.

Definition at line 203 of file MSSMSpec.hpp.

References Gambit::SpecBit::MSSMSpec< MI >::model_interface.

Referenced by mssm_manipulate().

204  {
205  model_interface.model.set_scale(scale);
206  }
Here is the caller graph for this function:

Member Data Documentation

◆ _index_offset

template<class MI>
const int Gambit::SpecBit::MSSMSpec< MI >::_index_offset = MI::index_offset
staticprivate

Definition at line 65 of file MSSMSpec_head.hpp.

◆ backend_name

template<class MI>
str Gambit::SpecBit::MSSMSpec< MI >::backend_name
private

Definition at line 63 of file MSSMSpec_head.hpp.

Referenced by Gambit::SpecBit::MSSMSpec< MI >::add_to_SLHAea().

◆ backend_version

template<class MI>
str Gambit::SpecBit::MSSMSpec< MI >::backend_version
private

Definition at line 64 of file MSSMSpec_head.hpp.

Referenced by Gambit::SpecBit::MSSMSpec< MI >::add_to_SLHAea().

◆ dummyinput

template<class MI>
DummyInput Gambit::SpecBit::MSSMSpec< MI >::dummyinput

Definition at line 94 of file MSSMSpec_head.hpp.

◆ model_interface


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