Page MenuHomeHEPForge

No OneTemporary

diff --git a/FixedOrderGen/include/ParticleProperties.hh b/FixedOrderGen/include/ParticleProperties.hh
index d38a0ec..70f5e48 100644
--- a/FixedOrderGen/include/ParticleProperties.hh
+++ b/FixedOrderGen/include/ParticleProperties.hh
@@ -1,28 +1,31 @@
/**
* \authors The HEJ collaboration (see AUTHORS for details)
* \date 2019
* \copyright GPLv2 or later
*/
#pragma once
#include <vector>
#include <unordered_map>
+#include "HEJ/EWConstants.hh"
+
#include "Decay.hh"
namespace HEJFOG{
- struct ParticleProperties{
- double mass;
- double width;
+ struct ParticleProperties: public HEJ::ParticleProperties{
std::vector<Decay> decays;
+ ParticleProperties() = default;
+ ParticleProperties(double mass_, double width_, std::vector<Decay> decays_):
+ HEJ::ParticleProperties{mass_, width_}, decays{decays_}{}
};
#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ < 6)
// gcc version < 6 explicitly needs hash function for enum
// see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60970
using ParticlesPropMap
= std::unordered_map<HEJ::ParticleID, ParticleProperties, std::hash<int>>;
#else
using ParticlesPropMap
= std::unordered_map<HEJ::ParticleID, ParticleProperties>;
#endif
}
diff --git a/include/HEJ/EWConstants.hh b/include/HEJ/EWConstants.hh
new file mode 100644
index 0000000..dedac59
--- /dev/null
+++ b/include/HEJ/EWConstants.hh
@@ -0,0 +1,65 @@
+/** \file
+ * \brief Defines the electro weak parameters
+ *
+ * \authors The HEJ collaboration (see AUTHORS for details)
+ * \date 2019
+ * \copyright GPLv2 or later
+ */
+#pragma once
+
+#include <cmath>
+
+#include "HEJ/exceptions.hh"
+
+namespace HEJ {
+ struct ParticleProperties{
+ double mass;
+ double width;
+ };
+
+ class EWConstants {
+ public:
+ EWConstants() = default;
+ //! initialise constants by Vacuum expectation value & boson properties
+ void set_vevWZH(
+ double vev,
+ ParticleProperties const & Wprop,
+ ParticleProperties const & Zprop,
+ ParticleProperties const & Hprop
+ ){
+ vev_= vev; Wprop_= Wprop; Zprop_= Zprop; Hprop_= Hprop;
+ set = true;
+ }
+ //! vacuum expectation value
+ double vev() const {check_set(); return vev_;}
+ //! Properties of the W boson
+ ParticleProperties const & Wprop() const {check_set(); return Wprop_;}
+ //! Properties of the Z boson
+ ParticleProperties const & Zprop() const {check_set(); return Zprop_;}
+ //! Properties of the Higgs boson
+ ParticleProperties const & Hprop() const {check_set(); return Hprop_;}
+ //! cosine of Weinberg angle
+ double cos_tw() const {return Wprop().mass/Zprop().mass;}
+ //! cosine square of Weinberg angle
+ double cos2_tw() const {return cos_tw()*cos_tw();}
+ //! sinus Weinberg angle
+ double sin_tw() const {return sqrt(sin2_tw());}
+ //! sinus square of Weinberg angle
+ double sin2_tw() const {return 1. - cos2_tw();}
+ //! elector magnetic coupling
+ double alpha_em() const {return e2()/4./M_PI;}
+ //! weak coupling
+ double alpha_w() const {return gw2()/2.;}
+ private:
+ double gw2() const {return 4*Wprop().mass/vev()*Wprop().mass/vev();}
+ double e2() const {return gw2()*sin2_tw();}
+ void check_set() const {
+ if(!set) throw std::invalid_argument("EW constants not specified");
+ }
+ bool set{false};
+ double vev_;
+ ParticleProperties Wprop_;
+ ParticleProperties Zprop_;
+ ParticleProperties Hprop_;
+ };
+}

File Metadata

Mime Type
text/x-diff
Expires
Sun, Feb 23, 2:27 PM (16 h, 21 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4486598
Default Alt Text
(3 KB)

Event Timeline