herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
MatrixElement
Matchbox
Phasespace
FlatInvertibleLabframePhasespace.h
1
// -*- C++ -*-
2
//
3
// FlatInvertiblePhasespaceLabFrame.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_FlatInvertibleLabframePhasespace_H
10
#define Herwig_FlatInvertibleLabframePhasespace_H
11
//
12
// This is the declaration of the FlatInvertibleLabframePhasespace class.
13
//
14
15
#include "Herwig/MatrixElement/Matchbox/Phasespace/FlatInvertiblePhasespace.h"
16
17
namespace
Herwig
{
18
19
using namespace
ThePEG
;
20
28
class
FlatInvertibleLabframePhasespace
:
public
FlatInvertiblePhasespace
{
29
30
public
:
31
37
FlatInvertibleLabframePhasespace
();
38
42
virtual
~
FlatInvertibleLabframePhasespace
();
44
45
public
:
46
50
virtual
double
generateTwoToNKinematics(
const
double
*,
51
vector<Lorentz5Momentum>& momenta);
52
57
virtual
int
nDimPhasespace
(
int
nFinal)
const
{
58
if
( nFinal == 1 )
59
return
3;
60
return
3*nFinal - 2;
61
}
62
63
public
:
64
69
virtual
bool
haveX1X2
()
const
{
return
true
; }
70
75
virtual
bool
wantCMS
()
const
{
return
false
; }
76
81
virtual
double
invertTwoToNKinematics(
const
vector<Lorentz5Momentum>& momenta,
82
double
* r)
const
;
83
84
private
:
85
90
bool
theLogSHat
;
91
92
public
:
93
100
void
persistentOutput(
PersistentOStream
& os)
const
;
101
107
void
persistentInput(
PersistentIStream
& is,
int
version);
109
116
static
void
Init();
117
118
protected
:
119
126
virtual
IBPtr
clone()
const
;
127
132
virtual
IBPtr
fullclone()
const
;
134
135
136
// If needed, insert declarations of virtual function defined in the
137
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
138
139
140
private
:
141
146
FlatInvertibleLabframePhasespace
& operator=(
const
FlatInvertibleLabframePhasespace
&) =
delete
;
147
148
};
149
150
}
151
152
#endif
/* Herwig_FlatInvertiblePhasespace_H */
ThePEG::PersistentIStream
Herwig::FlatInvertibleLabframePhasespace
FlatInvertibleLabframePhasespace implements flat, invertible phase space generation in the lab frame...
Definition:
FlatInvertibleLabframePhasespace.h:28
ThePEG::PersistentOStream
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG
Herwig::FlatInvertibleLabframePhasespace::nDimPhasespace
virtual int nDimPhasespace(int nFinal) const
Return the number of random numbers required to produce a given multiplicity final state...
Definition:
FlatInvertibleLabframePhasespace.h:57
Herwig::FlatInvertiblePhasespace
FlatInvertiblePhasespace implements flat, invertible phase space generation.
Definition:
FlatInvertiblePhasespace.h:28
Herwig::FlatInvertibleLabframePhasespace::haveX1X2
virtual bool haveX1X2() const
Return true, if this phasespace generator will generate incoming partons itself.
Definition:
FlatInvertibleLabframePhasespace.h:69
Herwig::FlatInvertibleLabframePhasespace::theLogSHat
bool theLogSHat
True if SHat should be generated flat in log(SHat/S), false if SHat should be generated flat in SHat...
Definition:
FlatInvertibleLabframePhasespace.h:90
Herwig::FlatInvertibleLabframePhasespace::wantCMS
virtual bool wantCMS() const
Return true, if this phase space generator expects the incoming partons in their center-of-mass syste...
Definition:
FlatInvertibleLabframePhasespace.h:75
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Generated on Sat Apr 11 2020 14:50:29 for Herwig by
1.8.13