ThePEG  1.8.0
OmegaPhi3PiDecayer.h
1 // -*- C++ -*-
2 //
3 // OmegaPhi3PiDecayer.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_OmegaPhi3PiDecayer_H
10 #define THEPEG_OmegaPhi3PiDecayer_H
11 // This is the declaration of the OmegaPhi3PiDecayer class.
12 
13 #include "ThePEG/PDT/FlatDecayer.h"
14 
15 namespace ThePEG {
16 
30 
31 public:
32 
38  OmegaPhi3PiDecayer() : margin(150.0) {}
40 
41 public:
42 
52  virtual bool accept(const DecayMode & dm) const;
53 
65  virtual double reweight(const DecayMode & dm, const Particle & parent,
66  const ParticleVector & children) const;
68 
69 public:
70 
71 
78  void persistentOutput(PersistentOStream & os) const;
79 
85  void persistentInput(PersistentIStream & is, int version);
87 
91  static void Init();
92 
93 protected:
94 
95 
96 protected:
97 
104  virtual IBPtr clone() const;
105 
110  virtual IBPtr fullclone() const;
112 
113 private:
114 
119  double margin;
120 
121 private:
122 
127 
132 
133 };
134 
135 }
136 
137 
138 namespace ThePEG {
139 
144 template <>
145 struct BaseClassTrait<OmegaPhi3PiDecayer,1>: public ClassTraitsType {
147  typedef FlatDecayer NthBase;
148 };
149 
153 template <>
154 struct ClassTraits<OmegaPhi3PiDecayer>
155  : public ClassTraitsBase<OmegaPhi3PiDecayer> {
157  static string className() { return "ThePEG::OmegaPhi3PiDecayer"; }
161  static string library() { return "OmegaPhi3PiDecayer.so"; }
162 };
163 
166 }
167 
168 #endif /* THEPEG_OmegaPhi3PiDecayer_H */