herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
Base/ShowerBasis.h
1// -*- C++ -*-
2#ifndef Herwig_ShowerBasis_H
3#define Herwig_ShowerBasis_H
4//
5// This is the declaration of the ShowerBasis class.
6//
7
8#include "ShowerBasis.fh"
9#include "ShowerParticle.fh"
10#include "Herwig/Shower/ShowerConfig.h"
12#include "ThePEG/Vectors/Lorentz5Vector.h"
13
14namespace Herwig {
15
16using namespace ThePEG;
17
21class ShowerBasis: public Base {
22
23public:
24
28 enum Frame {BackToBack,Rest};
29
30public:
31
36
40 Frame frame() const {return frame_;}
41
46
53 virtual vector<Lorentz5Momentum> getBasis() const;
54
58 void setBasis(const Lorentz5Momentum &p, const Lorentz5Momentum & n,
59 Frame frame);
60
64 const Lorentz5Momentum & pVector() const {return pVector_;}
65
69 const Lorentz5Momentum & nVector() const {return nVector_;}
70
74 Energy2 p_dot_n() const {return pVector_*nVector_;}
75
79 virtual void transform(const LorentzRotation & r);
80
91 Lorentz5Momentum sudakov2Momentum(double alpha, double beta,
92 Energy px, Energy py) const {
93 return alpha*pVector_ + beta*nVector_ + px*xPerp_ + py*yPerp_;
94 }
95
96private:
97
102 ShowerBasis & operator=(const ShowerBasis &) = delete;
103
104private:
105
110
114 Lorentz5Momentum pVector_;
115
119 Lorentz5Momentum nVector_;
120
125
130
131};
132
133}
134
135#endif /* Herwig_ShowerBasis_H */
The ShowerBasis class stores the basis vectors used by the shower.
Lorentz5Momentum pVector_
The reference vector.
const Lorentz5Momentum & pVector() const
Access to the vector used to describe the kinematics.
LorentzVector< double > yPerp_
y reference vector
ShowerBasis & operator=(const ShowerBasis &)=delete
The assignment operator is private and must never be called.
Lorentz5Momentum sudakov2Momentum(double alpha, double beta, Energy px, Energy py) const
Converts a Sudakov parametrization of a momentum w.r.t.
Frame
enum for the frame definition
Energy2 p_dot_n() const
Dot product of thew basis vectors.
Frame frame_
The frame in which the basis vectors are defined.
LorentzVector< double > xPerp_
x reference vector
Frame frame() const
Access to the frame definition.
virtual vector< Lorentz5Momentum > getBasis() const
Implementation of the virtual function returning a set of basis vectors, specific to the type of evol...
ShowerBasis()
The default constructor.
const Lorentz5Momentum & nVector() const
Access to the vector used to describe the kinematics.
Lorentz5Momentum nVector_
The reference vector.
virtual void transform(const LorentzRotation &r)
Transform the shower kinematics (usually the reference vectors)
void setBasis(const Lorentz5Momentum &p, const Lorentz5Momentum &n, Frame frame)
Set the basis vectors.
void frame(Frame frame)
Set the frame definition.
-*- C++ -*-