herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
BeamCorrelationAnalysis.h
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 */