herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
MatrixElement
BlobME.h
1
// -*- C++ -*-
2
#ifndef Herwig_BlobME_H
3
#define Herwig_BlobME_H
4
//
5
// This is the declaration of the BlobME class.
6
//
7
8
#include "ThePEG/MatrixElement/BlobMEBase.h"
9
#include "Herwig/MatrixElement/Matchbox/Phasespace/MatchboxPhasespace.h"
10
11
namespace
Herwig
{
12
13
using namespace
ThePEG
;
14
24
class
BlobME
:
public
BlobMEBase
{
25
26
public
:
27
33
BlobME
();
34
38
virtual
~
BlobME
();
40
41
public
:
42
47
virtual
Energy2
scale
()
const
{
48
return
lastSHat();
49
}
50
59
virtual
bool
generateKinematics
(
const
double
* r) {
60
jacobian(thePhasespace->generateTwoToNKinematics(r,meMomenta()));
61
return
jacobian() > 0.0;
62
}
63
67
size_t
nAdditional
()
const
{
return
theNAdditional; }
68
72
void
nAdditional
(
size_t
n) { theNAdditional = n; }
73
77
virtual
size_t
nOutgoing()
const
= 0;
78
83
virtual
int
nDim
()
const
{
84
return
thePhasespace->nDimPhasespace(nOutgoing()+nAdditional());
85
}
86
90
virtual
void
setXComb(tStdXCombPtr xc);
91
95
Ptr<MatchboxPhasespace>::tptr
phasespace
()
const
{
return
thePhasespace; }
96
97
public
:
98
105
void
persistentOutput(
PersistentOStream
& os)
const
;
106
112
void
persistentInput(
PersistentIStream
& is,
int
version);
114
121
static
void
Init();
122
123
// If needed, insert declarations of virtual function defined in the
124
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
125
126
private
:
127
131
Ptr<MatchboxPhasespace>::ptr
thePhasespace
;
132
136
size_t
theNAdditional
;
137
138
private
:
139
144
BlobME
& operator=(
const
BlobME
&) =
delete
;
145
146
};
147
148
}
149
150
#endif
/* Herwig_BlobME_H */
ThePEG::PersistentIStream
Herwig::BlobME::phasespace
Ptr< MatchboxPhasespace >::tptr phasespace() const
Return the phase space used.
Definition:
BlobME.h:95
ThePEG::PersistentOStream
Herwig::BlobME
BlobME serves as a base class for special processes such as instanton or sphaleron induced ones...
Definition:
BlobME.h:24
ThePEG
Herwig::BlobME::thePhasespace
Ptr< MatchboxPhasespace >::ptr thePhasespace
The phase space to be used.
Definition:
BlobME.h:131
Herwig::BlobME::nAdditional
void nAdditional(size_t n)
Set the additional number of objects to generate.
Definition:
BlobME.h:72
ThePEG::BlobMEBase
Herwig::BlobME::generateKinematics
virtual bool generateKinematics(const double *r)
Generate internal degrees of freedom given nDim() uniform random numbers in the interval ]0...
Definition:
BlobME.h:59
Herwig::BlobME::theNAdditional
size_t theNAdditional
The multiplicity of additional objects to consider.
Definition:
BlobME.h:136
Herwig::BlobME::nAdditional
size_t nAdditional() const
Return the additional number of objects to generate.
Definition:
BlobME.h:67
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::BlobME::nDim
virtual int nDim() const
The number of internal degreed of freedom used in the matrix element.
Definition:
BlobME.h:83
Herwig::BlobME::scale
virtual Energy2 scale() const
Return the scale associated with the phase space point provided by the last call to setKinematics()...
Definition:
BlobME.h:47
Generated on Sat Apr 11 2020 14:50:28 for Herwig by
1.8.13