Herwig++
2.7.0
|
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 */