hej is hosted by Hepforge, IPPP Durham
HEJ 2.1.4
High energy resummation for hadron colliders
Loading...
Searching...
No Matches
EWConstants.hh
Go to the documentation of this file.
1
8#pragma once
9
10#include <cmath>
11#include <memory>
12
13#include "HEJ/PDG_codes.hh"
14#include "HEJ/exceptions.hh"
15
16namespace HEJ {
19 double mass;
20 double width;
21 };
22
25 public:
27 EWConstants() = default;
29 constexpr EWConstants(
30 double vev,
34 ): set_{true}, vev_{vev}, Wprop_{std::move(Wprop)},
35 Zprop_{std::move(Zprop)}, Hprop_{std::move(Hprop)}
36 {}
39 double vev,
43 ){
44 set_ = true; vev_= vev; Wprop_= std::move(Wprop);
45 Zprop_= std::move(Zprop); Hprop_= std::move(Hprop);
46 }
48 double vev() const {check_set(); return vev_;}
50 ParticleProperties const & Wprop() const {check_set(); return Wprop_;}
52 ParticleProperties const & Zprop() const {check_set(); return Zprop_;}
54 ParticleProperties const & Hprop() const {check_set(); return Hprop_;}
56 ParticleProperties const & prop(ParticleID const id) const {
57 using namespace pid;
58 switch(id){
59 case Wp:
60 case Wm:
61 return Wprop();
62 case Z:
63 return Zprop();
64 case h:
65 return Hprop();
66 default:
67 throw std::invalid_argument("No properties available for particle "+name(id));
68 }
69 }
71 double cos_tw() const {return Wprop().mass/Zprop().mass;}
73 double cos2_tw() const {return cos_tw()*cos_tw();}
75 double sin_tw() const {return std::sqrt(sin2_tw());}
77 double sin2_tw() const {return 1. - cos2_tw();}
79 double alpha_em() const {return e2()/4./M_PI;}
81 double alpha_w() const {return gw2()/2.;}
82
83 private:
84 double gw2() const {return 4*Wprop().mass/vev()*Wprop().mass/vev();}
85 double e2() const {return gw2()*sin2_tw();}
86 void check_set() const {
87 if(!set_) throw std::invalid_argument("EW constants not specified");
88 }
89 bool set_{false};
90 double vev_{};
91 ParticleProperties Wprop_{};
92 ParticleProperties Zprop_{};
93 ParticleProperties Hprop_{};
94 };
95} // namespace HEJ
Contains the Particle IDs of all relevant SM particles.
Collection of electro-weak constants.
Definition: EWConstants.hh:24
double cos_tw() const
cosine of Weinberg angle
Definition: EWConstants.hh:71
double vev() const
vacuum expectation value
Definition: EWConstants.hh:48
double sin_tw() const
sinus Weinberg angle
Definition: EWConstants.hh:75
double sin2_tw() const
sinus square of Weinberg angle
Definition: EWConstants.hh:77
double alpha_w() const
weak coupling
Definition: EWConstants.hh:81
constexpr EWConstants(double vev, ParticleProperties Wprop, ParticleProperties Zprop, ParticleProperties Hprop)
initialise by Vacuum expectation value & boson properties
Definition: EWConstants.hh:29
void set_vevWZH(double vev, ParticleProperties Wprop, ParticleProperties Zprop, ParticleProperties Hprop)
set constants by Vacuum expectation value & boson properties
Definition: EWConstants.hh:38
ParticleProperties const & Zprop() const
Properties of the Z boson.
Definition: EWConstants.hh:52
ParticleProperties const & Hprop() const
Properties of the Higgs boson.
Definition: EWConstants.hh:54
double alpha_em() const
elector magnetic coupling
Definition: EWConstants.hh:79
ParticleProperties const & prop(ParticleID const id) const
access Properties by boson id
Definition: EWConstants.hh:56
EWConstants()=default
Default constructor, values have to be initialised separately.
double cos2_tw() const
cosine square of Weinberg angle
Definition: EWConstants.hh:73
ParticleProperties const & Wprop() const
Properties of the W boson.
Definition: EWConstants.hh:50
Custom exception classes.
ParticleID
The possible particle identities. We use PDG IDs as standard.
Definition: PDG_codes.hh:23
Main HEJ 2 Namespace.
Definition: mainpage.dox:1
collection of basic particle properties
Definition: EWConstants.hh:18
double mass
Mass.
Definition: EWConstants.hh:19
double width
Decay width.
Definition: EWConstants.hh:20