thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
Helicity
Rank3TensorSpinInfo.h
1
// -*- C++ -*-
2
//
3
// Rank3TensorSpinInfo.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_Rank3TensorSpinInfo_H
10
#define THEPEG_Rank3TensorSpinInfo_H
11
// This is the declaration of the Rank3TensorSpinInfo class.
12
13
#include "ThePEG/EventRecord/SpinInfo.h"
14
#include "ThePEG/Helicity/LorentzRank3Tensor.h"
15
#include "Rank3TensorSpinInfo.fh"
16
// #include "Rank3TensorSpinInfo.xh"
17
#include <array>
18
19
namespace
ThePEG
{
20
namespace
Helicity {
21
46
class
Rank3TensorSpinInfo
:
public
SpinInfo
{
47
48
public
:
49
55
Rank3TensorSpinInfo
() :
SpinInfo
(
PDT
::Spin3),
_decaycalc
(false) {}
56
62
Rank3TensorSpinInfo
(
const
Lorentz5Momentum
& p,
bool
time)
63
:
SpinInfo
(
PDT
::Spin3, p, time),
_decaycalc
(false) {}
65
66
public
:
67
75
void
setBasisState
(
unsigned
int
hel,
LorentzRank3Tensor<double>
in)
const
{
76
assert(hel<7);
77
_productionstates
[hel]=in;
78
_currentstates
[hel]=in;
79
}
80
86
void
setDecayState
(
unsigned
int
hel,
LorentzRank3Tensor<double>
in)
const
{
87
assert(hel<7);
88
_decaycalc
=
true
;
89
_decaystates
[hel] = in;
90
}
91
96
const
LorentzRank3Tensor<double>
&
getProductionBasisState
(
unsigned
int
hel)
const
{
97
assert(hel<7);
98
return
_productionstates
[hel];
99
}
100
105
const
LorentzRank3Tensor<double>
&
getCurrentBasisState
(
unsigned
int
hel)
const
{
106
assert(hel<7);
107
return
_currentstates
[hel];
108
}
109
114
const
LorentzRank3Tensor<double>
&
getDecayBasisState
(
unsigned
int
hel)
const
{
115
assert(hel<7);
116
if
(!
_decaycalc
) {
117
for
(
unsigned
int
ix=0;ix<7;++ix)
118
_decaystates
[ix]=
_currentstates
[ix].conjugate();
119
_decaycalc
=
true
;
120
}
121
return
_decaystates
[hel];
122
}
124
128
virtual
void
transform
(
const
LorentzMomentum
&,
const
LorentzRotation
&);
129
133
virtual
void
undecay
()
const
{
134
_decaycalc
=
false
;
135
SpinInfo::undecay
();
136
}
137
141
virtual
void
reset
() {
142
undecay
();
143
_currentstates
=
_productionstates
;
144
SpinInfo::reset
();
145
}
146
147
public
:
148
152
static
void
Init
();
153
157
virtual
EIPtr
clone
()
const
;
158
159
private
:
160
164
Rank3TensorSpinInfo
&
operator=
(
const
Rank3TensorSpinInfo
&) =
delete
;
165
166
private
:
167
171
mutable
std::array<LorentzRank3Tensor<double>,7>
_productionstates
;
172
176
mutable
std::array<LorentzRank3Tensor<double>,7>
_decaystates
;
177
181
mutable
std::array<LorentzRank3Tensor<double>,7>
_currentstates
;
182
186
mutable
bool
_decaycalc
;
187
188
};
189
190
}
191
}
192
193
194
namespace
ThePEG
{
195
196
}
197
#endif
/* THEPEG_Rank3TensorSpinInfo_H */
ThePEG::Helicity::LorentzRank3Tensor
The LorentzRank3Tensor class is designed to implement the storage of a complex tensor to be used to r...
Definition:
LorentzRank3Tensor.h:37
ThePEG::Helicity::Rank3TensorSpinInfo
The Rank3TensorSpinInfo class is the implementation of the spin information for tensor particles.
Definition:
Rank3TensorSpinInfo.h:46
ThePEG::Helicity::Rank3TensorSpinInfo::undecay
virtual void undecay() const
Undecay.
Definition:
Rank3TensorSpinInfo.h:133
ThePEG::Helicity::Rank3TensorSpinInfo::Rank3TensorSpinInfo
Rank3TensorSpinInfo(const Lorentz5Momentum &p, bool time)
Standard Constructor.
Definition:
Rank3TensorSpinInfo.h:62
ThePEG::Helicity::Rank3TensorSpinInfo::setBasisState
void setBasisState(unsigned int hel, LorentzRank3Tensor< double > in) const
Set the basis state, this is production state.
Definition:
Rank3TensorSpinInfo.h:75
ThePEG::Helicity::Rank3TensorSpinInfo::operator=
Rank3TensorSpinInfo & operator=(const Rank3TensorSpinInfo &)=delete
Private and non-existent assignment operator.
ThePEG::Helicity::Rank3TensorSpinInfo::transform
virtual void transform(const LorentzMomentum &, const LorentzRotation &)
Perform a lorentz rotation of the spin information.
ThePEG::Helicity::Rank3TensorSpinInfo::Rank3TensorSpinInfo
Rank3TensorSpinInfo()
Default constructor.
Definition:
Rank3TensorSpinInfo.h:55
ThePEG::Helicity::Rank3TensorSpinInfo::reset
virtual void reset()
Reset.
Definition:
Rank3TensorSpinInfo.h:141
ThePEG::Helicity::Rank3TensorSpinInfo::getProductionBasisState
const LorentzRank3Tensor< double > & getProductionBasisState(unsigned int hel) const
Get the basis state for the production for the given helicity, hel (0,1,2,3,4 as described above....
Definition:
Rank3TensorSpinInfo.h:96
ThePEG::Helicity::Rank3TensorSpinInfo::clone
virtual EIPtr clone() const
Standard clone method.
ThePEG::Helicity::Rank3TensorSpinInfo::Init
static void Init()
Standard Init function.
ThePEG::Helicity::Rank3TensorSpinInfo::getDecayBasisState
const LorentzRank3Tensor< double > & getDecayBasisState(unsigned int hel) const
Get the basis state for the decay for the given helicity, hel (0,1,2,3,4,5,6 as described above....
Definition:
Rank3TensorSpinInfo.h:114
ThePEG::Helicity::Rank3TensorSpinInfo::_currentstates
std::array< LorentzRank3Tensor< double >, 7 > _currentstates
Basis states in the current frame of the particle.
Definition:
Rank3TensorSpinInfo.h:181
ThePEG::Helicity::Rank3TensorSpinInfo::_decaycalc
bool _decaycalc
True if the decay state has been set.
Definition:
Rank3TensorSpinInfo.h:186
ThePEG::Helicity::Rank3TensorSpinInfo::_productionstates
std::array< LorentzRank3Tensor< double >, 7 > _productionstates
Basis states in the frame in which the particle was produced.
Definition:
Rank3TensorSpinInfo.h:171
ThePEG::Helicity::Rank3TensorSpinInfo::setDecayState
void setDecayState(unsigned int hel, LorentzRank3Tensor< double > in) const
Set the basis state for the decay.
Definition:
Rank3TensorSpinInfo.h:86
ThePEG::Helicity::Rank3TensorSpinInfo::_decaystates
std::array< LorentzRank3Tensor< double >, 7 > _decaystates
Basis states in the frame in which the particle decays.
Definition:
Rank3TensorSpinInfo.h:176
ThePEG::Helicity::Rank3TensorSpinInfo::getCurrentBasisState
const LorentzRank3Tensor< double > & getCurrentBasisState(unsigned int hel) const
Get the basis state for the current for the given helicity, hel (0,1,2,3,4 as described above....
Definition:
Rank3TensorSpinInfo.h:105
ThePEG::Lorentz5Vector< Energy >
ThePEG::LorentzRotation
The LorentzRotation class combine a SpinOneLorentzRotation and a spin SpinHalfLorentzRotation to prov...
Definition:
LorentzRotation.h:27
ThePEG::LorentzVector< Energy >
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::Pointer::RCPtr
RCPtr is a reference counted (smart) pointer.
Definition:
RCPtr.h:60
ThePEG::SpinInfo
The SpinInfo is the base class for the spin information for the spin correlation algorithm.
Definition:
SpinInfo.h:58
ThePEG::SpinInfo::reset
virtual void reset()
Reset - Undoes any transformations and calls undecay.
Definition:
SpinInfo.h:159
ThePEG::SpinInfo::undecay
virtual void undecay() const
Calculate the rho matrix for the decay if not already done.
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6