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

Virtual base class for interacting with spectrum generator output. More...

#include <subspectrum.hpp>

Inheritance diagram for Gambit::SubSpectrum:
Collaboration diagram for Gambit::SubSpectrum:

Public Member Functions

virtual bool has (const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const =0
 Getters/Setters etc. More...
 
virtual double get (const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const =0
 
virtual bool has (const Par::Tags, const str &, const int, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const =0
 
virtual double get (const Par::Tags, const str &, const int, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const =0
 
virtual bool has (const Par::Tags, const str &, const int, const int, const SpecOverrideOptions=use_overrides) const =0
 
virtual double get (const Par::Tags, const str &, const int, const int, const SpecOverrideOptions=use_overrides) const =0
 
virtual void set (const Par::Tags, const double, const str &, const SafeBool check_antiparticle=SafeBool(true))=0
 
virtual void set (const Par::Tags, const double, const str &, const int, const SafeBool check_antiparticle=SafeBool(true))=0
 
virtual void set (const Par::Tags, const double, const str &, const int, const int)=0
 
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 std::string getName () const =0
 Main public interface functions. More...
 
virtual std::unique_ptr< SubSpectrumclone () const =0
 Clone the SubSpectrum object. More...
 
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 void add_to_SLHAea (int, SLHAstruct &) const
 Add spectrum information to an SLHAea object (if possible) More...
 
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 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
 
virtual void RunToScaleOverride (double)
 Run spectrum to new scale. More...
 
virtual double GetScale () const
 Returns the renormalisation scale of parameters. More...
 
virtual void SetScale (double)
 Manually set the renormalisation scale of parameters somewhat dangerous to allow this but may be needed. More...
 
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...
 

Protected Attributes

std::map< Par::Tags, OverrideMapsoverride_maps
 Map of override maps. More...
 

Private Attributes

const std::map< int, intempty_map
 
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 std::map< Par::Tags, OverrideMapscreate_override_maps ()
 Initialiser function for override_maps. More...
 

Detailed Description

Virtual base class for interacting with spectrum generator output.

Definition at line 87 of file subspectrum.hpp.

Constructor & Destructor Documentation

◆ SubSpectrum()

Gambit::SubSpectrum::SubSpectrum ( )
inline

Constructors/destructors.

Definition at line 92 of file subspectrum.hpp.

std::map< Par::Tags, OverrideMaps > override_maps
Map of override maps.
static std::map< Par::Tags, OverrideMaps > create_override_maps()
Initialiser function for override_maps.
Definition: subspectrum.cpp:65

◆ ~SubSpectrum()

virtual Gambit::SubSpectrum::~SubSpectrum ( )
inlinevirtual

Definition at line 93 of file subspectrum.hpp.

References Gambit::Printers::HDF5::getName().

93 {}
Here is the call graph for this function:

Member Function Documentation

◆ add_to_SLHAea()

virtual void Gambit::SubSpectrum::add_to_SLHAea ( int  ,
SLHAstruct  
) const
inlinevirtual

Add spectrum information to an SLHAea object (if possible)

Reimplemented in Gambit::MSSMSimpleSpec, Gambit::SpecBit::MSSMSpec< MI >, Gambit::SLHASimpleSpec< Derived >, Gambit::SLHASimpleSpec< SMSimpleSpec >, and Gambit::SLHASimpleSpec< MSSMSimpleSpec >.

Definition at line 111 of file subspectrum.hpp.

Referenced by getSLHAea(), and Gambit::Spectrum::getSLHAea().

111 {}
Here is the caller graph for this function:

◆ clone()

◆ create_override_maps()

std::map< Par::Tags, OverrideMaps > Gambit::SubSpectrum::create_override_maps ( )
staticprivate

Initialiser function for override_maps.

Initialiser function for empty map of override maps.

Definition at line 65 of file subspectrum.cpp.

References Gambit::Par::get_all().

66  {
67  std::map<Par::Tags,OverrideMaps> tmp;
68  std::vector<Par::Tags> all = Par::get_all();
69  for(std::vector<Par::Tags>::iterator it = all.begin(); it!=all.end(); ++it)
70  {
71  tmp[*it];
72  }
73  return tmp;
74  }
std::vector< Tags > get_all()
Here is the call graph for this function:

◆ get() [1/6]

virtual double Gambit::SubSpectrum::get ( const Par::Tags  ,
const str ,
const SpecOverrideOptions  = use_overrides,
const SafeBool  check_antiparticle = SafeBool(true) 
) const
pure virtual

Implemented in Gambit::Spec< DerivedSpec >, Gambit::Spec< DiracSingletDM_Z2SimpleSpec >, Gambit::Spec< ScalarSingletDM_Z2SimpleSpec >, Gambit::Spec< MSSMSpec< MI > >, Gambit::Spec< SMSimpleSpec >, Gambit::Spec< Derived >, Gambit::Spec< MDMSpec< MI > >, Gambit::Spec< MajoranaSingletDM_Z2SimpleSpec >, Gambit::Spec< ScalarSingletDM_Z2Spec< MI > >, Gambit::Spec< ScalarSingletDM_Z3SimpleSpec >, Gambit::Spec< VectorSingletDM_Z2SimpleSpec >, Gambit::Spec< MSSMSimpleSpec >, Gambit::Spec< ScalarSingletDM_Z3Spec< MI > >, and Gambit::Spec< SMHiggsSimpleSpec >.

Referenced by Gambit::SpecBit::add_extra_MSSM_parameter_combinations(), Gambit::slhahelp::add_MSSM_spectrum_to_SLHAea(), Gambit::DecayBit::chargino_plus_1_decays_smallsplit(), Gambit::SpecBit::check_perturb_MDM(), Gambit::DarkBit::DD_couplings_DiracSingletDM_Z2(), Gambit::DarkBit::DD_couplings_MajoranaSingletDM_Z2(), Gambit::DarkBit::DD_couplings_VectorSingletDM_Z2(), Gambit::DecayBit::DiracSingletDM_Higgs_decays(), Gambit::slhahelp::family_state_mix_matrix(), Gambit::Spectrum::get(), Gambit::slhahelp::get_gauge_admix_for_family_state(), Gambit::SpecBit::get_invisibles(), Gambit::slhahelp::get_mixing_element(), Gambit::slhahelp::get_Pole_Mixing_col(), Gambit::slhahelp::get_Pole_Mixing_row(), Gambit::DarkBit::get_ScalarSingletDM_DD_couplings(), Gambit::PrecisionBit::GM2C_SUSY(), main(), Gambit::DecayBit::MajoranaSingletDM_Higgs_decays(), Gambit::slhahelp::mass_es_closest_to_family(), Gambit::PrecisionBit::mh_from_MSSM_spectrum(), Gambit::PrecisionBit::mh_from_ScalarSingletDM_Z2_spectrum(), Gambit::PrecisionBit::mh_from_ScalarSingletDM_Z3_spectrum(), Gambit::PrecisionBit::mh_from_SM_spectrum(), Gambit::SpecBit::MSSM_higgs_couplings_pwid(), Gambit::DecayBit::MSSM_inv_Higgs_BF(), Gambit::MSSM_mA_to_MSSM_mhud(), Gambit::MSSMatX_to_MSSMatQ(), Gambit::ColliderBit::MSSMLikeHiggs_ModelParameters(), Gambit::SpecBit::MSSMspectrum_test(), Gambit::PrecisionBit::mw_from_DiracSingletDM_Z2_spectrum(), Gambit::PrecisionBit::mw_from_MajoranaSingletDM_Z2_spectrum(), Gambit::PrecisionBit::mw_from_MSSM_spectrum(), Gambit::PrecisionBit::mw_from_ScalarSingletDM_Z2_spectrum(), Gambit::PrecisionBit::mw_from_ScalarSingletDM_Z3_spectrum(), Gambit::PrecisionBit::mw_from_SM_spectrum(), Gambit::PrecisionBit::mw_from_VectorSingletDM_Z2_spectrum(), Gambit::DarkBit::RD_spectrum_MSSM(), Gambit::SpecBit::ScalarSingletDM_higgs_couplings_pwid(), Gambit::DecayBit::ScalarSingletDM_Higgs_decays(), Gambit::ColliderBit::set_SMLikeHiggs_ModelParameters(), Gambit::SLHAea_add_from_subspec(), Gambit::SMlike_higgs_PDG_code(), Gambit::DecayBit::stau_1_decays_smallsplit(), Gambit::DarkBit::TH_ProcessCatalog_DiracSingletDM_Z2(), Gambit::DarkBit::TH_ProcessCatalog_DS5_MSSM(), Gambit::DarkBit::TH_ProcessCatalog_DS_MSSM(), Gambit::DarkBit::TH_ProcessCatalog_MajoranaSingletDM_Z2(), Gambit::DarkBit::TH_ProcessCatalog_ScalarSingletDM_Z2(), Gambit::DarkBit::TH_ProcessCatalog_ScalarSingletDM_Z3(), Gambit::DarkBit::TH_ProcessCatalog_VectorSingletDM_Z2(), Gambit::PrecisionBit::update_H_masses(), Gambit::DecayBit::VectorSingletDM_Higgs_decays(), and Gambit::DecayBit::Z_gamma_chi_0_MSSM_tree().

Here is the caller graph for this function:

◆ get() [2/6]

◆ get() [3/6]

◆ get() [4/6]

double Gambit::SubSpectrum::get ( const Par::Tags  partype,
const int  pdg_code,
const int  context,
const SpecOverrideOptions  check_overrides = use_overrides,
const SafeBool  check_antiparticle = SafeBool(true) 
) const

Definition at line 88 of file subspectrum.cpp.

92  {
93  return get( partype, std::make_pair(pdg_code,context), check_overrides, check_antiparticle );
94  }

◆ get() [5/6]

double Gambit::SubSpectrum::get ( const Par::Tags  partype,
const std::pair< int, int pdgpr,
const SpecOverrideOptions  check_overrides = use_overrides,
const SafeBool  check_antiparticle = SafeBool(true) 
) const

Definition at line 106 of file subspectrum.cpp.

References Gambit::Models::partmap::long_name(), and Gambit::Models::ParticleDB().

110  {
111  return get( partype, Models::ParticleDB().long_name(pdgpr), check_overrides, check_antiparticle );
112  }
str long_name(str, int) const
Retrieve the long name, from the short name and index.
Definition: partmap.cpp:124
partmap & ParticleDB()
Database accessor function.
Definition: partmap.cpp:36
Here is the call graph for this function:

◆ get() [6/6]

double Gambit::SubSpectrum::get ( const Par::Tags  partype,
const std::pair< str, int shortpr,
const SpecOverrideOptions  check_overrides = use_overrides,
const SafeBool  check_antiparticle = SafeBool(true) 
) const

Definition at line 124 of file subspectrum.cpp.

128  {
129  return get( partype, shortpr.first, shortpr.second, check_overrides, check_antiparticle);
130  }

◆ get_numbers_stable_particles()

virtual int Gambit::SubSpectrum::get_numbers_stable_particles ( ) const
inlinevirtual

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 in Gambit::SpecBit::MSSMSpec< MI >.

Definition at line 117 of file subspectrum.hpp.

References LOCAL_INFO, and vfcn_error.

117 { vfcn_error(LOCAL_INFO); return -1; }
#define LOCAL_INFO
Definition: local_info.hpp:34
#define vfcn_error(local_info)
Helper macro for throwing errors in base class versions of virtual functions.
Definition: subspectrum.hpp:50

◆ getName()

◆ GetScale()

◆ getSLHAea()

SLHAstruct Gambit::SubSpectrum::getSLHAea ( int  slha_version) const
virtual

Get spectrum information in SLHAea format (if possible)

Definition at line 56 of file subspectrum.cpp.

References Gambit::slhahelp::add_MODSEL_disclaimer(), and add_to_SLHAea().

Referenced by Gambit::SpecBit::prepare_pass_MSSM_spectrum_to_vevacious(), and writeSLHAfile().

57  {
58  SLHAstruct slha;
59  this->add_to_SLHAea(slha_version, slha);
60  slhahelp::add_MODSEL_disclaimer(slha, "spectrum");
61  return slha;
62  }
virtual void add_to_SLHAea(int, SLHAstruct &) const
Add spectrum information to an SLHAea object (if possible)
void add_MODSEL_disclaimer(SLHAstruct &slha, const str &object)
Add a disclaimer about the absence of a MODSEL block in a generated SLHAea object.
SLHAea::Coll SLHAstruct
Less confusing name for SLHAea container class.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ hard_lower()

virtual double Gambit::SubSpectrum::hard_lower ( ) const
inlinevirtual

Definition at line 125 of file subspectrum.hpp.

Referenced by RunToScale().

125 {return 0.;}
Here is the caller graph for this function:

◆ hard_upper()

virtual double Gambit::SubSpectrum::hard_upper ( ) const
inlinevirtual

Limits to RGE running; warning/error raised if running beyond these is attempted.

If these aren't overridden in the derived class then effectively no limit on running will exist. These are public so that module writers can use them to check what the limits are.

Definition at line 122 of file subspectrum.hpp.

Referenced by RunToScale().

122 {return DBL_MAX;}
Here is the caller graph for this function:

◆ has() [1/6]

◆ has() [2/6]

◆ has() [3/6]

◆ has() [4/6]

bool Gambit::SubSpectrum::has ( const Par::Tags  partype,
const int  pdg_code,
const int  context,
const SpecOverrideOptions  check_overrides = use_overrides,
const SafeBool  check_antiparticle = SafeBool(true) 
) const

PDB getter/checker overloads.

Definition at line 79 of file subspectrum.cpp.

References has().

83  {
84  return has( partype, std::make_pair(pdg_code,context), check_overrides, check_antiparticle );
85  }
virtual bool has(const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const =0
Getters/Setters etc.
Here is the call graph for this function:

◆ has() [5/6]

bool Gambit::SubSpectrum::has ( const Par::Tags  partype,
const std::pair< int, int pdgpr,
const SpecOverrideOptions  check_overrides = use_overrides,
const SafeBool  check_antiparticle = SafeBool(true) 
) const

Definition at line 97 of file subspectrum.cpp.

References has(), and Gambit::Models::ParticleDB().

101  {
102  return has( partype, Models::ParticleDB().long_name(pdgpr), check_overrides, check_antiparticle );
103  }
partmap & ParticleDB()
Database accessor function.
Definition: partmap.cpp:36
virtual bool has(const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const =0
Getters/Setters etc.
Here is the call graph for this function:

◆ has() [6/6]

bool Gambit::SubSpectrum::has ( const Par::Tags  partype,
const std::pair< str, int shortpr,
const SpecOverrideOptions  check_overrides = use_overrides,
const SafeBool  check_antiparticle = SafeBool(true) 
) const

Definition at line 115 of file subspectrum.cpp.

References has().

119  {
120  return has( partype, shortpr.first, shortpr.second, check_overrides, check_antiparticle);
121  }
virtual bool has(const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const =0
Getters/Setters etc.
Here is the call graph for this function:

◆ PDG_translator()

virtual const std::map<int, int>& Gambit::SubSpectrum::PDG_translator ( ) const
inlinevirtual

TODO: extra PDB overloads to handle all the one and two index cases (well all the ones that are feasible...)

PDG code translation map, for special cases where an SLHA file has been read in and the PDG codes changed.

Reimplemented in Gambit::MSSMSimpleSpec.

Definition at line 257 of file subspectrum.hpp.

Referenced by Gambit::Spectrum::PDG_translator().

257 { return empty_map; }
const std::map< int, int > empty_map
Here is the caller graph for this function:

◆ RunToScale()

void Gambit::SubSpectrum::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.

Definition at line 550 of file subspectrum.cpp.

References hard_lower(), hard_upper(), LOCAL_INFO, RunToScaleOverride(), soft_lower(), soft_upper(), Gambit::utils_error(), and Gambit::utils_warning().

Referenced by mssm_manipulate(), Gambit::Spectrum::RunBothToScale(), Gambit::SpecBit::running_test(), spec_manipulate(), and Gambit::SpecBit::Spectrum_test().

551  {
552  if(behave==0 or behave==1)
553  {
554  if(scale < hard_lower() or scale > hard_upper()) {
555  if(behave==1) {
556  std::ostringstream msg;
557  msg << "RGE running requested outside hard limits! This is forbidden with behave=1. Set behave=0 (default) to automatically stop running at soft limits, or behave=2 to force running to requested scale (may trigger errors from underlying RGE code!)." << std::endl;
558  msg << " Requested : "<< scale << std::endl;
559  msg << " hard_upper: "<< hard_upper() << std::endl;
560  msg << " hard_lower: "<< hard_lower() << std::endl;
561  utils_error().raise(LOCAL_INFO, msg.str());
562  } else { // behave==0
563  if (scale < soft_lower()) { scale=soft_lower(); }
564  else if(scale > soft_upper()) { scale=soft_upper(); }
565  else {
566  // Hard limits must be outside soft limits; this is a bug in the derived Spectum object
567  std::ostringstream msg;
568  msg << "RGE running requested outside hard limits, but within soft limits! The soft limits should always be within the hard limits, so this is a bug in the derived SubSpectrum object being accessed. I cannot tell you which class this is though; check the dependency graph to see which ones are being created, and if necessary consult your debugger." << std::endl;
569  msg << " Requested : "<< scale << std::endl;
570  msg << " hard_upper: "<< hard_upper() << std::endl;
571  msg << " soft_upper: "<< soft_upper() << std::endl;
572  msg << " soft_lower: "<< soft_lower() << std::endl;
573  msg << " hard_lower: "<< hard_lower() << std::endl;
574  utils_error().raise(LOCAL_INFO, msg.str());
575  }
576  }
577  } else if(scale < soft_lower() or scale > soft_upper()) {
578  if(behave==1) {
579  std::ostringstream msg;
580  msg << "RGE running requested outside soft limits! Accuracy may be low. Note: Set behave=2 to suppress this warning, or behave=0 (default) to automatically stop running when soft limit is hit." << std::endl;
581  msg << " Requested : "<< scale << std::endl;
582  msg << " soft_upper: "<< soft_upper() << std::endl;
583  msg << " soft_lower: "<< soft_lower() << std::endl;
584  utils_warning().raise(LOCAL_INFO, msg.str());
585  } else { // behave==0
586  if(scale < soft_lower()) scale=soft_lower();
587  if(scale > soft_upper()) scale=soft_upper();
588  }
589  }
590  }
591  RunToScaleOverride(scale);
592  }
virtual double soft_upper() const
EXPORT_SYMBOLS error & utils_error()
Utility errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
virtual void RunToScaleOverride(double)
Run spectrum to new scale.
EXPORT_SYMBOLS warning & utils_warning()
Utility warnings.
virtual double hard_lower() const
virtual double soft_lower() const
virtual double hard_upper() const
Limits to RGE running; warning/error raised if running beyond these is attempted. ...
Here is the call graph for this function:
Here is the caller graph for this function:

◆ RunToScaleOverride()

virtual void Gambit::SubSpectrum::RunToScaleOverride ( double  )
inlinevirtual

Run spectrum to new scale.

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

Reimplemented in Gambit::SLHASimpleSpec< Derived >, Gambit::SLHASimpleSpec< SMSimpleSpec >, Gambit::SLHASimpleSpec< MSSMSimpleSpec >, Gambit::SpecBit::ScalarSingletDM_Z2Spec< MI >, Gambit::SpecBit::ScalarSingletDM_Z3Spec< MI >, Gambit::SpecBit::MSSMSpec< MI >, and Gambit::SpecBit::MDMSpec< MI >.

Definition at line 131 of file subspectrum.hpp.

References LOCAL_INFO, and vfcn_error.

Referenced by RunToScale().

#define LOCAL_INFO
Definition: local_info.hpp:34
#define vfcn_error(local_info)
Helper macro for throwing errors in base class versions of virtual functions.
Definition: subspectrum.hpp:50
Here is the caller graph for this function:

◆ safeget() [1/6]

double Gambit::SubSpectrum::safeget ( const Par::Tags  partype,
const str mass,
const SpecOverrideOptions  check_overrides = use_overrides,
const SafeBool  check_antiparticle = SafeBool(true) 
) const

safeget functions, by Abram

Definition at line 136 of file subspectrum.cpp.

References LOCAL_INFO, and Gambit::utils_error().

Referenced by Gambit::ColliderBit::get_sigma_ee_chi00(), Gambit::ColliderBit::get_sigma_ee_chipm(), Gambit::ColliderBit::get_sigma_ee_ll(), Gambit::DecayBit::MSSM_inv_Higgs_BF(), Gambit::DecayBit::stau_1_decays_smallsplit(), and Gambit::DecayBit::Z_gamma_chi_0_MSSM_tree().

140  {
141  double result = get( partype, mass, check_overrides, check_antiparticle);
142  if (Utils::isnan(result))
143  utils_error().raise(LOCAL_INFO,"SubSpectrum parameter is nan!!");
144  return result;
145  }
EXPORT_SYMBOLS error & utils_error()
Utility errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
Here is the call graph for this function:
Here is the caller graph for this function:

◆ safeget() [2/6]

double Gambit::SubSpectrum::safeget ( const Par::Tags  partype,
const str mass,
const int  i,
const SpecOverrideOptions  check_overrides = use_overrides,
const SafeBool  check_antiparticle = SafeBool(true) 
) const

Definition at line 147 of file subspectrum.cpp.

References LOCAL_INFO, and Gambit::utils_error().

151  {
152  double result = get( partype, mass, i, check_overrides, check_antiparticle);
153  if (Utils::isnan(result))
154  utils_error().raise(LOCAL_INFO,"SubSpectrum parameter is nan!!");
155  return result;
156  }
EXPORT_SYMBOLS error & utils_error()
Utility errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
Here is the call graph for this function:

◆ safeget() [3/6]

double Gambit::SubSpectrum::safeget ( const Par::Tags  partype,
const str mass,
const int  i,
const int  j,
const SpecOverrideOptions  check_overrides = use_overrides 
) const

Definition at line 158 of file subspectrum.cpp.

References LOCAL_INFO, and Gambit::utils_error().

161  {
162  double result = get( partype, mass, i, j, check_overrides);
163  if (Utils::isnan(result))
164  utils_error().raise(LOCAL_INFO,"SubSpectrum parameter is nan!!");
165  return result;
166  }
EXPORT_SYMBOLS error & utils_error()
Utility errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
Here is the call graph for this function:

◆ safeget() [4/6]

double Gambit::SubSpectrum::safeget ( const Par::Tags  partype,
const int  pdg_code,
const int  context,
const SpecOverrideOptions  check_overrides = use_overrides,
const SafeBool  check_antiparticle = SafeBool(true) 
) const

Definition at line 168 of file subspectrum.cpp.

References LOCAL_INFO, and Gambit::utils_error().

172  {
173  double result = get( partype, pdg_code, context, check_overrides, check_antiparticle);
174  if (Utils::isnan(result))
175  utils_error().raise(LOCAL_INFO,"SubSpectrum parameter is nan!!");
176  return result;
177  }
EXPORT_SYMBOLS error & utils_error()
Utility errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
Here is the call graph for this function:

◆ safeget() [5/6]

double Gambit::SubSpectrum::safeget ( const Par::Tags  partype,
const std::pair< int, int pdgpr,
const SpecOverrideOptions  check_overrides = use_overrides,
const SafeBool  check_antiparticle = SafeBool(true) 
) const

Definition at line 179 of file subspectrum.cpp.

References LOCAL_INFO, and Gambit::utils_error().

183  {
184  double result = get( partype, pdgpr, check_overrides, check_antiparticle);
185  if (Utils::isnan(result))
186  utils_error().raise(LOCAL_INFO,"SubSpectrum parameter is nan!!");
187  return result;
188  }
EXPORT_SYMBOLS error & utils_error()
Utility errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
Here is the call graph for this function:

◆ safeget() [6/6]

double Gambit::SubSpectrum::safeget ( const Par::Tags  partype,
const std::pair< str, int shortpr,
const SpecOverrideOptions  check_overrides = use_overrides,
const SafeBool  check_antiparticle = SafeBool(true) 
) const

Definition at line 190 of file subspectrum.cpp.

References LOCAL_INFO, and Gambit::utils_error().

194  {
195  double result = get( partype, shortpr, check_overrides, check_antiparticle);
196  if (Utils::isnan(result))
197  utils_error().raise(LOCAL_INFO,"SubSpectrum parameter is nan!!");
198  return result;
199  }
EXPORT_SYMBOLS error & utils_error()
Utility errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
Here is the call graph for this function:

◆ set() [1/3]

◆ set() [2/3]

◆ set() [3/3]

◆ set_override() [1/6]

void Gambit::SubSpectrum::set_override ( const Par::Tags  partype,
const double  value,
const str name,
const bool  allow_new = false,
const bool  decouple = false 
)

Parameter override functions.

Definition at line 205 of file subspectrum.cpp.

References Gambit::Models::partmap::get_antiparticle(), has(), Gambit::Models::partmap::has_antiparticle(), Gambit::Models::partmap::has_particle(), LOCAL_INFO, override_maps, Gambit::Models::ParticleDB(), Gambit::Models::partmap::short_name_pair(), and Gambit::utils_error().

Referenced by Gambit::SpecBit::get_MSSM_spectrum_from_SLHAfile(), Gambit::PrecisionBit::make_MSSM_precision_spectrum_4H_W(), Gambit::PrecisionBit::make_MSSM_precision_spectrum_H(), Gambit::PrecisionBit::make_MSSM_precision_spectrum_H_W(), Gambit::SpecBit::run_FS_spectrum_generator(), set_override(), set_override_vector(), Gambit::PrecisionBit::update_H_masses(), and Gambit::PrecisionBit::update_W_masses().

207  {
208  bool done = false;
209  // No index input; check if direct string exists in map
210  // If not, try to use particle database to convert to short
211  // name plus index and try that.
212  // Otherwise:
213  // If decouple=true
214  // If allow_new=false: Doesn't make sense; error
215  // If allow_new=true: add new entry
216  // If decouple=false
217  // check if antiparticle exists in map (both short and long strings)
218  // if yes: add override under antiparticle name
219  // if no:
220  // if allow_new=false: no match anywhere, and not allowed to add new, error!
221  // if allow_new=true: add new entry under original name
222 
223  // SafeBool(false) set so we don't match on antiparticle; if anti-particle entry exists, need to convert to and set that override instead.
224  #ifdef CHECK_WHERE_FOUND
225  std::cout << "set_override "<<name<<" called (allow_new="<<allow_new<<", decouple="<<decouple<<"): checking zero index maps" << std::endl;
226  #endif
227  if( has(partype,name,use_overrides,SafeBool(false)) )
228  {
229  override_maps.at(partype).m0[name] = value;
230  done = true;
231  #ifdef CHECK_WHERE_FOUND
232  std::cout << "Found in zero index override map; override added" << std::endl;
233  #endif
234  }
235  // Check short name
236  else if( Models::ParticleDB().has_short_name(name) )
237  {
238  #ifdef CHECK_WHERE_FOUND
239  std::cout << "Checking for short name" << std::endl;
240  #endif
241  std::pair<str, int> p = Models::ParticleDB().short_name_pair(name);
242  if( has(partype,p.first,p.second,SafeBool(false)) )
243  {
244  override_maps.at(partype).m1[p.first][p.second] = value;
245  done = true;
246  #ifdef CHECK_WHERE_FOUND
247  std::cout << "Found in one index override map with short name '"<<p.first<<","<<p.second<<"'; override added"<< std::endl;
248  #endif
249  }
250  }
251 
252  // Deal with possible antiparticle match and decoupling
253  if(not done)
254  {
255  if(decouple)
256  {
257  if(allow_new)
258  {
259  override_maps.at(partype).m0[name] = value;
260  done = true;
261  #ifdef CHECK_WHERE_FOUND
262  std::cout << "Decoupling allowed: added value to one index override map"<< std::endl;
263  #endif
264  }
265  else
266  {
267  std::ostringstream errmsg;
268  errmsg << "Error setting override value in SubSpectrum object!" << std::endl;
269  errmsg << "Options 'decouple=true' and 'allow_new=false' set simultaneously, but this doesn't make sense. If you might be decoupling particle/antiparticle values for the first time then you *must* also set 'allow_new'." << std::endl;
270  utils_error().forced_throw(LOCAL_INFO,errmsg.str());
271  }
272  }
273  else // no decouple
274  {
275  #ifdef CHECK_WHERE_FOUND
276  std::cout << "Checking for entries under antiparticle name"<< std::endl;
277  std::cout << "has_particle = "<<Models::ParticleDB().has_particle(name)<<std::endl;
278  if(Models::ParticleDB().has_particle(name)) {
279  std::cout << "has_antiparticle = "<<Models::ParticleDB().has_antiparticle(name)<<std::endl;
280  }
281  #endif
282 
283  // Try antiparticle
284  if(Models::ParticleDB().has_particle(name) and
285  Models::ParticleDB().has_antiparticle(name))
286  {
287  std::string antiname = Models::ParticleDB().get_antiparticle(name);
288  // Repeat the logic above
289  #ifdef CHECK_WHERE_FOUND
290  std::cout << "Checking for antiparticle entry '"<<antiname<<"' in zero index override map"<< std::endl;
291  #endif
292  if( has(partype,antiname,use_overrides,SafeBool(false)) )
293  {
294  override_maps.at(partype).m0[antiname] = value;
295  done = true;
296  #ifdef CHECK_WHERE_FOUND
297  std::cout << "Found entry under antiparticle name '"<<antiname<<"' in zero index override map. Override added."<< std::endl;
298  #endif
299  }
300  else if( Models::ParticleDB().has_short_name(antiname) )
301  {
302  #ifdef CHECK_WHERE_FOUND
303  std::cout << "Checking for entry under short antiparticle name + index in one index override map."<< std::endl;
304  #endif
305  std::pair<str, int> p = Models::ParticleDB().short_name_pair(antiname);
306  if( has(partype,p.first,p.second,use_overrides,SafeBool(false)) )
307  {
308  override_maps.at(partype).m1[p.first][p.second] = value;
309  done = true;
310  #ifdef CHECK_WHERE_FOUND
311  std::cout << "Found entry under short antiparticle name + index in one index override map. Override added."<< std::endl;
312  #endif
313  }
314  }
315  // No maching antiparticle entry; check if we are allowed to add new values
316  else if(allow_new)
317  {
318  override_maps.at(partype).m0[name] = value;
319  done = true;
320  #ifdef CHECK_WHERE_FOUND
321  std::cout << "No antiparticle match found, but 'allow_new'="<<allow_new<<", so adding entry to zero index override map." << std::endl;
322  #endif
323  }
324  }
325  else // No antiparticle conversion possible
326  {
327  if(allow_new)
328  {
329  override_maps.at(partype).m0[name] = value;
330  done = true;
331  #ifdef CHECK_WHERE_FOUND
332  std::cout << "Antiparticle doesn't exist, but 'allow_new'="<<allow_new<<", so adding entry to zero index override map." << std::endl;
333  #endif
334  }
335  else
336  {
337  std::ostringstream errmsg;
338  errmsg << "Error setting override value in SubSpectrum object!" << std::endl;
339  errmsg << "No "<<Par::toString.at(partype)<<" with string reference '"<<name<<"' exists in the wrapped spectrum" <<std::endl;
340  errmsg << "If you intended to add this value to the spectrum without overriding anything, please call this function with the optional 'allow_new' boolean parameter set to 'true'. It can then be later retrieved using the normal getters with the same name used here." << std::endl;
341  utils_error().forced_throw(LOCAL_INFO,errmsg.str());
342  }
343  }
344  }
345  }
346 
347  // If none of that worked, throw an error.
348  if(not done)
349  {
350  std::ostringstream errmsg;
351  errmsg << "Error setting override value in SubSpectrum object!" << std::endl;
352  errmsg << "No "<<Par::toString.at(partype)<<" with string reference '"<<name<<"' exists in the wrapped spectrum!" <<std::endl;
353  errmsg << "If you intended to add this value to the spectrum without overriding anything, please call this function with the optional 'allow_new' boolean parameter set to 'true'. It can then be later retrieved using the normal getters with the same name used here." << std::endl;
354  utils_error().forced_throw(LOCAL_INFO,errmsg.str());
355  }
356  }
std::pair< str, int > short_name_pair(str) const
Retrieve the short name and index, from the long name.
Definition: partmap.cpp:155
EXPORT_SYMBOLS error & utils_error()
Utility errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
bool has_antiparticle(str) const
Check if a particle has a matching anti-particle in the database, using the long name.
Definition: partmap.cpp:277
str get_antiparticle(str) const
Get the matching anti-particle long name for a particle in the database, using the long name...
Definition: partmap.cpp:239
bool has_particle(str) const
Check if a particle is in the database, using the long name.
Definition: partmap.cpp:205
partmap & ParticleDB()
Database accessor function.
Definition: partmap.cpp:36
std::map< Par::Tags, OverrideMaps > override_maps
Map of override maps.
virtual bool has(const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const =0
Getters/Setters etc.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_override() [2/6]

void Gambit::SubSpectrum::set_override ( const Par::Tags  partype,
const double  value,
const str name,
const int  i,
const bool  allow_new = false,
const bool  decouple = false 
)

Definition at line 358 of file subspectrum.cpp.

References Gambit::Models::partmap::get_antiparticle(), has(), Gambit::Models::partmap::has_antiparticle(), Gambit::Models::partmap::has_particle(), LOCAL_INFO, Gambit::Models::partmap::long_name(), override_maps, Gambit::Models::ParticleDB(), and Gambit::utils_error().

360  {
361  bool done = false;
362  // One index input; check if direct string plus index exists in map
363  // If not, try to use particle database to convert to long name
364  // and try that.
365  // Otherwise:
366  // If decouple=true
367  // If allow_new=false: Doesn't make sense; error
368  // If allow_new=true: add new entry
369  // If decouple=false
370  // check if antiparticle exists in map (both short and long strings)
371  // if yes: add override under antiparticle name
372  // if no:
373  // if allow_new=false: no match anywhere, and not allowed to add new, error!
374  // if allow_new=true: add new entry under original name
375 
376 
377  if( has(partype,name,i,use_overrides,SafeBool(false)) ) // Don't match anti-particle; will check that if other matching fails
378  {
379  override_maps.at(partype).m1[name][i] = value;
380  done = true;
381  }
382  else if( Models::ParticleDB().has_particle(std::make_pair(name, i)) )
383  {
384  str longname = Models::ParticleDB().long_name(name,i);
385  if( has(partype,longname,use_overrides,SafeBool(false)) )
386  {
387  override_maps.at(partype).m0[longname] = value;
388  done = true;
389  }
390  }
391 
392  // Deal with possible antiparticle match and decoupling
393  if(not done)
394  {
395  if(decouple)
396  {
397  if(allow_new)
398  {
399  override_maps.at(partype).m1[name][i] = value;
400  done = true;
401  }
402  else
403  {
404  std::ostringstream errmsg;
405  errmsg << "Error setting override value in SubSpectrum object!" << std::endl;
406  errmsg << "Options 'decouple=true' and 'allow_new=false' set simultaneously, but this doesn't make sense. If you might be decoupling particle/antiparticle values for the first time then you *must* also set 'allow_new'." << std::endl;
407  utils_error().forced_throw(LOCAL_INFO,errmsg.str());
408  }
409  }
410  else // no decouple
411  {
412  // Try antiparticle
413  if(Models::ParticleDB().has_particle(name) and
415  {
416  std::string antiname = Models::ParticleDB().get_antiparticle(name);
417  // Repeat the logic above
418  if( has(partype,antiname,i,use_overrides,SafeBool(false)) ) // Don't match anti-particle; will check that if other matching fails
419  {
420  override_maps.at(partype).m1[antiname][i] = value;
421  done = true;
422  }
423  else if( Models::ParticleDB().has_particle(std::make_pair(antiname, i)) )
424  {
425  str longname = Models::ParticleDB().long_name(antiname,i);
426  if( has(partype,longname,use_overrides,SafeBool(false)) )
427  {
428  override_maps.at(partype).m0[longname] = value;
429  done = true;
430  }
431  }
432  // No matching antiparticle; see if we are allowed to just add the value
433  else if(allow_new)
434  {
435  override_maps.at(partype).m1[name][i] = value;
436  done = true;
437  }
438  }
439  else // No antiparticle conversion possible
440  {
441  if(allow_new)
442  {
443  override_maps.at(partype).m1[name][i] = value;
444  done = true;
445  }
446  else
447  {
448  std::ostringstream errmsg;
449  errmsg << "Error setting override value in SubSpectrum object!" << std::endl;
450  errmsg << "No "<<Par::toString.at(partype)<<" with string reference '"<<name<<"' exists in the wrapped spectrum" <<std::endl;
451  errmsg << "If you intended to add this value to the spectrum without overriding anything, please call this function with the optional 'allow_new' boolean parameter set to 'true'. It can then be later retrieved using the normal getters with the same name used here." << std::endl;
452  utils_error().forced_throw(LOCAL_INFO,errmsg.str());
453  }
454  }
455  }
456  }
457 
458  // If none of that worked, throw an error.
459  if(not done)
460  {
461  std::ostringstream errmsg;
462  errmsg << "Error setting override value in SubSpectrum object!" << std::endl;
463  errmsg << "No "<<Par::toString.at(partype)<<" with string reference '"<<name<<"' exists in the wrapped spectrum!" <<std::endl;
464  errmsg << "If you intended to add this value to the spectrum without overriding anything, please call this function with the optional 'allow_new' boolean parameter set to 'true'. It can then be later retrieved using the normal getters with the same name used here." << std::endl;
465  utils_error().forced_throw(LOCAL_INFO,errmsg.str());
466  }
467 
468  }
EXPORT_SYMBOLS error & utils_error()
Utility errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
str long_name(str, int) const
Retrieve the long name, from the short name and index.
Definition: partmap.cpp:124
bool has_antiparticle(str) const
Check if a particle has a matching anti-particle in the database, using the long name.
Definition: partmap.cpp:277
str get_antiparticle(str) const
Get the matching anti-particle long name for a particle in the database, using the long name...
Definition: partmap.cpp:239
bool has_particle(str) const
Check if a particle is in the database, using the long name.
Definition: partmap.cpp:205
partmap & ParticleDB()
Database accessor function.
Definition: partmap.cpp:36
std::string str
Shorthand for a standard string.
Definition: Analysis.hpp:35
std::map< Par::Tags, OverrideMaps > override_maps
Map of override maps.
virtual bool has(const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const =0
Getters/Setters etc.
Here is the call graph for this function:

◆ set_override() [3/6]

void Gambit::SubSpectrum::set_override ( const Par::Tags  partype,
const double  value,
const str name,
const int  i,
const int  j,
const bool  allow_new = false 
)

Definition at line 470 of file subspectrum.cpp.

References has(), LOCAL_INFO, override_maps, and Gambit::utils_error().

472  {
473  if(not allow_new and not has(partype,name,i,j) )
474  {
475  std::ostringstream errmsg;
476  errmsg << "Error setting override value in SubSpectrum object!" << std::endl;
477  errmsg << "No "<<Par::toString.at(partype)<<" with string reference '"<<name<<"' and indices '"<<i<<","<<j<<"' exists in the wrapped spectrum!" <<std::endl;
478  errmsg << "If you intended to add this value to the spectrum without overriding anything, please call this function with the optional 'allow_new' boolean parameter set to 'false'. It can then be later retrieved using the normal getters with the same name used here." << std::endl;
479  utils_error().forced_throw(LOCAL_INFO,errmsg.str());
480  }
481  override_maps.at(partype).m2[name][i][j] = value;
482  }
EXPORT_SYMBOLS error & utils_error()
Utility errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
std::map< Par::Tags, OverrideMaps > override_maps
Map of override maps.
virtual bool has(const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const =0
Getters/Setters etc.
Here is the call graph for this function:

◆ set_override() [4/6]

void Gambit::SubSpectrum::set_override ( const Par::Tags  partype,
const double  value,
const int  PDGcode,
const int  context,
const bool  allow_new = false,
const bool  decouple = false 
)

PDB overloads for setters.

Definition at line 493 of file subspectrum.cpp.

References set_override().

494  {
495  set_override(partype, value, std::make_pair(PDGcode,context), allow_new, decouple);
496  }
void set_override(const Par::Tags, const double, const str &, const bool allow_new=false, const bool decouple=false)
Parameter override functions.
Here is the call graph for this function:

◆ set_override() [5/6]

void Gambit::SubSpectrum::set_override ( const Par::Tags  partype,
const double  value,
const std::pair< int, int pdgpr,
const bool  allow_new = false,
const bool  decouple = false 
)

Definition at line 498 of file subspectrum.cpp.

References Gambit::Models::ParticleDB(), and set_override().

499  {
500  /* If there is a short name, then retrieve that plus the index */
501  if( Models::ParticleDB().has_short_name(pdgpr) )
502  {
503  return set_override(partype, value, Models::ParticleDB().short_name_pair(pdgpr), allow_new, decouple);
504  }
505  else /* Use the long name with no index instead (will throw error if name not in PDB) */
506  {
507  return set_override(partype, value, Models::ParticleDB().long_name(pdgpr), allow_new, decouple);
508  }
509  }
partmap & ParticleDB()
Database accessor function.
Definition: partmap.cpp:36
void set_override(const Par::Tags, const double, const str &, const bool allow_new=false, const bool decouple=false)
Parameter override functions.
Here is the call graph for this function:

◆ set_override() [6/6]

void Gambit::SubSpectrum::set_override ( const Par::Tags  partype,
const double  value,
const std::pair< str, int shortpr,
const bool  allow_new = false,
const bool  decouple = false 
)

PDB overloads of set_override functions.

Definition at line 487 of file subspectrum.cpp.

References set_override().

488  {
489  set_override(partype, value, shortpr.first, shortpr.second, allow_new, decouple);
490  }
void set_override(const Par::Tags, const double, const str &, const bool allow_new=false, const bool decouple=false)
Parameter override functions.
Here is the call graph for this function:

◆ set_override_vector() [1/4]

void Gambit::SubSpectrum::set_override_vector ( const Par::Tags  tag,
const double  value,
const std::vector< str > &  params,
const bool  allow_new = false,
const bool  decouple = false 
)

Vector override functions.

Definition at line 516 of file subspectrum.cpp.

References set_override().

Referenced by Gambit::SpecBit::run_FS_spectrum_generator(), set_override_vector(), and Gambit::MSSMSimpleSpec::set_pole_mass_uncertainties().

517  {
518  for(std::vector<str>::const_iterator it = params.begin();
519  it != params.end(); ++it)
520  {
521  this->set_override(tag, value, *it, allow_new, decouple);
522  }
523  }
void set_override(const Par::Tags, const double, const str &, const bool allow_new=false, const bool decouple=false)
Parameter override functions.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_override_vector() [2/4]

void Gambit::SubSpectrum::set_override_vector ( const Par::Tags  tag,
const double  value,
const std::vector< str > &  params,
const std::vector< int indices,
const bool  allow_new = false,
const bool  decouple = false 
)

Definition at line 525 of file subspectrum.cpp.

References set_override().

526  {
527  for(std::vector<str>::const_iterator it = params.begin(); it != params.end(); ++it)
528  {
529  for(std::vector<int>::const_iterator i = indices.begin(); i != indices.end() ; ++i)
530  {
531  this->set_override(tag, value, *it, *i, allow_new, decouple);
532  }
533  }
534  }
void set_override(const Par::Tags, const double, const str &, const bool allow_new=false, const bool decouple=false)
Parameter override functions.
Here is the call graph for this function:

◆ set_override_vector() [3/4]

void Gambit::SubSpectrum::set_override_vector ( const Par::Tags  tag,
const double  value,
const std::vector< str > &  params,
const int  i,
const bool  allow_new = false,
const bool  decouple = false 
)

Definition at line 536 of file subspectrum.cpp.

References set_override_vector().

537  {
538  std::vector<int> indices;
539  indices.push_back(i);
540  this->set_override_vector(tag,value,params,indices,allow_new,decouple);
541  }
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.
Here is the call graph for this function:

◆ set_override_vector() [4/4]

void Gambit::SubSpectrum::set_override_vector ( const Par::Tags  tag,
const double  value,
const str par,
const std::vector< int indices,
const bool  allow_new = false,
const bool  decouple = false 
)

Definition at line 543 of file subspectrum.cpp.

References set_override_vector().

544  {
545  std::vector<str> params;
546  params.push_back(par);
547  this->set_override_vector(tag,value,params,indices,allow_new,decouple);
548  }
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.
Here is the call graph for this function:

◆ SetScale()

virtual void Gambit::SubSpectrum::SetScale ( double  )
inlinevirtual

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

Reimplemented in Gambit::SLHASimpleSpec< Derived >, Gambit::SLHASimpleSpec< SMSimpleSpec >, Gambit::SLHASimpleSpec< MSSMSimpleSpec >, Gambit::SpecBit::ScalarSingletDM_Z2Spec< MI >, Gambit::SpecBit::ScalarSingletDM_Z3Spec< MI >, Gambit::SpecBit::MSSMSpec< MI >, and Gambit::SpecBit::MDMSpec< MI >.

Definition at line 136 of file subspectrum.hpp.

References double, int, LOCAL_INFO, and vfcn_error.

#define LOCAL_INFO
Definition: local_info.hpp:34
#define vfcn_error(local_info)
Helper macro for throwing errors in base class versions of virtual functions.
Definition: subspectrum.hpp:50

◆ soft_lower()

virtual double Gambit::SubSpectrum::soft_lower ( ) const
inlinevirtual

Definition at line 124 of file subspectrum.hpp.

Referenced by RunToScale().

124 {return 0.;}
Here is the caller graph for this function:

◆ soft_upper()

virtual double Gambit::SubSpectrum::soft_upper ( ) const
inlinevirtual

Definition at line 123 of file subspectrum.hpp.

Referenced by RunToScale().

123 {return DBL_MAX;}
Here is the caller graph for this function:

◆ writeSLHAfile()

void Gambit::SubSpectrum::writeSLHAfile ( int  slha_version,
const str filename 
) const
virtual

Dump out spectrum information to an SLHA file (if possible)

SubSpectrum member function definitions.

Dump out spectrum information to an SLHA file (if possible)

Definition at line 40 of file subspectrum.cpp.

References getSLHAea(), LOCAL_INFO, and Gambit::utils_error().

Referenced by Gambit::SpecBit::exampleRead(), and Gambit::SpecBit::MSSMspectrum_test().

41  {
42  std::ofstream ofs(filename);
43  if (ofs)
44  {
45  ofs << getSLHAea(slha_version);
46  }
47  else
48  {
49  utils_error().raise(LOCAL_INFO,"Could not open file '"+filename+
50  "' for writing. Please check that the path exists!");
51  }
52  ofs.close();
53  }
EXPORT_SYMBOLS error & utils_error()
Utility errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
virtual SLHAstruct getSLHAea(int) const
Get spectrum information in SLHAea format (if possible)
Definition: subspectrum.cpp:56
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ empty_map

const std::map<int, int> Gambit::SubSpectrum::empty_map
private

Definition at line 261 of file subspectrum.hpp.

◆ override_maps

std::map<Par::Tags,OverrideMaps> Gambit::SubSpectrum::override_maps
protected

Map of override maps.

Definition at line 268 of file subspectrum.hpp.

Referenced by set_override().


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