00001 // -*- C++ -*- 00002 // 00003 // NoRemnants.h is a part of ThePEG - Toolkit for HEP Event Generation 00004 // Copyright (C) 1999-2007 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_NoRemnants_H 00010 #define ThePEG_NoRemnants_H 00011 // This is the declaration of the NoRemnants class. 00012 00013 #include "ThePEG/PDF/RemnantHandler.h" 00014 // #include "NoRemnants.fh" 00015 // #include "NoRemnants.xh" 00016 00017 namespace ThePEG { 00018 00029 class NoRemnants: public RemnantHandler { 00030 00031 public: 00032 00040 virtual bool canHandle(tcPDPtr, const cPDVector & partons) const { 00041 return partons.empty(); 00042 } 00043 00049 virtual Lorentz5Momentum generate(PartonBinInstance & pb, const double * r, 00050 Energy2 scale, 00051 const LorentzMomentum & p) const; 00052 00067 virtual Lorentz5Momentum generate(PartonBinInstance & pb, const double * r, 00068 Energy2 scale, Energy2 shat, 00069 const LorentzMomentum & parent) const; 00071 00072 public: 00073 00077 static void Init(); 00078 00079 protected: 00080 00087 virtual IBPtr clone() const; 00088 00093 virtual IBPtr fullclone() const; 00095 00096 private: 00097 00101 static NoPIOClassDescription<NoRemnants> initNoRemnants; 00102 00106 NoRemnants & operator=(const NoRemnants &); 00107 00108 }; 00109 00114 template <> 00115 struct BaseClassTrait<NoRemnants,1>: public ClassTraitsType { 00117 typedef RemnantHandler NthBase; 00118 }; 00119 00122 template <> 00123 struct ClassTraits<NoRemnants>: public ClassTraitsBase<NoRemnants> { 00125 static string className() { return "ThePEG::NoRemnants"; } 00126 }; 00127 00130 } 00131 00132 #endif /* ThePEG_NoRemnants_H */