00001 // -*- C++ -*- 00002 // 00003 // PtGenerator.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_PtGenerator_H 00010 #define ThePEG_PtGenerator_H 00011 // This is the declaration of the PtGenerator class. 00012 00013 #include "ThePEG/Config/ThePEG.h" 00014 #include "ThePEG/Handlers/HandlerBase.h" 00015 00016 namespace ThePEG { 00017 00029 class PtGenerator: public HandlerBase { 00030 00031 public: 00032 00039 virtual TransverseMomentum generate() const =0; 00041 00042 public: 00043 00047 static void Init(); 00048 00049 private: 00050 00054 static AbstractClassDescription<PtGenerator> initPtGenerator; 00055 00059 PtGenerator & operator=(const PtGenerator &); 00060 00061 }; 00062 00063 00070 template <> 00071 struct BaseClassTrait<PtGenerator,1>: public ClassTraitsType { 00073 typedef HandlerBase NthBase; 00074 }; 00075 00080 template <> 00081 struct ClassTraits<PtGenerator>: public ClassTraitsBase<PtGenerator> { 00083 static string className() { return "ThePEG::PtGenerator"; } 00084 }; 00085 00086 00089 } 00090 00091 #endif /* ThePEG_PtGenerator_H */