herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
VPPGammaAnalysis.h
00001 // -*- C++ -*-
00002 #ifndef HERWIG_VPPGammaAnalysis_H
00003 #define HERWIG_VPPGammaAnalysis_H
00004 //
00005 // This is the declaration of the VPPGammaAnalysis class.
00006 //
00007 
00008 #include "ThePEG/Handlers/AnalysisHandler.h"
00009 #include "Herwig++/Utilities/Histogram.h"
00010 #include "ThePEG/PDT/EnumParticles.h"
00011 
00012 namespace Herwig {
00013 
00014 using namespace ThePEG;
00015 
00022 class VPPGammaAnalysis: public AnalysisHandler {
00023 
00024 public:
00025 
00029   VPPGammaAnalysis();
00030 
00050   virtual void analyze(tEventPtr event, long ieve, int loop, int state);
00051 
00057   virtual void analyze(const tPVector & particles);
00058 
00063   virtual void analyze(tPPtr particle);
00065 
00066 public:
00067 
00074   static void Init();
00075 
00076 protected:
00077 
00084   inline virtual IBPtr clone() const {return new_ptr(*this);}
00085 
00090   inline virtual IBPtr fullclone() const {return new_ptr(*this);}
00092 
00093 protected:
00094 
00101   virtual void doinitrun();
00102 
00107   virtual void dofinish();
00109 
00110 private:
00111 
00116   static NoPIOClassDescription<VPPGammaAnalysis> initVPPGammaAnalysis;
00117 
00122   VPPGammaAnalysis & operator=(const VPPGammaAnalysis &);
00123 
00124 private:
00125 
00129   vector<long> _id;
00130 
00138   vector<long> _outgoing1;
00139 
00143   vector<long> _outgoing2;
00145 
00149   vector<HistogramPtr> _masstotal;
00150 
00157   vector<HistogramPtr> _etotal;
00158 
00162   vector<HistogramPtr> _eall;
00163 
00167   vector<HistogramPtr> _esingle;
00169 
00173   vector<HistogramPtr> _nphoton;
00174 
00175 };
00176 
00177 }
00178 
00179 #include "ThePEG/Utilities/ClassTraits.h"
00180 
00181 namespace ThePEG {
00182 
00187 template <>
00188 struct BaseClassTrait<Herwig::VPPGammaAnalysis,1> {
00190   typedef AnalysisHandler NthBase;
00191 };
00192 
00195 template <>
00196 struct ClassTraits<Herwig::VPPGammaAnalysis>
00197   : public ClassTraitsBase<Herwig::VPPGammaAnalysis> {
00199   static string className() { return "Herwig::VPPGammaAnalysis"; }
00207   static string library() { return "HwDecayAnalysis.so"; }
00208 };
00209 
00212 }
00213 
00214 #endif /* HERWIG_VPPGammaAnalysis_H */