ThePEG
1.8.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
Helicity
WaveFunction
ScalarWaveFunction.h
1
// -*- C++ -*-
2
//
3
// ScalarWaveFunction.h is a part of ThePEG - Toolkit for HEP Event Generation
4
// Copyright (C) 2003-2011 Peter Richardson, Leif Lonnblad
5
//
6
// ThePEG 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 ThePEG_ScalarWaveFunction_H
10
#define ThePEG_ScalarWaveFunction_H
11
//
12
// This is the declaration of the ScalarWaveFunction class.
13
14
#include "WaveFunctionBase.h"
15
#include <ThePEG/Helicity/ScalarSpinInfo.h>
16
#include <ThePEG/EventRecord/Particle.h>
17
#include <ThePEG/EventRecord/RhoDMatrix.h>
18
19
namespace
ThePEG {
20
namespace
Helicity {
21
36
class
ScalarWaveFunction
:
public
WaveFunctionBase
{
37
38
public
:
39
42
50
ScalarWaveFunction
(
const
Lorentz5Momentum
& p,
tcPDPtr
part,
51
Complex
wave
,
Direction
dir=
intermediate
)
52
:
WaveFunctionBase
(p,part,dir),
_wf
(wave)
53
{
54
assert(
iSpin
()==1);
55
}
56
63
ScalarWaveFunction
(
const
Lorentz5Momentum
& p,
tcPDPtr
part,
Direction
dir)
64
:
WaveFunctionBase
(p,part,dir),
_wf
(1.0)
65
{
66
assert(
iSpin
()==1);
67
}
68
69
static
void
calculateWaveFunctions(
RhoDMatrix
& rho,
70
tPPtr
,
Direction
) {
71
rho=
RhoDMatrix
(
PDT::Spin0
);
72
}
73
74
static
void
constructSpinInfo(
tPPtr
part,
Direction
,
bool
time) {
75
tScalarSpinPtr
inspin;
76
if
(part->spinInfo()) inspin=dynamic_ptr_cast<tScalarSpinPtr>(part->spinInfo());
77
if
(inspin)
return
;
78
assert(!part->spinInfo());
79
ScalarSpinPtr
temp =
new_ptr
(ScalarSpinInfo(part->momentum(),time));
80
part->spinInfo(temp);
81
}
82
86
ScalarWaveFunction
() :
WaveFunctionBase
(),
_wf
(1.0) {}
87
91
ScalarWaveFunction
(
tPPtr
p,
Direction
dir,
bool
time)
92
:
WaveFunctionBase
(p->
momentum
(), p->dataPtr(), dir),
_wf
(1.0)
93
{
94
assert(
iSpin
()==1);
95
constructSpinInfo(p,dir,time);
96
}
97
101
const
Complex
&
wave
()
const
{
return
_wf
;}
102
103
public
:
104
105
void
transform(
const
LorentzRotation
& r) {
106
transformMomentum
(r);
107
}
108
109
private
:
110
114
Complex
_wf
;
115
116
};
117
}
118
}
119
120
#endif
Generated on Mon Jul 2 2012 16:06:48 for ThePEG by
1.8.1.1