thepeg is hosted by Hepforge, IPPP Durham
 ThePEG  2.1.5
WaveFunctionBase.h
1 // -*- C++ -*-
2 //
3 // WaveFunctionBase.h is a part of ThePEG - Toolkit for HEP Event Generation
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_WaveFunctionBase_H
10 #define ThePEG_WaveFunctionBase_H
11 //
12 // This is the declaration of the WaveFunctionBase class.
13
14 #include <ThePEG/Vectors/Lorentz5Vector.h>
16 #include <ThePEG/PDT/ParticleData.h>
18
19 namespace ThePEG {
20
21 namespace Helicity {
22
23
24
29 enum Direction
30 {
34 };
35
59
60 public:
61
63
64
69  {}
70
75  tcPDPtr pd, Direction dir = intermediate)
76  : _particle(pd), _momentum(p), _dir(dir)
77  {
78  if(_dir==outgoing) _momentum *= -1.0;
79  if ( dir != outgoing ) {
80  tcPDPtr anti = pd->CC();
81  if ( anti ) _particle = anti;
82  }
83  }
85
86
94  Energy px() const {return _momentum.x();}
95
99  Energy py() const {return _momentum.y();}
100
104  Energy pz() const {return _momentum.z();}
105
109  Energy e() const {return _momentum.e();}
110
114  Energy mass() const {return _momentum.mass();}
115
119  Energy2 m2() const {return _momentum.m2();}
120
124  const Lorentz5Momentum & momentum() const {return _momentum;}
126
134  long id() const {return _particle->id();}
135
139  PDT::Spin iSpin() const {return _particle->iSpin();}
140
144  tcPDPtr particle() const {return _particle;}
145
150
156
157 protected:
158
163  _momentum.transform(r);
164  }
165
166 private:
167
172
177
182 };
183 }
184 }
185
186 #endif
Energy e() const
Get the energy.
Energy2 m2() const
Get off-shell mass squared.
Lorentz5Momentum _momentum
Lorentz 5 momentum.
Energy mass() const
Get the mass.
Energy px() const
This file contains enumerations used by LorentzSpinor and LorentzSpinorBar classes.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
The LorentzRotation class combine a SpinOneLorentzRotation and a spin SpinHalfLorentzRotation to prov...
An incoming particle.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
long id() const
Energy py() const
Get the y component of the momentum.
tcPDPtr _particle
Constant pointer to the particle info.
An intermediate particle.
Direction _dir
Incoming or outgoing.
ThePEG::Helicity::Direction direction() const
Get the direction of particle.
An outgoing particle.
Spin
Definition of enumerated values used for spin information.
Definition: PDT.h:32
Value mass() const
Mass/invariant length component.
contains the LorentzVector class.
PDT::Spin iSpin() const
Get 2s+1 for the particle.
Value x() const
Component access.
Lorentz5Vector & transform(const LorentzRotation &r)
Perform a Lorentz transformation.
Energy pz() const
Get the z component of the momentum.
void direction(ThePEG::Helicity::Direction in)
Set the direction of the particle.
const Lorentz5Momentum & momentum() const