herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Shower
QTilde
Base
HardBranching.h
1
// -*- C++ -*-
2
#ifndef HERWIG_HardBranching_H
3
#define HERWIG_HardBranching_H
4
//
5
// This is the declaration of the HardBranching class.
6
//
7
8
#include "
ThePEG/Config/ThePEG.h
"
9
#include "Herwig/Shower/QTilde/Base/ShowerProgenitor.h"
10
#include "Herwig/Shower/QTilde/Base/ShowerTree.h"
11
#include "Herwig/Shower/QTilde/SplittingFunctions/SudakovFormFactor.h"
12
#include "HardBranching.fh"
13
#include "HardTree.fh"
14
15
namespace
Herwig
{
16
17
using namespace
ThePEG
;
18
23
class
HardBranching
:
public
Base
{
24
28
friend
class
HardTree
;
29
30
public
:
31
35
enum
Status
{Outgoing=0,Incoming,Decay};
36
37
public
:
38
46
HardBranching
(ShowerParticlePtr particle, SudakovPtr
sudakov
,
47
tHardBranchingPtr
parent
,
Status
status
);
48
53
void
addChild
(HardBranchingPtr child) {
_children
.push_back(child);}
54
58
void
clearChildren
() {
_children
.clear(); }
59
63
void
setMomenta
(
LorentzRotation
R,
double
alpha, Lorentz5Momentum pt,
64
bool
setMomentum=
true
);
65
73
tShowerParticlePtr
branchingParticle
()
const
{
return
_particle
;}
74
78
void
branchingParticle
(ShowerParticlePtr in) {
_particle
=in;}
79
83
const
Lorentz5Momentum &
original
()
const
{
return
_original
;}
84
88
void
original
(
const
Lorentz5Momentum & in) {
_original
=in;}
89
93
const
Lorentz5Momentum &
pVector
()
const
{
return
_p
;}
94
98
void
pVector
(
const
Lorentz5Momentum & in) {
_p
=in;}
99
103
const
Lorentz5Momentum &
nVector
()
const
{
return
_n
;}
104
108
void
nVector
(
const
Lorentz5Momentum & in) {
_n
=in;}
109
113
const
Lorentz5Momentum &
qPerp
()
const
{
return
_qt
;}
114
118
void
qPerp
(
const
Lorentz5Momentum & in) {
_qt
=in;}
119
123
const
Lorentz5Momentum &
showerMomentum
()
const
{
return
_shower
;}
124
128
void
showerMomentum
(
const
Lorentz5Momentum & in ) {
_shower
=in;}
129
133
Energy
pT
()
const
{
return
_pt
;}
134
138
void
pT
(Energy in) {
_pt
=in;}
139
143
double
x_frac
()
const
{
return
_x_frac
;}
144
148
void
x_frac
(
double
x ) {
_x_frac
= x; }
149
153
Status
status
()
const
{
return
_status
;}
154
158
void
status
(
Status
in) {
_status
=in;}
159
163
tHardBranchingPtr
parent
()
const
{
return
_parent
;}
164
168
void
parent
(tHardBranchingPtr in) {
_parent
=in;}
169
173
SudakovPtr
sudakov
()
const
{
return
_sudakov
;}
174
178
void
sudakov
(SudakovPtr in) {
_sudakov
=in;}
179
183
PPtr
beam
()
const
{
return
_beam
;}
184
188
void
beam
(
PPtr
in) {
_beam
=in;}
189
193
vector<HardBranchingPtr> &
children
() {
return
_children
;}
195
203
Energy
scale
()
const
{
return
_scale
;}
204
208
void
scale
(Energy in) {
_scale
=in;}
209
213
double
z
()
const
{
return
_z
;}
214
218
void
z
(
double
in) {
_z
=in;}
219
223
double
phi
()
const
{
return
_phi
;}
224
228
void
phi
(
double
in) {
_phi
=in;}
230
238
tHardBranchingPtr
colourPartner
()
const
{
return
_partner
;}
239
243
void
colourPartner
(tHardBranchingPtr in) {
_partner
=in;}
244
246
250
ShowerPartnerType
type
()
const
{
251
assert(
type_
!=ShowerPartnerType::Undefined);
252
return
type_
;
253
}
254
258
void
type
(
ShowerPartnerType
in) {
259
type_
= in;
260
assert(
type_
!=ShowerPartnerType::Undefined);
261
}
262
263
private
:
264
268
ShowerParticlePtr
_particle
;
269
273
Lorentz5Momentum
_original
;
274
278
Lorentz5Momentum
_p
;
279
283
Lorentz5Momentum
_n
;
284
288
Lorentz5Momentum
_qt
;
289
293
Lorentz5Momentum
_shower
;
294
298
Energy
_pt
;
299
303
double
_x_frac
;
304
308
Status
_status
;
309
317
Energy
_scale
;
318
322
double
_z
;
323
327
double
_phi
;
329
333
tHardBranchingPtr
_parent
;
334
338
SudakovPtr
_sudakov
;
339
343
vector<HardBranchingPtr>
_children
;
344
348
PPtr
_beam
;
349
353
tHardBranchingPtr
_partner
;
354
358
ShowerPartnerType
type_
;
359
};
360
361
}
362
363
#endif
/* HERWIG_HardBranching_H */
ThePEG.h
Herwig::HardBranching
The HardBranching class is designed to contain the information needed for an individual branching in ...
Definition:
HardBranching.h:23
Herwig::HardBranching::scale
Energy scale() const
Information on the Shower variables for the branching.
Definition:
HardBranching.h:203
Herwig::HardBranching::sudakov
SudakovPtr sudakov() const
The Sudakov form-factor.
Definition:
HardBranching.h:173
Herwig::HardBranching::branchingParticle
tShowerParticlePtr branchingParticle() const
Set and get members for the private member variables.
Definition:
HardBranching.h:73
Herwig::HardBranching::x_frac
void x_frac(double x)
Set the fraction of beam momentum x.
Definition:
HardBranching.h:148
Herwig::HardBranching::Status
Status
Enum for the status.
Definition:
HardBranching.h:35
Herwig::HardBranching::_particle
ShowerParticlePtr _particle
The branching particle.
Definition:
HardBranching.h:268
Herwig::HardBranching::type_
ShowerPartnerType type_
The type of branching.
Definition:
HardBranching.h:358
Herwig::HardBranching::original
void original(const Lorentz5Momentum &in)
Set the original momentum.
Definition:
HardBranching.h:88
Herwig::HardBranching::showerMomentum
const Lorentz5Momentum & showerMomentum() const
Get the momentum the particle should have as the start of a shower.
Definition:
HardBranching.h:123
Herwig::HardBranching::_partner
tHardBranchingPtr _partner
The colour partner.
Definition:
HardBranching.h:353
Herwig::HardBranching::pVector
void pVector(const Lorentz5Momentum &in)
Set the p reference vector.
Definition:
HardBranching.h:98
Herwig::HardBranching::_n
Lorentz5Momentum _n
The reference vector.
Definition:
HardBranching.h:283
Herwig::HardBranching::clearChildren
void clearChildren()
Clear the children.
Definition:
HardBranching.h:58
Herwig::HardBranching::_sudakov
SudakovPtr _sudakov
The Sudakov form-factor.
Definition:
HardBranching.h:338
Herwig::HardBranching::status
void status(Status in)
Set whether the branching is incoming, outgoing or decay.
Definition:
HardBranching.h:158
Herwig::HardBranching::_beam
PPtr _beam
The beam particle.
Definition:
HardBranching.h:348
Herwig::HardBranching::original
const Lorentz5Momentum & original() const
Get the original momentum.
Definition:
HardBranching.h:83
Herwig::HardBranching::parent
void parent(tHardBranchingPtr in)
Set the parent of the branching.
Definition:
HardBranching.h:168
Herwig::HardBranching::pT
Energy pT() const
Get the transverse momentum.
Definition:
HardBranching.h:133
Herwig::HardBranching::colourPartner
tHardBranchingPtr colourPartner() const
Colour partners.
Definition:
HardBranching.h:238
Herwig::HardBranching::_z
double _z
The energy fraction.
Definition:
HardBranching.h:322
Herwig::HardBranching::x_frac
double x_frac() const
Get the fraction of beam momentum x.
Definition:
HardBranching.h:143
Herwig::HardBranching::nVector
void nVector(const Lorentz5Momentum &in)
Set the n reference vector.
Definition:
HardBranching.h:108
Herwig::HardBranching::scale
void scale(Energy in)
The evolution scale.
Definition:
HardBranching.h:208
Herwig::HardBranching::_p
Lorentz5Momentum _p
The reference vector.
Definition:
HardBranching.h:278
Herwig::HardBranching::z
double z() const
The energy fraction.
Definition:
HardBranching.h:213
Herwig::HardBranching::addChild
void addChild(HardBranchingPtr child)
Add a child of the branching.
Definition:
HardBranching.h:53
Herwig::HardBranching::_x_frac
double _x_frac
The beam momentum fraction carried by an incoming parton x.
Definition:
HardBranching.h:303
Herwig::HardBranching::nVector
const Lorentz5Momentum & nVector() const
Get the n reference vector.
Definition:
HardBranching.h:103
Herwig::HardBranching::parent
tHardBranchingPtr parent() const
The parent of the branching.
Definition:
HardBranching.h:163
Herwig::HardBranching::_shower
Lorentz5Momentum _shower
The momentum the particle should have as the start of a shower.
Definition:
HardBranching.h:293
Herwig::HardBranching::colourPartner
void colourPartner(tHardBranchingPtr in)
The colour partner of the branching.
Definition:
HardBranching.h:243
Herwig::HardBranching::status
Status status() const
Get whether the branching is incoming, outgoing or decay.
Definition:
HardBranching.h:153
Herwig::HardBranching::phi
void phi(double in)
The azimthual angle.
Definition:
HardBranching.h:228
Herwig::HardBranching::_qt
Lorentz5Momentum _qt
The transverse momentum vector.
Definition:
HardBranching.h:288
Herwig::HardBranching::setMomenta
void setMomenta(LorentzRotation R, double alpha, Lorentz5Momentum pt, bool setMomentum=true)
Set the momenta of the particles.
Herwig::HardBranching::beam
PPtr beam() const
Get the beam particle.
Definition:
HardBranching.h:183
Herwig::HardBranching::_parent
tHardBranchingPtr _parent
The parent of the branching.
Definition:
HardBranching.h:333
Herwig::HardBranching::branchingParticle
void branchingParticle(ShowerParticlePtr in)
Set the branching particle.
Definition:
HardBranching.h:78
Herwig::HardBranching::sudakov
void sudakov(SudakovPtr in)
The Sudakov form-factor.
Definition:
HardBranching.h:178
Herwig::HardBranching::phi
double phi() const
The azimthual angle.
Definition:
HardBranching.h:223
Herwig::HardBranching::type
ShowerPartnerType type() const
Type of branching.
Definition:
HardBranching.h:250
Herwig::HardBranching::_status
Status _status
Whether the branching is incoming, outgoing or a decay.
Definition:
HardBranching.h:308
Herwig::HardBranching::_children
vector< HardBranchingPtr > _children
The children.
Definition:
HardBranching.h:343
Herwig::HardBranching::_phi
double _phi
The azimthual angle.
Definition:
HardBranching.h:327
Herwig::HardBranching::showerMomentum
void showerMomentum(const Lorentz5Momentum &in)
Set the momentum the particle should have as the start of a shower.
Definition:
HardBranching.h:128
Herwig::HardBranching::_original
Lorentz5Momentum _original
The rescaled momentum.
Definition:
HardBranching.h:273
Herwig::HardBranching::HardBranching
HardBranching(ShowerParticlePtr particle, SudakovPtr sudakov, tHardBranchingPtr parent, Status status)
The default constructor.
Herwig::HardBranching::_scale
Energy _scale
Information on the Shower variables for the branching.
Definition:
HardBranching.h:317
Herwig::HardBranching::qPerp
void qPerp(const Lorentz5Momentum &in)
Set the transverse momentum vector.
Definition:
HardBranching.h:118
Herwig::HardBranching::pT
void pT(Energy in)
Set the transverse momentum.
Definition:
HardBranching.h:138
Herwig::HardBranching::qPerp
const Lorentz5Momentum & qPerp() const
Get the transverse momentum vector.
Definition:
HardBranching.h:113
Herwig::HardBranching::z
void z(double in)
The energy fraction.
Definition:
HardBranching.h:218
Herwig::HardBranching::_pt
Energy _pt
The transverse momentum.
Definition:
HardBranching.h:298
Herwig::HardBranching::children
vector< HardBranchingPtr > & children()
The children.
Definition:
HardBranching.h:193
Herwig::HardBranching::type
void type(ShowerPartnerType in)
Type of branching.
Definition:
HardBranching.h:258
Herwig::HardBranching::beam
void beam(PPtr in)
Set the beam particle.
Definition:
HardBranching.h:188
Herwig::HardBranching::pVector
const Lorentz5Momentum & pVector() const
Get the p reference vector.
Definition:
HardBranching.h:93
Herwig::HardTree
The HardTree class is designed to contain the information required to implement the POWHEG approach f...
Definition:
HardTree.h:23
ThePEG::LorentzRotation
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::ShowerPartnerType
ShowerPartnerType
Enum for the type of shower partner.
Definition:
ShowerInteraction.h:35
ThePEG
ThePEG::PPtr
ThePEG::Ptr< Particle >::pointer PPtr
ThePEG::Base
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6