00001 // -*- C++ -*- 00002 // 00003 // OmegaPhi3PiDecayer.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_OmegaPhi3PiDecayer_H 00010 #define THEPEG_OmegaPhi3PiDecayer_H 00011 // This is the declaration of the OmegaPhi3PiDecayer class. 00012 00013 #include "ThePEG/PDT/FlatDecayer.h" 00014 00015 namespace ThePEG { 00016 00029 class OmegaPhi3PiDecayer: public FlatDecayer { 00030 00031 public: 00032 00038 OmegaPhi3PiDecayer() : margin(150.0) {} 00040 00041 public: 00042 00052 virtual bool accept(const DecayMode & dm) const; 00053 00065 virtual double reweight(const DecayMode & dm, const Particle & parent, 00066 const ParticleVector & children) const; 00068 00069 public: 00070 00071 00078 void persistentOutput(PersistentOStream & os) const; 00079 00085 void persistentInput(PersistentIStream & is, int version); 00087 00091 static void Init(); 00092 00093 protected: 00094 00095 00096 protected: 00097 00104 virtual IBPtr clone() const; 00105 00110 virtual IBPtr fullclone() const; 00112 00113 private: 00114 00119 double margin; 00120 00121 private: 00122 00126 static ClassDescription<OmegaPhi3PiDecayer> initOmegaPhi3PiDecayer; 00127 00131 OmegaPhi3PiDecayer & operator=(const OmegaPhi3PiDecayer &); 00132 00133 }; 00134 00135 } 00136 00137 00138 namespace ThePEG { 00139 00144 template <> 00145 struct BaseClassTrait<OmegaPhi3PiDecayer,1>: public ClassTraitsType { 00147 typedef FlatDecayer NthBase; 00148 }; 00149 00153 template <> 00154 struct ClassTraits<OmegaPhi3PiDecayer> 00155 : public ClassTraitsBase<OmegaPhi3PiDecayer> { 00157 static string className() { return "ThePEG::OmegaPhi3PiDecayer"; } 00161 static string library() { return "OmegaPhi3PiDecayer.so"; } 00162 }; 00163 00166 } 00167 00168 #endif /* THEPEG_OmegaPhi3PiDecayer_H */