ThePEG  1.8.0
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 
37 
38 public:
39 
42 
52  : WaveFunctionBase(p,part,dir), _wf(wave)
53  {
54  assert(iSpin()==1);
55  }
56 
64  : WaveFunctionBase(p,part,dir), _wf(1.0)
65  {
66  assert(iSpin()==1);
67  }
68 
69  static void calculateWaveFunctions(RhoDMatrix & rho,
70  tPPtr, Direction) {
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 
87 
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) {
107  }
108 
109 private:
110 
115 
116 };
117 }
118 }
119 
120 #endif