00001 // -*- C++ -*- 00002 // 00003 // ZGenerator.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_ZGenerator_H 00010 #define ThePEG_ZGenerator_H 00011 // This is the declaration of the ZGenerator class. 00012 00013 #include "ThePEG/Config/ThePEG.h" 00014 #include "ThePEG/Handlers/HandlerBase.h" 00015 00016 namespace ThePEG { 00017 00032 class ZGenerator: public HandlerBase { 00033 00034 public: 00035 00046 virtual double generate(cPDPtr q1, cPDPtr q2, Energy2 mT2 ) const =0; 00048 00052 static void Init(); 00053 00054 00055 private: 00056 00060 static AbstractClassDescription<ZGenerator> initZGenerator; 00061 00062 }; 00063 00064 00071 template <> 00072 struct BaseClassTrait<ZGenerator,1>: public ClassTraitsType { 00074 typedef HandlerBase NthBase; 00075 }; 00076 00081 template <> 00082 struct ClassTraits<ZGenerator>: public ClassTraitsBase<ZGenerator> { 00084 static string className() { return "ThePEG::ZGenerator"; } 00085 }; 00086 00089 } 00090 00091 #endif /* ThePEG_ZGenerator_H */