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

"Standard Model" (low-energy) plus high-energy model container class More...

#include <spectrum.hpp>

Collaboration diagram for Gambit::Spectrum:

Public Types

typedef std::vector< YAML::sddmc_info
 Typedefs for making it easier to manipulate mass cut and mass ratio cut info. More...
 
typedef std::vector< YAML::ssddmr_info
 

Public Member Functions

void RunBothToScale (double scale)
 Linked running Only possible with non-const object. More...
 
void check_mass_cuts ()
 Check the that the spectrum satisifies any mass cuts requested from the yaml file. More...
 
SLHAstruct getSLHAea (int) const
 SLHAea object getter First constructs an SLHAea object from the SMINPUTS object, then adds the info from the LE subspectrum (if possible), followed by the HE subspectrum (if possible). More...
 
void writeSLHAfile (int, const str &) const
 Output spectrum contents as an SLHA file, using getSLHAea. More...
 
void drop_SLHAs_if_requested (const safe_ptr< Options > &, const str &)
 Helper function to drop SLHA files. More...
 
const std::map< int, int > & PDG_translator () const
 PDG code translation map, for special cases where an SLHA file has been read in and the PDG codes changed. More...
 
 Spectrum ()
 Default constructor. More...
 
 Spectrum (const SubSpectrum &le, const SubSpectrum &he, const SMInputs &smi, const std::map< str, safe_ptr< const double > > *input_Param, const mc_info &, const mr_info &)
 Construct new object, cloning the SubSpectrum objects supplied and taking possession of them. More...
 
 Spectrum (SubSpectrum *const le, SubSpectrum *const he, const SMInputs &smi, const std::map< str, safe_ptr< const double > > *input_Param, const mc_info &, const mr_info &)
 Construct new object, wrapping existing SubSpectrum objects Make sure the original objects don't get deleted before this wrapper does! More...
 
 Spectrum (const SubSpectrum &he, const SMInputs &smi, const std::map< str, safe_ptr< const double > > *input_Param, const mc_info &, const mr_info &)
 Construct new object, automatically creating an SMSimpleSpec as the LE subspectrum, and cloning the HE SubSpectrum object supplied and taking possession of it. More...
 
 Spectrum (const Spectrum &other)
 Copy constructor, clones SubSpectrum objects. More...
 
Spectrumoperator= (const Spectrum &other)
 Copy-assignment Using "copy-and-swap" idiom. More...
 
 Spectrum (Spectrum &&other)
 Move constructor. More...
 
SubSpectrumget_LE ()
 Standard getters Return references to internal data members. More...
 
SubSpectrumget_HE ()
 
SMInputsget_SMInputs ()
 
const SubSpectrumget_LE () const
 
const SubSpectrumget_HE () const
 
const SMInputsget_SMInputs () const
 
std::unique_ptr< SubSpectrumclone_LE () const
 Clone getters Note: If you want to clone the whole Spectrum object, just use copy constructor, not these. More...
 
std::unique_ptr< SubSpectrumclone_HE () const
 
bool has (const Par::Tags partype, const std::string &mass) const
 Pole mass getters/checkers "Shortcut" getters/checkers to access pole masses in hosted SubSpectrum objects. More...
 
double get (const Par::Tags partype, const std::string &mass) const
 
bool has (const Par::Tags partype, const std::string &mass, const int index) const
 
double get (const Par::Tags partype, const std::string &mass, const int index) const
 
bool has (const Par::Tags partype, const std::string &mass, const int index1, const int index2) const
 
double get (const Par::Tags partype, const std::string &mass, const int index1, const int index2) const
 
bool has (const Par::Tags partype, const int pdg_code, const int context) const
 PDB getter/checker overloads. More...
 
double get (const Par::Tags partype, const int pdg_code, const int context) const
 
bool has (const Par::Tags partype, const std::pair< int, int > pdgpr) const
 
double get (const Par::Tags partype, const std::pair< int, int > pdgpr) const
 
bool has (const Par::Tags partype, const std::pair< str, int > shortpr) const
 
double get (const Par::Tags partype, const std::pair< str, int > shortpr) const
 
double safeget (const Par::Tags partype, const std::string &mass) const
 Getters which first check the sanity of the thing they are returning. More...
 
double safeget (const Par::Tags partype, const std::string &mass, const int index) const
 
double safeget (const Par::Tags partype, const int pdg_code, const int context) const
 
double safeget (const Par::Tags partype, const std::pair< int, int > pdgpr) const
 
double safeget (const Par::Tags partype, const std::pair< str, int > shortpr) const
 

Static Public Member Functions

static double Wolf2V_ud (double, double, double, double)
 CKM Wolfenstein (lambda, A, rhobar, etabar) –> V_qq standard parameterisation convertors. More...
 
static double Wolf2V_us (double, double, double, double)
 CKM Wolfenstein –> V_us standard parameterisation convertor. More...
 
static std::complex< doubleWolf2V_ub (double, double, double, double)
 CKM Wolfenstein –> V_ub standard parameterisation convertor. More...
 
static std::complex< doubleWolf2V_cd (double, double, double, double)
 CKM Wolfenstein –> V_cd standard parameterisation convertor. More...
 
static std::complex< doubleWolf2V_cs (double, double, double, double)
 CKM Wolfenstein –> V_cs standard parameterisation convertor. More...
 
static double Wolf2V_cb (double, double, double, double)
 CKM Wolfenstein –> V_cb standard parameterisation convertor. More...
 
static std::complex< doubleWolf2V_td (double, double, double, double)
 CKM Wolfenstein –> V_td standard parameterisation convertor. More...
 
static std::complex< doubleWolf2V_ts (double, double, double, double)
 CKM Wolfenstein –> V_ts standard parameterisation convertor. More...
 
static double Wolf2V_tb (double, double, double, double)
 CKM Wolfenstein –> V_tb standard parameterisation convertor. More...
 

Private Member Functions

void check_init () const
 Check if object has been fully initialised. More...
 

Static Private Member Functions

static std::complex< doublerhoplusieta (double, double, double, double)
 Calculate Wolfenstein rho+i*eta from rhobar and etabar. More...
 

Private Attributes

std::unique_ptr< SubSpectrumLE_new
 Variables. More...
 
std::unique_ptr< SubSpectrumHE_new
 
SubSpectrumLE
 
SubSpectrumHE
 
SMInputs SMINPUTS
 
const std::map< str, safe_ptr< const double > > * input_Param
 
const mc_infomass_cuts
 
const mr_infomass_ratio_cuts
 
bool initialised
 

Friends

void swap (Spectrum &first, Spectrum &second)
 Friend function: swap resources of two Spectrum objects. More...
 

Detailed Description

"Standard Model" (low-energy) plus high-energy model container class

Definition at line 110 of file spectrum.hpp.

Member Typedef Documentation

◆ mc_info

typedef std::vector<YAML::sdd> Gambit::Spectrum::mc_info

Typedefs for making it easier to manipulate mass cut and mass ratio cut info.

Definition at line 119 of file spectrum.hpp.

◆ mr_info

typedef std::vector<YAML::ssdd> Gambit::Spectrum::mr_info

Definition at line 120 of file spectrum.hpp.

Constructor & Destructor Documentation

◆ Spectrum() [1/6]

Gambit::Spectrum::Spectrum ( )

Default constructor.

Constructors/destructors.

Constructors/Destructors Need custom copy and move constructors plus copy-assignment operator in order to manage the unique_ptrs properly.

Default constructor

Definition at line 74 of file spectrum.cpp.

74 : input_Param(NULL), mass_cuts(NULL), mass_ratio_cuts(NULL), initialised(false) {}
const std::map< str, safe_ptr< const double > > * input_Param
Definition: spectrum.hpp:132
const mc_info * mass_cuts
Definition: spectrum.hpp:133
const mr_info * mass_ratio_cuts
Definition: spectrum.hpp:134

◆ Spectrum() [2/6]

Gambit::Spectrum::Spectrum ( const SubSpectrum le,
const SubSpectrum he,
const SMInputs smi,
const std::map< str, safe_ptr< const double > > *  input_Param,
const mc_info mci,
const mr_info mri 
)

Construct new object, cloning the SubSpectrum objects supplied and taking possession of them.

Definition at line 77 of file spectrum.cpp.

References check_mass_cuts().

79  : LE_new(le.clone())
80  , HE_new(he.clone())
81  , LE(LE_new.get())
82  , HE(HE_new.get())
83  , SMINPUTS(smi)
84  , input_Param(params)
85  , mass_cuts(&mci)
86  , mass_ratio_cuts(&mri)
87  , initialised(true)
88  { check_mass_cuts(); }
SubSpectrum * LE
Definition: spectrum.hpp:129
const std::map< str, safe_ptr< const double > > * input_Param
Definition: spectrum.hpp:132
const mc_info * mass_cuts
Definition: spectrum.hpp:133
std::unique_ptr< SubSpectrum > HE_new
Definition: spectrum.hpp:128
void check_mass_cuts()
Check the that the spectrum satisifies any mass cuts requested from the yaml file.
Definition: spectrum.cpp:168
SMInputs SMINPUTS
Definition: spectrum.hpp:131
SubSpectrum * HE
Definition: spectrum.hpp:130
const mr_info * mass_ratio_cuts
Definition: spectrum.hpp:134
std::unique_ptr< SubSpectrum > LE_new
Variables.
Definition: spectrum.hpp:127
Here is the call graph for this function:

◆ Spectrum() [3/6]

Gambit::Spectrum::Spectrum ( SubSpectrum *const  le,
SubSpectrum *const  he,
const SMInputs smi,
const std::map< str, safe_ptr< const double > > *  input_Param,
const mc_info mci,
const mr_info mri 
)

Construct new object, wrapping existing SubSpectrum objects Make sure the original objects don't get deleted before this wrapper does!

Definition at line 105 of file spectrum.cpp.

References check_mass_cuts().

107  : LE(le)
108  , HE(he)
109  , SMINPUTS(smi)
110  , input_Param(params)
111  , mass_cuts(&mci)
112  , mass_ratio_cuts(&mri)
113  , initialised(true)
114  { check_mass_cuts(); }
SubSpectrum * LE
Definition: spectrum.hpp:129
const std::map< str, safe_ptr< const double > > * input_Param
Definition: spectrum.hpp:132
const mc_info * mass_cuts
Definition: spectrum.hpp:133
void check_mass_cuts()
Check the that the spectrum satisifies any mass cuts requested from the yaml file.
Definition: spectrum.cpp:168
SMInputs SMINPUTS
Definition: spectrum.hpp:131
SubSpectrum * HE
Definition: spectrum.hpp:130
const mr_info * mass_ratio_cuts
Definition: spectrum.hpp:134
Here is the call graph for this function:

◆ Spectrum() [4/6]

Gambit::Spectrum::Spectrum ( const SubSpectrum he,
const SMInputs smi,
const std::map< str, safe_ptr< const double > > *  input_Param,
const mc_info mci,
const mr_info mri 
)

Construct new object, automatically creating an SMSimpleSpec as the LE subspectrum, and cloning the HE SubSpectrum object supplied and taking possession of it.

(won't make a version of this taking a pointer, since this is an "advanced" task, let people use the full contructor to do it.)

Definition at line 91 of file spectrum.cpp.

References check_mass_cuts().

92  : LE_new(SMSimpleSpec(smi).clone())
93  , HE_new(he.clone())
94  , LE(LE_new.get())
95  , HE(HE_new.get())
96  , SMINPUTS(smi)
97  , input_Param(params)
98  , mass_cuts(&mci)
99  , mass_ratio_cuts(&mri)
100  , initialised(true)
101  { check_mass_cuts(); }
SubSpectrum * LE
Definition: spectrum.hpp:129
const std::map< str, safe_ptr< const double > > * input_Param
Definition: spectrum.hpp:132
const mc_info * mass_cuts
Definition: spectrum.hpp:133
std::unique_ptr< SubSpectrum > HE_new
Definition: spectrum.hpp:128
void check_mass_cuts()
Check the that the spectrum satisifies any mass cuts requested from the yaml file.
Definition: spectrum.cpp:168
SMInputs SMINPUTS
Definition: spectrum.hpp:131
SubSpectrum * HE
Definition: spectrum.hpp:130
const mr_info * mass_ratio_cuts
Definition: spectrum.hpp:134
std::unique_ptr< SubSpectrum > LE_new
Variables.
Definition: spectrum.hpp:127
Here is the call graph for this function:

◆ Spectrum() [5/6]

Gambit::Spectrum::Spectrum ( const Spectrum other)

Copy constructor, clones SubSpectrum objects.

Make a non-const copy in order to use e.g. RunBothToScale function.

Definition at line 118 of file spectrum.cpp.

119  : LE_new(other.clone_LE())
120  , HE_new(other.clone_HE())
121  , LE(LE_new.get())
122  , HE(HE_new.get())
123  , SMINPUTS(other.SMINPUTS)
124  , input_Param(other.input_Param)
125  , mass_cuts(other.mass_cuts)
126  , mass_ratio_cuts(other.mass_ratio_cuts)
127  , initialised(other.initialised)
128  {}
SubSpectrum * LE
Definition: spectrum.hpp:129
const std::map< str, safe_ptr< const double > > * input_Param
Definition: spectrum.hpp:132
const mc_info * mass_cuts
Definition: spectrum.hpp:133
std::unique_ptr< SubSpectrum > HE_new
Definition: spectrum.hpp:128
SMInputs SMINPUTS
Definition: spectrum.hpp:131
SubSpectrum * HE
Definition: spectrum.hpp:130
const mr_info * mass_ratio_cuts
Definition: spectrum.hpp:134
std::unique_ptr< SubSpectrum > LE_new
Variables.
Definition: spectrum.hpp:127

◆ Spectrum() [6/6]

Gambit::Spectrum::Spectrum ( Spectrum &&  other)

Move constructor.

Definition at line 140 of file spectrum.cpp.

References swap.

141  {
142  swap(*this, other);
143  }
friend void swap(Spectrum &first, Spectrum &second)
Friend function: swap resources of two Spectrum objects.
Definition: spectrum.cpp:57

Member Function Documentation

◆ check_init()

void Gambit::Spectrum::check_init ( ) const
private

Check if object has been fully initialised.

Spectrum class member function definitions.

Check if object has been fully initialised

Definition at line 50 of file spectrum.cpp.

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

Referenced by clone_HE(), clone_LE(), get_HE(), get_LE(), and get_SMInputs().

51  {
52  if(not initialised) utils_error().raise(LOCAL_INFO,"Access or deepcopy of empty Spectrum object attempted!");
53  }
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:

◆ check_mass_cuts()

void Gambit::Spectrum::check_mass_cuts ( )

Check the that the spectrum satisifies any mass cuts requested from the yaml file.

Definition at line 168 of file spectrum.cpp.

References has(), Gambit::invalid_point(), Gambit::is_abs(), LOCAL_INFO, generate_raster_scan_settings::m1, generate_raster_scan_settings::m2, mass_cuts, mass_ratio_cuts, Gambit::Par::Pole_Mass, Gambit::invalid_point_exception::raise(), and Gambit::utils_error().

Referenced by Spectrum().

169  {
170  if (mass_cuts != NULL and not mass_cuts->empty())
171  {
172  for (auto it = mass_cuts->begin(); it != mass_cuts->end(); ++it)
173  {
174  str p = it->first;
175  bool absolute_value = is_abs(p);
176  const double& low = it->second.first;
177  const double& high = it->second.second;
178  #ifdef SPECTRUM_DEBUG
179  cout << "Applying mass cut " << low << " GeV < " << (absolute_value ? "|mass("+p+")|" : "mass("+p+")") << " < " << high << " GeV" << endl;
180  #endif
181  if (not has(Par::Pole_Mass, p)) utils_error().raise(LOCAL_INFO, "Cannot cut on mass of unrecognised particle: " + p);
182  double m = get(Par::Pole_Mass, p);
183  if (absolute_value) m = std::abs(m);
184  #ifdef SPECTRUM_DEBUG
185  cout << "Actual value: " << m << endl;
186  #endif
187  if (m < low or m > high) invalid_point().raise(p + " failed requested mass cut.");
188  }
189  }
190  if (mass_ratio_cuts != NULL and not mass_ratio_cuts->empty())
191  {
192  for (auto it = mass_ratio_cuts->begin(); it != mass_ratio_cuts->end(); ++it)
193  {
194  str p1 = it->first.first;
195  str p2 = it->first.second;
196  bool absolute_value1 = is_abs(p1);
197  bool absolute_value2 = is_abs(p2);
198  const double& low = it->second.first;
199  const double& high = it->second.second;
200  #ifdef SPECTRUM_DEBUG
201  cout << "Applying mass ratio cut " << low << " < "
202  << (absolute_value1 ? "|mass("+p1+")|" : "mass("+p1+")") << " / "
203  << (absolute_value2 ? "|mass("+p2+")|" : "mass("+p2+")")
204  << " < " << high << endl;
205  #endif
206  if (not has(Par::Pole_Mass, p1)) utils_error().raise(LOCAL_INFO, "Cannot cut on ratio with mass of unrecognised particle: " + p1);
207  if (not has(Par::Pole_Mass, p2)) utils_error().raise(LOCAL_INFO, "Cannot cut on ratio with mass of unrecognised particle: " + p2);
208  double m1 = get(Par::Pole_Mass, p1);
209  double m2 = get(Par::Pole_Mass, p2);
210  if (absolute_value1) m1 = std::abs(m1);
211  if (absolute_value2) m2 = std::abs(m2);
212  double mratio = m1/m2;
213  #ifdef SPECTRUM_DEBUG
214  cout << "Actual value: " << mratio << endl;
215  #endif
216  if (mratio < low or mratio > high) invalid_point().raise(p1 + "/" + p2 +" failed requested mass ratio cut.");
217  }
218  }
219  }
EXPORT_SYMBOLS error & utils_error()
Utility errors.
bool is_abs(str &s)
Helper function for checking if a particle or ratio has been requested as an absolute value...
Definition: spectrum.cpp:160
#define LOCAL_INFO
Definition: local_info.hpp:34
const mc_info * mass_cuts
Definition: spectrum.hpp:133
virtual void raise(const std::string &)
Raise the exception, i.e. throw it. Exact override of base method.
Definition: exceptions.cpp:422
bool has(const Par::Tags partype, const std::string &mass) const
Pole mass getters/checkers "Shortcut" getters/checkers to access pole masses in hosted SubSpectrum ob...
Definition: spectrum.cpp:244
std::string str
Shorthand for a standard string.
Definition: Analysis.hpp:35
invalid_point_exception & invalid_point()
Invalid point exceptions.
const mr_info * mass_ratio_cuts
Definition: spectrum.hpp:134
Here is the call graph for this function:
Here is the caller graph for this function:

◆ clone_HE()

std::unique_ptr< SubSpectrum > Gambit::Spectrum::clone_HE ( ) const

Definition at line 235 of file spectrum.cpp.

References check_init(), Gambit::SubSpectrum::clone(), and HE.

Referenced by Gambit::SpecBit::check_perturb(), Gambit::SpecBit::check_perturb_MDM(), Gambit::SpecBit::check_perturb_to_min_lambda(), and Gambit::SpecBit::find_min_lambda_Helper().

235 {check_init(); return HE->clone();}
virtual std::unique_ptr< SubSpectrum > clone() const =0
Clone the SubSpectrum object.
void check_init() const
Check if object has been fully initialised.
Definition: spectrum.cpp:50
SubSpectrum * HE
Definition: spectrum.hpp:130
Here is the call graph for this function:
Here is the caller graph for this function:

◆ clone_LE()

std::unique_ptr< SubSpectrum > Gambit::Spectrum::clone_LE ( ) const

Clone getters Note: If you want to clone the whole Spectrum object, just use copy constructor, not these.

Clone SubSpectrum getters To clone whole object, just use copy constructor.

Definition at line 234 of file spectrum.cpp.

References check_init(), Gambit::SubSpectrum::clone(), and LE.

Referenced by Gambit::SpecBit::Spectrum_test().

234 {check_init(); return LE->clone();}
virtual std::unique_ptr< SubSpectrum > clone() const =0
Clone the SubSpectrum object.
SubSpectrum * LE
Definition: spectrum.hpp:129
void check_init() const
Check if object has been fully initialised.
Definition: spectrum.cpp:50
Here is the call graph for this function:
Here is the caller graph for this function:

◆ drop_SLHAs_if_requested()

void Gambit::Spectrum::drop_SLHAs_if_requested ( const safe_ptr< Options > &  runOptions,
const str default_name 
)

Helper function to drop SLHA files.

Definition at line 452 of file spectrum.cpp.

References writeSLHAfile().

Referenced by Gambit::SpecBit::get_MSSM_spectrum_SPheno(), Gambit::PrecisionBit::make_MSSM_precision_spectrum_4H_W(), Gambit::PrecisionBit::make_MSSM_precision_spectrum_H(), Gambit::PrecisionBit::make_MSSM_precision_spectrum_H_W(), Gambit::PrecisionBit::make_MSSM_precision_spectrum_none(), and Gambit::PrecisionBit::make_MSSM_precision_spectrum_W().

453  {
454  if (runOptions->getValueOrDef<bool>(false, "drop_SLHA_file"))
455  {
456  // Spit out the full spectrum as SLHA1 and SLHA2 files.
457  str prefix = runOptions->getValueOrDef<str>("", "SLHA_output_prefix");
458  str filename = runOptions->getValueOrDef<str>(default_name, "SLHA_output_filename");
459  writeSLHAfile(1,prefix+filename+".slha1");
460  writeSLHAfile(2,prefix+filename+".slha2");
461  }
462  }
void writeSLHAfile(int, const str &) const
Output spectrum contents as an SLHA file, using getSLHAea.
Definition: spectrum.cpp:441
std::string str
Shorthand for a standard string.
Definition: Analysis.hpp:35
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get() [1/6]

double Gambit::Spectrum::get ( const Par::Tags  partype,
const std::string &  mass 
) const

Definition at line 249 of file spectrum.cpp.

References Gambit::SubSpectrum::get(), Gambit::SubSpectrum::has(), HE, LE, LOCAL_INFO, and Gambit::utils_error().

Referenced by Gambit::ColliderBit::ALEPH_Selectron_Conservative_LLike(), Gambit::ColliderBit::ALEPH_Smuon_Conservative_LLike(), Gambit::ColliderBit::ALEPH_Stau_Conservative_LLike(), Gambit::ColliderBit::calc_susy_spectrum_scan_guide(), Gambit::SpecBit::check_EW_stability_ScalarSingletDM_Z3(), Gambit::DarkBit::DarkMatter_ID_MSSM(), Gambit::DarkBit::DarkMatterConj_ID_MSSM(), Gambit::DarkBit::DD_couplings_DiracSingletDM_Z2(), Gambit::DarkBit::DD_couplings_MajoranaSingletDM_Z2(), Gambit::DarkBit::DD_couplings_VectorSingletDM_Z2(), Gambit::DecayBit::DiracSingletDM_Higgs_decays(), Gambit::SpecBit::find_min_lambda_Helper(), Gambit::DarkBit::get_ScalarSingletDM_DD_couplings(), Gambit::SpecBit::has_neutralino_LSP(), Gambit::ColliderBit::L3_Chargino_All_Channels_Conservative_LLike(), Gambit::ColliderBit::L3_Chargino_Leptonic_Conservative_LLike(), Gambit::ColliderBit::L3_Gravitino_LLike(), Gambit::ColliderBit::L3_Neutralino_All_Channels_Conservative_LLike(), Gambit::ColliderBit::L3_Neutralino_Leptonic_Conservative_LLike(), Gambit::ColliderBit::L3_Selectron_Conservative_LLike(), Gambit::ColliderBit::L3_Smuon_Conservative_LLike(), Gambit::ColliderBit::L3_Stau_Conservative_LLike(), Gambit::DecayBit::MajoranaSingletDM_Higgs_decays(), Gambit::DecayBit::MSSM_inv_Higgs_BF(), Gambit::SpecBit::MSSMspectrum_test(), Gambit::ColliderBit::OPAL_Chargino_Hadronic_Conservative_LLike(), Gambit::ColliderBit::OPAL_Chargino_Leptonic_Conservative_LLike(), Gambit::ColliderBit::OPAL_Degenerate_Chargino_Conservative_LLike(), Gambit::ColliderBit::OPAL_Neutralino_Hadronic_Conservative_LLike(), Gambit::DecayBit::stau_1_decays_smallsplit(), Gambit::DarkBit::TH_ProcessCatalog_DiracSingletDM_Z2(), 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::DecayBit::VectorSingletDM_Higgs_decays(), and Gambit::DecayBit::Z_gamma_chi_0_MSSM_tree().

250  {
251  double result(-1);
252  if( HE->has(partype,mass) )
253  { result = HE->get(partype,mass); }
254  else if( LE->has(partype,mass) )
255  { result = LE->get(partype,mass); }
256  else
257  {
258  std::ostringstream errmsg;
259  errmsg << "Error retrieving particle spectrum data!" << std::endl;
260  errmsg << "No pole mass with string reference '"<<mass<<"' could be found in either LE or HE SubSpectrum!" <<std::endl;
261  utils_error().raise(LOCAL_INFO,errmsg.str());
262  }
263  // In c++11 we could add the [[noreturn]] attribute utils_error.raise()
264  // to suppress the compiler warning about not returning anything (and enable
265  // extra optimisations), however it isn't implemented in gcc until version
266  // 4.8 (and we decided to support earlier versions).
267  return result;
268  }
SubSpectrum * LE
Definition: spectrum.hpp:129
EXPORT_SYMBOLS error & utils_error()
Utility errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
virtual double get(const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const =0
SubSpectrum * HE
Definition: spectrum.hpp:130
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:

◆ get() [2/6]

double Gambit::Spectrum::get ( const Par::Tags  partype,
const std::string &  mass,
const int  index 
) const

Definition at line 275 of file spectrum.cpp.

References Gambit::SubSpectrum::get(), Gambit::SubSpectrum::has(), HE, LE, LOCAL_INFO, and Gambit::utils_error().

276  {
277  double result(-1);
278  if( HE->has(partype,mass,index) )
279  { result = HE->get(partype,mass,index); }
280  else if( LE->has(partype,mass,index) )
281  { result = LE->get(partype,mass,index); }
282  else
283  {
284  std::ostringstream errmsg;
285  errmsg << "Error retrieving particle spectrum data!" << std::endl;
286  errmsg << "No pole mass with string reference '"<<mass<<"' and index '"<<index<<"' could be found in either LE or HE SubSpectrum!" <<std::endl;
287  utils_error().raise(LOCAL_INFO,errmsg.str());
288  }
289  // [[noreturn]]
290  return result;
291  }
SubSpectrum * LE
Definition: spectrum.hpp:129
EXPORT_SYMBOLS error & utils_error()
Utility errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
virtual double get(const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const =0
SubSpectrum * HE
Definition: spectrum.hpp:130
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:

◆ get() [3/6]

double Gambit::Spectrum::get ( const Par::Tags  partype,
const std::string &  mass,
const int  index1,
const int  index2 
) const

Definition at line 298 of file spectrum.cpp.

References Gambit::SubSpectrum::get(), Gambit::SubSpectrum::has(), HE, LE, LOCAL_INFO, and Gambit::utils_error().

299  {
300  double result(-1);
301  if( HE->has(partype,mass,index1,index2) )
302  { result = HE->get(partype,mass,index1,index2); }
303  else if( LE->has(partype,mass,index1,index2) )
304  { result = LE->get(partype,mass,index1,index2); }
305  else
306  {
307  std::ostringstream errmsg;
308  errmsg << "Error retrieving particle spectrum data!" << std::endl;
309  errmsg << "No pole mixing with string reference '"<<mass<<"' and indices '"<<index1<<"','"<<index2<<"' could be found in either LE or HE SubSepctrum!" << std::endl;
310  utils_error().raise(LOCAL_INFO,errmsg.str());
311  }
312  // [[noreturn]]
313  return result;
314  }
SubSpectrum * LE
Definition: spectrum.hpp:129
EXPORT_SYMBOLS error & utils_error()
Utility errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
virtual double get(const Par::Tags, const str &, const SpecOverrideOptions=use_overrides, const SafeBool check_antiparticle=SafeBool(true)) const =0
SubSpectrum * HE
Definition: spectrum.hpp:130
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:

◆ get() [4/6]

double Gambit::Spectrum::get ( const Par::Tags  partype,
const int  pdg_code,
const int  context 
) const

Definition at line 326 of file spectrum.cpp.

328  {
329  return get( partype, std::make_pair(pdg_code,context) );
330  }

◆ get() [5/6]

double Gambit::Spectrum::get ( const Par::Tags  partype,
const std::pair< int, int pdgpr 
) const

Definition at line 348 of file spectrum.cpp.

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

350  {
351  /* If there is a short name, then retrieve that plus the index */
352  if( Models::ParticleDB().has_short_name(pdgpr) )
353  {
354  return get( partype, Models::ParticleDB().short_name_pair(pdgpr) );
355  }
356  else /* Use the long name with no index instead */
357  {
358  return get( partype, Models::ParticleDB().long_name(pdgpr) );
359  }
360  }
std::pair< str, int > short_name_pair(str) const
Retrieve the short name and index, from the long name.
Definition: partmap.cpp:155
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::Spectrum::get ( const Par::Tags  partype,
const std::pair< str, int shortpr 
) const

Definition at line 370 of file spectrum.cpp.

372  {
373  return get( partype, shortpr.first, shortpr.second);
374  }

◆ get_HE() [1/2]

SubSpectrum & Gambit::Spectrum::get_HE ( )

Definition at line 225 of file spectrum.cpp.

References check_init(), and HE.

Referenced by Gambit::ColliderBit::ALEPH_Selectron_Conservative_LLike(), Gambit::ColliderBit::ALEPH_Smuon_Conservative_LLike(), Gambit::ColliderBit::ALEPH_Stau_Conservative_LLike(), Gambit::DarkBit::DD_couplings_DiracSingletDM_Z2(), Gambit::DarkBit::DD_couplings_MajoranaSingletDM_Z2(), Gambit::DarkBit::DD_couplings_VectorSingletDM_Z2(), Gambit::DecayBit::DiracSingletDM_Higgs_decays(), Gambit::SpecBit::exampleRead(), Gambit::SpecBit::get_MSSM_spectrum_as_map(), Gambit::SpecBit::get_MSSM_spectrum_from_SLHAfile(), Gambit::DarkBit::get_ScalarSingletDM_DD_couplings(), Gambit::ColliderBit::get_sigma_ee_chi00(), Gambit::ColliderBit::get_sigma_ee_chipm(), Gambit::ColliderBit::get_sigma_ee_ll(), Gambit::SpecBit::get_unimproved_MSSM_spectrum_as_map(), Gambit::ColliderBit::L3_Selectron_Conservative_LLike(), Gambit::ColliderBit::L3_Smuon_Conservative_LLike(), Gambit::ColliderBit::L3_Stau_Conservative_LLike(), Gambit::DecayBit::MajoranaSingletDM_Higgs_decays(), Gambit::PrecisionBit::make_MSSM_precision_spectrum_4H_W(), Gambit::PrecisionBit::make_MSSM_precision_spectrum_H(), Gambit::PrecisionBit::make_MSSM_precision_spectrum_H_W(), Gambit::PrecisionBit::make_MSSM_precision_spectrum_W(), Gambit::SpecBit::MSSMspectrum_test(), Gambit::ColliderBit::OPAL_Chargino_Leptonic_Conservative_LLike(), Gambit::SpecBit::prepare_pass_MSSM_spectrum_to_vevacious(), Gambit::DarkBit::RD_spectrum_MSSM(), 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(), and Gambit::DecayBit::VectorSingletDM_Higgs_decays().

225 {check_init(); return *HE;}
void check_init() const
Check if object has been fully initialised.
Definition: spectrum.cpp:50
SubSpectrum * HE
Definition: spectrum.hpp:130
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_HE() [2/2]

const SubSpectrum & Gambit::Spectrum::get_HE ( ) const

Definition at line 229 of file spectrum.cpp.

References check_init(), and HE.

229 {check_init(); return *HE;}
void check_init() const
Check if object has been fully initialised.
Definition: spectrum.cpp:50
SubSpectrum * HE
Definition: spectrum.hpp:130
Here is the call graph for this function:

◆ get_LE() [1/2]

SubSpectrum & Gambit::Spectrum::get_LE ( )

Standard getters Return references to internal data members.

Standard SubSpectrum getters Return references to internal data members. Make sure original Spectrum object doesn't get destroyed before you finish using these or you will cause a segfault.

Make sure original Spectrum object doesn't get destroyed before you finish using these or you will cause a segfault.

Definition at line 224 of file spectrum.cpp.

References check_init(), and LE.

Referenced by Gambit::SpecBit::exampleRead(), Gambit::SpecBit::get_MSSM_spectrum_as_map(), Gambit::SpecBit::get_SM_SubSpectrum_from_MSSM_Spectrum(), Gambit::SpecBit::get_unimproved_MSSM_spectrum_as_map(), Gambit::PrecisionBit::make_MSSM_precision_spectrum_4H_W(), Gambit::PrecisionBit::make_MSSM_precision_spectrum_H_W(), Gambit::PrecisionBit::make_MSSM_precision_spectrum_W(), Gambit::SpecBit::MSSMspectrum_test(), Gambit::DarkBit::RD_spectrum_MSSM(), Gambit::SpecBit::Spectrum_test(), 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(), and Gambit::DarkBit::TH_ProcessCatalog_VectorSingletDM_Z2().

224 {check_init(); return *LE;}
SubSpectrum * LE
Definition: spectrum.hpp:129
void check_init() const
Check if object has been fully initialised.
Definition: spectrum.cpp:50
Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_LE() [2/2]

const SubSpectrum & Gambit::Spectrum::get_LE ( ) const

Definition at line 228 of file spectrum.cpp.

References check_init(), and LE.

228 {check_init(); return *LE;}
SubSpectrum * LE
Definition: spectrum.hpp:129
void check_init() const
Check if object has been fully initialised.
Definition: spectrum.cpp:50
Here is the call graph for this function:

◆ get_SMInputs() [1/2]

◆ get_SMInputs() [2/2]

const SMInputs & Gambit::Spectrum::get_SMInputs ( ) const

Definition at line 230 of file spectrum.cpp.

References check_init(), and SMINPUTS.

230 {check_init(); return SMINPUTS;}
void check_init() const
Check if object has been fully initialised.
Definition: spectrum.cpp:50
SMInputs SMINPUTS
Definition: spectrum.hpp:131
Here is the call graph for this function:

◆ getSLHAea()

SLHAstruct Gambit::Spectrum::getSLHAea ( int  slha_version) const

SLHAea object getter First constructs an SLHAea object from the SMINPUTS object, then adds the info from the LE subspectrum (if possible), followed by the HE subspectrum (if possible).

Any duplicate entries are overwritten at each step, so HE takes precendence over LE, and LE takes precedence over SMINPUTS.

Definition at line 432 of file spectrum.cpp.

References Gambit::SubSpectrum::add_to_SLHAea(), Gambit::SMInputs::getSLHAea(), HE, LE, and SMINPUTS.

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

433  {
434  SLHAstruct slha(SMINPUTS.getSLHAea());
435  LE->add_to_SLHAea(slha_version, slha);
436  HE->add_to_SLHAea(slha_version, slha);
437  return slha;
438  }
virtual void add_to_SLHAea(int, SLHAstruct &) const
Add spectrum information to an SLHAea object (if possible)
SubSpectrum * LE
Definition: spectrum.hpp:129
SLHAea::Coll SLHAstruct
Less confusing name for SLHAea container class.
SLHAstruct getSLHAea() const
Definition: sminputs.cpp:87
SMInputs SMINPUTS
Definition: spectrum.hpp:131
SubSpectrum * HE
Definition: spectrum.hpp:130
Here is the call graph for this function:
Here is the caller graph for this function:

◆ has() [1/6]

bool Gambit::Spectrum::has ( const Par::Tags  partype,
const std::string &  mass 
) const

Pole mass getters/checkers "Shortcut" getters/checkers to access pole masses in hosted SubSpectrum objects.

Pole mass getters "Shortcut" getters to access pole masses in hosted SubSpectrum objects. HE object given higher priority; if no match found, LE object will be checked. If still no match, error is thrown.

HE object given higher priority; if no match found, LE object will be checked. If still no match, error is thrown. TODO: These currently work for anything! Need to restrict them to only allow access to pole masses and their estimated uncertainties Also need to change error messages etc, plus the PDG overloads

Definition at line 244 of file spectrum.cpp.

References Gambit::SubSpectrum::has(), HE, and LE.

Referenced by check_mass_cuts(), and has().

245  {
246  return (HE->has(partype,mass) or LE->has(partype,mass));
247  }
SubSpectrum * LE
Definition: spectrum.hpp:129
SubSpectrum * HE
Definition: spectrum.hpp:130
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:

◆ has() [2/6]

bool Gambit::Spectrum::has ( const Par::Tags  partype,
const std::string &  mass,
const int  index 
) const

Definition at line 270 of file spectrum.cpp.

References Gambit::SubSpectrum::has(), HE, and LE.

271  {
272  return (HE->has(partype,mass,index) or LE->has(partype,mass,index));
273  }
SubSpectrum * LE
Definition: spectrum.hpp:129
SubSpectrum * HE
Definition: spectrum.hpp:130
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() [3/6]

bool Gambit::Spectrum::has ( const Par::Tags  partype,
const std::string &  mass,
const int  index1,
const int  index2 
) const

Definition at line 293 of file spectrum.cpp.

References Gambit::SubSpectrum::has(), HE, and LE.

294  {
295  return (HE->has(partype,mass,index1,index2) or LE->has(partype,mass,index1,index2));
296  }
SubSpectrum * LE
Definition: spectrum.hpp:129
SubSpectrum * HE
Definition: spectrum.hpp:130
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() [4/6]

bool Gambit::Spectrum::has ( const Par::Tags  partype,
const int  pdg_code,
const int  context 
) const

PDB getter/checker overloads.

Definition at line 319 of file spectrum.cpp.

References has().

321  {
322  return has( partype, std::make_pair(pdg_code,context) );
323  }
bool has(const Par::Tags partype, const std::string &mass) const
Pole mass getters/checkers "Shortcut" getters/checkers to access pole masses in hosted SubSpectrum ob...
Definition: spectrum.cpp:244
Here is the call graph for this function:

◆ has() [5/6]

bool Gambit::Spectrum::has ( const Par::Tags  partype,
const std::pair< int, int pdgpr 
) const

Definition at line 333 of file spectrum.cpp.

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

335  {
336  /* If there is a short name, then retrieve that plus the index */
337  if( Models::ParticleDB().has_short_name(pdgpr) )
338  {
339  return has( partype, Models::ParticleDB().short_name_pair(pdgpr) );
340  }
341  else /* Use the long name with no index instead */
342  {
343  return has( partype, Models::ParticleDB().long_name(pdgpr) );
344  }
345  }
partmap & ParticleDB()
Database accessor function.
Definition: partmap.cpp:36
bool has(const Par::Tags partype, const std::string &mass) const
Pole mass getters/checkers "Shortcut" getters/checkers to access pole masses in hosted SubSpectrum ob...
Definition: spectrum.cpp:244
Here is the call graph for this function:

◆ has() [6/6]

bool Gambit::Spectrum::has ( const Par::Tags  partype,
const std::pair< str, int shortpr 
) const

Definition at line 363 of file spectrum.cpp.

References has().

365  {
366  return has( partype, shortpr.first, shortpr.second);
367  }
bool has(const Par::Tags partype, const std::string &mass) const
Pole mass getters/checkers "Shortcut" getters/checkers to access pole masses in hosted SubSpectrum ob...
Definition: spectrum.cpp:244
Here is the call graph for this function:

◆ operator=()

Spectrum & Gambit::Spectrum::operator= ( const Spectrum other)

Copy-assignment Using "copy-and-swap" idiom.

Definition at line 132 of file spectrum.cpp.

References swap.

133  {
134  Spectrum temp(other);
135  swap(*this, temp);
136  return *this;
137  }
friend void swap(Spectrum &first, Spectrum &second)
Friend function: swap resources of two Spectrum objects.
Definition: spectrum.cpp:57
Spectrum()
Default constructor.
Definition: spectrum.cpp:74

◆ PDG_translator()

const std::map< int, int > & Gambit::Spectrum::PDG_translator ( ) const

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

Definition at line 465 of file spectrum.cpp.

References HE, and Gambit::SubSpectrum::PDG_translator().

466  {
467  return HE->PDG_translator();
468  }
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 feasi...
SubSpectrum * HE
Definition: spectrum.hpp:130
Here is the call graph for this function:

◆ rhoplusieta()

std::complex< double > Gambit::Spectrum::rhoplusieta ( double  lambda,
double  A,
double  rhobar,
double  etabar 
)
staticprivate

Calculate Wolfenstein rho+i*eta from rhobar and etabar.

Helper function to calculate Wolfenstein rho+i*eta from rhobar and etabar.

Definition at line 473 of file spectrum.cpp.

References Gambit::Scanner::pow().

Referenced by Wolf2V_cb(), Wolf2V_cd(), Wolf2V_cs(), Wolf2V_tb(), Wolf2V_td(), Wolf2V_ts(), Wolf2V_ub(), Wolf2V_ud(), and Wolf2V_us().

474  {
475  std::complex<double> x(rhobar, etabar);
476  double y = pow(A*lambda*lambda,2);
477  return sqrt((1.0-y)/(1.0-lambda*lambda))*x/(1.0-x*y);
478  }
double lambda(double x, double y, double z)
Definition: MSSM_H.hpp:38
double pow(const double &a)
Outputs a^i.
Here is the call graph for this function:
Here is the caller graph for this function:

◆ RunBothToScale()

void Gambit::Spectrum::RunBothToScale ( double  scale)

Linked running Only possible with non-const object.

Overloads for PDG types These just convert the types and then call the properly defined functions.

Linked running Only possible with non-const object

Definition at line 153 of file spectrum.cpp.

References HE, LE, and Gambit::SubSpectrum::RunToScale().

Referenced by Gambit::SpecBit::Spectrum_test().

154  {
155  LE->RunToScale(scale);
156  HE->RunToScale(scale);
157  }
void RunToScale(double scale, const int behave=0)
Run spectrum to a new scale This function is a wrapper for RunToScaleOverride which automatically che...
SubSpectrum * LE
Definition: spectrum.hpp:129
SubSpectrum * HE
Definition: spectrum.hpp:130
Here is the call graph for this function:
Here is the caller graph for this function:

◆ safeget() [1/5]

double Gambit::Spectrum::safeget ( const Par::Tags  partype,
const std::string &  mass 
) const

Getters which first check the sanity of the thing they are returning.

Definition at line 380 of file spectrum.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(), and Gambit::DecayBit::stau_1_decays_smallsplit().

382  {
383  double result = get(partype, mass);
384  if (Utils::isnan(result))
385  utils_error().raise(LOCAL_INFO,"SubSpectrum parameter is nan!!");
386  return result;
387  }
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/5]

double Gambit::Spectrum::safeget ( const Par::Tags  partype,
const std::string &  mass,
const int  index 
) const

Definition at line 389 of file spectrum.cpp.

References combine_hdf5::index, LOCAL_INFO, and Gambit::utils_error().

391  {
392  double result = get(partype, mass, index);
393  if (Utils::isnan(result))
394  utils_error().raise(LOCAL_INFO,"SubSpectrum parameter is nan!!");
395  return result;
396  }
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/5]

double Gambit::Spectrum::safeget ( const Par::Tags  partype,
const int  pdg_code,
const int  context 
) const

Definition at line 398 of file spectrum.cpp.

References LOCAL_INFO, and Gambit::utils_error().

400  {
401  double result = get(partype, pdg_code, context);
402  if (Utils::isnan(result))
403  utils_error().raise(LOCAL_INFO,"SubSpectrum parameter is nan!!");
404  return result;
405  }
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/5]

double Gambit::Spectrum::safeget ( const Par::Tags  partype,
const std::pair< int, int pdgpr 
) const

Definition at line 407 of file spectrum.cpp.

References LOCAL_INFO, and Gambit::utils_error().

409  {
410  double result = get(partype, pdgpr);
411  if (Utils::isnan(result))
412  utils_error().raise(LOCAL_INFO,"SubSpectrum parameter is nan!!");
413  return result;
414  }
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/5]

double Gambit::Spectrum::safeget ( const Par::Tags  partype,
const std::pair< str, int shortpr 
) const

Definition at line 416 of file spectrum.cpp.

References LOCAL_INFO, and Gambit::utils_error().

418  {
419  double result = get(partype, shortpr);
420  if (Utils::isnan(result))
421  utils_error().raise(LOCAL_INFO,"SubSpectrum parameter is nan!!");
422  return result;
423  }
EXPORT_SYMBOLS error & utils_error()
Utility errors.
#define LOCAL_INFO
Definition: local_info.hpp:34
Here is the call graph for this function:

◆ Wolf2V_cb()

double Gambit::Spectrum::Wolf2V_cb ( double  l,
double  A,
double  rhobar,
double  etabar 
)
static

CKM Wolfenstein –> V_cb standard parameterisation convertor.

Definition at line 519 of file spectrum.cpp.

References Gambit::Scanner::pow(), and rhoplusieta().

520  {
521  return A*l*l * (1.0 - 0.5*A*A*pow(l,6)*std::norm(rhoplusieta(l,A,rhobar,etabar)));
522  }
double pow(const double &a)
Outputs a^i.
static std::complex< double > rhoplusieta(double, double, double, double)
Calculate Wolfenstein rho+i*eta from rhobar and etabar.
Definition: spectrum.cpp:473
Here is the call graph for this function:

◆ Wolf2V_cd()

std::complex< double > Gambit::Spectrum::Wolf2V_cd ( double  l,
double  A,
double  rhobar,
double  etabar 
)
static

CKM Wolfenstein –> V_cd standard parameterisation convertor.

Definition at line 502 of file spectrum.cpp.

References Gambit::Scanner::pow(), and rhoplusieta().

503  {
504  std::complex<double> x(rhoplusieta(l,A,rhobar,etabar));
505  return 0.5*pow(A*l,2)*(pow(l,3)*(1.0-2.0*x) + pow(l,5)*x) - l;
506  }
double pow(const double &a)
Outputs a^i.
static std::complex< double > rhoplusieta(double, double, double, double)
Calculate Wolfenstein rho+i*eta from rhobar and etabar.
Definition: spectrum.cpp:473
Here is the call graph for this function:

◆ Wolf2V_cs()

std::complex< double > Gambit::Spectrum::Wolf2V_cs ( double  l,
double  A,
double  rhobar,
double  etabar 
)
static

CKM Wolfenstein –> V_cs standard parameterisation convertor.

Definition at line 509 of file spectrum.cpp.

References Gambit::Scanner::pow(), and rhoplusieta().

510  {
511  double l2 = l*l;
512  double fA2 = 4.0*A*A;
513  return 1.0 - 0.5*l2 - 0.125*l2*l2*(1.0+fA2)
514  - 0.0625*pow(l2,3)*(1.0-fA2+4.0*fA2*rhoplusieta(l,A,rhobar,etabar))
515  - 0.0078125*pow(l2,4)*(5.0-fA2*(2.0+4.0*fA2));
516  }
double pow(const double &a)
Outputs a^i.
static std::complex< double > rhoplusieta(double, double, double, double)
Calculate Wolfenstein rho+i*eta from rhobar and etabar.
Definition: spectrum.cpp:473
Here is the call graph for this function:

◆ Wolf2V_tb()

double Gambit::Spectrum::Wolf2V_tb ( double  l,
double  A,
double  rhobar,
double  etabar 
)
static

CKM Wolfenstein –> V_tb standard parameterisation convertor.

Definition at line 539 of file spectrum.cpp.

References Gambit::Scanner::pow(), and rhoplusieta().

540  {
541  double norm = std::norm(rhoplusieta(l,A,rhobar,etabar));
542  double l4 = pow(l,4);
543  return 1.0 - 0.5*A*A*l4 * (1.0 + l*l*norm + 0.25*A*A*l4);
544  }
double pow(const double &a)
Outputs a^i.
static std::complex< double > rhoplusieta(double, double, double, double)
Calculate Wolfenstein rho+i*eta from rhobar and etabar.
Definition: spectrum.cpp:473
Here is the call graph for this function:

◆ Wolf2V_td()

std::complex< double > Gambit::Spectrum::Wolf2V_td ( double  l,
double  A,
double  rhobar,
double  etabar 
)
static

CKM Wolfenstein –> V_td standard parameterisation convertor.

Definition at line 525 of file spectrum.cpp.

References Gambit::Scanner::pow(), and rhoplusieta().

526  {
527  std::complex<double> x(rhoplusieta(l,A,rhobar,etabar));
528  return A*l*l * (l*(1.0-x) + 0.5*pow(l,3)*x + 0.125*pow(l,5)*(1.0+4.0*A*A)*x);
529  }
double pow(const double &a)
Outputs a^i.
static std::complex< double > rhoplusieta(double, double, double, double)
Calculate Wolfenstein rho+i*eta from rhobar and etabar.
Definition: spectrum.cpp:473
Here is the call graph for this function:

◆ Wolf2V_ts()

std::complex< double > Gambit::Spectrum::Wolf2V_ts ( double  l,
double  A,
double  rhobar,
double  etabar 
)
static

CKM Wolfenstein –> V_ts standard parameterisation convertor.

Definition at line 532 of file spectrum.cpp.

References Gambit::Scanner::pow(), and rhoplusieta().

533  {
534  std::complex<double> x(rhoplusieta(l,A,rhobar,etabar));
535  return A*l*l * (0.5*pow(l,2)*(1.0-2.0*x) + 0.125*pow(l,4) + 0.0625*pow(l,6)*(1.0+8.0*A*A*x) - 1.0);
536  }
double pow(const double &a)
Outputs a^i.
static std::complex< double > rhoplusieta(double, double, double, double)
Calculate Wolfenstein rho+i*eta from rhobar and etabar.
Definition: spectrum.cpp:473
Here is the call graph for this function:

◆ Wolf2V_ub()

std::complex< double > Gambit::Spectrum::Wolf2V_ub ( double  l,
double  A,
double  rhobar,
double  etabar 
)
static

CKM Wolfenstein –> V_ub standard parameterisation convertor.

Definition at line 496 of file spectrum.cpp.

References Gambit::Scanner::pow(), and rhoplusieta().

497  {
498  return A*pow(l,3)*std::conj(rhoplusieta(l,A,rhobar,etabar));
499  }
double pow(const double &a)
Outputs a^i.
static std::complex< double > rhoplusieta(double, double, double, double)
Calculate Wolfenstein rho+i*eta from rhobar and etabar.
Definition: spectrum.cpp:473
Here is the call graph for this function:

◆ Wolf2V_ud()

double Gambit::Spectrum::Wolf2V_ud ( double  l,
double  A,
double  rhobar,
double  etabar 
)
static

CKM Wolfenstein (lambda, A, rhobar, etabar) –> V_qq standard parameterisation convertors.

CKM Wolfenstein –> V_ud standard parameterisation convertor.

Definition at line 481 of file spectrum.cpp.

References Gambit::Scanner::pow(), and rhoplusieta().

482  {
483  double norm = std::norm(rhoplusieta(l,A,rhobar,etabar));
484  return 1.0 - 0.5*pow(l,2) - 0.125*pow(l,4) - 0.0625*pow(l,6)*(1.0+8.0*A*A*norm)
485  - 0.0078125*pow(l,8)*(5.0-32.0*A*A*norm);
486  }
double pow(const double &a)
Outputs a^i.
static std::complex< double > rhoplusieta(double, double, double, double)
Calculate Wolfenstein rho+i*eta from rhobar and etabar.
Definition: spectrum.cpp:473
Here is the call graph for this function:

◆ Wolf2V_us()

double Gambit::Spectrum::Wolf2V_us ( double  l,
double  A,
double  rhobar,
double  etabar 
)
static

CKM Wolfenstein –> V_us standard parameterisation convertor.

Definition at line 489 of file spectrum.cpp.

References Gambit::Scanner::pow(), and rhoplusieta().

490  {
491  double norm = std::norm(rhoplusieta(l,A,rhobar,etabar));
492  return l - 0.5*A*A*pow(l,7)*norm;
493  }
double pow(const double &a)
Outputs a^i.
static std::complex< double > rhoplusieta(double, double, double, double)
Calculate Wolfenstein rho+i*eta from rhobar and etabar.
Definition: spectrum.cpp:473
Here is the call graph for this function:

◆ writeSLHAfile()

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

Output spectrum contents as an SLHA file, using getSLHAea.

Definition at line 441 of file spectrum.cpp.

References getSLHAea().

Referenced by drop_SLHAs_if_requested().

442  {
443  Utils::FileLock mylock(filename);
444  mylock.get_lock();
445  std::ofstream ofs(filename);
446  ofs << getSLHAea(slha_version);
447  ofs.close();
448  mylock.release_lock();
449  }
SLHAstruct getSLHAea(int) const
SLHAea object getter First constructs an SLHAea object from the SMINPUTS object, then adds the info f...
Definition: spectrum.cpp:432
Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Function Documentation

◆ swap

void swap ( Spectrum first,
Spectrum second 
)
friend

Friend function: swap resources of two Spectrum objects.

Definition at line 57 of file spectrum.cpp.

Referenced by operator=(), Spectrum(), and Gambit::swap().

58  {
59  using std::swap; // enable ADL
60  swap(first.LE, second.LE);
61  swap(first.HE, second.HE);
62  swap(first.LE_new, second.LE_new);
63  swap(first.HE_new, second.HE_new);
64  swap(first.SMINPUTS, second.SMINPUTS);
65  swap(first.input_Param, second.input_Param);
66  swap(first.mass_cuts, second.mass_cuts);
67  swap(first.mass_ratio_cuts, second.mass_ratio_cuts);
68  swap(first.initialised, second.initialised);
69  }
friend void swap(Spectrum &first, Spectrum &second)
Friend function: swap resources of two Spectrum objects.
Definition: spectrum.cpp:57
void swap(Spectrum &first, Spectrum &second)
Swap resources of two Spectrum objects Note: Not a member function! This is an external function whic...
Definition: spectrum.cpp:57

Member Data Documentation

◆ HE

SubSpectrum* Gambit::Spectrum::HE
private

◆ HE_new

std::unique_ptr<SubSpectrum> Gambit::Spectrum::HE_new
private

Definition at line 128 of file spectrum.hpp.

Referenced by Gambit::swap().

◆ initialised

bool Gambit::Spectrum::initialised
private

Definition at line 135 of file spectrum.hpp.

Referenced by check_init(), and Gambit::swap().

◆ input_Param

const std::map<str, safe_ptr<const double> >* Gambit::Spectrum::input_Param
private

Definition at line 132 of file spectrum.hpp.

Referenced by Gambit::swap().

◆ LE

SubSpectrum* Gambit::Spectrum::LE
private

Definition at line 129 of file spectrum.hpp.

Referenced by clone_LE(), get(), get_LE(), getSLHAea(), has(), RunBothToScale(), and Gambit::swap().

◆ LE_new

std::unique_ptr<SubSpectrum> Gambit::Spectrum::LE_new
private

Variables.

Definition at line 127 of file spectrum.hpp.

Referenced by Gambit::swap().

◆ mass_cuts

const mc_info* Gambit::Spectrum::mass_cuts
private

Definition at line 133 of file spectrum.hpp.

Referenced by check_mass_cuts(), and Gambit::swap().

◆ mass_ratio_cuts

const mr_info* Gambit::Spectrum::mass_ratio_cuts
private

Definition at line 134 of file spectrum.hpp.

Referenced by check_mass_cuts(), and Gambit::swap().

◆ SMINPUTS

SMInputs Gambit::Spectrum::SMINPUTS
private

Definition at line 131 of file spectrum.hpp.

Referenced by get_SMInputs(), getSLHAea(), and Gambit::swap().


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