ThePEG  1.8.0
ScalarSpinInfo.h
1 // -*- C++ -*-
2 //
3 // ScalarSpinInfo.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_ScalarSpinInfo_H
10 #define ThePEG_ScalarSpinInfo_H
11 // This is the declaration of the ScalarSpinInfo class.
12 
13 #include "ThePEG/EventRecord/SpinInfo.h"
14 #include "ScalarSpinInfo.fh"
15 
16 namespace ThePEG {
17 namespace Helicity {
18 
27 class ScalarSpinInfo: public SpinInfo {
28 
29 public:
30 
36  ScalarSpinInfo() : SpinInfo(PDT::Spin0) {}
37 
43  ScalarSpinInfo(const Lorentz5Momentum & p, bool time)
44  : SpinInfo(PDT::Spin0, p, time) {}
46 
47 public:
48 
52  static void Init();
53 
57  virtual EIPtr clone() const
58  {
59  tcSpinPtr temp = this;
60  return const_ptr_cast<SpinPtr>(temp);
61  }
62 
66  virtual void transform(const LorentzMomentum &,const LorentzRotation &);
67 
68 private:
69 
74 
79 
80 };
81 
82 }
83 }
84 
85 
86 namespace ThePEG {
87 
94 template <>
95 struct BaseClassTrait<ThePEG::Helicity::ScalarSpinInfo,1>
96  : public ClassTraitsType {
98  typedef ThePEG::SpinInfo NthBase;
99 };
100 
105 template <>
106 struct ClassTraits<ThePEG::Helicity::ScalarSpinInfo>
107  : public ClassTraitsBase<ThePEG::Helicity::ScalarSpinInfo> {
111  static string className() { return "ThePEG::Helicity::ScalarSpinInfo"; }
112 };
113 
116 }
117 
118 #endif /* ThePEG_ScalarSpinInfo_H */