ThePEG  1.8.0
WaveFunctionBase.h
1 // -*- C++ -*-
2 //
3 // WaveFunctionBase.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_WaveFunctionBase_H
10 #define ThePEG_WaveFunctionBase_H
11 //
12 // This is the declaration of the WaveFunctionBase class.
13 
14 #include <ThePEG/Vectors/Lorentz5Vector.h>
15 #include <ThePEG/Vectors/LorentzVector.h>
16 #include <ThePEG/PDT/ParticleData.h>
17 #include <ThePEG/Helicity/HelicityDefinitions.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