herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Shower
Dipole
Kernels
IFqx2qgxDipoleKernel.h
1
// -*- C++ -*-
2
#ifndef HERWIG_IFqx2qgxDipoleKernel_H
3
#define HERWIG_IFqx2qgxDipoleKernel_H
4
//
5
// This is the declaration of the IFqx2qgxDipoleKernel class.
6
//
7
8
#include "DipoleSplittingKernel.h"
9
10
namespace
Herwig
{
11
12
using namespace
ThePEG
;
13
22
class
IFqx2qgxDipoleKernel
:
public
DipoleSplittingKernel
{
23
24
public
:
25
29
IFqx2qgxDipoleKernel
();
30
31
public
:
32
37
virtual
bool
canHandle
(
const
DipoleIndex
&)
const
;
38
44
virtual
bool
canHandleEquivalent
(
const
DipoleIndex
& a,
45
const
DipoleSplittingKernel
& sk,
46
const
DipoleIndex
& b)
const
;
47
52
virtual
tcPDPtr
emitter
(
const
DipoleIndex
&)
const
;
53
58
virtual
tcPDPtr
emission
(
const
DipoleIndex
&)
const
;
59
64
virtual
tcPDPtr
spectator
(
const
DipoleIndex
&)
const
;
65
70
virtual
double
evaluate
(
const
DipoleSplittingInfo
&)
const
;
71
76
virtual
vector< pair<int, Complex> >
generatePhi
(
const
DipoleSplittingInfo
& dInfo,
const
RhoDMatrix
& rho)
const
;
77
81
virtual
DecayMEPtr
matrixElement
(
const
DipoleSplittingInfo
& dInfo)
const
;
82
83
public
:
84
91
void
persistentOutput
(
PersistentOStream
& os)
const
;
92
98
void
persistentInput
(
PersistentIStream
& is,
int
version);
100
107
static
void
Init
();
108
109
protected
:
110
117
virtual
IBPtr
clone
()
const
;
118
123
virtual
IBPtr
fullclone
()
const
;
125
126
127
// If needed, insert declarations of virtual function defined in the
128
// InterfacedBase class here (using ThePEG-interfaced-decl in Emacs).
129
130
131
private
:
132
137
static
ClassDescription<IFqx2qgxDipoleKernel>
initIFqx2qgxDipoleKernel
;
138
143
IFqx2qgxDipoleKernel
&
operator=
(
const
IFqx2qgxDipoleKernel
&) =
delete
;
144
145
};
146
147
}
148
149
#include "ThePEG/Utilities/ClassTraits.h"
150
151
namespace
ThePEG
{
152
157
template
<>
158
struct
BaseClassTrait
<
Herwig
::IFqx2qgxDipoleKernel,1> {
160
typedef
Herwig::DipoleSplittingKernel
NthBase
;
161
};
162
165
template
<>
166
struct
ClassTraits
<
Herwig
::IFqx2qgxDipoleKernel>
167
:
public
ClassTraitsBase
<Herwig::IFqx2qgxDipoleKernel> {
169
static
string
className
() {
return
"Herwig::IFqx2qgxDipoleKernel"
; }
177
static
string
library
() {
return
"HwDipoleShower.so"
; }
178
};
179
182
}
183
184
#endif
/* HERWIG_IFqx2qgxDipoleKernel_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::IFqx2qgxDipoleKernel
IFqx2qgxDipoleKernel implements the q -> qg splitting off an initial-final dipole.
Definition:
IFqx2qgxDipoleKernel.h:22
Herwig::IFqx2qgxDipoleKernel::emission
virtual tcPDPtr emission(const DipoleIndex &) const
Return the emission data after splitting, given a dipole index.
Herwig::IFqx2qgxDipoleKernel::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::IFqx2qgxDipoleKernel::canHandleEquivalent
virtual bool canHandleEquivalent(const DipoleIndex &a, const DipoleSplittingKernel &sk, const DipoleIndex &b) const
Return true, if this splitting kernel is the same for the given index a, as the given splitting kerne...
Herwig::IFqx2qgxDipoleKernel::operator=
IFqx2qgxDipoleKernel & operator=(const IFqx2qgxDipoleKernel &)=delete
The assignment operator is private and must never be called.
Herwig::IFqx2qgxDipoleKernel::IFqx2qgxDipoleKernel
IFqx2qgxDipoleKernel()
The default constructor.
Herwig::IFqx2qgxDipoleKernel::canHandle
virtual bool canHandle(const DipoleIndex &) const
Return true, if this splitting kernel applies to the given dipole index.
Herwig::IFqx2qgxDipoleKernel::generatePhi
virtual vector< pair< int, Complex > > generatePhi(const DipoleSplittingInfo &dInfo, const RhoDMatrix &rho) const
Evaluate rho_ii' V_ijk V*_i'jk / equivalent for initial-state splitting, required for generating spin...
Herwig::IFqx2qgxDipoleKernel::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::IFqx2qgxDipoleKernel::matrixElement
virtual DecayMEPtr matrixElement(const DipoleSplittingInfo &dInfo) const
Return the completely spin-unaveraged (i.e.
Herwig::IFqx2qgxDipoleKernel::evaluate
virtual double evaluate(const DipoleSplittingInfo &) const
Evaluate this splitting kernel for the given dipole splitting.
Herwig::IFqx2qgxDipoleKernel::initIFqx2qgxDipoleKernel
static ClassDescription< IFqx2qgxDipoleKernel > initIFqx2qgxDipoleKernel
The static object used to initialize the description of this class.
Definition:
IFqx2qgxDipoleKernel.h:137
Herwig::IFqx2qgxDipoleKernel::emitter
virtual tcPDPtr emitter(const DipoleIndex &) const
Return the emitter data after splitting, given a dipole index.
Herwig::IFqx2qgxDipoleKernel::spectator
virtual tcPDPtr spectator(const DipoleIndex &) const
Return the spectator data after splitting, given a dipole index.
Herwig::IFqx2qgxDipoleKernel::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::IFqx2qgxDipoleKernel::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::IFqx2qgxDipoleKernel::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
ThePEG::ClassDescription
ThePEG::PersistentIStream
ThePEG::PersistentOStream
ThePEG::RhoDMatrix
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG
ThePEG::IBPtr
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
ThePEG::tcPDPtr
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
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