herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
MatrixElement
Matchbox
Phasespace
TreePhasespace.h
1
// -*- C++ -*-
2
//
3
// TreePhasespace.h is a part of Herwig - A multi-purpose Monte Carlo event generator
4
// Copyright (C) 2002-2019 The Herwig Collaboration
5
//
6
// Herwig is licenced under version 3 of the GPL, see COPYING for details.
7
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8
//
9
#ifndef Herwig_TreePhasespace_H
10
#define Herwig_TreePhasespace_H
11
//
12
// This is the declaration of the TreePhasespace class.
13
//
14
15
#include "Herwig/MatrixElement/Matchbox/Phasespace/MatchboxPhasespace.h"
16
#include "Herwig/MatrixElement/Matchbox/Phasespace/TreePhasespaceChannels.h"
17
18
namespace
Herwig
{
19
20
using namespace
ThePEG
;
21
33
class
TreePhasespace
:
public
MatchboxPhasespace
{
34
35
public
:
36
42
TreePhasespace
();
43
47
virtual
~
TreePhasespace
();
49
50
public
:
51
55
virtual
void
setXComb(tStdXCombPtr);
56
60
virtual
double
generateTwoToNKinematics(
const
double
*,
61
vector<Lorentz5Momentum>& momenta);
62
67
virtual
int
nDimPhasespace
(
int
nFinal)
const
{
68
if
( nFinal == 1 )
69
return
1;
70
return
3*(nFinal - 1);
// one additional number needed for channel selection
71
}
72
73
public
:
74
81
void
persistentOutput(
PersistentOStream
& os)
const
;
82
88
void
persistentInput(
PersistentIStream
& is,
int
version);
90
97
static
void
Init();
98
99
protected
:
100
107
virtual
IBPtr
clone()
const
;
108
113
virtual
IBPtr
fullclone()
const
;
115
116
117
// If needed, insert declarations of virtual function defined in the
118
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
119
120
121
protected
:
122
130
virtual
void
doinit();
131
136
virtual
void
doinitrun();
138
139
140
private
:
141
145
Ptr<TreePhasespaceChannels>::ptr
theChannelMap
;
146
150
map<tStdXCombPtr,
151
map<Ptr<Tree2toNDiagram>::ptr,
152
pair <PhasespaceHelpers::PhasespaceTree, PhasespaceHelpers::PhasespaceTree> > >&
153
channelMap
() {
return
theChannelMap->channelMap(); }
154
158
map<tStdXCombPtr,
159
map<Ptr<Tree2toNDiagram>::ptr,
160
pair <PhasespaceHelpers::PhasespaceTree, PhasespaceHelpers::PhasespaceTree> > >::iterator
161
lastChannelsIterator
;
162
166
PhasespaceHelpers::PhasespaceInfo
lastPhasespaceInfo
;
167
172
double
x0
;
173
178
double
xc
;
179
184
Energy
M0
;
185
190
Energy
Mc
;
191
195
bool
theIncludeMirrored
;
196
200
map<Ptr<Tree2toNDiagram>::ptr,
201
pair <PhasespaceHelpers::PhasespaceTree, PhasespaceHelpers::PhasespaceTree> >&
lastChannels
() {
202
return
lastChannelsIterator->second;
203
}
204
205
private
:
206
211
TreePhasespace
& operator=(
const
TreePhasespace
&) =
delete
;
212
213
};
214
215
}
216
217
#endif
/* Herwig_TreePhasespace_H */
ThePEG::PersistentIStream
Herwig::TreePhasespace::M0
Energy M0
Parameter steering from which on propagator virtualities are sampled flat.
Definition:
TreePhasespace.h:184
ThePEG::PersistentOStream
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Herwig::MatchboxPhasespace
MatchboxPhasespace defines an abstract interface to a phase space generator.
Definition:
MatchboxPhasespace.h:79
Herwig::PhasespaceHelpers::PhasespaceInfo
General information for phase space generation.
Definition:
PhasespaceHelpers.h:31
Herwig::TreePhasespace::Mc
Energy Mc
Parameter steering at which virtuality singularities of propagators are actually cut off...
Definition:
TreePhasespace.h:190
ThePEG
Herwig::TreePhasespace::channelMap
map< tStdXCombPtr, map< Ptr< Tree2toNDiagram >::ptr, pair< PhasespaceHelpers::PhasespaceTree, PhasespaceHelpers::PhasespaceTree > > > & channelMap()
Map xcomb's to channel vectors indexed by diagram id.
Definition:
TreePhasespace.h:153
Herwig::TreePhasespace::theChannelMap
Ptr< TreePhasespaceChannels >::ptr theChannelMap
The object storing channel maps.
Definition:
TreePhasespace.h:145
Herwig::TreePhasespace::x0
double x0
Parameter steering from which on propagator virtualities are sampled flat.
Definition:
TreePhasespace.h:172
Herwig::TreePhasespace::lastPhasespaceInfo
PhasespaceHelpers::PhasespaceInfo lastPhasespaceInfo
The phase space info object to be used.
Definition:
TreePhasespace.h:166
Herwig::TreePhasespace::xc
double xc
Parameter steering at which virtuality singularities of propagators are actually cut off...
Definition:
TreePhasespace.h:178
Herwig::TreePhasespace
TreePhasespace is a multi-channel phase space generator adapting to singularity structures as determi...
Definition:
TreePhasespace.h:33
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::TreePhasespace::theIncludeMirrored
bool theIncludeMirrored
Choose whether to also use mirrored phase space generation.
Definition:
TreePhasespace.h:195
Herwig::TreePhasespace::lastChannelsIterator
map< tStdXCombPtr, map< Ptr< Tree2toNDiagram >::ptr, pair< PhasespaceHelpers::PhasespaceTree, PhasespaceHelpers::PhasespaceTree > > >::iterator lastChannelsIterator
The currently active channels.
Definition:
TreePhasespace.h:161
Herwig::TreePhasespace::nDimPhasespace
virtual int nDimPhasespace(int nFinal) const
Return the number of random numbers required to produce a given multiplicity final state...
Definition:
TreePhasespace.h:67
Herwig::TreePhasespace::lastChannels
map< Ptr< Tree2toNDiagram >::ptr, pair< PhasespaceHelpers::PhasespaceTree, PhasespaceHelpers::PhasespaceTree > > & lastChannels()
Return the currently active channels.
Definition:
TreePhasespace.h:201
Generated on Sat Apr 11 2020 14:50:32 for Herwig by
1.8.13