herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
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
35
FlatInvertibleLabframePhasespace
();
36
37
public
:
38
42
virtual
double
generateTwoToNKinematics
(
const
double
*,
43
vector<Lorentz5Momentum>& momenta);
44
49
virtual
int
nDimPhasespace
(
int
nFinal)
const
{
50
if
( nFinal == 1 )
51
return
3;
52
return
3*nFinal - 2;
53
}
54
55
public
:
56
61
virtual
bool
haveX1X2
()
const
{
return
true
; }
62
67
virtual
bool
wantCMS
()
const
{
return
false
; }
68
73
virtual
double
invertTwoToNKinematics
(
const
vector<Lorentz5Momentum>& momenta,
74
double
* r)
const
;
75
76
private
:
77
82
bool
theLogSHat
;
83
84
public
:
85
92
void
persistentOutput
(
PersistentOStream
& os)
const
;
93
99
void
persistentInput
(
PersistentIStream
& is,
int
version);
101
108
static
void
Init
();
109
110
protected
:
111
118
virtual
IBPtr
clone
()
const
;
119
124
virtual
IBPtr
fullclone
()
const
;
126
127
128
// If needed, insert declarations of virtual function defined in the
129
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
130
131
132
private
:
133
138
FlatInvertibleLabframePhasespace
&
operator=
(
const
FlatInvertibleLabframePhasespace
&) =
delete
;
139
140
};
141
142
}
143
144
#endif
/* Herwig_FlatInvertiblePhasespace_H */
Herwig::FlatInvertibleLabframePhasespace
FlatInvertibleLabframePhasespace implements flat, invertible phase space generation in the lab frame.
Definition:
FlatInvertibleLabframePhasespace.h:28
Herwig::FlatInvertibleLabframePhasespace::Init
static void Init()
The standard Init function used to initialize the interfaces.
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:82
Herwig::FlatInvertibleLabframePhasespace::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::FlatInvertibleLabframePhasespace::operator=
FlatInvertibleLabframePhasespace & operator=(const FlatInvertibleLabframePhasespace &)=delete
The assignment operator is private and must never be called.
Herwig::FlatInvertibleLabframePhasespace::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::FlatInvertibleLabframePhasespace::invertTwoToNKinematics
virtual double invertTwoToNKinematics(const vector< Lorentz5Momentum > &momenta, double *r) const
Invert the given phase space point to the random numbers which would have generated it.
Herwig::FlatInvertibleLabframePhasespace::FlatInvertibleLabframePhasespace
FlatInvertibleLabframePhasespace()
The default constructor.
Herwig::FlatInvertibleLabframePhasespace::generateTwoToNKinematics
virtual double generateTwoToNKinematics(const double *, vector< Lorentz5Momentum > &momenta)
Generate a phase space point and return its weight.
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:67
Herwig::FlatInvertibleLabframePhasespace::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::FlatInvertibleLabframePhasespace::clone
virtual IBPtr clone() const
Make a simple clone of this object.
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:49
Herwig::FlatInvertibleLabframePhasespace::haveX1X2
virtual bool haveX1X2() const
Return true, if this phasespace generator will generate incoming partons itself.
Definition:
FlatInvertibleLabframePhasespace.h:61
Herwig::FlatInvertiblePhasespace
FlatInvertiblePhasespace implements flat, invertible phase space generation.
Definition:
FlatInvertiblePhasespace.h:28
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6