ThePEG  1.8.0
DalitzDecayer.h
1 // -*- C++ -*-
2 //
3 // DalitzDecayer.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_DalitzDecayer_H
10 #define THEPEG_DalitzDecayer_H
11 // This is the declaration of the DalitzDecayer class.
12 
13 #include "ThePEG/PDT/Decayer.h"
14 // #include "DalitzDecayer.fh"
15 // #include "DalitzDecayer.xh"
16 
17 namespace ThePEG {
18 
26 class DalitzDecayer: public Decayer {
27 
28 public:
29 
35  virtual ~DalitzDecayer();
37 
38 public:
39 
49  virtual bool accept(const DecayMode & dm) const;
50 
57  virtual ParticleVector decay(const DecayMode & dm, const Particle & p) const;
59 
60 public:
61 
68  void persistentOutput(PersistentOStream & os) const;
69 
75  void persistentInput(PersistentIStream & is, int version);
77 
81  static void Init();
82 
83 protected:
84 
91  virtual IBPtr clone() const;
92 
97  virtual IBPtr fullclone() const;
99 
100 protected:
101 
109  virtual void doinit();
110 
120  virtual void rebind(const TranslationMap & trans)
121  ;
122 
128  virtual IVector getReferences();
130 
131 private:
132 
137 
138 private:
139 
144 
149 
150 };
151 
152 }
153 
154 
155 namespace ThePEG {
156 
161 template <>
162 struct BaseClassTrait<DalitzDecayer,1>: public ClassTraitsType {
164  typedef Decayer NthBase;
165 };
166 
170 template <>
171 struct ClassTraits<DalitzDecayer>
172  : public ClassTraitsBase<DalitzDecayer> {
174  static string className() { return "ThePEG::DalitzDecayer"; }
178  static string library() { return "DalitzDecayer.so"; }
179 
180 };
181 
184 }
185 
186 #endif /* THEPEG_DalitzDecayer_H */