herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
CLEOCharmAnalysis.h
00001 // -*- C++ -*-
00002 //
00003 // CLEOCharmAnalysis.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_CLEOCharmAnalysis_H
00010 #define HERWIG_CLEOCharmAnalysis_H
00011 //
00012 // This is the declaration of the CLEOCharmAnalysis 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 CLEOCharmAnalysis: public AnalysisHandler {
00030 
00031 public:
00032 
00036   CLEOCharmAnalysis() : _s() {}
00037 
00057   virtual void analyze(tEventPtr event, long ieve, int loop, int state);
00058 
00064   virtual void analyze(tPPtr particle, double weight);
00065 
00066   using AnalysisHandler::analyze;
00068 
00069 public:
00070 
00077   static void Init();
00078 
00079 protected:
00080 
00087   virtual IBPtr clone() const {return new_ptr(*this);}
00088 
00093   virtual IBPtr fullclone() const {return new_ptr(*this);}
00095 
00096 protected:
00097 
00104   virtual void doinitrun();
00105 
00110   virtual void dofinish();
00112 
00113 private:
00114 
00119   static NoPIOClassDescription<CLEOCharmAnalysis> initCLEOCharmAnalysis;
00120 
00125   CLEOCharmAnalysis & operator=(const CLEOCharmAnalysis &);
00126 
00127 private:
00128 
00136   HistogramPtr _histDplus;
00137 
00141   HistogramPtr _histD0;
00142 
00146   HistogramPtr _histDstarplus;
00147 
00151   HistogramPtr _histDstar0;
00153 
00157   Energy2 _s;
00158 };
00159 
00160 }
00161 
00162 #include "ThePEG/Utilities/ClassTraits.h"
00163 
00164 namespace ThePEG {
00165 
00170 template <>
00171 struct BaseClassTrait<Herwig::CLEOCharmAnalysis,1> {
00173   typedef AnalysisHandler NthBase;
00174 };
00175 
00178 template <>
00179 struct ClassTraits<Herwig::CLEOCharmAnalysis>
00180   : public ClassTraitsBase<Herwig::CLEOCharmAnalysis> {
00182   static string className() { return "Herwig::CLEOCharmAnalysis"; }
00190   static string library() { return "HwAnalysis.so HwLEPAnalysis.so"; }
00191 };
00192 
00195 }
00196 
00197 #endif /* HERWIG_CLEOCharmAnalysis_H */