ThePEG  1.8.0
WeakToHadronsDecayer.h
1 // -*- C++ -*-
2 //
3 // WeakToHadronsDecayer.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2011 Leif Lonnblad
5 //
6 // ThePEG is licenced under version 2 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef THEPEG_WeakToHadronsDecayer_H
10 #define THEPEG_WeakToHadronsDecayer_H
11 // This is the declaration of the WeakToHadronsDecayer class.
12 
13 #include "ThePEG/PDT/QuarksToHadronsDecayer.h"
14 
15 namespace ThePEG {
16 
32 
33 public:
34 
45  virtual bool accept(const DecayMode & dm) const;
46 
52  virtual double reweight(const Particle & parent,
53  const PVector & children) const;
54 
59  virtual PVector getHadrons(int Nh, tcPDVector quarks) const;
61 
62 public:
63 
64 
71  void persistentOutput(PersistentOStream & os) const;
72 
78  void persistentInput(PersistentIStream & is, int version);
80 
84  static void Init();
85 
86 protected:
87 
94  virtual IBPtr clone() const;
95 
100  virtual IBPtr fullclone() const;
102 
103 private:
104 
109 
114 
115 };
116 
117 }
118 
119 
120 namespace ThePEG {
121 
126 template <>
127 struct BaseClassTrait<WeakToHadronsDecayer,1>: public ClassTraitsType {
129  typedef QuarksToHadronsDecayer NthBase;
130 };
131 
135 template <>
136 struct ClassTraits<WeakToHadronsDecayer>
137  : public ClassTraitsBase<WeakToHadronsDecayer> {
139  static string className() { return "ThePEG::WeakToHadronsDecayer"; }
143  static string library() { return "WeakToHadronsDecayer.so"; }
144 };
145 
148 }
149 
150 #endif /* THEPEG_WeakToHadronsDecayer_H */