herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
MatrixElement
HwMEBase.h
1
// -*- C++ -*-
2
#ifndef HERWIG_HwMEBase_H
3
#define HERWIG_HwMEBase_H
4
//
5
// This is the declaration of the HwMEBase class.
6
//
7
8
#include "ThePEG/MatrixElement/MEBase.h"
9
#include "Herwig/Shower/RealEmissionProcess.fh"
10
#include "Herwig/Shower/ShowerInteraction.h"
11
#include "ThePEG/PDF/BeamParticleData.h"
12
#include "HwMEBase.fh"
13
14
namespace
Herwig
{
15
16
struct
Branching;
17
18
using namespace
ThePEG
;
19
20
typedef
Ptr<BeamParticleData>::transient_const_pointer
tcBeamPtr
;
21
35
class
HwMEBase
:
public
MEBase
{
36
37
public
:
38
42
HwMEBase
() :
lastTHat_
(
ZERO
),
lastUHat_
(
ZERO
),
43
lastPhi_
(0.0),
rescaleOption_
(1)
44
{}
45
52
virtual
int
nDim
()
const
;
53
61
virtual
bool
generateKinematics
(
const
double
* r);
62
68
virtual
CrossSection
dSigHatDR
()
const
;
69
75
virtual
void
setKinematics
();
77
83
87
enum
POWHEGType
{No, ISR, FSR, Both};
88
92
virtual
POWHEGType
hasPOWHEGCorrection
() {
return
No;}
93
97
virtual
bool
hasMECorrection
() {
return
false
;}
98
102
virtual
void
initializeMECorrection
(RealEmissionProcessPtr ,
double
& ,
103
double
& );
104
108
virtual
RealEmissionProcessPtr
applyHardMatrixElementCorrection
(RealEmissionProcessPtr);
109
122
virtual
bool
softMatrixElementVeto
(
PPtr
parent,
123
PPtr
progenitor,
124
const
bool
& fs,
125
const
Energy & highestpT,
126
const
vector<tcPDPtr> & ids,
127
const
double
& z,
128
const
Energy &
scale
,
129
const
Energy & pT);
130
134
virtual
RealEmissionProcessPtr
generateHardest
(RealEmissionProcessPtr,
135
ShowerInteraction
);
137
138
public
:
139
146
void
persistentOutput
(
PersistentOStream
& os)
const
;
147
153
void
persistentInput
(
PersistentIStream
& is,
int
version);
155
162
static
void
Init
();
163
164
protected
:
165
171
Energy2
tHat
()
const
{
return
lastTHat_
; }
172
176
Energy2
uHat
()
const
{
return
lastUHat_
; }
177
181
double
phi
()
const
{
return
lastPhi_
; }
183
189
void
tHat
(Energy2 e2) {
lastTHat_
= e2; }
190
194
void
uHat
(Energy2 e2) {
lastUHat_
= e2; }
195
199
void
phi
(
double
phi
) {
lastPhi_
=
phi
; }
201
206
void
massOption
(vector<unsigned int> iopt) {
207
massOption_
= iopt;
208
}
209
219
void
rescalingOption
(
unsigned
int
iopt) {
220
rescaleOption_
=iopt;
221
}
222
226
bool
rescaleMomenta
(
const
vector<Lorentz5Momentum> &,
227
const
cPDVector
&);
228
232
const
vector<Lorentz5Momentum> &
rescaledMomenta
()
const
{
233
return
rescaledMomenta_
;
234
}
236
240
bool
generateMasses
(vector<Energy> & masses,
double
& mjac,
241
const
double
*r);
242
247
virtual
double
getCosTheta
(
double
cthmin,
double
cthmax,
const
double
r);
248
249
private
:
250
255
HwMEBase
&
operator=
(
const
HwMEBase
&) =
delete
;
256
257
private
:
258
262
vector<unsigned int>
massOption_
;
263
267
Energy2
lastTHat_
;
268
272
Energy2
lastUHat_
;
273
277
double
lastPhi_
;
278
282
unsigned
int
rescaleOption_
;
283
287
vector<Lorentz5Momentum>
rescaledMomenta_
;
288
289
};
290
291
}
292
293
#endif
/* HERWIG_HwMEBase_H */
Herwig::HwMEBase
The HwMEBase class serves a number of purposes.
Definition:
HwMEBase.h:35
Herwig::HwMEBase::lastUHat_
Energy2 lastUHat_
The of the last set phase space point.
Definition:
HwMEBase.h:272
Herwig::HwMEBase::hasPOWHEGCorrection
virtual POWHEGType hasPOWHEGCorrection()
Has a POWHEG style correction.
Definition:
HwMEBase.h:92
Herwig::HwMEBase::operator=
HwMEBase & operator=(const HwMEBase &)=delete
The assignment operator is private and must never be called.
Herwig::HwMEBase::generateHardest
virtual RealEmissionProcessPtr generateHardest(RealEmissionProcessPtr, ShowerInteraction)
Apply the POWHEG style correction.
Herwig::HwMEBase::applyHardMatrixElementCorrection
virtual RealEmissionProcessPtr applyHardMatrixElementCorrection(RealEmissionProcessPtr)
Apply the hard matrix element correction to a given hard process or decay.
Herwig::HwMEBase::uHat
Energy2 uHat() const
Return the of the last set phase space point.
Definition:
HwMEBase.h:176
Herwig::HwMEBase::massOption_
vector< unsigned int > massOption_
Option for the treatment of the particle masses.
Definition:
HwMEBase.h:262
Herwig::HwMEBase::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::HwMEBase::rescalingOption
void rescalingOption(unsigned int iopt)
Rescaled momenta for the helicity ME.
Definition:
HwMEBase.h:219
Herwig::HwMEBase::tHat
Energy2 tHat() const
Return the of the last set phase space point.
Definition:
HwMEBase.h:171
Herwig::HwMEBase::lastTHat_
Energy2 lastTHat_
The of the last set phase space point.
Definition:
HwMEBase.h:267
Herwig::HwMEBase::getCosTheta
virtual double getCosTheta(double cthmin, double cthmax, const double r)
Used internally by generateKinematics, after calculating the limits on cos(theta).
Herwig::HwMEBase::uHat
void uHat(Energy2 e2)
Set the of the last set phase space point.
Definition:
HwMEBase.h:194
Herwig::HwMEBase::rescaleOption_
unsigned int rescaleOption_
Produced to produce rescaled momenta.
Definition:
HwMEBase.h:282
Herwig::HwMEBase::tHat
void tHat(Energy2 e2)
Set the of the last set phase space point.
Definition:
HwMEBase.h:189
Herwig::HwMEBase::dSigHatDR
virtual CrossSection dSigHatDR() const
Return the matrix element for the kinematical configuation previously provided by the last call to se...
Herwig::HwMEBase::initializeMECorrection
virtual void initializeMECorrection(RealEmissionProcessPtr, double &, double &)
Initialize the ME correction.
Herwig::HwMEBase::hasMECorrection
virtual bool hasMECorrection()
Has an old fashioned ME correction.
Definition:
HwMEBase.h:97
Herwig::HwMEBase::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::HwMEBase::phi
double phi() const
Return the azimuth angle of the last set phase space point.
Definition:
HwMEBase.h:181
Herwig::HwMEBase::nDim
virtual int nDim() const
The number of internal degreed of freedom used in the matrix element.
Herwig::HwMEBase::generateKinematics
virtual bool generateKinematics(const double *r)
Generate internal degrees of freedom given 'nDim()' uniform random numbers in the interval ]0,...
Herwig::HwMEBase::setKinematics
virtual void setKinematics()
Set the typed and momenta of the incoming and outgoing partons to be used in subsequent calls to me()...
Herwig::HwMEBase::rescaledMomenta_
vector< Lorentz5Momentum > rescaledMomenta_
Rescaled momenta for use in ME calculations.
Definition:
HwMEBase.h:287
Herwig::HwMEBase::lastPhi_
double lastPhi_
The azimuth angle of the last set phase space point.
Definition:
HwMEBase.h:277
Herwig::HwMEBase::rescaledMomenta
const vector< Lorentz5Momentum > & rescaledMomenta() const
Access to the rescaled momenta.
Definition:
HwMEBase.h:232
Herwig::HwMEBase::HwMEBase
HwMEBase()
Default constructor.
Definition:
HwMEBase.h:42
Herwig::HwMEBase::massOption
void massOption(vector< unsigned int > iopt)
Set the treatment of the outgoing masses.
Definition:
HwMEBase.h:206
Herwig::HwMEBase::POWHEGType
POWHEGType
Virtual members to be overridden by inheriting classes which implement hard corrections.
Definition:
HwMEBase.h:87
Herwig::HwMEBase::generateMasses
bool generateMasses(vector< Energy > &masses, double &mjac, const double *r)
Generate the masses of the particles.
Herwig::HwMEBase::rescaleMomenta
bool rescaleMomenta(const vector< Lorentz5Momentum > &, const cPDVector &)
rescale the momenta for the computation of the helicity matrix element
Herwig::HwMEBase::phi
void phi(double phi)
Set the azimuth angle of the last set phase space point.
Definition:
HwMEBase.h:199
Herwig::HwMEBase::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::HwMEBase::softMatrixElementVeto
virtual bool softMatrixElementVeto(PPtr parent, PPtr progenitor, const bool &fs, const Energy &highestpT, const vector< tcPDPtr > &ids, const double &z, const Energy &scale, const Energy &pT)
Apply the soft matrix element correction.
ThePEG::MEBase
ThePEG::MEBase::scale
virtual Energy2 scale() const=0
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig::ShowerInteraction
ShowerInteraction
Handy header file to be included in all Shower classes.
Definition:
ShowerInteraction.h:23
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::tcBeamPtr
Ptr< BeamParticleData >::transient_const_pointer tcBeamPtr
A typedef for the BeamParticleData.
Definition:
HwMEBase.h:20
ThePEG
ThePEG::PPtr
ThePEG::Ptr< Particle >::pointer PPtr
ThePEG::ZERO
constexpr ZeroUnit ZERO
ThePEG::cPDVector
vector< cPDPtr > cPDVector
Generated on Thu Jun 20 2024 17:50:52 for Herwig by
1.9.6