00001 // -*- C++ -*- 00002 // 00003 // ColourPairDecayer.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_ColourPairDecayer_H 00010 #define THEPEG_ColourPairDecayer_H 00011 // This is the declaration of the ColourPairDecayer class. 00012 00013 #include "ThePEG/PDT/FlatDecayer.h" 00014 00015 namespace ThePEG { 00016 00026 class ColourPairDecayer: public FlatDecayer { 00027 00028 public: 00029 00035 ColourPairDecayer() : doShower(true) {} 00037 00038 public: 00039 00049 virtual bool accept(const DecayMode & dm) const; 00050 00056 virtual ParticleVector getChildren(const DecayMode & dm, 00057 const Particle & parent) const; 00059 00064 bool shower() const { return doShower; } 00065 00066 public: 00067 00074 void persistentOutput(PersistentOStream & os) const; 00075 00081 void persistentInput(PersistentIStream & is, int version); 00083 00087 static void Init(); 00088 00089 protected: 00090 00097 virtual IBPtr clone() const; 00098 00103 virtual IBPtr fullclone() const; 00105 00106 private: 00107 00111 bool doShower; 00112 00113 private: 00114 00118 static ClassDescription<ColourPairDecayer> initColourPairDecayer; 00119 00123 ColourPairDecayer & operator=(const ColourPairDecayer &); 00124 00125 }; 00126 00127 } 00128 00129 00130 namespace ThePEG { 00131 00136 template <> 00137 struct BaseClassTrait<ColourPairDecayer,1>: public ClassTraitsType { 00139 typedef FlatDecayer NthBase; 00140 }; 00141 00145 template <> 00146 struct ClassTraits<ColourPairDecayer> 00147 : public ClassTraitsBase<ColourPairDecayer> { 00149 static string className() { return "ThePEG::ColourPairDecayer"; } 00153 static string library() { return "ColourPairDecayer.so"; } 00154 00155 }; 00156 00159 } 00160 00161 #endif /* THEPEG_ColourPairDecayer_H */