herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
QTilde/Kinematics/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 "Herwig/Shower/QTilde/Base/ShowerParticle.fh"
10#include "Herwig/Shower/QTilde/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
48 virtual vector<Lorentz5Momentum> getBasis() const;
49
53 void setBasis(const Lorentz5Momentum &p, const Lorentz5Momentum & n,
54 Frame frame);
55
59 const Lorentz5Momentum & pVector() const {return pVector_;}
60
64 const Lorentz5Momentum & nVector() const {return nVector_;}
65
69 Energy2 p_dot_n() const {return pVector_*nVector_;}
70
74 virtual void transform(const LorentzRotation & r);
75
86 Lorentz5Momentum sudakov2Momentum(double alpha, double beta,
87 Energy px, Energy py) const {
88 return alpha*pVector_ + beta*nVector_ + px*xPerp_ + py*yPerp_;
89 }
90
91private:
92
97 ShowerBasis & operator=(const ShowerBasis &) = delete;
98
99private:
100
105
109 Lorentz5Momentum pVector_;
110
114 Lorentz5Momentum nVector_;
115
120
125
126};
127
128}
129
130#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.
-*- C++ -*-