ThePEG  1.8.0
EventManipulator.h
1 // -*- C++ -*-
2 //
3 // EventManipulator.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_EventManipulator_H
10 #define ThePEG_EventManipulator_H
11 // This is the declaration of the EventManipulator class.
12 
13 #include "ThePEG/Interface/Interfaced.h"
14 #include "ThePEG/Handlers/EventHandler.fh"
15 #include <stdexcept>
16 
17 namespace ThePEG {
18 
42 
43 public:
44 
53  virtual int manipulate(tEHPtr eh, tEventPtr event) = 0;
54 
55 public:
56 
60  static void Init();
61 
62 protected:
63 
64 private:
65 
70 
75 
76 };
77 
84 template <>
87  typedef Interfaced NthBase;
88 };
89 
94 template <>
95 struct ClassTraits<EventManipulator>:
96  public ClassTraitsBase<EventManipulator> {
98  static string className() { return "ThePEG::EventManipulator"; }
99 };
100 
103 }
104 
105 #endif /* ThePEG_EventManipulator_H */