00001 // -*- C++ -*- 00002 // 00003 // ScalarSpinInfo.h is a part of ThePEG - Toolkit for HEP Event Generation 00004 // Copyright (C) 2003-2007 Peter Richardson, Leif Lonnblad 00005 // 00006 // ThePEG is licenced under version 2 of the GPL, see COPYING for details. 00007 // Please respect the MCnet academic guidelines, see GUIDELINES for details. 00008 // 00009 #ifndef ThePEG_ScalarSpinInfo_H 00010 #define ThePEG_ScalarSpinInfo_H 00011 // This is the declaration of the ScalarSpinInfo class. 00012 00013 #include "SpinInfo.h" 00014 #include "ScalarSpinInfo.fh" 00015 00016 namespace ThePEG { 00017 namespace Helicity { 00018 00027 class ScalarSpinInfo: public SpinInfo { 00028 00029 public: 00030 00036 ScalarSpinInfo() : SpinInfo(PDT::Spin0) {} 00037 00043 ScalarSpinInfo(const Lorentz5Momentum & p, bool time) 00044 : SpinInfo(PDT::Spin0, p, time) {} 00046 00047 public: 00048 00052 static void Init(); 00053 00057 virtual EIPtr clone() const 00058 { 00059 tcSpinPtr temp = this; 00060 return const_ptr_cast<SpinPtr>(temp); 00061 } 00062 00066 virtual void transform(const LorentzMomentum &,const LorentzRotation &); 00067 00068 private: 00069 00073 static NoPIOClassDescription<ScalarSpinInfo> initScalarSpinInfo; 00074 00078 ScalarSpinInfo & operator=(const ScalarSpinInfo &); 00079 00080 }; 00081 00082 } 00083 } 00084 00085 00086 namespace ThePEG { 00087 00094 template <> 00095 struct BaseClassTrait<ThePEG::Helicity::ScalarSpinInfo,1> 00096 : public ClassTraitsType { 00098 typedef ThePEG::Helicity::SpinInfo NthBase; 00099 }; 00100 00105 template <> 00106 struct ClassTraits<ThePEG::Helicity::ScalarSpinInfo> 00107 : public ClassTraitsBase<ThePEG::Helicity::ScalarSpinInfo> { 00111 static string className() { return "ThePEG::Helicity::ScalarSpinInfo"; } 00112 }; 00113 00116 } 00117 00118 #endif /* ThePEG_ScalarSpinInfo_H */