herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
MatrixElement
Matchbox
Phasespace
InvertedTildeKinematics.h
1
// -*- C++ -*-
2
//
3
// InvertedTildeKinematics.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_InvertedTildeKinematics_H
10
#define HERWIG_InvertedTildeKinematics_H
11
//
12
// This is the declaration of the InvertedTildeKinematics class.
13
//
14
15
#include "ThePEG/Handlers/HandlerBase.h"
16
#include "ThePEG/Handlers/StandardXComb.h"
17
#include "ThePEG/Repository/EventGenerator.h"
18
#include "Herwig/MatrixElement/Matchbox/Dipoles/SubtractionDipole.h"
19
20
namespace
Herwig
{
21
22
using namespace
ThePEG
;
23
33
class
InvertedTildeKinematics
:
public
HandlerBase
{
34
35
public
:
36
42
InvertedTildeKinematics
();
43
47
virtual
~
InvertedTildeKinematics
();
49
50
public
:
51
57
const
Lorentz5Momentum&
realEmitterMomentum
()
const
{
return
theRealEmitterMomentum; }
58
62
const
Lorentz5Momentum&
realEmissionMomentum
()
const
{
return
theRealEmissionMomentum; }
63
67
const
Lorentz5Momentum&
realSpectatorMomentum
()
const
{
return
theRealSpectatorMomentum; }
68
72
const
Lorentz5Momentum&
bornEmitterMomentum
()
const
{
73
return
theBornXComb->meMomenta()[theDipole->bornEmitter()];
74
}
75
79
const
Lorentz5Momentum&
bornSpectatorMomentum
()
const
{
80
return
theBornXComb->meMomenta()[theDipole->bornSpectator()];
81
}
82
86
double
emitterX
()
const
{
87
return
88
theDipole->bornEmitter() == 0 ?
89
theBornXComb->lastX1() :
90
theBornXComb->lastX2();
91
}
92
96
double
spectatorX
()
const
{
97
return
98
theDipole->bornSpectator() == 0 ?
99
theBornXComb->lastX1() :
100
theBornXComb->lastX2();
101
}
102
106
const
vector<double>&
subtractionParameters
()
const
{
return
theDipole->subtractionParameters(); }
107
112
virtual
bool
doesTransform
()
const
{
return
false
; }
113
119
virtual
Lorentz5Momentum
transform
(
const
Lorentz5Momentum& p)
const
{
return
p; }
120
124
Energy2
sHat
()
const
{
return
theBornXComb->lastSHat(); }
126
127
public
:
128
132
Ptr<InvertedTildeKinematics>::ptr
cloneMe
()
const
{
133
return
dynamic_ptr_cast<Ptr<InvertedTildeKinematics>::ptr>(clone());
134
}
135
142
void
prepare
(tcStdXCombPtr newRealXComb,
143
tcStdXCombPtr newBornXComb) {
144
theRealXComb = newRealXComb; theBornXComb = newBornXComb;
145
}
146
150
tcStdXCombPtr
realXComb
()
const
{
return
theRealXComb; }
151
155
tcStdXCombPtr
bornXComb
()
const
{
return
theBornXComb; }
156
160
void
dipole
(Ptr<SubtractionDipole>::tptr dip) { theDipole = dip; }
161
165
Ptr<SubtractionDipole>::tptr
dipole
() {
return
theDipole; }
166
170
Ptr<SubtractionDipole>::tcptr
dipole
()
const
{
return
theDipole; }
171
177
virtual
int
nDimRadiation
()
const
{
return
3; }
178
187
virtual
bool
doMap(
const
double
*) = 0;
188
193
void
ptCut
(Energy pt) { thePtCut = pt; }
194
199
Energy
ptCut
()
const
{
return
thePtCut; }
200
205
virtual
int
evolutionVariable
()
const
{
return
0; }
206
211
virtual
double
evolutionCutoff
()
const
{
return
0.0; }
212
216
virtual
Energy lastPt()
const
= 0;
217
221
virtual
double
lastZ()
const
= 0;
222
226
virtual
Energy lastScale()
const
;
227
231
virtual
Energy ptMax()
const
= 0;
232
237
virtual
pair<double,double> zBounds(Energy pt, Energy hardPt =
ZERO
)
const
= 0;
238
242
virtual
pair<Energy,double> generatePtZ(
double
& jac,
const
double
* r,
243
double
power
=1., vector<double>* values = NULL)
const
;
244
249
double
jacobian
()
const
{
return
theJacobian; }
250
254
cPDPtr
realEmitterData
()
const
{
255
return
256
(theDipole && theRealXComb) ?
257
theRealXComb->mePartonData()[theDipole->realEmitter()] :
258
cPDPtr
();
259
}
260
264
cPDPtr
realEmissionData
()
const
{
265
return
266
(theDipole && theRealXComb) ?
267
theRealXComb->mePartonData()[theDipole->realEmission()] :
268
cPDPtr
();
269
}
270
274
cPDPtr
realSpectatorData
()
const
{
275
return
276
(theDipole && theRealXComb) ?
277
theRealXComb->mePartonData()[theDipole->realSpectator()] :
278
cPDPtr
();
279
}
280
284
cPDPtr
bornEmitterData
()
const
{
285
return
286
(theDipole && theBornXComb) ?
287
theBornXComb->mePartonData()[theDipole->bornEmitter()] :
288
cPDPtr
();
289
}
290
294
cPDPtr
bornSpectatorData
()
const
{
295
return
296
(theDipole && theBornXComb) ?
297
theBornXComb->mePartonData()[theDipole->bornSpectator()] :
298
cPDPtr
();
299
}
301
302
protected
:
303
307
Lorentz5Momentum&
realEmitterMomentum
() {
return
theRealEmitterMomentum; }
308
312
Lorentz5Momentum&
realEmissionMomentum
() {
return
theRealEmissionMomentum; }
313
317
Lorentz5Momentum&
realSpectatorMomentum
() {
return
theRealSpectatorMomentum; }
318
322
vector<double>&
subtractionParameters
() {
return
theDipole->subtractionParameters(); }
323
328
void
jacobian
(
double
w) { theJacobian = w; }
329
334
Lorentz5Momentum getKt(
const
Lorentz5Momentum& p1,
335
const
Lorentz5Momentum& p2,
336
Energy pt,
337
double
phi,
338
bool
spacelike =
false
)
const
;
339
340
public
:
341
348
void
persistentOutput(
PersistentOStream
& os)
const
;
349
355
void
persistentInput(
PersistentIStream
& is,
int
version);
357
364
static
void
Init();
365
366
367
// If needed, insert declarations of virtual function defined in the
368
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
369
370
protected
:
371
383
virtual
void
rebind(
const
TranslationMap
& trans);
384
390
virtual
IVector
getReferences();
392
393
394
private
:
395
399
Ptr<SubtractionDipole>::tptr
theDipole
;
400
404
tcStdXCombPtr
theRealXComb
;
405
409
tcStdXCombPtr
theBornXComb
;
410
414
Lorentz5Momentum
theRealEmitterMomentum
;
415
419
Lorentz5Momentum
theRealEmissionMomentum
;
420
424
Lorentz5Momentum
theRealSpectatorMomentum
;
425
430
double
theJacobian
;
431
436
Energy
thePtCut
;
437
438
private
:
439
444
InvertedTildeKinematics
& operator=(
const
InvertedTildeKinematics
&) =
delete
;
445
446
};
447
448
}
449
450
#endif
/* HERWIG_InvertedTildeKinematics_H */
Herwig::InvertedTildeKinematics::prepare
void prepare(tcStdXCombPtr newRealXComb, tcStdXCombPtr newBornXComb)
Prepare given a dipole, and XCombs describing the real emission and underlying Born processes...
Definition:
InvertedTildeKinematics.h:142
ThePEG::PersistentIStream
Herwig::InvertedTildeKinematics::sHat
Energy2 sHat() const
Return the centre of mass energy for the underlying Born configuration.
Definition:
InvertedTildeKinematics.h:124
Herwig::InvertedTildeKinematics::realSpectatorMomentum
Lorentz5Momentum & realSpectatorMomentum()
Access the momentum of the spectator in the real emission process.
Definition:
InvertedTildeKinematics.h:317
Herwig::InvertedTildeKinematics::emitterX
double emitterX() const
Return the momentum fraction of the emitter.
Definition:
InvertedTildeKinematics.h:86
Herwig::InvertedTildeKinematics::subtractionParameters
const vector< double > & subtractionParameters() const
Return the vector of dimensionless variables calculated.
Definition:
InvertedTildeKinematics.h:106
Herwig::InvertedTildeKinematics::ptCut
Energy ptCut() const
Return the optional cutoff on the emission's transverse momentum.
Definition:
InvertedTildeKinematics.h:199
Herwig::InvertedTildeKinematics
InvertedTildeKinematics is the base class for the inverted 'tilde' kinematics being used for subtract...
Definition:
InvertedTildeKinematics.h:33
Herwig::InvertedTildeKinematics::transform
virtual Lorentz5Momentum transform(const Lorentz5Momentum &p) const
If this InvertedTildeKinematics object needs to transform all other particles in the process except t...
Definition:
InvertedTildeKinematics.h:119
Herwig::InvertedTildeKinematics::cloneMe
Ptr< InvertedTildeKinematics >::ptr cloneMe() const
Clone this object.
Definition:
InvertedTildeKinematics.h:132
Herwig::InvertedTildeKinematics::realEmissionData
cPDPtr realEmissionData() const
Return the particle type of the emission in the real emission process.
Definition:
InvertedTildeKinematics.h:264
Herwig::InvertedTildeKinematics::bornXComb
tcStdXCombPtr bornXComb() const
Return the Born xcomb.
Definition:
InvertedTildeKinematics.h:155
ThePEG::PersistentOStream
Herwig::InvertedTildeKinematics::theDipole
Ptr< SubtractionDipole >::tptr theDipole
The last dipole this InvertedTildeKinematics has been selected for.
Definition:
InvertedTildeKinematics.h:399
Herwig::InvertedTildeKinematics::realXComb
tcStdXCombPtr realXComb() const
Return the real xcomb.
Definition:
InvertedTildeKinematics.h:150
Herwig::InvertedTildeKinematics::bornSpectatorData
cPDPtr bornSpectatorData() const
Return the particle type of the spectator in the underlying Born process.
Definition:
InvertedTildeKinematics.h:294
Herwig::InvertedTildeKinematics::bornEmitterData
cPDPtr bornEmitterData() const
Return the particle type of the emitter in the underlying Born process.
Definition:
InvertedTildeKinematics.h:284
Herwig::InvertedTildeKinematics::jacobian
double jacobian() const
Return the single particle phase space weight in units of sHat() for the last selected configuration...
Definition:
InvertedTildeKinematics.h:249
Herwig::InvertedTildeKinematics::subtractionParameters
vector< double > & subtractionParameters()
Access the vector of dimensionless variables calculated.
Definition:
InvertedTildeKinematics.h:322
ThePEG::Rebinder
Herwig::InvertedTildeKinematics::thePtCut
Energy thePtCut
The optional cutoff on the emission's transverse momentum.
Definition:
InvertedTildeKinematics.h:436
Herwig::InvertedTildeKinematics::theJacobian
double theJacobian
Return the single particle phase space weight in units of sHat() for the last selected configuration...
Definition:
InvertedTildeKinematics.h:430
ThePEG
ThePEG::cPDPtr
ThePEG::Ptr< ParticleData >::const_pointer cPDPtr
Herwig::InvertedTildeKinematics::ptCut
void ptCut(Energy pt)
Set an optional cutoff on the emission's transverse momentum.
Definition:
InvertedTildeKinematics.h:193
Herwig::InvertedTildeKinematics::theRealXComb
tcStdXCombPtr theRealXComb
The XComb object describing the real emission process.
Definition:
InvertedTildeKinematics.h:404
Herwig::InvertedTildeKinematics::dipole
Ptr< SubtractionDipole >::tptr dipole()
Return the current dipole.
Definition:
InvertedTildeKinematics.h:165
Herwig::InvertedTildeKinematics::evolutionCutoff
virtual double evolutionCutoff() const
Return the cutoff on the evolution random number corresponding to the pt cut.
Definition:
InvertedTildeKinematics.h:211
Herwig::InvertedTildeKinematics::realEmitterMomentum
const Lorentz5Momentum & realEmitterMomentum() const
Return the momentum of the emitter in the real emission process.
Definition:
InvertedTildeKinematics.h:57
Herwig::InvertedTildeKinematics::realEmitterData
cPDPtr realEmitterData() const
Return the particle type of the emitter in the real emission process.
Definition:
InvertedTildeKinematics.h:254
Herwig::InvertedTildeKinematics::theRealEmitterMomentum
Lorentz5Momentum theRealEmitterMomentum
The momentum of the emitter in the real emission process.
Definition:
InvertedTildeKinematics.h:414
Herwig::InvertedTildeKinematics::realSpectatorMomentum
const Lorentz5Momentum & realSpectatorMomentum() const
Return the momentum of the spectator in the real emission process.
Definition:
InvertedTildeKinematics.h:67
Herwig::InvertedTildeKinematics::dipole
Ptr< SubtractionDipole >::tcptr dipole() const
Return the current dipole.
Definition:
InvertedTildeKinematics.h:170
Herwig::InvertedTildeKinematics::bornEmitterMomentum
const Lorentz5Momentum & bornEmitterMomentum() const
Return the momentum of the emitter in the underlying Born process.
Definition:
InvertedTildeKinematics.h:72
Herwig::InvertedTildeKinematics::doesTransform
virtual bool doesTransform() const
Return true, if this InvertedTildeKinematics object needs to transform all other particles in the pro...
Definition:
InvertedTildeKinematics.h:112
Herwig::InvertedTildeKinematics::evolutionVariable
virtual int evolutionVariable() const
Return the random number index corresponding to the evolution variable.
Definition:
InvertedTildeKinematics.h:205
Herwig::InvertedTildeKinematics::realEmitterMomentum
Lorentz5Momentum & realEmitterMomentum()
Access the momentum of the emitter in the real emission process.
Definition:
InvertedTildeKinematics.h:307
ThePEG::HandlerBase
Herwig::InvertedTildeKinematics::spectatorX
double spectatorX() const
Return the momentum fraction of the spectator.
Definition:
InvertedTildeKinematics.h:96
Herwig::InvertedTildeKinematics::theRealSpectatorMomentum
Lorentz5Momentum theRealSpectatorMomentum
The momentum of the spectator in the real emission process.
Definition:
InvertedTildeKinematics.h:424
Herwig::InvertedTildeKinematics::nDimRadiation
virtual int nDimRadiation() const
Return the number of random numbers needed to generate a real emission configuration off the underlyi...
Definition:
InvertedTildeKinematics.h:177
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
Herwig::InvertedTildeKinematics::realEmissionMomentum
const Lorentz5Momentum & realEmissionMomentum() const
Return the momentum of the emission in the real emission process.
Definition:
InvertedTildeKinematics.h:62
Herwig::InvertedTildeKinematics::theRealEmissionMomentum
Lorentz5Momentum theRealEmissionMomentum
The momentum of the emission in the real emission process.
Definition:
InvertedTildeKinematics.h:419
Herwig::InvertedTildeKinematics::jacobian
void jacobian(double w)
Set the single particle phase space weight in units of sHat() for the last selected configuration...
Definition:
InvertedTildeKinematics.h:328
Herwig::InvertedTildeKinematics::realEmissionMomentum
Lorentz5Momentum & realEmissionMomentum()
Access the momentum of the emission in the real emission process.
Definition:
InvertedTildeKinematics.h:312
Herwig::InvertedTildeKinematics::dipole
void dipole(Ptr< SubtractionDipole >::tptr dip)
Set the current dipole.
Definition:
InvertedTildeKinematics.h:160
Herwig::InvertedTildeKinematics::theBornXComb
tcStdXCombPtr theBornXComb
The XComb object describing the underlying Born process.
Definition:
InvertedTildeKinematics.h:409
ThePEG::IVector
vector< IBPtr > IVector
Herwig::InvertedTildeKinematics::realSpectatorData
cPDPtr realSpectatorData() const
Return the particle type of the spectator in the real emission process.
Definition:
InvertedTildeKinematics.h:274
Herwig::InvertedTildeKinematics::bornSpectatorMomentum
const Lorentz5Momentum & bornSpectatorMomentum() const
Return the momentum of the spectator in the underlying Born process.
Definition:
InvertedTildeKinematics.h:79
Herwig::RandomHelpers::power
Generator< Power > power(double z, double p, double lower, double upper)
Construct the density |(x-z)|^p.
Definition:
RandomHelpers.h:1213
ZERO
constexpr ZeroUnit ZERO
Generated on Sat Apr 11 2020 14:50:30 for Herwig by
1.8.13