herwig
is hosted by
Hepforge
,
IPPP Durham
Herwig
7.3.0
Shower
Dipole
SpinCorrelations
DipoleShowerParticle.h
1
// -*- C++ -*-
2
//
3
// DipoleShowerParticle.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 2 of the GPL, see COPYING for details.
7
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
8
//
9
#ifndef HERWIG_DipoleShowerParticle_H
10
#define HERWIG_DipoleShowerParticle_H
11
//
12
// This is the declaration of the DipoleShowerParticle class.
13
//
14
15
#include "ThePEG/EventRecord/Particle.h"
16
#include "ThePEG/Helicity/WaveFunction/WaveFunctionBase.h"
17
#include "ThePEG/Helicity/WaveFunction/SpinorWaveFunction.h"
18
#include "ThePEG/Helicity/WaveFunction/VectorWaveFunction.h"
19
20
#include "DipoleShowerVertex.h"
21
22
namespace
Herwig
{
23
24
using namespace
ThePEG
;
25
31
class
DipoleShowerParticle
:
public
Base
{
32
33
public
:
34
38
DipoleShowerParticle
() {}
39
43
~DipoleShowerParticle
() {}
44
45
public
:
46
50
void
clear
();
51
55
void
prepare
(
PPtr
& part,
56
const
Helicity::Direction
emmDir,
57
const
Helicity::Direction
specDir,
58
const
Lorentz5Momentum& pVector,
59
const
Lorentz5Momentum& nVector );
60
65
DSVertexPtr
decayVertex
() {
return
theDecayVertex
; }
66
72
vector<LorentzSpinor<SqrtEnergy> >
createFermionDecayStates
();
73
77
void
createVectorDecayStates
();
78
83
void
createNewFermionSpinInfo
(
PPtr
&
outgoing
,
Helicity::Direction
dir);
84
89
void
createNewVectorSpinInfo
(
PPtr
&
outgoing
,
Helicity::Direction
dir);
90
104
void
setFermionMapping
(
const
vector<
LorentzSpinor<SqrtEnergy>
>& decayBasis );
105
112
void
setVectorMapping
();
113
114
public
:
115
122
static
void
Init
();
123
124
private
:
125
129
PPtr
theParticle
;
130
135
DSVertexPtr
theDecayVertex
;
136
137
private
:
138
143
DipoleShowerParticle
&
operator=
(
const
DipoleShowerParticle
&) =
delete
;
144
145
};
146
}
147
148
#include "ThePEG/Utilities/ClassTraits.h"
149
150
namespace
ThePEG
{
151
156
template
<>
157
struct
BaseClassTrait
<
Herwig
::DipoleShowerParticle,1> {
159
typedef
Base
NthBase
;
160
};
161
164
template
<>
165
struct
ClassTraits
<
Herwig
::DipoleShowerParticle>
166
:
public
ClassTraitsBase
<Herwig::DipoleShowerParticle> {
168
static
string
className
() {
return
"Herwig::DipoleShowerParticle"
; }
176
static
string
library
() {
return
"HwDipoleShower.so"
; }
177
};
178
181
}
182
#endif
/* HERWIG_DipoleShowerParticle_H */
Herwig::DipoleShowerParticle
Definition:
DipoleShowerParticle.h:31
Herwig::DipoleShowerParticle::setFermionMapping
void setFermionMapping(const vector< LorentzSpinor< SqrtEnergy > > &decayBasis)
Create the mappings between the production and decay states for the fermion and store them in the ass...
Herwig::DipoleShowerParticle::createNewVectorSpinInfo
void createNewVectorSpinInfo(PPtr &outgoing, Helicity::Direction dir)
Create vector production basis states for the given particle produced in the splitting.
Herwig::DipoleShowerParticle::Init
static void Init()
The standard Init function used to initialize the interfaces.
Herwig::DipoleShowerParticle::setVectorMapping
void setVectorMapping()
Create the mappings between the production and decay states the boson and store them in the associate...
Herwig::DipoleShowerParticle::theParticle
PPtr theParticle
The pptr to this particle.
Definition:
DipoleShowerParticle.h:129
Herwig::DipoleShowerParticle::operator=
DipoleShowerParticle & operator=(const DipoleShowerParticle &)=delete
The assignment operator is private and must never be called.
Herwig::DipoleShowerParticle::DipoleShowerParticle
DipoleShowerParticle()
Default constructor.
Definition:
DipoleShowerParticle.h:38
Herwig::DipoleShowerParticle::createNewFermionSpinInfo
void createNewFermionSpinInfo(PPtr &outgoing, Helicity::Direction dir)
Create fermion production basis states for the given particle produced in the splitting.
Herwig::DipoleShowerParticle::createVectorDecayStates
void createVectorDecayStates()
Create vector decay basis states.
Herwig::DipoleShowerParticle::prepare
void prepare(PPtr &part, const Helicity::Direction emmDir, const Helicity::Direction specDir, const Lorentz5Momentum &pVector, const Lorentz5Momentum &nVector)
Set up the decay vertex for the emitter.
Herwig::DipoleShowerParticle::clear
void clear()
Reset the member variables of the object.
Herwig::DipoleShowerParticle::~DipoleShowerParticle
~DipoleShowerParticle()
Default destructor.
Definition:
DipoleShowerParticle.h:43
Herwig::DipoleShowerParticle::createFermionDecayStates
vector< LorentzSpinor< SqrtEnergy > > createFermionDecayStates()
Create fermion decay basis states.
Herwig::DipoleShowerParticle::decayVertex
DSVertexPtr decayVertex()
Return the associated decay vertex, a DipoleShowerVertex.
Definition:
DipoleShowerParticle.h:65
Herwig::DipoleShowerParticle::theDecayVertex
DSVertexPtr theDecayVertex
The dipole shower vertex associated with this particle.
Definition:
DipoleShowerParticle.h:135
ThePEG::Helicity::LorentzSpinor
Herwig
-*- C++ -*-
Definition:
BasicConsistency.h:17
ThePEG::Helicity::Direction
Direction
ThePEG::Helicity::outgoing
outgoing
ThePEG
ThePEG::PPtr
ThePEG::Ptr< Particle >::pointer PPtr
ThePEG::BaseClassTrait
ThePEG::BaseClassTrait::NthBase
int NthBase
ThePEG::Base
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