herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Shower
Dipole
Kinematics
DipoleSplittingKinematics.h
1
// -*- C++ -*-
2
//
3
// DipoleSplittingKinematics.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_DipoleSplittingKinematics_H
10
#define HERWIG_DipoleSplittingKinematics_H
11
//
12
// This is the declaration of the DipoleSplittingKinematics class.
13
//
14
15
#include "ThePEG/Handlers/HandlerBase.h"
16
#include "ThePEG/Vectors/Lorentz5Vector.h"
17
18
#include "ThePEG/EventRecord/Particle.h"
19
#include "ThePEG/Utilities/UtilityBase.h"
20
21
#include "Herwig/Shower/Dipole/Utility/DipoleMCCheck.h"
22
23
namespace
Herwig
{
24
25
using namespace
ThePEG
;
26
27
class
DipoleIndex;
28
class
DipoleSplittingInfo;
29
class
DipoleSplittingKernel;
30
41
class
DipoleSplittingKinematics
:
public
HandlerBase
{
42
43
public
:
44
48
DipoleSplittingKinematics
();
49
50
public
:
51
57
virtual
pair<double,double>
kappaSupport
(
const
DipoleSplittingInfo
&)
const
{
58
return
{0.0,1.0};
59
}
60
65
virtual
pair<double,double>
xiSupport
(
const
DipoleSplittingInfo
&)
const
{
66
return
{0.0,1.0};
67
}
68
77
virtual
Energy
dipoleScale
(
const
Lorentz5Momentum& pEmitter,
78
const
Lorentz5Momentum& pSpectator)
const
{
79
// MEMinBias produces non-zero zeros.
80
if
(abs(pEmitter*pSpectator)<0.0000001*GeV2)
return
ZERO
;
81
assert(pEmitter*pSpectator >=
ZERO
);
82
return
sqrt
(2.*pEmitter*pSpectator);
83
}
84
90
virtual
Energy
recoilMassKin
(
const
Lorentz5Momentum&,
91
const
Lorentz5Momentum& pSpectator)
const
{
92
return
pSpectator.m();
93
}
94
98
virtual
Energy
ptMax
(Energy dScale,
99
double
emX,
double
specX,
100
const
DipoleIndex
& dIndex,
101
const
DipoleSplittingKernel
& split)
const
=0;
102
106
virtual
Energy
ptMax
(Energy dScale,
107
double
emX,
double
specX,
108
const
DipoleSplittingInfo
& dInfo,
109
const
DipoleSplittingKernel
& split)
const
;
110
114
virtual
Energy
ptMax
(Energy dScale,
115
double
emX,
double
specX,
116
const
DipoleIndex
& dIndex,
117
const
DipoleSplittingKernel
& split,
118
tPPtr
emitter,
tPPtr
spectator)
const
;
119
123
virtual
Energy
QMax
(Energy dScale,
124
double
emX,
double
specX,
125
const
DipoleIndex
& dIndex,
126
const
DipoleSplittingKernel
& split)
const
=0;
127
131
virtual
Energy
QMax
(Energy dScale,
132
double
emX,
double
specX,
133
const
DipoleSplittingInfo
& dInfo,
134
const
DipoleSplittingKernel
& split)
const
;
135
139
virtual
Energy
QMax
(Energy dScale,
140
double
emX,
double
specX,
141
const
DipoleIndex
& dIndex,
142
const
DipoleSplittingKernel
& split,
143
tPPtr
emitter,
tPPtr
spectator)
const
;
144
148
virtual
Energy
PtFromQ
(Energy scale,
const
DipoleSplittingInfo
&)
const
= 0;
149
153
virtual
Energy
QFromPt
(Energy scale,
const
DipoleSplittingInfo
&)
const
= 0;
154
158
virtual
Energy
IRCutoff
()
const
{
return
theIRCutoff
; }
159
164
double
xMin
()
const
{
return
theXMin
; }
165
169
Energy
generatePt
(
double
r, Energy dScale,
170
double
emX,
double
specX,
171
const
DipoleIndex
& dIndex,
172
const
DipoleSplittingKernel
& split,
173
double
& weight)
const
;
174
179
virtual
double
ptToRandom
(Energy pt, Energy dScale,
180
double
emX,
double
specX,
181
const
DipoleIndex
& dIndex,
182
const
DipoleSplittingKernel
& split)
const
;
183
187
virtual
pair<double,double>
zBoundaries
(Energy pt,
188
const
DipoleSplittingInfo
& dInfo,
189
const
DipoleSplittingKernel
& split)
const
= 0;
190
194
enum
ZSamplingOptions
{
195
196
FlatZ = 0,
197
OneOverZ,
198
OneOverOneMinusZ,
199
OneOverZOneMinusZ
200
201
};
202
206
double
generateZ
(
double
r, Energy pt,
int
sampling,
207
const
DipoleSplittingInfo
& dInfo,
208
const
DipoleSplittingKernel
& split,
209
double
& weight)
const
;
210
216
virtual
bool
generateSplitting
(
double
kappa,
double
xi,
double
phi,
217
DipoleSplittingInfo
& info,
218
const
DipoleSplittingKernel
&) = 0;
219
226
double
jacobian
()
const
{
return
theJacobian
; }
227
233
virtual
bool
haveOverestimate
()
const
{
return
false
; }
234
239
virtual
double
jacobianOverestimate
()
const
{
return
-1.; }
240
244
Energy
lastPt
()
const
{
return
theLastPt
; }
245
249
double
lastZ
()
const
{
return
theLastZ
; }
250
255
// Do not need in current implementation,
256
// using lastSplittingParameters instead.
257
//double lastZPrime() const { return theLastZPrime; }
258
262
double
lastPhi
()
const
{
return
theLastPhi
; }
263
268
double
lastEmitterZ
()
const
{
return
theLastEmitterZ
; }
269
274
double
lastSpectatorZ
()
const
{
return
theLastSpectatorZ
; }
275
281
const
vector<double>&
lastSplittingParameters
()
const
{
return
theLastSplittingParameters
; }
282
288
void
prepareSplitting
(
DipoleSplittingInfo
& dInfo);
289
290
public
:
291
297
virtual
void
generateKinematics
(
const
Lorentz5Momentum& pEmitter,
298
const
Lorentz5Momentum& pSpectator,
299
const
DipoleSplittingInfo
& dInfo) = 0;
300
301
302
306
const
Lorentz5Momentum&
lastEmitterMomentum
()
const
{
return
theEmitterMomentum
; }
307
311
const
Lorentz5Momentum&
lastSpectatorMomentum
()
const
{
return
theSpectatorMomentum
; }
312
316
const
Lorentz5Momentum&
lastEmissionMomentum
()
const
{
return
theEmissionMomentum
; }
317
318
/*
319
* Return true, if there is a transformation which should
320
* be applied to all other final state particles except the ones
321
* involved in the splitting after having performed the splitting.
322
*/
323
virtual
bool
doesTransform ()
const
{
return
false
; }
324
328
virtual
void
setTransformation
() {};
329
330
/*
331
* Use the Dipole scale instead of hardpt for z-boundaries.
332
*/
333
int
openZBoundaries()
const
{
return
theOpenZBoundaries; }
334
335
/*
336
* perform the transformation if required.
337
*/
338
virtual
void
transform (
PPtr
&) {};
339
340
/*
341
* SW 30/01/2019: Test feature only, not for release.
342
* Return true to only apply the transformation to non-coloured particles.
343
* Note this requires careful handling in DipoleEventRecord
344
*/
345
//virtual bool transformHardOnly() const { return false; }
346
351
//virtual void transformHard ( PPtr& ) {};
352
358
// void addToRecoilMom( const Lorentz5Momentum& mom ) {
359
// Lorentz5Momentum newRecoilMom = splitRecoilMomentum() + mom;
360
// splitRecoilMomentum(newRecoilMom);
361
// }
362
363
/*
364
* Return true if this splitting is of a dipole which contains
365
* a decayed parton and requires the remnant to absorb the recoil.
366
*/
367
virtual
bool
isDecay
()
const
{
return
false
; }
368
372
//virtual Lorentz5Momentum decayRecoil ( const Lorentz5Momentum& p, const int) { return p; }
373
377
virtual
void
decayRecoil
(
PList
& ) {};
378
382
virtual
Lorentz5Momentum
pVector
(
const
Lorentz5Momentum& pEmitter,
383
const
Lorentz5Momentum&,
384
const
DipoleSplittingInfo
&)
const
{
385
return
pEmitter;
386
}
387
391
virtual
Lorentz5Momentum
nVector
(
const
Lorentz5Momentum&,
392
const
Lorentz5Momentum& pSpectator,
393
const
DipoleSplittingInfo
&)
const
{
394
return
pSpectator;
395
}
396
397
// {;}
398
399
protected
:
400
405
Lorentz5Momentum
getKt
(
const
Lorentz5Momentum& p1,
406
const
Lorentz5Momentum& p2,
407
Energy pt,
408
double
phi,
409
bool
spacelike =
false
)
const
;
410
417
void
jacobian
(
double
w) {
theJacobian
= w; }
418
422
void
lastPt
(Energy p) {
theLastPt
= p; }
423
427
void
lastZ
(
double
z) {
theLastZ
= z; }
428
432
// Do not need in current implementation,
433
// using lastSplittingParameters instead.
434
//void lastZPrime(double zPrime) { theLastZPrime = zPrime; }
435
439
void
lastPhi
(
double
p) {
theLastPhi
= p; }
440
445
void
lastEmitterZ
(
double
z) {
theLastEmitterZ
= z; }
446
451
void
lastSpectatorZ
(
double
z) {
theLastSpectatorZ
= z; }
452
458
vector<double>&
splittingParameters
() {
return
theLastSplittingParameters
; }
459
463
void
emitterMomentum
(
const
Lorentz5Momentum& p) {
theEmitterMomentum
= p; }
464
468
void
spectatorMomentum
(
const
Lorentz5Momentum& p) {
theSpectatorMomentum
= p; }
469
473
void
emissionMomentum
(
const
Lorentz5Momentum& p) {
theEmissionMomentum
= p; }
474
478
void
splitRecoilMomentum
(
const
Lorentz5Momentum& mom ) {
theSplitRecoilMomentum
= mom; }
479
483
const
Lorentz5Momentum&
splitRecoilMomentum
()
const
{
return
theSplitRecoilMomentum
; }
484
485
public
:
486
493
static
void
Init
();
494
495
public
:
496
503
void
persistentOutput
(
PersistentOStream
& os)
const
;
504
510
void
persistentInput
(
PersistentIStream
& is,
int
version);
512
513
514
// If needed, insert declarations of virtual function defined in the
515
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
516
517
private
:
518
523
Energy
theIRCutoff
;
524
529
double
theXMin
;
530
534
double
theJacobian
;
535
539
Energy
theLastPt
;
540
544
double
theLastZ
;
545
551
// Do not need in current implementation,
552
// using lastSplittingParameters instead.
553
//double theLastZPrime;
554
558
double
theLastPhi
;
559
564
double
theLastEmitterZ
;
565
570
double
theLastSpectatorZ
;
571
577
vector<double>
theLastSplittingParameters
;
578
582
Lorentz5Momentum
theEmitterMomentum
;
583
587
Lorentz5Momentum
theEmissionMomentum
;
588
592
Lorentz5Momentum
theSpectatorMomentum
;
593
598
Lorentz5Momentum
theSplitRecoilMomentum
;
599
600
601
602
int
theOpenZBoundaries;
603
604
protected
:
605
609
Ptr<DipoleMCCheck>::ptr
theMCCheck
;
610
611
private
:
612
617
static
AbstractClassDescription<DipoleSplittingKinematics>
initDipoleSplittingKinematics
;
618
623
DipoleSplittingKinematics
&
operator=
(
const
DipoleSplittingKinematics
&) =
delete
;
624
625
};
626
627
}
628
629
#include "ThePEG/Utilities/ClassTraits.h"
630
631
namespace
ThePEG
{
632
637
template
<>
638
struct
BaseClassTrait
<
Herwig
::DipoleSplittingKinematics,1> {
640
typedef
HandlerBase
NthBase
;
641
};
642
645
template
<>
646
struct
ClassTraits
<
Herwig
::DipoleSplittingKinematics>
647
:
public
ClassTraitsBase
<Herwig::DipoleSplittingKinematics> {
649
static
string
className
() {
return
"Herwig::DipoleSplittingKinematics"
; }
657
static
string
library
() {
return
"HwDipoleShower.so"
; }
658
};
659
662
}
663
664
#endif
/* HERWIG_DipoleSplittingKinematics_H */
Herwig::DipoleIndex
DipoleIndex is used to index splitting generators for a particular dipole.
Definition:
DipoleSplittingInfo.h:35
Herwig::DipoleSplittingInfo
DipoleSplittingInfo contains all parameters to generate a full dipole splitting.
Definition:
DipoleSplittingInfo.h:209
Herwig::DipoleSplittingKernel
DipoleSplittingKernel is the base class for all kernels used within the dipole shower.
Definition:
DipoleSplittingKernel.h:41
Herwig::DipoleSplittingKinematics
DipoleSplittingKinematics is the base class for dipole splittings as performed in the dipole shower.
Definition:
DipoleSplittingKinematics.h:41
Herwig::DipoleSplittingKinematics::spectatorMomentum
void spectatorMomentum(const Lorentz5Momentum &p)
Set the spectator's momentum after the splitting.
Definition:
DipoleSplittingKinematics.h:468
Herwig::DipoleSplittingKinematics::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::DipoleSplittingKinematics::zBoundaries
virtual pair< double, double > zBoundaries(Energy pt, const DipoleSplittingInfo &dInfo, const DipoleSplittingKernel &split) const =0
Return the boundaries on the momentum fraction.
Herwig::DipoleSplittingKinematics::setTransformation
virtual void setTransformation()
Calculate and store a required Lorentz transformation.
Definition:
DipoleSplittingKinematics.h:328
Herwig::DipoleSplittingKinematics::operator=
DipoleSplittingKinematics & operator=(const DipoleSplittingKinematics &)=delete
The assignment operator is private and must never be called.
Herwig::DipoleSplittingKinematics::theLastPhi
double theLastPhi
The last calculated zPrime required for massive FF and decay kinematics dipoles.
Definition:
DipoleSplittingKinematics.h:558
Herwig::DipoleSplittingKinematics::lastEmitterMomentum
const Lorentz5Momentum & lastEmitterMomentum() const
Return the emitter's momentum after the splitting.
Definition:
DipoleSplittingKinematics.h:306
Herwig::DipoleSplittingKinematics::PtFromQ
virtual Energy PtFromQ(Energy scale, const DipoleSplittingInfo &) const =0
Return the pt given a virtuality.
Herwig::DipoleSplittingKinematics::ptMax
virtual Energy ptMax(Energy dScale, double emX, double specX, const DipoleIndex &dIndex, const DipoleSplittingKernel &split, tPPtr emitter, tPPtr spectator) const
Return the maximum pt for the given dipole scale.
Herwig::DipoleSplittingKinematics::lastEmissionMomentum
const Lorentz5Momentum & lastEmissionMomentum() const
Return the emission's momentum.
Definition:
DipoleSplittingKinematics.h:316
Herwig::DipoleSplittingKinematics::generateZ
double generateZ(double r, Energy pt, int sampling, const DipoleSplittingInfo &dInfo, const DipoleSplittingKernel &split, double &weight) const
Generate a z value flat.
Herwig::DipoleSplittingKinematics::lastPhi
void lastPhi(double p)
Set the last calculated zPrime for massive FF and decay dipoles.
Definition:
DipoleSplittingKinematics.h:439
Herwig::DipoleSplittingKinematics::QMax
virtual Energy QMax(Energy dScale, double emX, double specX, const DipoleIndex &dIndex, const DipoleSplittingKernel &split) const =0
Return the maximum virtuality for the given dipole scale.
Herwig::DipoleSplittingKinematics::lastEmitterZ
double lastEmitterZ() const
Return the momentum fraction, by which the emitter's momentum fraction should be divided after the sp...
Definition:
DipoleSplittingKinematics.h:268
Herwig::DipoleSplittingKinematics::generatePt
Energy generatePt(double r, Energy dScale, double emX, double specX, const DipoleIndex &dIndex, const DipoleSplittingKernel &split, double &weight) const
Generate a pt.
Herwig::DipoleSplittingKinematics::getKt
Lorentz5Momentum getKt(const Lorentz5Momentum &p1, const Lorentz5Momentum &p2, Energy pt, double phi, bool spacelike=false) const
Calculate a transverse momentum for the given momenta, invariant pt and azimuth.
Herwig::DipoleSplittingKinematics::theLastSplittingParameters
vector< double > theLastSplittingParameters
Any additional parameters needed to evaluate the splitting kernel or to generate the full splitting.
Definition:
DipoleSplittingKinematics.h:577
Herwig::DipoleSplittingKinematics::theMCCheck
Ptr< DipoleMCCheck >::ptr theMCCheck
Pointer to a check histogram object.
Definition:
DipoleSplittingKinematics.h:609
Herwig::DipoleSplittingKinematics::splittingParameters
vector< double > & splittingParameters()
Access any additional parameters needed to evaluate the splitting kernel or to generate the full spli...
Definition:
DipoleSplittingKinematics.h:458
Herwig::DipoleSplittingKinematics::QFromPt
virtual Energy QFromPt(Energy scale, const DipoleSplittingInfo &) const =0
Return the virtuality given a pt.
Herwig::DipoleSplittingKinematics::ptMax
virtual Energy ptMax(Energy dScale, double emX, double specX, const DipoleIndex &dIndex, const DipoleSplittingKernel &split) const =0
Return the maximum pt for the given dipole scale.
Herwig::DipoleSplittingKinematics::ZSamplingOptions
ZSamplingOptions
Enumerate the variants of sampling z.
Definition:
DipoleSplittingKinematics.h:194
Herwig::DipoleSplittingKinematics::jacobian
double jacobian() const
Get the splitting phasespace weight associated to the last call to generateSplitting.
Definition:
DipoleSplittingKinematics.h:226
Herwig::DipoleSplittingKinematics::lastSpectatorZ
double lastSpectatorZ() const
Return the momentum fraction, by which the spectator's momentum fraction should be divided after the ...
Definition:
DipoleSplittingKinematics.h:274
Herwig::DipoleSplittingKinematics::splitRecoilMomentum
const Lorentz5Momentum & splitRecoilMomentum() const
Return the momentum of the recoil system after splitting.
Definition:
DipoleSplittingKinematics.h:483
Herwig::DipoleSplittingKinematics::QMax
virtual Energy QMax(Energy dScale, double emX, double specX, const DipoleSplittingInfo &dInfo, const DipoleSplittingKernel &split) const
Return the maximum virtuality for the given dipole scale.
Herwig::DipoleSplittingKinematics::jacobian
void jacobian(double w)
Set the splitting phasespace weight associated to the last call to generateSplitting.
Definition:
DipoleSplittingKinematics.h:417
Herwig::DipoleSplittingKinematics::DipoleSplittingKinematics
DipoleSplittingKinematics()
The default constructor.
Herwig::DipoleSplittingKinematics::theJacobian
double theJacobian
The last calculated splitting phase space weight.
Definition:
DipoleSplittingKinematics.h:534
Herwig::DipoleSplittingKinematics::theIRCutoff
Energy theIRCutoff
The infrared cutoff associated to this splitting kinematics.
Definition:
DipoleSplittingKinematics.h:523
Herwig::DipoleSplittingKinematics::lastPt
Energy lastPt() const
Return the last generated pt.
Definition:
DipoleSplittingKinematics.h:244
Herwig::DipoleSplittingKinematics::ptMax
virtual Energy ptMax(Energy dScale, double emX, double specX, const DipoleSplittingInfo &dInfo, const DipoleSplittingKernel &split) const
Return the maximum pt for the given dipole scale.
Herwig::DipoleSplittingKinematics::ptToRandom
virtual double ptToRandom(Energy pt, Energy dScale, double emX, double specX, const DipoleIndex &dIndex, const DipoleSplittingKernel &split) const
Return the random number associated to the given pt.
Herwig::DipoleSplittingKinematics::lastZ
double lastZ() const
Return the last generated momentum fraction.
Definition:
DipoleSplittingKinematics.h:249
Herwig::DipoleSplittingKinematics::lastPt
void lastPt(Energy p)
Set the last generated pt.
Definition:
DipoleSplittingKinematics.h:422
Herwig::DipoleSplittingKinematics::theEmitterMomentum
Lorentz5Momentum theEmitterMomentum
The emitter's momentum after the splitting.
Definition:
DipoleSplittingKinematics.h:582
Herwig::DipoleSplittingKinematics::isDecay
virtual bool isDecay() const
SW 30/01/2019: Test feature only, not for release.
Definition:
DipoleSplittingKinematics.h:367
Herwig::DipoleSplittingKinematics::IRCutoff
virtual Energy IRCutoff() const
Return the infrared cutoff.
Definition:
DipoleSplittingKinematics.h:158
Herwig::DipoleSplittingKinematics::decayRecoil
virtual void decayRecoil(PList &)
Perform the recoil in the case of a decayed parton.
Definition:
DipoleSplittingKinematics.h:377
Herwig::DipoleSplittingKinematics::lastSpectatorMomentum
const Lorentz5Momentum & lastSpectatorMomentum() const
Return the spectator's momentum after the splitting.
Definition:
DipoleSplittingKinematics.h:311
Herwig::DipoleSplittingKinematics::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::DipoleSplittingKinematics::emissionMomentum
void emissionMomentum(const Lorentz5Momentum &p)
Set the emission's momentum.
Definition:
DipoleSplittingKinematics.h:473
Herwig::DipoleSplittingKinematics::theXMin
double theXMin
The minimum momentum fraction for incoming partons.
Definition:
DipoleSplittingKinematics.h:529
Herwig::DipoleSplittingKinematics::lastEmitterZ
void lastEmitterZ(double z)
Set the momentum fraction, by which the emitter's momentum fraction should be divided after the split...
Definition:
DipoleSplittingKinematics.h:445
Herwig::DipoleSplittingKinematics::lastSpectatorZ
void lastSpectatorZ(double z)
Set the momentum fraction, by which the spectator's momentum fraction should be divided after the spl...
Definition:
DipoleSplittingKinematics.h:451
Herwig::DipoleSplittingKinematics::initDipoleSplittingKinematics
static AbstractClassDescription< DipoleSplittingKinematics > initDipoleSplittingKinematics
The static object used to initialize the description of this class.
Definition:
DipoleSplittingKinematics.h:617
Herwig::DipoleSplittingKinematics::generateSplitting
virtual bool generateSplitting(double kappa, double xi, double phi, DipoleSplittingInfo &info, const DipoleSplittingKernel &)=0
Generate splitting variables given three random numbers and the momentum fractions of the emitter and...
Herwig::DipoleSplittingKinematics::lastPhi
double lastPhi() const
Return the last calculated zPrime for massive FF and decay dipoles.
Definition:
DipoleSplittingKinematics.h:262
Herwig::DipoleSplittingKinematics::kappaSupport
virtual pair< double, double > kappaSupport(const DipoleSplittingInfo &) const
Return the boundaries in between the evolution variable random number is to be sampled; the lower cuo...
Definition:
DipoleSplittingKinematics.h:57
Herwig::DipoleSplittingKinematics::prepareSplitting
void prepareSplitting(DipoleSplittingInfo &dInfo)
Complete a DipoleSplittingInfo object with the parameters generated by the last call to generateSplit...
Herwig::DipoleSplittingKinematics::theLastEmitterZ
double theLastEmitterZ
The momentum fraction, by which the emitter's momentum fraction should be divided after the splitting...
Definition:
DipoleSplittingKinematics.h:564
Herwig::DipoleSplittingKinematics::theEmissionMomentum
Lorentz5Momentum theEmissionMomentum
The emission's momentum after the splitting.
Definition:
DipoleSplittingKinematics.h:587
Herwig::DipoleSplittingKinematics::pVector
virtual Lorentz5Momentum pVector(const Lorentz5Momentum &pEmitter, const Lorentz5Momentum &, const DipoleSplittingInfo &) const
Return the pVector, required for spin correlations.
Definition:
DipoleSplittingKinematics.h:382
Herwig::DipoleSplittingKinematics::dipoleScale
virtual Energy dipoleScale(const Lorentz5Momentum &pEmitter, const Lorentz5Momentum &pSpectator) const
Return the dipole scale associated to the given pair of emitter and spectator.
Definition:
DipoleSplittingKinematics.h:77
Herwig::DipoleSplittingKinematics::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::DipoleSplittingKinematics::xMin
double xMin() const
Return the minimum momentum fraction for incoming partons.
Definition:
DipoleSplittingKinematics.h:164
Herwig::DipoleSplittingKinematics::generateKinematics
virtual void generateKinematics(const Lorentz5Momentum &pEmitter, const Lorentz5Momentum &pSpectator, const DipoleSplittingInfo &dInfo)=0
Generate the full kinematics given emitter and spectator momentum and a previously completeted Dipole...
Herwig::DipoleSplittingKinematics::jacobianOverestimate
virtual double jacobianOverestimate() const
Return the overestimated jacobian for the last generated parameters.
Definition:
DipoleSplittingKinematics.h:239
Herwig::DipoleSplittingKinematics::theSpectatorMomentum
Lorentz5Momentum theSpectatorMomentum
The spectator's momentum after the splitting.
Definition:
DipoleSplittingKinematics.h:592
Herwig::DipoleSplittingKinematics::theLastSpectatorZ
double theLastSpectatorZ
The momentum fraction, by which the spectator's momentum fraction should be divided after the splitti...
Definition:
DipoleSplittingKinematics.h:570
Herwig::DipoleSplittingKinematics::theSplitRecoilMomentum
Lorentz5Momentum theSplitRecoilMomentum
The momentum of the recoil system after the splitting, used in decay dipole kinematics.
Definition:
DipoleSplittingKinematics.h:598
Herwig::DipoleSplittingKinematics::theLastPt
Energy theLastPt
The last generated pt.
Definition:
DipoleSplittingKinematics.h:539
Herwig::DipoleSplittingKinematics::emitterMomentum
void emitterMomentum(const Lorentz5Momentum &p)
Set the emitter's momentum after the splitting.
Definition:
DipoleSplittingKinematics.h:463
Herwig::DipoleSplittingKinematics::theLastZ
double theLastZ
The last generated momentum fraction.
Definition:
DipoleSplittingKinematics.h:544
Herwig::DipoleSplittingKinematics::QMax
virtual Energy QMax(Energy dScale, double emX, double specX, const DipoleIndex &dIndex, const DipoleSplittingKernel &split, tPPtr emitter, tPPtr spectator) const
Return the maximum virtuality for the given dipole scale.
Herwig::DipoleSplittingKinematics::lastZ
void lastZ(double z)
Set the last generated momentum fraction.
Definition:
DipoleSplittingKinematics.h:427
Herwig::DipoleSplittingKinematics::xiSupport
virtual pair< double, double > xiSupport(const DipoleSplittingInfo &) const
Return the boundaries in between the momentum fraction random number is to be sampled.
Definition:
DipoleSplittingKinematics.h:65
Herwig::DipoleSplittingKinematics::splitRecoilMomentum
void splitRecoilMomentum(const Lorentz5Momentum &mom)
Set the momentum of the recoil system after the splitting.
Definition:
DipoleSplittingKinematics.h:478
Herwig::DipoleSplittingKinematics::lastSplittingParameters
const vector< double > & lastSplittingParameters() const
Return any additional parameters needed to evaluate the splitting kernel or to generate the full spli...
Definition:
DipoleSplittingKinematics.h:281
Herwig::DipoleSplittingKinematics::haveOverestimate
virtual bool haveOverestimate() const
Return true, if this splitting kinematics class is capable of delivering an overestimate to the jacob...
Definition:
DipoleSplittingKinematics.h:233
Herwig::DipoleSplittingKinematics::nVector
virtual Lorentz5Momentum nVector(const Lorentz5Momentum &, const Lorentz5Momentum &pSpectator, const DipoleSplittingInfo &) const
Return the nVector, required for spin correlations.
Definition:
DipoleSplittingKinematics.h:391
Herwig::DipoleSplittingKinematics::recoilMassKin
virtual Energy recoilMassKin(const Lorentz5Momentum &, const Lorentz5Momentum &pSpectator) const
Return the mass of the system absorbing the recoil in the dipole splitting.
Definition:
DipoleSplittingKinematics.h:90
ThePEG::AbstractClassDescription
ThePEG::HandlerBase
ThePEG::PersistentIStream
ThePEG::PersistentOStream
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::tPPtr
ThePEG::Ptr< Particle >::transient_pointer tPPtr
ThePEG::sqrt
double sqrt(int x)
PPtr
ThePEG::Ptr< Particle >::pointer PPtr
ThePEG::ZERO
constexpr ZeroUnit ZERO
ThePEG::PList
list< PPtr > PList
ThePEG::BaseClassTrait
ThePEG::BaseClassTrait::NthBase
int NthBase
ThePEG::ClassTraitsBase
ThePEG::ClassTraitsBase::className
static string className()
ThePEG::ClassTraitsBase::library
static string library()
ThePEG::ClassTraits
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6