gambit is hosted by Hepforge, IPPP Durham
GAMBIT  v1.5.0-252-gf9a3f78
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 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, 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.
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 429 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().

430  {
431  if (runOptions->getValueOrDef<bool>(false, "drop_SLHA_file"))
432  {
433  // Spit out the full spectrum as SLHA1 and SLHA2 files.
434  str prefix = runOptions->getValueOrDef<str>("", "SLHA_output_prefix");
435  str filename = runOptions->getValueOrDef<str>(default_name, "SLHA_output_filename");
436  writeSLHAfile(1,prefix+filename+".slha1");
437  writeSLHAfile(2,prefix+filename+".slha2");
438  }
439  }
void writeSLHAfile(int, const str &) const
Output spectrum contents as an SLHA file, using getSLHAea.
Definition: spectrum.cpp:418
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/5]

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::DecayBit::chargino_plus_1_decays_smallsplit(), Gambit::SpecBit::check_EW_stability_ScalarSingletDM_Z3(), 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/5]

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/5]

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

Definition at line 303 of file spectrum.cpp.

305  {
306  return get( partype, std::make_pair(pdg_code,context) );
307  }

◆ get() [4/5]

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

Definition at line 325 of file spectrum.cpp.

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

327  {
328  /* If there is a short name, then retrieve that plus the index */
329  if( Models::ParticleDB().has_short_name(pdgpr) )
330  {
331  return get( partype, Models::ParticleDB().short_name_pair(pdgpr) );
332  }
333  else /* Use the long name with no index instead */
334  {
335  return get( partype, Models::ParticleDB().long_name(pdgpr) );
336  }
337  }
std::pair< str, int > short_name_pair(str) const
Retrieve the short name and index, from the long name.
Definition: partmap.cpp:147
str long_name(str, int) const
Retrieve the long name, from the short name and index.
Definition: partmap.cpp:116
partmap & ParticleDB()
Database accessor function.
Definition: partmap.cpp:32
Here is the call graph for this function:

◆ get() [5/5]

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

Definition at line 347 of file spectrum.cpp.

349  {
350  return get( partype, shortpr.first, shortpr.second);
351  }

◆ 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::DecayBit::chargino_plus_1_decays_smallsplit(), 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::ColliderBit::MSSMHiggs_ModelParameters(), Gambit::SpecBit::MSSMspectrum_test(), Gambit::ColliderBit::OPAL_Chargino_Leptonic_Conservative_LLike(), 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 409 of file spectrum.cpp.

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

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

410  {
411  SLHAstruct slha(SMINPUTS.getSLHAea());
412  LE->add_to_SLHAea(slha_version, slha);
413  HE->add_to_SLHAea(slha_version, slha);
414  return slha;
415  }
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/5]

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/5]

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/5]

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

PDB getter/checker overloads.

Definition at line 296 of file spectrum.cpp.

References has().

298  {
299  return has( partype, std::make_pair(pdg_code,context) );
300  }
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() [4/5]

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

Definition at line 310 of file spectrum.cpp.

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

312  {
313  /* If there is a short name, then retrieve that plus the index */
314  if( Models::ParticleDB().has_short_name(pdgpr) )
315  {
316  return has( partype, Models::ParticleDB().short_name_pair(pdgpr) );
317  }
318  else /* Use the long name with no index instead */
319  {
320  return has( partype, Models::ParticleDB().long_name(pdgpr) );
321  }
322  }
partmap & ParticleDB()
Database accessor function.
Definition: partmap.cpp:32
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/5]

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

Definition at line 340 of file spectrum.cpp.

References has().

342  {
343  return has( partype, shortpr.first, shortpr.second);
344  }
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 442 of file spectrum.cpp.

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

443  {
444  return HE->PDG_translator();
445  }
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 450 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().

451  {
452  std::complex<double> x(rhobar, etabar);
453  double y = pow(A*lambda*lambda,2);
454  return sqrt((1.0-y)/(1.0-lambda*lambda))*x/(1.0-x*y);
455  }
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 357 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().

359  {
360  double result = get(partype, mass);
361  if (Utils::isnan(result))
362  utils_error().raise(LOCAL_INFO,"SubSpectrum parameter is nan!!");
363  return result;
364  }
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 366 of file spectrum.cpp.

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

368  {
369  double result = get(partype, mass, index);
370  if (Utils::isnan(result))
371  utils_error().raise(LOCAL_INFO,"SubSpectrum parameter is nan!!");
372  return result;
373  }
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 375 of file spectrum.cpp.

References LOCAL_INFO, and Gambit::utils_error().

377  {
378  double result = get(partype, pdg_code, context);
379  if (Utils::isnan(result))
380  utils_error().raise(LOCAL_INFO,"SubSpectrum parameter is nan!!");
381  return result;
382  }
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 384 of file spectrum.cpp.

References LOCAL_INFO, and Gambit::utils_error().

386  {
387  double result = get(partype, pdgpr);
388  if (Utils::isnan(result))
389  utils_error().raise(LOCAL_INFO,"SubSpectrum parameter is nan!!");
390  return result;
391  }
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 393 of file spectrum.cpp.

References LOCAL_INFO, and Gambit::utils_error().

395  {
396  double result = get(partype, shortpr);
397  if (Utils::isnan(result))
398  utils_error().raise(LOCAL_INFO,"SubSpectrum parameter is nan!!");
399  return result;
400  }
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 496 of file spectrum.cpp.

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

497  {
498  return A*l*l * (1.0 - 0.5*A*A*pow(l,6)*std::norm(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:450
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 479 of file spectrum.cpp.

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

480  {
481  std::complex<double> x(rhoplusieta(l,A,rhobar,etabar));
482  return 0.5*pow(A*l,2)*(pow(l,3)*(1.0-2.0*x) + pow(l,5)*x) - l;
483  }
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:450
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 486 of file spectrum.cpp.

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

487  {
488  double l2 = l*l;
489  double fA2 = 4.0*A*A;
490  return 1.0 - 0.5*l2 - 0.125*l2*l2*(1.0+fA2)
491  - 0.0625*pow(l2,3)*(1.0-fA2+4.0*fA2*rhoplusieta(l,A,rhobar,etabar))
492  - 0.0078125*pow(l2,4)*(5.0-fA2*(2.0+4.0*fA2));
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:450
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 516 of file spectrum.cpp.

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

517  {
518  double norm = std::norm(rhoplusieta(l,A,rhobar,etabar));
519  double l4 = pow(l,4);
520  return 1.0 - 0.5*A*A*l4 * (1.0 + l*l*norm + 0.25*A*A*l4);
521  }
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:450
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 502 of file spectrum.cpp.

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

503  {
504  std::complex<double> x(rhoplusieta(l,A,rhobar,etabar));
505  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);
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:450
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 509 of file spectrum.cpp.

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

510  {
511  std::complex<double> x(rhoplusieta(l,A,rhobar,etabar));
512  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);
513  }
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:450
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 473 of file spectrum.cpp.

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

474  {
475  return A*pow(l,3)*std::conj(rhoplusieta(l,A,rhobar,etabar));
476  }
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:450
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 458 of file spectrum.cpp.

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

459  {
460  double norm = std::norm(rhoplusieta(l,A,rhobar,etabar));
461  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)
462  - 0.0078125*pow(l,8)*(5.0-32.0*A*A*norm);
463  }
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:450
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 466 of file spectrum.cpp.

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

467  {
468  double norm = std::norm(rhoplusieta(l,A,rhobar,etabar));
469  return l - 0.5*A*A*pow(l,7)*norm;
470  }
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:450
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 418 of file spectrum.cpp.

References getSLHAea().

Referenced by drop_SLHAs_if_requested().

419  {
420  Utils::FileLock mylock(filename);
421  mylock.get_lock();
422  std::ofstream ofs(filename);
423  ofs << getSLHAea(slha_version);
424  ofs.close();
425  mylock.release_lock();
426  }
SLHAstruct getSLHAea(int) const
SLHAea object getter First constructs an SLHAea object from the SMINPUTS object, then adds the info f...
Definition: spectrum.cpp:409
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: