thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
WaveFunctionBase.h
1 // -*- C++ -*-
2 //
3 // WaveFunctionBase.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_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
Access to the momentum components and mass.
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
Access to the particle properties.
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
Access to the 5-momentum.
A Direction object can be used to specify that some following operations should be assumed to be perf...
Definition: Direction.h:41
Value2 m2() const
Squared magnitude .
tcPDPtr particle() const
Get the particle pointer.
void transformMomentum(const LorentzRotation &r)
Perform the Lorentz transformation of the wave function.