00001 // -*- C++ -*- 00002 // 00003 // WeakToHadronsDecayer.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_WeakToHadronsDecayer_H 00010 #define THEPEG_WeakToHadronsDecayer_H 00011 // This is the declaration of the WeakToHadronsDecayer class. 00012 00013 #include "ThePEG/PDT/QuarksToHadronsDecayer.h" 00014 00015 namespace ThePEG { 00016 00031 class WeakToHadronsDecayer: public QuarksToHadronsDecayer { 00032 00033 public: 00034 00045 virtual bool accept(const DecayMode & dm) const; 00046 00052 virtual double reweight(const Particle & parent, 00053 const PVector & children) const; 00054 00059 virtual PVector getHadrons(int Nh, tcPDVector quarks) const; 00061 00062 public: 00063 00064 00071 void persistentOutput(PersistentOStream & os) const; 00072 00078 void persistentInput(PersistentIStream & is, int version); 00080 00084 static void Init(); 00085 00086 protected: 00087 00094 virtual IBPtr clone() const; 00095 00100 virtual IBPtr fullclone() const; 00102 00103 private: 00104 00108 static ClassDescription<WeakToHadronsDecayer> initWeakToHadronsDecayer; 00109 00113 WeakToHadronsDecayer & operator=(const WeakToHadronsDecayer &); 00114 00115 }; 00116 00117 } 00118 00119 00120 namespace ThePEG { 00121 00126 template <> 00127 struct BaseClassTrait<WeakToHadronsDecayer,1>: public ClassTraitsType { 00129 typedef QuarksToHadronsDecayer NthBase; 00130 }; 00131 00135 template <> 00136 struct ClassTraits<WeakToHadronsDecayer> 00137 : public ClassTraitsBase<WeakToHadronsDecayer> { 00139 static string className() { return "ThePEG::WeakToHadronsDecayer"; } 00143 static string library() { return "WeakToHadronsDecayer.so"; } 00144 }; 00145 00148 } 00149 00150 #endif /* THEPEG_WeakToHadronsDecayer_H */