herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
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
40
TreePhasespace
();
41
42
public
:
43
47
virtual
void
setXComb
(tStdXCombPtr);
48
52
virtual
double
generateTwoToNKinematics
(
const
double
*,
53
vector<Lorentz5Momentum>& momenta);
54
59
virtual
int
nDimPhasespace
(
int
nFinal)
const
{
60
if
( nFinal == 1 )
61
return
1;
62
return
3*(nFinal - 1);
// one additional number needed for channel selection
63
}
64
65
public
:
66
73
void
persistentOutput
(
PersistentOStream
& os)
const
;
74
80
void
persistentInput
(
PersistentIStream
& is,
int
version);
82
89
static
void
Init
();
90
91
protected
:
92
99
virtual
IBPtr
clone
()
const
;
100
105
virtual
IBPtr
fullclone
()
const
;
107
108
109
// If needed, insert declarations of virtual function defined in the
110
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
111
112
113
protected
:
114
122
virtual
void
doinit
();
123
128
virtual
void
doinitrun
();
130
131
132
private
:
133
137
Ptr<TreePhasespaceChannels>::ptr
theChannelMap
;
138
142
map<tStdXCombPtr,
143
map<Ptr<Tree2toNDiagram>::ptr,
144
pair <PhasespaceHelpers::PhasespaceTree, PhasespaceHelpers::PhasespaceTree> > >&
145
channelMap
() {
return
theChannelMap
->channelMap(); }
146
150
map<tStdXCombPtr,
151
map<Ptr<Tree2toNDiagram>::ptr,
152
pair <PhasespaceHelpers::PhasespaceTree, PhasespaceHelpers::PhasespaceTree> > >::iterator
153
lastChannelsIterator
;
154
158
PhasespaceHelpers::PhasespaceInfo
lastPhasespaceInfo
;
159
164
double
x0
;
165
170
double
xc
;
171
176
Energy
M0
;
177
182
Energy
Mc
;
183
187
bool
theIncludeMirrored
;
188
192
map<Ptr<Tree2toNDiagram>::ptr,
193
pair <PhasespaceHelpers::PhasespaceTree, PhasespaceHelpers::PhasespaceTree> >&
lastChannels
() {
194
return
lastChannelsIterator
->second;
195
}
196
197
private
:
198
203
TreePhasespace
&
operator=
(
const
TreePhasespace
&) =
delete
;
204
205
};
206
207
}
208
209
#endif
/* Herwig_TreePhasespace_H */
Herwig::MatchboxPhasespace
MatchboxPhasespace defines an abstract interface to a phase space generator.
Definition:
MatchboxPhasespace.h:82
Herwig::TreePhasespace
TreePhasespace is a multi-channel phase space generator adapting to singularity structures as determi...
Definition:
TreePhasespace.h:33
Herwig::TreePhasespace::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::TreePhasespace::lastPhasespaceInfo
PhasespaceHelpers::PhasespaceInfo lastPhasespaceInfo
The phase space info object to be used.
Definition:
TreePhasespace.h:158
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:59
Herwig::TreePhasespace::M0
Energy M0
Parameter steering from which on propagator virtualities are sampled flat.
Definition:
TreePhasespace.h:176
Herwig::TreePhasespace::theChannelMap
Ptr< TreePhasespaceChannels >::ptr theChannelMap
The object storing channel maps.
Definition:
TreePhasespace.h:137
Herwig::TreePhasespace::Mc
Energy Mc
Parameter steering at which virtuality singularities of propagators are actually cut off.
Definition:
TreePhasespace.h:182
Herwig::TreePhasespace::theIncludeMirrored
bool theIncludeMirrored
Choose whether to also use mirrored phase space generation.
Definition:
TreePhasespace.h:187
Herwig::TreePhasespace::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::TreePhasespace::TreePhasespace
TreePhasespace()
The default constructor.
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:145
Herwig::TreePhasespace::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::TreePhasespace::doinitrun
virtual void doinitrun()
Initialize this object.
Herwig::TreePhasespace::operator=
TreePhasespace & operator=(const TreePhasespace &)=delete
The assignment operator is private and must never be called.
Herwig::TreePhasespace::x0
double x0
Parameter steering from which on propagator virtualities are sampled flat.
Definition:
TreePhasespace.h:164
Herwig::TreePhasespace::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::TreePhasespace::xc
double xc
Parameter steering at which virtuality singularities of propagators are actually cut off.
Definition:
TreePhasespace.h:170
Herwig::TreePhasespace::setXComb
virtual void setXComb(tStdXCombPtr)
Prepare a phase space generator for the given xcomb object.
Herwig::TreePhasespace::generateTwoToNKinematics
virtual double generateTwoToNKinematics(const double *, vector< Lorentz5Momentum > &momenta)
Generate a phase space point and return its weight.
Herwig::TreePhasespace::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::TreePhasespace::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::TreePhasespace::lastChannels
map< Ptr< Tree2toNDiagram >::ptr, pair< PhasespaceHelpers::PhasespaceTree, PhasespaceHelpers::PhasespaceTree > > & lastChannels()
Return the currently active channels.
Definition:
TreePhasespace.h:193
Herwig::TreePhasespace::lastChannelsIterator
map< tStdXCombPtr, map< Ptr< Tree2toNDiagram >::ptr, pair< PhasespaceHelpers::PhasespaceTree, PhasespaceHelpers::PhasespaceTree > > >::iterator lastChannelsIterator
The currently active channels.
Definition:
TreePhasespace.h:153
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Herwig::PhasespaceHelpers::PhasespaceInfo
General information for phase space generation.
Definition:
PhasespaceHelpers.h:31
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6