herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
BFragmentationAnalysisHandler.h
00001 // -*- C++ -*-
00002 //
00003 // BFragmentationAnalysisHandler.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_BFragmentationAnalysisHandler_H
00010 #define HERWIG_BFragmentationAnalysisHandler_H
00011 //
00012 // This is the declaration of the BFragmentationAnalysisHandler class.
00013 //
00014 
00015 #include "ThePEG/Repository/CurrentGenerator.h"
00016 #include "ThePEG/Handlers/AnalysisHandler.h"
00017 #include "Herwig++/Utilities/Histogram.h"
00018 #include "ThePEG/EventRecord/Event.h"
00019 
00020 namespace Herwig {
00021 
00022 using namespace ThePEG;
00023 
00032 class BFragmentationAnalysisHandler: public AnalysisHandler {
00033 
00034 public:
00035 
00039   BFragmentationAnalysisHandler() : _emax() {}
00040 
00060   virtual void analyze(tEventPtr event, long ieve, int loop, int state);
00061 
00066   void analyze_bquarks(ParticleSet, double);
00067 
00073   virtual void analyze(tPPtr particle, double weight);
00074 
00075   using AnalysisHandler::analyze;
00077 
00078 public:
00079 
00086   static void Init();
00087 
00088 protected:
00089 
00096   virtual IBPtr clone() const {return new_ptr(*this);}
00097 
00102   virtual IBPtr fullclone() const {return new_ptr(*this);}
00104 
00105 protected:
00106 
00113   virtual void doinitrun();
00114 
00119   virtual void dofinish();
00121 
00122 private:
00123 
00128   static NoPIOClassDescription<BFragmentationAnalysisHandler> initBFragmentationAnalysisHandler;
00129 
00134   BFragmentationAnalysisHandler & operator=(const BFragmentationAnalysisHandler &);
00135 
00136 private:
00137   
00141   HistogramPtr _fragBxE;
00142 
00146   HistogramPtr _fragBxEa;
00147 
00151   HistogramPtr _fragbquarkxE;
00152 
00156   HistogramPtr _fragbquarkjetmass;
00157 
00161   Energy _emax;
00162 
00163 };
00164 
00165 }
00166 
00167 #include "ThePEG/Utilities/ClassTraits.h"
00168 
00169 namespace ThePEG {
00170 
00175 template <>
00176 struct BaseClassTrait<Herwig::BFragmentationAnalysisHandler,1> {
00178   typedef AnalysisHandler NthBase;
00179 };
00180 
00183 template <>
00184 struct ClassTraits<Herwig::BFragmentationAnalysisHandler>
00185   : public ClassTraitsBase<Herwig::BFragmentationAnalysisHandler> {
00187   static string className() { return "Herwig::BFragmentationAnalysisHandler"; }
00191   static string library() { return "HwAnalysis.so HwLEPAnalysis.so"; }
00192 };
00193 
00196 }
00197 
00198 #endif /* HERWIG_BFragmentationAnalysisHandler_H */