thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.2.1
Helicity
VectorSpinInfo.h
1
// -*- C++ -*-
2
//
3
// VectorSpinInfo.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_VectorSpinInfo_H
10
#define THEPEG_VectorSpinInfo_H
11
// This is the declaration of the VectorSpinInfo class.
12
13
#include "ThePEG/EventRecord/SpinInfo.h"
14
#include "ThePEG/Helicity/LorentzPolarizationVector.h"
15
#include "VectorSpinInfo.fh"
16
17
namespace
ThePEG
{
18
namespace
Helicity {
19
39
class
VectorSpinInfo
:
public
SpinInfo
{
40
41
public
:
42
48
VectorSpinInfo
() :
SpinInfo
(
PDT
::Spin1),
_decaycalc
(false) {}
49
55
VectorSpinInfo
(
const
Lorentz5Momentum
& p,
bool
time)
56
:
SpinInfo
(
PDT
::Spin1, p, time),
_decaycalc
(false) {}
58
59
public
:
60
68
void
setBasisState
(
unsigned
int
hel,
69
const
LorentzPolarizationVector
& in)
const
{
70
assert(hel<3);
71
_productionstates
[hel] = in;
72
_currentstates
[hel] = in;
73
}
74
80
void
setDecayState
(
unsigned
int
hel,
81
const
LorentzPolarizationVector
& in)
const
{
82
assert(hel<3);
83
_decaycalc
=
true
;
84
_decaystates
[hel] = in;;
85
}
86
91
const
LorentzPolarizationVector
&
getProductionBasisState
(
unsigned
int
hel)
const
{
92
assert(hel<3);
93
return
_productionstates
[hel];
94
}
95
100
const
LorentzPolarizationVector
&
getCurrentBasisState
(
unsigned
int
hel)
const
{
101
assert(hel<3);
102
return
_currentstates
[hel];
103
}
104
109
const
LorentzPolarizationVector
&
getDecayBasisState
(
unsigned
int
hel)
const
{
110
assert(hel<3);
111
if
(!
_decaycalc
) {
112
for
(
unsigned
int
ix=0;ix<3;++ix)
113
_decaystates
[ix]=
_currentstates
[ix].conjugate();
114
_decaycalc
=
true
;
115
}
116
// return the basis function
117
return
_decaystates
[hel];
118
}
120
124
virtual
void
transform
(
const
LorentzMomentum
&,
const
LorentzRotation
& );
125
129
virtual
void
undecay
()
const
{
130
_decaycalc
=
false
;
131
SpinInfo::undecay
();
132
}
133
137
virtual
void
reset
() {
138
undecay
();
139
_currentstates
=
_productionstates
;
140
SpinInfo::reset
();
141
}
142
143
public
:
144
148
static
void
Init
();
149
153
virtual
EIPtr
clone
()
const
;
154
155
private
:
156
160
VectorSpinInfo
&
operator=
(
const
VectorSpinInfo
&) =
delete
;
161
162
private
:
163
167
mutable
std::array<LorentzPolarizationVector,3>
_productionstates
;
168
172
mutable
std::array<LorentzPolarizationVector,3>
_decaystates
;
173
177
mutable
std::array<LorentzPolarizationVector,3>
_currentstates
;
178
182
mutable
bool
_decaycalc
;
183
184
};
185
186
}
187
}
188
189
190
namespace
ThePEG
{
191
192
}
193
#endif
/* THEPEG_VectorSpinInfo_H */
ThePEG::Helicity::VectorSpinInfo::_currentstates
std::array< LorentzPolarizationVector, 3 > _currentstates
Basis states in the current frame of the particle.
Definition:
VectorSpinInfo.h:177
ThePEG::Helicity::VectorSpinInfo::_decaystates
std::array< LorentzPolarizationVector, 3 > _decaystates
Basis states in the frame in which the particle decays.
Definition:
VectorSpinInfo.h:172
ThePEG::Helicity::VectorSpinInfo::transform
virtual void transform(const LorentzMomentum &, const LorentzRotation &)
Perform a Lorentz rotation of the spin information.
ThePEG::LorentzVector< complex< double > >
ThePEG::Helicity::VectorSpinInfo::VectorSpinInfo
VectorSpinInfo()
Default constructor.
Definition:
VectorSpinInfo.h:48
ThePEG::Helicity::VectorSpinInfo::Init
static void Init()
Standard Init function used to initialize the interfaces.
ThePEG::Helicity::VectorSpinInfo::getCurrentBasisState
const LorentzPolarizationVector & getCurrentBasisState(unsigned int hel) const
Get the basis state for the current for the given helicity, hel (0,1,2 as described above...
Definition:
VectorSpinInfo.h:100
ThePEG::PDT
PDT is a helper class implementing enumerations for charge, colour and spin to be used by the Particl...
Definition:
PDT.h:24
ThePEG::LorentzRotation
The LorentzRotation class combine a SpinOneLorentzRotation and a spin SpinHalfLorentzRotation to prov...
Definition:
LorentzRotation.h:27
ThePEG::Helicity::VectorSpinInfo::setDecayState
void setDecayState(unsigned int hel, const LorentzPolarizationVector &in) const
Set the basis state for the decay.
Definition:
VectorSpinInfo.h:80
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
ThePEG::SpinInfo::reset
virtual void reset()
Reset - Undoes any transformations and calls undecay.
Definition:
SpinInfo.h:159
ThePEG::Helicity::VectorSpinInfo::reset
virtual void reset()
Reset.
Definition:
VectorSpinInfo.h:137
ThePEG::SpinInfo
The SpinInfo is the base class for the spin information for the spin correlation algorithm.
Definition:
SpinInfo.h:58
ThePEG::Helicity::VectorSpinInfo
The VectorSpinInfo class is the implementation of the spin information for vector particles...
Definition:
VectorSpinInfo.h:39
ThePEG::Helicity::VectorSpinInfo::operator=
VectorSpinInfo & operator=(const VectorSpinInfo &)=delete
Private and non-existent assignment operator.
ThePEG::Pointer::RCPtr
RCPtr is a reference counted (smart) pointer.
Definition:
RCPtr.h:60
ThePEG::Helicity::VectorSpinInfo::getDecayBasisState
const LorentzPolarizationVector & getDecayBasisState(unsigned int hel) const
Get the basis state for the decay for the given helicity, hel (0,1,2 as described above...
Definition:
VectorSpinInfo.h:109
ThePEG::Lorentz5Vector< Energy >
ThePEG::Helicity::VectorSpinInfo::clone
virtual EIPtr clone() const
Standard clone method.
ThePEG::Helicity::VectorSpinInfo::setBasisState
void setBasisState(unsigned int hel, const LorentzPolarizationVector &in) const
Set the basis state, this is production state.
Definition:
VectorSpinInfo.h:68
ThePEG::Helicity::VectorSpinInfo::VectorSpinInfo
VectorSpinInfo(const Lorentz5Momentum &p, bool time)
Standard Constructor.
Definition:
VectorSpinInfo.h:55
ThePEG::Helicity::VectorSpinInfo::undecay
virtual void undecay() const
Undecay.
Definition:
VectorSpinInfo.h:129
ThePEG::Helicity::VectorSpinInfo::getProductionBasisState
const LorentzPolarizationVector & getProductionBasisState(unsigned int hel) const
Get the basis state for the production for the given helicity, hel (0,1,2 as described above...
Definition:
VectorSpinInfo.h:91
ThePEG::Helicity::VectorSpinInfo::_decaycalc
bool _decaycalc
True if the decay state has been set.
Definition:
VectorSpinInfo.h:182
ThePEG::SpinInfo::undecay
virtual void undecay() const
Calculate the rho matrix for the decay if not already done.
ThePEG::Helicity::VectorSpinInfo::_productionstates
std::array< LorentzPolarizationVector, 3 > _productionstates
Basis states in the frame in which the particle was produced.
Definition:
VectorSpinInfo.h:167
Generated on Sat Apr 11 2020 14:31:18 for ThePEG by
1.8.13