herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.2.1
Shower
Dipole
Kinematics
IFLightKinematics.h
1
// -*- C++ -*-
2
//
3
// IFLightKinematics.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_IFLightKinematics_H
10
#define HERWIG_IFLightKinematics_H
11
//
12
// This is the declaration of the IFLightKinematics class.
13
//
14
15
#include "DipoleSplittingKinematics.h"
16
17
namespace
Herwig
{
18
19
using namespace
ThePEG
;
20
31
class
IFLightKinematics
:
public
DipoleSplittingKinematics
{
32
33
public
:
34
40
IFLightKinematics
();
41
45
virtual
~
IFLightKinematics
();
47
48
public
:
49
53
virtual
Energy ptMax(Energy dScale,
54
double
emX,
double
specX,
55
const
DipoleIndex
&,
56
const
DipoleSplittingKernel
&)
const
;
57
61
virtual
Energy QMax(Energy dScale,
62
double
emX,
double
specX,
63
const
DipoleIndex
& dIndex,
64
const
DipoleSplittingKernel
&)
const
;
65
69
virtual
Energy PtFromQ(Energy scale,
const
DipoleSplittingInfo
&)
const
;
70
74
virtual
Energy QFromPt(Energy scale,
const
DipoleSplittingInfo
&)
const
;
75
79
virtual
pair<double,double> zBoundaries(Energy pt,
80
const
DipoleSplittingInfo
& dInfo,
81
const
DipoleSplittingKernel
& split)
const
;
82
88
virtual
bool
generateSplitting(
double
kappa,
double
xi,
double
phi,
89
DipoleSplittingInfo
& dIndex,
90
const
DipoleSplittingKernel
&);
91
97
virtual
void
generateKinematics(
const
Lorentz5Momentum& pEmitter,
98
const
Lorentz5Momentum& pSpectator,
99
const
DipoleSplittingInfo
& dInfo);
100
101
public
:
102
109
void
persistentOutput(
PersistentOStream
& os)
const
;
110
116
void
persistentInput(
PersistentIStream
& is,
int
version);
118
125
static
void
Init();
126
127
protected
:
128
135
virtual
IBPtr
clone()
const
;
136
141
virtual
IBPtr
fullclone()
const
;
143
144
145
// If needed, insert declarations of virtual function defined in the
146
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
147
148
149
private
:
150
155
static
ClassDescription<IFLightKinematics>
initIFLightKinematics
;
156
161
IFLightKinematics
& operator=(
const
IFLightKinematics
&) =
delete
;
162
163
private
:
164
168
bool
theCollinearScheme
;
169
170
};
171
172
}
173
174
#include "ThePEG/Utilities/ClassTraits.h"
175
176
namespace
ThePEG
{
177
182
template
<>
183
struct
BaseClassTrait
<Herwig::
IFLightKinematics
,1> {
185
typedef
Herwig::DipoleSplittingKinematics
NthBase;
186
};
187
190
template
<>
191
struct
ClassTraits
<Herwig::
IFLightKinematics
>
192
:
public
ClassTraitsBase
<Herwig::IFLightKinematics> {
194
static
string
className() {
return
"Herwig::IFLightKinematics"
; }
202
static
string
library() {
return
"HwDipoleShower.so"
; }
203
};
204
207
}
208
209
#endif
/* HERWIG_IFLightKinematics_H */
ThePEG::PersistentIStream
Herwig::DipoleSplittingKinematics
DipoleSplittingKinematics is the base class for dipole splittings as performed in the dipole shower...
Definition:
DipoleSplittingKinematics.h:41
Herwig::IFLightKinematics::initIFLightKinematics
static ClassDescription< IFLightKinematics > initIFLightKinematics
The static object used to initialize the description of this class.
Definition:
IFLightKinematics.h:155
ThePEG::ClassDescription
Herwig::IFLightKinematics
IFLightKinematics implements massless splittings off an initial-final dipole.
Definition:
IFLightKinematics.h:31
ThePEG::PersistentOStream
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Herwig::DipoleIndex
DipoleIndex is used to index splitting generators for a particular dipole.
Definition:
DipoleSplittingInfo.h:35
ThePEG
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::ClassTraits
Herwig::IFLightKinematics::theCollinearScheme
bool theCollinearScheme
Wether or not to choose the `collinear' scheme.
Definition:
IFLightKinematics.h:168
Herwig::DipoleSplittingInfo
DipoleSplittingInfo contains all parameters to generate a full dipole splitting.
Definition:
DipoleSplittingInfo.h:209
ThePEG::BaseClassTrait
Herwig::DipoleSplittingKernel
DipoleSplittingKernel is the base class for all kernels used within the dipole shower.
Definition:
DipoleSplittingKernel.h:41
ThePEG::ClassTraitsBase
Generated on Sat Apr 11 2020 14:50:29 for Herwig by
1.8.13