herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
MatrixElement
Matchbox
External
VBFNLO
VBFNLOPhasespace.h
1
// -*- C++ -*-
2
//
3
// VBFNLOPhasespace.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_VBFNLOPhasespace_H
10
#define Herwig_VBFNLOPhasespace_H
11
//
12
// This is the declaration of the VBFNLOPhasespace class.
13
//
14
15
#include "Herwig/MatrixElement/Matchbox/Phasespace/MatchboxPhasespace.h"
16
17
namespace
Herwig
{
18
19
using namespace
ThePEG
;
20
32
class
VBFNLOPhasespace
:
public
MatchboxPhasespace
{
33
34
public
:
35
41
VBFNLOPhasespace
();
42
46
virtual
~VBFNLOPhasespace
();
48
49
public
:
50
54
virtual
void
setXComb
(tStdXCombPtr);
55
59
virtual
double
generateTwoToNKinematics
(
const
double
*,
60
vector<Lorentz5Momentum>& momenta);
61
65
virtual
double
generateKinematics
(
const
double
* random,
66
vector<Lorentz5Momentum>& momenta) {
67
return
generateTwoToNKinematics
(random,momenta);
68
}
69
74
virtual
int
nDimPhasespace
(
int
nFinal)
const
;
75
80
virtual
bool
haveX1X2
()
const
{
return
true
; }
81
86
virtual
bool
wantCMS
()
const
{
return
false
; }
87
91
virtual
bool
isInvertible
()
const
{
return
false
; }
92
93
94
public
:
95
102
void
persistentOutput
(
PersistentOStream
& os)
const
;
103
109
void
persistentInput
(
PersistentIStream
& is,
int
version);
111
118
static
void
Init
();
119
120
protected
:
121
128
virtual
IBPtr
clone
()
const
;
129
134
virtual
IBPtr
fullclone
()
const
;
136
137
138
// If needed, insert declarations of virtual function defined in the
139
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
140
141
142
protected
:
143
151
virtual
void
doinit
();
152
157
virtual
void
doinitrun
();
159
160
161
private
:
162
167
Energy
lastSqrtS
;
168
169
private
:
170
175
VBFNLOPhasespace
&
operator=
(
const
VBFNLOPhasespace
&) =
delete
;
176
180
bool
needToReshuffle
;
181
182
protected
:
183
187
string
VBFNLOlib_
;
188
192
void
loadVBFNLO
();
193
198
struct
ReshuffleEquation
{
199
200
typedef
double
ArgType;
201
typedef
Energy ValType;
202
203
static
double
aUnit() {
return
1.; }
204
static
Energy vUnit() {
return
1.*GeV; }
205
206
Energy operator() (
double
xi)
const
;
207
208
Energy w;
209
cPDVector::const_iterator dataBegin;
210
cPDVector::const_iterator dataEnd;
211
vector<Lorentz5Momentum>::const_iterator momentaBegin;
212
vector<Lorentz5Momentum>::const_iterator momentaEnd;
213
214
ReshuffleEquation
(Energy q,
215
cPDVector::const_iterator dBegin,
216
cPDVector::const_iterator dEnd,
217
vector<Lorentz5Momentum>::const_iterator mBegin,
218
vector<Lorentz5Momentum>::const_iterator mEnd)
219
: w(q),
220
dataBegin(dBegin), dataEnd(dEnd),
221
momentaBegin(mBegin),
222
momentaEnd(mEnd) {}
223
224
};
225
226
};
227
228
}
229
230
#endif
/* Herwig_VBFNLOPhasespace_H */
Herwig::MatchboxPhasespace
MatchboxPhasespace defines an abstract interface to a phase space generator.
Definition:
MatchboxPhasespace.h:82
Herwig::VBFNLOPhasespace
VBFNLOPhasespace is an interface to the internal phasespace generator of VBFNLO. It uses the informat...
Definition:
VBFNLOPhasespace.h:32
Herwig::VBFNLOPhasespace::doinitrun
virtual void doinitrun()
Initialize this object.
Herwig::VBFNLOPhasespace::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::VBFNLOPhasespace::generateKinematics
virtual double generateKinematics(const double *random, vector< Lorentz5Momentum > &momenta)
Generate a phase space point and return its weight.
Definition:
VBFNLOPhasespace.h:65
Herwig::VBFNLOPhasespace::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::VBFNLOPhasespace::doinit
virtual void doinit()
Initialize this object after the setup phase before saving an EventGenerator to disk.
Herwig::VBFNLOPhasespace::isInvertible
virtual bool isInvertible() const
Return true, if this phase space generator is invertible.
Definition:
VBFNLOPhasespace.h:91
Herwig::VBFNLOPhasespace::needToReshuffle
bool needToReshuffle
Whether or not we need to reshuffle.
Definition:
VBFNLOPhasespace.h:180
Herwig::VBFNLOPhasespace::setXComb
virtual void setXComb(tStdXCombPtr)
Prepare a phase space generator for the given xcomb object.
Herwig::VBFNLOPhasespace::VBFNLOlib_
string VBFNLOlib_
Location of the VBFNLO library.
Definition:
VBFNLOPhasespace.h:187
Herwig::VBFNLOPhasespace::loadVBFNLO
void loadVBFNLO()
load the VBFNLO library
Herwig::VBFNLOPhasespace::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::VBFNLOPhasespace::operator=
VBFNLOPhasespace & operator=(const VBFNLOPhasespace &)=delete
The assignment operator is private and must never be called.
Herwig::VBFNLOPhasespace::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::VBFNLOPhasespace::~VBFNLOPhasespace
virtual ~VBFNLOPhasespace()
The destructor.
Herwig::VBFNLOPhasespace::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::VBFNLOPhasespace::lastSqrtS
Energy lastSqrtS
Last hadronic centre-of-mass energy, to update VBFNLO value only when this has changed.
Definition:
VBFNLOPhasespace.h:167
Herwig::VBFNLOPhasespace::wantCMS
virtual bool wantCMS() const
Return true, if this phase space generator expects the incoming partons in their center-of-mass syste...
Definition:
VBFNLOPhasespace.h:86
Herwig::VBFNLOPhasespace::nDimPhasespace
virtual int nDimPhasespace(int nFinal) const
Return the number of random numbers required to produce a given multiplicity final state.
Herwig::VBFNLOPhasespace::VBFNLOPhasespace
VBFNLOPhasespace()
The default constructor.
Herwig::VBFNLOPhasespace::generateTwoToNKinematics
virtual double generateTwoToNKinematics(const double *, vector< Lorentz5Momentum > &momenta)
Generate a phase space point and return its weight.
Herwig::VBFNLOPhasespace::haveX1X2
virtual bool haveX1X2() const
Return true, if this phasespace generator will generate incoming partons itself.
Definition:
VBFNLOPhasespace.h:80
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Herwig::VBFNLOPhasespace::ReshuffleEquation
The function object defining the equation to be solved.
Definition:
VBFNLOPhasespace.h:198
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6