ThePEG  1.8.0
Tau2HadronsDecayer.h
1 // -*- C++ -*-
2 //
3 // Tau2HadronsDecayer.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_Tau2HadronsDecayer_H
10 #define THEPEG_Tau2HadronsDecayer_H
11 // This is the declaration of the Tau2HadronsDecayer class.
12 
13 #include "ThePEG/PDT/FlatDecayer.h"
14 
15 namespace ThePEG {
16 
26 
27 public:
28 
34  virtual ~Tau2HadronsDecayer();
36 
37 public:
38 
48  virtual bool accept(const DecayMode & dm) const;
49 
61  virtual double reweight(const DecayMode & dm, const Particle & parent,
62  const ParticleVector & children) const;
64 
65 public:
66 
67 
74  void persistentOutput(PersistentOStream & os) const;
75 
81  void persistentInput(PersistentIStream & is, int version);
83 
87  static void Init();
88 
89 protected:
90 
91 
92 protected:
93 
100  virtual IBPtr clone() const;
101 
106  virtual IBPtr fullclone() const;
108 
109 private:
110 
115 
120 
121 };
122 
123 }
124 
125 
126 namespace ThePEG {
127 
132 template <>
133 struct BaseClassTrait<Tau2HadronsDecayer,1>: public ClassTraitsType {
135  typedef FlatDecayer NthBase;
136 };
137 
141 template <>
142 struct ClassTraits<Tau2HadronsDecayer>
143  : public ClassTraitsBase<Tau2HadronsDecayer> {
145  static string className() { return "ThePEG::Tau2HadronsDecayer"; }
149  static string library() { return "Tau2HadronsDecayer.so"; }
150 };
151 
154 }
155 
156 #endif /* THEPEG_Tau2HadronsDecayer_H */