00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef ThePEG_FlatDecayer_H
00010 #define ThePEG_FlatDecayer_H
00011
00012
00013 #include "ThePEG/PDT/Decayer.h"
00014
00015 namespace ThePEG {
00016
00033 class FlatDecayer: public Decayer {
00034
00035 public:
00036
00046 virtual bool accept(const DecayMode & dm) const;
00047
00054 virtual ParticleVector decay(const DecayMode & dm, const Particle & p) const;
00055
00067 virtual double reweight(const DecayMode &, const Particle & ,
00068 const ParticleVector & ) const {
00069 return 1.0;
00070 }
00072
00073 public:
00074
00078 static void Init();
00079
00080 protected:
00081
00088 virtual IBPtr clone() const;
00089
00094 virtual IBPtr fullclone() const;
00096
00097 private:
00098
00102 static NoPIOClassDescription<FlatDecayer> initFlatDecayer;
00103
00107 FlatDecayer & operator=(const FlatDecayer &);
00108
00109 };
00110
00111 }
00112
00113
00114 namespace ThePEG {
00115
00120 template <>
00121 struct BaseClassTrait<FlatDecayer,1>: public ClassTraitsType {
00123 typedef Decayer NthBase;
00124 };
00125
00128 template <>
00129 struct ClassTraits<FlatDecayer>: public ClassTraitsBase<FlatDecayer> {
00131 static string className() { return "ThePEG::FlatDecayer"; }
00132 };
00133
00136 }
00137
00138 #endif