file SimpleSpectra/SMHiggsSimpleSpec.hpp
[No description available] More…
Namespaces
Name |
---|
Gambit TODO: see if we can use this one: |
Gambit::SpecBit |
Classes
Name | |
---|---|
struct | Gambit::SpecBit::SMHiggsModel |
struct | Gambit::SpecTraits< SpecBit::SMHiggsSimpleSpec > Specialisation of traits class needed to inform base spectrum class of the Model and Input types. |
class | Gambit::SpecBit::SMHiggsSimpleSpec SubSpectrum wrapper class for the SM Higgs sector. |
Detailed Description
Author: Ben Farmer (benjamin.farmer@fysik.su.se)
Date: 2015 May
A simple SubSpectrum wrapper for Standard Model Higgs information. No RGEs included.
Authors:
Source code
// GAMBIT: Global and Modular BSM Inference Tool
// *********************************************
/// \file
///
/// A simple SubSpectrum wrapper for Standard
/// Model Higgs information. No RGEs included.
///
/// *********************************************
///
/// Authors:
/// <!-- add name and date if you modify -->
///
/// \author Ben Farmer
/// (benjamin.farmer@fysik.su.se)
/// \date 2015 May
///
/// *********************************************
#ifndef __SMHiggsSimpleSpec_hpp__
#define __SMHiggsSimpleSpec_hpp__
#include "gambit/Elements/spec.hpp"
#include "gambit/Models/SpectrumContents/RegisteredSpectra.hpp"
namespace Gambit
{
namespace SpecBit
{
/// Simple container "model object" for the SM Higgs sector variables.
/// We will derived from this for simple extensions, like for scalar singlet DM
struct SMHiggsModel
{
double HiggsPoleMass;
double HiggsVEV;
double get_HiggsPoleMass() const { return HiggsPoleMass; }
double get_HiggsVEV() const { return HiggsVEV; }
double get_HiggsPoleMass_1srd_high() const { return 0; }
double get_HiggsPoleMass_1srd_low() const { return 0; }
};
class SMHiggsSimpleSpec;
}
/// Specialisation of traits class needed to inform base spectrum class of the Model and Input types
template <>
struct SpecTraits<SpecBit::SMHiggsSimpleSpec>
{
static std::string name() { return "SMHiggsSimpleSpec"; }
typedef SpectrumContents::SMHiggs Contents;
typedef SpecBit::SMHiggsModel Model;
typedef DummyInput Input; // DummyInput is just an empty struct
};
namespace SpecBit
{
/// SubSpectrum wrapper class for the SM Higgs sector
class SMHiggsSimpleSpec : public Spec<SMHiggsSimpleSpec>
{
private:
/// Store the struct containing the parameters plus get/set functions
Model model;
/// Just a placeholder required by the base class; this wrapper doesn't use it
Input input;
public:
/// Constructor
SMHiggsSimpleSpec(const Model& m)
: model(m)
, input()
{}
// Functions to interface Model and Input objects with the base 'Spec' class
Model& get_Model() { return model; }
Input& get_Input() { return input; }
const Model& get_Model() const { return model; }
const Input& get_Input() const { return input; }
/// Map fillers
/// Used to initialise maps in the RunparDer and PhysDer classes
/// (specialisations created and stored automatically by Spec<QedQcdWrapper>)
/// Definitions of map fillers
static GetterMaps fill_getter_maps()
{
GetterMaps map_collection;
map_collection[Par::mass1].map0["vev"] = &Model::get_HiggsVEV;
map_collection[Par::Pole_Mass].map0["h0_1"] = &Model::get_HiggsPoleMass;
map_collection[Par::Pole_Mass_1srd_high].map0["h0_1"] = &Model::get_HiggsPoleMass_1srd_high;
map_collection[Par::Pole_Mass_1srd_low].map0["h0_1"] = &Model::get_HiggsPoleMass_1srd_low;
return map_collection;
}
};
} // end SpecBit namespace
} // end Gambit namespace
#endif
Updated on 2024-07-18 at 13:53:33 +0000