herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
ZPhotonsAnalysis.h
00001 // -*- C++ -*-
00002 #ifndef HERWIG_ZPhotonsAnalysis_H
00003 #define HERWIG_ZPhotonsAnalysis_H
00004 //
00005 // This is the declaration of the ZPhotonsAnalysis 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 
00021 class ZPhotonsAnalysis: public AnalysisHandler {
00022 
00023 public:
00024 
00028   ZPhotonsAnalysis() : _iferm(11) {}
00029 
00049   virtual void analyze(tEventPtr event, long ieve, int loop, int state);
00050 
00056   virtual void analyze(const tPVector & particles);
00057 
00062   virtual void analyze(tPPtr particle);
00064 
00065 public:
00066 
00073   void persistentOutput(PersistentOStream & os) const;
00074 
00080   void persistentInput(PersistentIStream & is, int version);
00082 
00089   static void Init();
00090 
00091 protected:
00092 
00099   inline virtual IBPtr clone() const {return new_ptr(*this);}
00100 
00105   inline virtual IBPtr fullclone() const {return new_ptr(*this);}
00107 
00108 protected:
00109 
00116   virtual void doinitrun();
00117 
00122   virtual void dofinish();
00124 
00125 private:
00126 
00131   static ClassDescription<ZPhotonsAnalysis> initZPhotonsAnalysis;
00132 
00137   ZPhotonsAnalysis & operator=(const ZPhotonsAnalysis &);
00138 
00139 private:
00140 
00144   int _iferm;
00145 
00149   vector<HistogramPtr> _masstotal;
00150 
00154   vector<HistogramPtr> _etotal;
00155 
00159   vector<HistogramPtr> _mphoton;
00160 
00164   vector<HistogramPtr> _ephoton;
00165 
00169   HistogramPtr _cphoton;
00170 
00174   HistogramPtr _nphoton;
00175 };
00176 
00177 }
00178 
00179 #include "ThePEG/Utilities/ClassTraits.h"
00180 
00181 namespace ThePEG {
00182 
00187 template <>
00188 struct BaseClassTrait<Herwig::ZPhotonsAnalysis,1> {
00190   typedef AnalysisHandler NthBase;
00191 };
00192 
00195 template <>
00196 struct ClassTraits<Herwig::ZPhotonsAnalysis>
00197   : public ClassTraitsBase<Herwig::ZPhotonsAnalysis> {
00199   static string className() { return "Herwig::ZPhotonsAnalysis"; }
00207   static string library() { return "HwDecayAnalysis.so"; }
00208 };
00209 
00212 }
00213 
00214 #endif /* HERWIG_ZPhotonsAnalysis_H */