ThePEG  1.8.0
RivetAnalysis.h
1 // -*- C++ -*-
2 #ifndef THEPEG_RivetAnalysis_H
3 #define THEPEG_RivetAnalysis_H
4 //
5 // This is the declaration of the RivetAnalysis class.
6 //
7 
8 #include "ThePEG/Handlers/AnalysisHandler.h"
9 #include "Rivet/AnalysisHandler.hh"
10 
11 namespace ThePEG {
12 
20 
21 public:
22 
26  RivetAnalysis();
27 
28 public:
29 
49  virtual void analyze(ThePEG::tEventPtr event, long ieve, int loop, int state);
51 
52 public:
53 
61 
67  void persistentInput(ThePEG::PersistentIStream & is, int version);
69 
76  static void Init();
77 
78 protected:
79 
86  virtual ThePEG::IBPtr clone() const;
87 
92  virtual ThePEG::IBPtr fullclone() const;
94 
95 protected:
96 
102  virtual void doinit();
103 
108  virtual void doinitrun();
109 
114  virtual void dofinish();
116 
117 private:
118 
124 
130 
131 private:
132 
136  vector<string> _analyses;
137 
141  string filename;
142 
146  bool debug;
147 
151  Rivet::AnalysisHandler * _rivet;
152 
156  unsigned long _nevent;
157 };
158 
159 }
160 
161 #include "ThePEG/Utilities/ClassTraits.h"
162 
163 namespace ThePEG {
164 
169 template <>
170 struct BaseClassTrait<RivetAnalysis,1> {
172  typedef AnalysisHandler NthBase;
173 };
174 
177 template <>
178 struct ClassTraits<RivetAnalysis>
179  : public ClassTraitsBase<RivetAnalysis> {
181  static string className() { return "ThePEG::RivetAnalysis"; }
189  static string library() { return "RivetAnalysis.so"; }
190 };
191 
194 }
195 
196 #endif /* THEPEG_RivetAnalysis_H */