herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
MatrixElement
Matchbox
Phasespace
TildeKinematics.h
1
// -*- C++ -*-
2
//
3
// TildeKinematics.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_TildeKinematics_H
10
#define HERWIG_TildeKinematics_H
11
//
12
// This is the declaration of the TildeKinematics class.
13
//
14
15
#include "ThePEG/Handlers/HandlerBase.h"
16
#include "ThePEG/Handlers/StandardXComb.h"
17
18
#include "Herwig/MatrixElement/Matchbox/Dipoles/SubtractionDipole.h"
19
20
namespace
Herwig
{
21
22
using namespace
ThePEG
;
23
33
class
TildeKinematics
:
public
HandlerBase
{
34
35
public
:
36
40
Ptr<TildeKinematics>::ptr
cloneMe
()
const
{
41
return
dynamic_ptr_cast<Ptr<TildeKinematics>::ptr>(
clone
());
42
}
43
49
const
Lorentz5Momentum&
realEmitterMomentum
()
const
{
50
return
theRealXComb
->meMomenta()[
theDipole
->realEmitter()];
51
}
52
56
const
Lorentz5Momentum&
realEmissionMomentum
()
const
{
57
return
theRealXComb
->meMomenta()[
theDipole
->realEmission()];
58
}
59
63
const
Lorentz5Momentum&
realSpectatorMomentum
()
const
{
64
return
theRealXComb
->meMomenta()[
theDipole
->realSpectator()];
65
}
66
70
const
Lorentz5Momentum&
bornEmitterMomentum
()
const
{
return
theBornEmitterMomentum
; }
71
75
const
Lorentz5Momentum&
bornSpectatorMomentum
()
const
{
return
theBornSpectatorMomentum
; }
76
80
const
vector<double>&
subtractionParameters
()
const
{
return
theDipole
->subtractionParameters(); }
81
86
virtual
bool
doesTransform
()
const
{
return
false
; }
87
93
virtual
Lorentz5Momentum
transform
(
const
Lorentz5Momentum& p)
const
{
return
p; }
95
102
virtual
void
getShowerVariables
()
const
{}
103
110
virtual
double
jacobianRatio
()
const
{
return
1.; }
111
112
public
:
113
120
void
prepare
(tcStdXCombPtr newRealXComb,
121
tcStdXCombPtr newBornXComb) {
122
theRealXComb
= newRealXComb;
theBornXComb
= newBornXComb;
123
}
124
128
void
dipole
(Ptr<SubtractionDipole>::tptr dip) {
theDipole
= dip; }
129
133
Ptr<SubtractionDipole>::tptr
dipole
() {
return
theDipole
; }
134
138
Ptr<SubtractionDipole>::tcptr
dipole
()
const
{
return
theDipole
; }
139
148
virtual
bool
doMap
() = 0;
149
153
virtual
Energy
lastPt
()
const
= 0;
154
155
159
virtual
Energy
lastPt
(Lorentz5Momentum,Lorentz5Momentum,Lorentz5Momentum)
const
=0 ;
160
161
165
virtual
pair<double,double>
zBounds
(Energy pt, Energy hardPt )
const
= 0;
166
167
171
virtual
double
lastZ
()
const
= 0;
172
176
virtual
Energy
lastScale
()
const
;
177
178
virtual
bool
aboveAlpha()
const
{
179
cerr<<
"only implemented for light kinematics"
;
180
assert(
false
);
181
return
false
;
182
}
183
187
cPDPtr
realEmitterData
()
const
{
188
return
189
(
theDipole
&&
theRealXComb
) ?
190
theRealXComb
->mePartonData()[
theDipole
->realEmitter()] :
191
cPDPtr
();
192
}
193
197
cPDPtr
realEmissionData
()
const
{
198
return
199
(
theDipole
&&
theRealXComb
) ?
200
theRealXComb
->mePartonData()[
theDipole
->realEmission()] :
201
cPDPtr
();
202
}
203
207
cPDPtr
realSpectatorData
()
const
{
208
return
209
(
theDipole
&&
theRealXComb
) ?
210
theRealXComb
->mePartonData()[
theDipole
->realSpectator()] :
211
cPDPtr
();
212
}
213
217
cPDPtr
bornEmitterData
()
const
{
218
return
219
(
theDipole
&&
theBornXComb
) ?
220
theBornXComb
->mePartonData()[
theDipole
->bornEmitter()] :
221
cPDPtr
();
222
}
223
227
cPDPtr
bornSpectatorData
()
const
{
228
return
229
(
theDipole
&&
theBornXComb
) ?
230
theBornXComb
->mePartonData()[
theDipole
->bornSpectator()] :
231
cPDPtr
();
232
}
234
235
protected
:
236
240
Lorentz5Momentum&
bornEmitterMomentum
() {
return
theBornEmitterMomentum
; }
241
245
Lorentz5Momentum&
bornSpectatorMomentum
() {
return
theBornSpectatorMomentum
; }
246
250
vector<double>&
subtractionParameters
() {
return
theDipole
->subtractionParameters(); }
251
252
public
:
256
double
emitterX
()
const
{
257
return
258
theDipole
->bornEmitter() == 0 ?
259
theBornXComb
->lastX1() :
260
theBornXComb
->lastX2();
261
}
262
263
267
double
spectatorX
()
const
{
268
return
269
theDipole
->bornSpectator() == 0 ?
270
theBornXComb
->lastX1() :
271
theBornXComb
->lastX2();
272
}
273
274
275
public
:
276
283
void
persistentOutput
(
PersistentOStream
& os)
const
;
284
290
void
persistentInput
(
PersistentIStream
& is,
int
version);
292
299
static
void
Init
();
300
301
302
// If needed, insert declarations of virtual function defined in the
303
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
304
305
306
protected
:
307
319
virtual
void
rebind
(
const
TranslationMap
& trans);
320
326
virtual
IVector
getReferences
();
328
329
330
private
:
331
335
Ptr<SubtractionDipole>::tptr
theDipole
;
336
340
tcStdXCombPtr
theRealXComb
;
341
345
tcStdXCombPtr
theBornXComb
;
346
350
Lorentz5Momentum
theBornEmitterMomentum
;
351
355
Lorentz5Momentum
theBornSpectatorMomentum
;
356
357
private
:
358
363
TildeKinematics
&
operator=
(
const
TildeKinematics
&) =
delete
;
364
365
};
366
367
}
368
369
#endif
/* HERWIG_TildeKinematics_H */
Herwig::TildeKinematics
TildeKinematics is the base class for the 'tilde' kinematics being used for subtraction terms in the ...
Definition:
TildeKinematics.h:33
Herwig::TildeKinematics::spectatorX
double spectatorX() const
Return the momentum fraction of the spectator.
Definition:
TildeKinematics.h:267
Herwig::TildeKinematics::lastZ
virtual double lastZ() const =0
Return the momentum fraction associated to the last splitting.
Herwig::TildeKinematics::realSpectatorMomentum
const Lorentz5Momentum & realSpectatorMomentum() const
Return the momentum of the spectator in the real emission process.
Definition:
TildeKinematics.h:63
Herwig::TildeKinematics::bornSpectatorMomentum
Lorentz5Momentum & bornSpectatorMomentum()
Access the momentum of the spectator in the underlying Born process.
Definition:
TildeKinematics.h:245
Herwig::TildeKinematics::bornEmitterMomentum
const Lorentz5Momentum & bornEmitterMomentum() const
Return the momentum of the emitter in the underlying Born process.
Definition:
TildeKinematics.h:70
Herwig::TildeKinematics::bornSpectatorMomentum
const Lorentz5Momentum & bornSpectatorMomentum() const
Return the momentum of the spectator in the underlying Born process.
Definition:
TildeKinematics.h:75
Herwig::TildeKinematics::bornSpectatorData
cPDPtr bornSpectatorData() const
Return the particle type of the spectator in the underlying Born process.
Definition:
TildeKinematics.h:227
Herwig::TildeKinematics::operator=
TildeKinematics & operator=(const TildeKinematics &)=delete
The assignment operator is private and must never be called.
Herwig::TildeKinematics::dipole
void dipole(Ptr< SubtractionDipole >::tptr dip)
Set the current dipole.
Definition:
TildeKinematics.h:128
Herwig::TildeKinematics::realSpectatorData
cPDPtr realSpectatorData() const
Return the particle type of the spectator in the real emission process.
Definition:
TildeKinematics.h:207
Herwig::TildeKinematics::transform
virtual Lorentz5Momentum transform(const Lorentz5Momentum &p) const
If this TildeKinematics object needs to transform all other particles in the process except the emitt...
Definition:
TildeKinematics.h:93
Herwig::TildeKinematics::prepare
void prepare(tcStdXCombPtr newRealXComb, tcStdXCombPtr newBornXComb)
Prepare given a dipole, and XCombs describing the real emission and underlying Born processes,...
Definition:
TildeKinematics.h:120
Herwig::TildeKinematics::theRealXComb
tcStdXCombPtr theRealXComb
The XComb object describing the real emission process.
Definition:
TildeKinematics.h:340
Herwig::TildeKinematics::getReferences
virtual IVector getReferences()
Return a vector of all pointers to Interfaced objects used in this object.
Herwig::TildeKinematics::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::TildeKinematics::theBornXComb
tcStdXCombPtr theBornXComb
The XComb object describing the underlying Born process.
Definition:
TildeKinematics.h:345
Herwig::TildeKinematics::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::TildeKinematics::doesTransform
virtual bool doesTransform() const
Return true, if this TildeKinematics object needs to transform all other particles in the process exc...
Definition:
TildeKinematics.h:86
Herwig::TildeKinematics::theDipole
Ptr< SubtractionDipole >::tptr theDipole
The last dipole this TildeKinematics has been selected for.
Definition:
TildeKinematics.h:335
Herwig::TildeKinematics::lastPt
virtual Energy lastPt() const =0
Return the pt associated to the last merged splitting.
Herwig::TildeKinematics::realEmitterData
cPDPtr realEmitterData() const
Return the particle type of the emitter in the real emission process.
Definition:
TildeKinematics.h:187
Herwig::TildeKinematics::bornEmitterMomentum
Lorentz5Momentum & bornEmitterMomentum()
Access the momentum of the emitter in the underlying Born process.
Definition:
TildeKinematics.h:240
Herwig::TildeKinematics::cloneMe
Ptr< TildeKinematics >::ptr cloneMe() const
Clone this object.
Definition:
TildeKinematics.h:40
Herwig::TildeKinematics::subtractionParameters
vector< double > & subtractionParameters()
Access the vector of dimensionless variables calculated.
Definition:
TildeKinematics.h:250
Herwig::TildeKinematics::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::TildeKinematics::rebind
virtual void rebind(const TranslationMap &trans)
Rebind pointer to other Interfaced objects.
Herwig::TildeKinematics::zBounds
virtual pair< double, double > zBounds(Energy pt, Energy hardPt) const =0
Given a pt and a hard pt, return the boundaries on z;.
Herwig::TildeKinematics::getShowerVariables
virtual void getShowerVariables() const
If this tilde kinematics is implementing a mapping different from the baseline dipole mapping,...
Definition:
TildeKinematics.h:102
Herwig::TildeKinematics::realEmissionMomentum
const Lorentz5Momentum & realEmissionMomentum() const
Return the momentum of the emission in the real emission process.
Definition:
TildeKinematics.h:56
Herwig::TildeKinematics::theBornSpectatorMomentum
Lorentz5Momentum theBornSpectatorMomentum
The momentum of the spectator in the underlying Born process.
Definition:
TildeKinematics.h:355
Herwig::TildeKinematics::lastScale
virtual Energy lastScale() const
Return the relevant dipole scale.
Herwig::TildeKinematics::dipole
Ptr< SubtractionDipole >::tcptr dipole() const
Return the current dipole.
Definition:
TildeKinematics.h:138
Herwig::TildeKinematics::jacobianRatio
virtual double jacobianRatio() const
If this tilde kinematics is implementing a mapping different from the baseline dipole mapping,...
Definition:
TildeKinematics.h:110
Herwig::TildeKinematics::realEmissionData
cPDPtr realEmissionData() const
Return the particle type of the emission in the real emission process.
Definition:
TildeKinematics.h:197
Herwig::TildeKinematics::lastPt
virtual Energy lastPt(Lorentz5Momentum, Lorentz5Momentum, Lorentz5Momentum) const =0
Return the pt associated to emitter emission and sppectator momentum.
Herwig::TildeKinematics::realEmitterMomentum
const Lorentz5Momentum & realEmitterMomentum() const
Return the momentum of the emitter in the real emission process.
Definition:
TildeKinematics.h:49
Herwig::TildeKinematics::theBornEmitterMomentum
Lorentz5Momentum theBornEmitterMomentum
The momentum of the emitter in the underlying Born process.
Definition:
TildeKinematics.h:350
Herwig::TildeKinematics::doMap
virtual bool doMap()=0
Perform the mapping to the tilde kinematics for the last selected process and store all dimensionless...
Herwig::TildeKinematics::dipole
Ptr< SubtractionDipole >::tptr dipole()
Return the current dipole.
Definition:
TildeKinematics.h:133
Herwig::TildeKinematics::subtractionParameters
const vector< double > & subtractionParameters() const
Return the vector of dimensionless variables calculated.
Definition:
TildeKinematics.h:80
Herwig::TildeKinematics::emitterX
double emitterX() const
Return the momentum fraction of the emitter.
Definition:
TildeKinematics.h:256
Herwig::TildeKinematics::bornEmitterData
cPDPtr bornEmitterData() const
Return the particle type of the emitter in the underlying Born process.
Definition:
TildeKinematics.h:217
ThePEG::HandlerBase
ThePEG::InterfacedBase::clone
virtual IBPtr clone() const=0
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::Rebinder
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::cPDPtr
ThePEG::Ptr< ParticleData >::const_pointer cPDPtr
ThePEG::IVector
vector< IBPtr > IVector
Generated on Thu Jun 20 2024 17:50:53 for Herwig by
1.9.6