ThePEG  1.8.0
MassGenerator.h
1 // -*- C++ -*-
2 //
3 // MassGenerator.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_MassGenerator_H
10 #define ThePEG_MassGenerator_H
11 // This is the declaration of the MassGenerator class.
12 
13 #include "ThePEG/Config/ThePEG.h"
14 #include "ThePEG/Interface/Interfaced.h"
15 #include "MassGenerator.fh"
16 
17 namespace ThePEG {
18 
27 class MassGenerator: public Interfaced {
28 
29 public:
30 
37  virtual bool accept(const ParticleData &) const = 0;
38 
42  virtual Energy mass(const ParticleData &) const = 0;
44 
45 public:
46 
50  static void Init();
51 
52 private:
53 
59 
64 
65 };
66 
71 template <>
74  typedef Interfaced NthBase;
75 };
76 
79 template <>
80 struct ClassTraits<MassGenerator>: public ClassTraitsBase<MassGenerator> {
82  static string className() { return "ThePEG::MassGenerator"; }
83 };
84 
87 }
88 
89 #endif /* ThePEG_MassGenerator_H */