herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Shower
Dipole
Kernels
IIgx2qqxDipoleKernel.h
1
// -*- C++ -*-
2
#ifndef HERWIG_IIgx2qqxDipoleKernel_H
3
#define HERWIG_IIgx2qqxDipoleKernel_H
4
//
5
// This is the declaration of the IIgx2qqxDipoleKernel class.
6
//
7
8
#include "DipoleSplittingKernel.h"
9
10
namespace
Herwig
{
11
12
using namespace
ThePEG
;
13
22
class
IIgx2qqxDipoleKernel
:
public
DipoleSplittingKernel
{
23
24
public
:
25
29
IIgx2qqxDipoleKernel
();
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<IIgx2qqxDipoleKernel>
initIIgx2qqxDipoleKernel
;
138
143
IIgx2qqxDipoleKernel
&
operator=
(
const
IIgx2qqxDipoleKernel
&) =
delete
;
144
145
};
146
147
}
148
149
#include "ThePEG/Utilities/ClassTraits.h"
150
151
namespace
ThePEG
{
152
157
template
<>
158
struct
BaseClassTrait
<
Herwig
::IIgx2qqxDipoleKernel,1> {
160
typedef
Herwig::DipoleSplittingKernel
NthBase
;
161
};
162
165
template
<>
166
struct
ClassTraits
<
Herwig
::IIgx2qqxDipoleKernel>
167
:
public
ClassTraitsBase
<Herwig::IIgx2qqxDipoleKernel> {
169
static
string
className
() {
return
"Herwig::IIgx2qqxDipoleKernel"
; }
177
static
string
library
() {
return
"HwDipoleShower.so"
; }
178
};
179
182
}
183
184
#endif
/* HERWIG_IIgx2qqxDipoleKernel_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::IIgx2qqxDipoleKernel
IIgx2qqxDipoleKernel implements the g -> qq splitting off an initial-initial dipole.
Definition:
IIgx2qqxDipoleKernel.h:22
Herwig::IIgx2qqxDipoleKernel::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::IIgx2qqxDipoleKernel::emission
virtual tcPDPtr emission(const DipoleIndex &) const
Return the emission data after splitting, given a dipole index.
Herwig::IIgx2qqxDipoleKernel::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::IIgx2qqxDipoleKernel::IIgx2qqxDipoleKernel
IIgx2qqxDipoleKernel()
The default constructor.
Herwig::IIgx2qqxDipoleKernel::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
Herwig::IIgx2qqxDipoleKernel::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Herwig::IIgx2qqxDipoleKernel::initIIgx2qqxDipoleKernel
static ClassDescription< IIgx2qqxDipoleKernel > initIIgx2qqxDipoleKernel
The static object used to initialize the description of this class.
Definition:
IIgx2qqxDipoleKernel.h:137
Herwig::IIgx2qqxDipoleKernel::canHandle
virtual bool canHandle(const DipoleIndex &) const
Return true, if this splitting kernel applies to the given dipole index.
Herwig::IIgx2qqxDipoleKernel::matrixElement
virtual DecayMEPtr matrixElement(const DipoleSplittingInfo &dInfo) const
Return the completely spin-unaveraged (i.e.
Herwig::IIgx2qqxDipoleKernel::operator=
IIgx2qqxDipoleKernel & operator=(const IIgx2qqxDipoleKernel &)=delete
The assignment operator is private and must never be called.
Herwig::IIgx2qqxDipoleKernel::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Herwig::IIgx2qqxDipoleKernel::spectator
virtual tcPDPtr spectator(const DipoleIndex &) const
Return the spectator data after splitting, given a dipole index.
Herwig::IIgx2qqxDipoleKernel::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::IIgx2qqxDipoleKernel::emitter
virtual tcPDPtr emitter(const DipoleIndex &) const
Return the emitter data after splitting, given a dipole index.
Herwig::IIgx2qqxDipoleKernel::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
Herwig::IIgx2qqxDipoleKernel::evaluate
virtual double evaluate(const DipoleSplittingInfo &) const
Evaluate this splitting kernel for the given dipole splitting.
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