00001 // -*- C++ -*- 00002 // 00003 // Tau2HadronsDecayer.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_Tau2HadronsDecayer_H 00010 #define THEPEG_Tau2HadronsDecayer_H 00011 // This is the declaration of the Tau2HadronsDecayer class. 00012 00013 #include "ThePEG/PDT/FlatDecayer.h" 00014 00015 namespace ThePEG { 00016 00025 class Tau2HadronsDecayer: public FlatDecayer { 00026 00027 public: 00028 00034 virtual ~Tau2HadronsDecayer(); 00036 00037 public: 00038 00048 virtual bool accept(const DecayMode & dm) const; 00049 00061 virtual double reweight(const DecayMode & dm, const Particle & parent, 00062 const ParticleVector & children) const; 00064 00065 public: 00066 00067 00074 void persistentOutput(PersistentOStream & os) const; 00075 00081 void persistentInput(PersistentIStream & is, int version); 00083 00087 static void Init(); 00088 00089 protected: 00090 00091 00092 protected: 00093 00100 virtual IBPtr clone() const; 00101 00106 virtual IBPtr fullclone() const; 00108 00109 private: 00110 00114 static ClassDescription<Tau2HadronsDecayer> initTau2HadronsDecayer; 00115 00119 Tau2HadronsDecayer & operator=(const Tau2HadronsDecayer &); 00120 00121 }; 00122 00123 } 00124 00125 00126 namespace ThePEG { 00127 00132 template <> 00133 struct BaseClassTrait<Tau2HadronsDecayer,1>: public ClassTraitsType { 00135 typedef FlatDecayer NthBase; 00136 }; 00137 00141 template <> 00142 struct ClassTraits<Tau2HadronsDecayer> 00143 : public ClassTraitsBase<Tau2HadronsDecayer> { 00145 static string className() { return "ThePEG::Tau2HadronsDecayer"; } 00149 static string library() { return "Tau2HadronsDecayer.so"; } 00150 }; 00151 00154 } 00155 00156 #endif /* THEPEG_Tau2HadronsDecayer_H */