herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
LEPJetAnalysis.h
00001 // -*- C++ -*-
00002 //
00003 // LEPJetAnalysis.h is a part of Herwig++ - A multi-purpose Monte Carlo event generator
00004 // Copyright (C) 2002-2011 The Herwig Collaboration
00005 //
00006 // Herwig++ is licenced under version 2 of the GPL, see COPYING for details.
00007 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
00008 //
00009 #ifndef HERWIG_LEPJetAnalysis_H
00010 #define HERWIG_LEPJetAnalysis_H
00011 //
00012 // This is the declaration of the LEPJetAnalysis class.
00013 //
00014 
00015 #include "ThePEG/Handlers/AnalysisHandler.h"
00016 #include "Herwig++/Utilities/Histogram.h"
00017 
00018 namespace Herwig {
00019 
00020 using namespace ThePEG;
00021 
00029 class LEPJetAnalysis: public AnalysisHandler {
00030 
00031 public:
00032 
00034   LEPJetAnalysis() : _nevent() {}
00035 
00055   virtual void analyze(tEventPtr event, long ieve, int loop, int state);
00057 
00058 public:
00059 
00066   static void Init();
00067 
00068 protected:
00069 
00076   virtual IBPtr clone() const {return new_ptr(*this);}
00077 
00082   virtual IBPtr fullclone() const {return new_ptr(*this);}
00084 
00085 protected:
00086 
00093   virtual void doinitrun();
00094 
00099   virtual void dofinish();
00101 
00102 private:
00103 
00108   static NoPIOClassDescription<LEPJetAnalysis> initLEPJetAnalysis;
00109 
00114   LEPJetAnalysis & operator=(const LEPJetAnalysis &);
00115 
00116 private:
00117 
00125   HistogramPtr _y23;
00126 
00130   HistogramPtr _y34;
00131 
00135   HistogramPtr _y45;
00136 
00140   HistogramPtr _y56;
00142 
00146   vector<double> _yc_frac;
00147 
00155   vector<int> _frac1;
00156 
00160   vector<int> _frac2;
00161 
00165   vector<int> _frac3;
00166 
00170   vector<int> _frac4;
00171 
00175   vector<int> _frac5;
00176 
00180   vector<int> _frac6;
00182 
00186   unsigned int _nevent;
00187 
00191   vector<Statistic> _njet;
00192 
00200   vector<double> _d2dbins;
00201 
00205   vector<double> _d3dbins;
00206 
00210   vector<double> _d4dbins;
00211 
00215   vector<int> _d2dN2;
00216 
00220   vector<int> _d3dN2;
00221 
00225   vector<int> _d3dN3;
00226 
00230   vector<int> _d4dN2;
00231 
00235   vector<int> _d4dN3;
00236 
00240   vector<int> _d4dN4;
00241 
00243 };
00244 
00245 }
00246 
00247 #include "ThePEG/Utilities/ClassTraits.h"
00248 
00249 namespace ThePEG {
00250 
00255 template <>
00256 struct BaseClassTrait<Herwig::LEPJetAnalysis,1> {
00258   typedef AnalysisHandler NthBase;
00259 };
00260 
00263 template <>
00264 struct ClassTraits<Herwig::LEPJetAnalysis>
00265   : public ClassTraitsBase<Herwig::LEPJetAnalysis> {
00267   static string className() { return "Herwig::LEPJetAnalysis"; }
00275   static string library() { return "libfastjet.so HwLEPJetAnalysis.so"; }
00276 };
00277 
00280 }
00281 
00282 #endif /* HERWIG_LEPJetAnalysis_H */