thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
Helicity
WaveFunction
VectorWaveFunction.h
1
// -*- C++ -*-
2
//
3
// VectorWaveFunction.h is a part of ThePEG - Toolkit for HEP Event Generation
4
// Copyright (C) 2003-2019 Peter Richardson, Leif Lonnblad
5
//
6
// ThePEG 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 ThePEG_VectorWaveFunction_H
10
#define ThePEG_VectorWaveFunction_H
11
//
12
// This is the declaration of the VectorWaveFunction class.
13
//
14
#include "WaveFunctionBase.h"
15
#include <ThePEG/Helicity/LorentzPolarizationVector.h>
16
#include <ThePEG/Helicity/VectorSpinInfo.h>
17
#include <ThePEG/EventRecord/RhoDMatrix.h>
18
#include <ThePEG/EventRecord/Particle.h>
19
20
namespace
ThePEG
{
21
namespace
Helicity {
22
50
class
VectorWaveFunction
:
public
WaveFunctionBase
{
51
52
public
:
53
64
VectorWaveFunction
(
const
Lorentz5Momentum
& p,
tcPDPtr
part,
65
const
LorentzPolarizationVector
&
wave
,
66
Direction
dir=
intermediate
)
67
:
WaveFunctionBase
(p,part,dir),
_wf
(
wave
)
68
{
69
assert(
iSpin
()==3);
70
}
71
81
VectorWaveFunction
(
const
Lorentz5Momentum
& p,
tcPDPtr
part,
const
Complex
&
x
,
82
const
Complex
&
y
,
const
Complex
&
z
,
const
Complex
&
t
)
83
:
WaveFunctionBase
(p,part),
_wf
(
x
,
y
,
z
,
t
)
84
{
85
assert(
iSpin
()==3);
86
}
87
97
VectorWaveFunction
(
const
Lorentz5Momentum
& p,
tcPDPtr
part,
98
unsigned
int
ihel,
Direction
dir,
99
VectorPhase
phase=
default_vector_phase
)
100
:
WaveFunctionBase
(p,part,dir)
101
{
102
assert(
iSpin
()==3);
103
calculateWaveFunction
(ihel,phase);
104
}
105
112
VectorWaveFunction
(
const
Lorentz5Momentum
&p,
113
tcPDPtr
part,
Direction
dir)
114
:
WaveFunctionBase
(p,part,dir),
_wf
()
115
{
116
assert(
iSpin
()==3);
117
}
118
122
VectorWaveFunction
() {}
123
127
VectorWaveFunction
(vector<VectorWaveFunction> &
wave
,
128
tPPtr
part,
Direction
dir,
bool
time,
bool
massless,
129
bool
=
true
,
130
VectorPhase
phase=
default_vector_phase
) {
131
calculateWaveFunctions
(
wave
,part,dir,massless,phase);
132
constructSpinInfo
(
wave
,part,dir,time,massless);
133
}
135
143
const
LorentzPolarizationVector
&
wave
()
const
{
return
_wf
;}
144
148
Complex
x
()
const
{
return
_wf
.x();}
149
153
Complex
y
()
const
{
return
_wf
.y();}
154
158
Complex
z
()
const
{
return
_wf
.z();}
159
163
Complex
t
()
const
{
return
_wf
.t();}
164
174
void
reset
(
unsigned
int
ihel,
VectorPhase
phase=
default_vector_phase
) {
175
calculateWaveFunction
(ihel,phase);
176
}
178
179
public
:
180
184
void
transform
(
const
LorentzRotation
& r) {
185
_wf
.
transform
(r);
186
transformMomentum
(r);
187
}
188
189
public
:
190
194
static
void
calculateWaveFunctions
(vector<LorentzPolarizationVector> & waves,
195
tPPtr
particle
,
Direction
,
bool
massless,
196
VectorPhase
phase=
default_vector_phase
);
197
201
static
void
calculateWaveFunctions
(vector<VectorWaveFunction> & waves,
202
tPPtr
particle
,
Direction
,
bool
massless,
203
VectorPhase
phase=
default_vector_phase
);
204
208
static
void
calculateWaveFunctions
(vector<VectorWaveFunction> & waves,
209
const
Lorentz5Momentum
&
momentum
,
210
tcPDPtr
parton,
Direction
,
bool
massless,
211
VectorPhase
phase=
default_vector_phase
);
212
216
static
void
calculateWaveFunctions
(vector<LorentzPolarizationVector> & waves,
217
RhoDMatrix
& rho,
218
tPPtr
particle
,
Direction
,
bool
massless,
219
VectorPhase
phase=
default_vector_phase
);
220
224
static
void
calculateWaveFunctions
(vector<VectorWaveFunction> & waves,
225
RhoDMatrix
& rho,
226
tPPtr
particle
,
Direction
,
bool
massless,
227
VectorPhase
phase=
default_vector_phase
);
228
232
static
void
constructSpinInfo
(
const
vector<LorentzPolarizationVector> & waves,
233
tPPtr
part,
Direction
dir,
bool
time,
bool
massless);
234
238
static
void
constructSpinInfo
(
const
vector<VectorWaveFunction> & waves,
239
tPPtr
part,
Direction
dir,
bool
time,
bool
massless);
240
241
private
:
242
248
void
calculateWaveFunction
(
unsigned
int
ihel,
249
VectorPhase
phase=
default_vector_phase
);
250
251
private
:
252
256
LorentzPolarizationVector
_wf
;
257
258
};
259
260
}
261
}
262
263
#endif
ThePEG::Direction
A Direction object can be used to specify that some following operations should be assumed to be perf...
Definition:
Direction.h:41
ThePEG::Helicity::VectorWaveFunction
Definition:
VectorWaveFunction.h:50
ThePEG::Helicity::VectorWaveFunction::VectorWaveFunction
VectorWaveFunction(vector< VectorWaveFunction > &wave, tPPtr part, Direction dir, bool time, bool massless, bool=true, VectorPhase phase=default_vector_phase)
Special for spin correlations.
Definition:
VectorWaveFunction.h:127
ThePEG::Helicity::VectorWaveFunction::VectorWaveFunction
VectorWaveFunction(const Lorentz5Momentum &p, tcPDPtr part, const Complex &x, const Complex &y, const Complex &z, const Complex &t)
Constructor, set the momentum and components of the wavefunction.
Definition:
VectorWaveFunction.h:81
ThePEG::Helicity::VectorWaveFunction::VectorWaveFunction
VectorWaveFunction(const Lorentz5Momentum &p, tcPDPtr part, const LorentzPolarizationVector &wave, Direction dir=intermediate)
Constructor, set the momentum and Wavefunction, the direction can also be specified.
Definition:
VectorWaveFunction.h:64
ThePEG::Helicity::VectorWaveFunction::VectorWaveFunction
VectorWaveFunction(const Lorentz5Momentum &p, tcPDPtr part, Direction dir)
Constructor, set the 5-momentum and direction, zero the wavefunction.
Definition:
VectorWaveFunction.h:112
ThePEG::Helicity::VectorWaveFunction::constructSpinInfo
static void constructSpinInfo(const vector< LorentzPolarizationVector > &waves, tPPtr part, Direction dir, bool time, bool massless)
Construct the SpinInfo object.
ThePEG::Helicity::VectorWaveFunction::transform
void transform(const LorentzRotation &r)
Perform the Lorentz transformation of the wave function.
Definition:
VectorWaveFunction.h:184
ThePEG::Helicity::VectorWaveFunction::reset
void reset(unsigned int ihel, VectorPhase phase=default_vector_phase)
Reset functions.
Definition:
VectorWaveFunction.h:174
ThePEG::Helicity::VectorWaveFunction::calculateWaveFunctions
static void calculateWaveFunctions(vector< LorentzPolarizationVector > &waves, RhoDMatrix &rho, tPPtr particle, Direction, bool massless, VectorPhase phase=default_vector_phase)
Calculate the wavefunctions.
ThePEG::Helicity::VectorWaveFunction::VectorWaveFunction
VectorWaveFunction()
Default constructor.
Definition:
VectorWaveFunction.h:122
ThePEG::Helicity::VectorWaveFunction::y
Complex y() const
Get y component.
Definition:
VectorWaveFunction.h:153
ThePEG::Helicity::VectorWaveFunction::constructSpinInfo
static void constructSpinInfo(const vector< VectorWaveFunction > &waves, tPPtr part, Direction dir, bool time, bool massless)
Construct the SpinInfo object.
ThePEG::Helicity::VectorWaveFunction::x
Complex x() const
Get x component.
Definition:
VectorWaveFunction.h:148
ThePEG::Helicity::VectorWaveFunction::calculateWaveFunction
void calculateWaveFunction(unsigned int ihel, VectorPhase phase=default_vector_phase)
Calculate the wavefunction.
ThePEG::Helicity::VectorWaveFunction::VectorWaveFunction
VectorWaveFunction(const Lorentz5Momentum &p, tcPDPtr part, unsigned int ihel, Direction dir, VectorPhase phase=default_vector_phase)
Constructor, set the momentum, helicity and direction, optionally the choice of the phase.
Definition:
VectorWaveFunction.h:97
ThePEG::Helicity::VectorWaveFunction::calculateWaveFunctions
static void calculateWaveFunctions(vector< VectorWaveFunction > &waves, RhoDMatrix &rho, tPPtr particle, Direction, bool massless, VectorPhase phase=default_vector_phase)
Calculate the wavefunctions.
ThePEG::Helicity::VectorWaveFunction::calculateWaveFunctions
static void calculateWaveFunctions(vector< LorentzPolarizationVector > &waves, tPPtr particle, Direction, bool massless, VectorPhase phase=default_vector_phase)
Calculate the wavefunctions.
ThePEG::Helicity::VectorWaveFunction::wave
const LorentzPolarizationVector & wave() const
Access to the wavefunction and its components.
Definition:
VectorWaveFunction.h:143
ThePEG::Helicity::VectorWaveFunction::calculateWaveFunctions
static void calculateWaveFunctions(vector< VectorWaveFunction > &waves, tPPtr particle, Direction, bool massless, VectorPhase phase=default_vector_phase)
Calculate the wavefunctions.
ThePEG::Helicity::VectorWaveFunction::z
Complex z() const
Get z component.
Definition:
VectorWaveFunction.h:158
ThePEG::Helicity::VectorWaveFunction::_wf
LorentzPolarizationVector _wf
Storage of the wavefunction as a Lorentz Vector.
Definition:
VectorWaveFunction.h:256
ThePEG::Helicity::VectorWaveFunction::calculateWaveFunctions
static void calculateWaveFunctions(vector< VectorWaveFunction > &waves, const Lorentz5Momentum &momentum, tcPDPtr parton, Direction, bool massless, VectorPhase phase=default_vector_phase)
Calculate the wavefunctions.
ThePEG::Helicity::VectorWaveFunction::t
Complex t() const
Get t component.
Definition:
VectorWaveFunction.h:163
ThePEG::Helicity::WaveFunctionBase
Definition:
WaveFunctionBase.h:58
ThePEG::Helicity::WaveFunctionBase::iSpin
PDT::Spin iSpin() const
Get 2s+1 for the particle.
Definition:
WaveFunctionBase.h:139
ThePEG::Helicity::WaveFunctionBase::particle
tcPDPtr particle() const
Get the particle pointer.
Definition:
WaveFunctionBase.h:144
ThePEG::Helicity::WaveFunctionBase::transformMomentum
void transformMomentum(const LorentzRotation &r)
Perform the Lorentz transformation of the wave function.
Definition:
WaveFunctionBase.h:162
ThePEG::Helicity::WaveFunctionBase::momentum
const Lorentz5Momentum & momentum() const
Access to the 5-momentum.
Definition:
WaveFunctionBase.h:124
ThePEG::Lorentz5Vector< Energy >
ThePEG::LorentzRotation
The LorentzRotation class combine a SpinOneLorentzRotation and a spin SpinHalfLorentzRotation to prov...
Definition:
LorentzRotation.h:27
ThePEG::LorentzVector< complex< double > >
ThePEG::LorentzVector::transform
LorentzVector< Value > & transform(const SpinOneLorentzRotation &m)
Rotate the vector. Resets .
Definition:
LorentzVector.h:321
ThePEG::Pointer::TransientConstRCPtr
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition:
RCPtr.h:696
ThePEG::Pointer::TransientRCPtr
TransientRCPtr is a simple wrapper around a bare pointer which can be assigned to and from an RCPtr a...
Definition:
RCPtr.h:519
ThePEG::RhoDMatrix
The RhoDMatrix class is designed to implement the storage of the rho and D matrices which are require...
Definition:
RhoDMatrix.h:28
ThePEG::Helicity::intermediate
@ intermediate
An intermediate particle.
Definition:
WaveFunctionBase.h:33
ThePEG::Helicity::VectorPhase
VectorPhase
Definition of the enumerated values of the phase to include in the calculation of the polarization ve...
Definition:
HelicityDefinitions.h:47
ThePEG::Helicity::default_vector_phase
@ default_vector_phase
Default option.
Definition:
HelicityDefinitions.h:50
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
ThePEG::Complex
std::complex< double > Complex
ThePEG code should use Complex for all complex scalars.
Definition:
Complex.h:23
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6