Herwig++
2.7.0
|
00001 // -*- C++ -*- 00002 #ifndef HERWIG_BeamCorrelationAnalysis_H 00003 #define HERWIG_BeamCorrelationAnalysis_H 00004 // 00005 // This is the declaration of the BeamCorrelationAnalysis class. 00006 // 00007 00008 #include "ThePEG/Handlers/AnalysisHandler.h" 00009 #include "Herwig++/Utilities/Histogram.h" 00010 00011 namespace Herwig { 00012 00013 using namespace ThePEG; 00014 00023 class BeamCorrelationAnalysis: public AnalysisHandler { 00024 00025 public: 00026 00046 virtual void analyze(tEventPtr event, long ieve, int loop, int state); 00048 00049 public: 00050 00057 static void Init(); 00058 00059 protected: 00060 00067 inline virtual IBPtr clone() const {return new_ptr(*this);} 00068 00073 inline virtual IBPtr fullclone() const {return new_ptr(*this);} 00075 00076 00077 protected: 00078 00085 virtual void dofinish(); 00087 00088 private: 00089 00094 static NoPIOClassDescription<BeamCorrelationAnalysis> initBeamCorrelationAnalysis; 00095 00100 BeamCorrelationAnalysis & operator=(const BeamCorrelationAnalysis &); 00101 00102 private: 00103 00107 vector<int> _outgoing; 00108 00112 vector<int> _incoming; 00113 00117 vector<HistogramPtr> _angle; 00118 00119 }; 00120 00121 } 00122 00123 #include "ThePEG/Utilities/ClassTraits.h" 00124 00125 namespace ThePEG { 00126 00131 template <> 00132 struct BaseClassTrait<Herwig::BeamCorrelationAnalysis,1> { 00134 typedef AnalysisHandler NthBase; 00135 }; 00136 00139 template <> 00140 struct ClassTraits<Herwig::BeamCorrelationAnalysis> 00141 : public ClassTraitsBase<Herwig::BeamCorrelationAnalysis> { 00143 static string className() { return "Herwig::BeamCorrelationAnalysis"; } 00151 static string library() { return "HwDecayAnalysis.so"; } 00152 }; 00153 00156 } 00157 00158 #endif /* HERWIG_BeamCorrelationAnalysis_H */