herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
BranchingRatioAnalysis.h
00001 // -*- C++ -*-
00002 #ifndef THEPEG_BranchingRatioAnalysis_H
00003 #define THEPEG_BranchingRatioAnalysis_H
00004 //
00005 // This is the declaration of the BranchingRatioAnalysis class.
00006 //
00007 
00008 #include "ThePEG/Handlers/AnalysisHandler.h"
00009 #include "ThePEG/PDT/ParticleData.h"
00010 #include "ThePEG/PDT/DecayMode.h"
00011 
00012 namespace Herwig {
00013 using namespace ThePEG;
00014 
00021 class BranchingRatioAnalysis: public AnalysisHandler {
00022 
00023 public:
00024 
00028   inline BranchingRatioAnalysis()  : _total(101,0.) {};
00029 
00030 public:
00031 
00051   virtual void analyze(tEventPtr event, long ieve, int loop, int state);
00052 
00058   virtual void analyze(const tPVector & particles);
00059 
00064   virtual void analyze(tPPtr particle);
00066 
00067 public:
00068 
00075   void persistentOutput(PersistentOStream & os) const;
00076 
00082   void persistentInput(PersistentIStream & is, int version);
00084 
00091   static void Init();
00092 
00093 protected:
00094 
00101   inline virtual IBPtr clone() const {return new_ptr(*this);}
00102 
00107   inline virtual IBPtr fullclone() const {return new_ptr(*this);}
00109 
00110 
00111 protected:
00112 
00119   virtual void dofinish();
00121 
00122 private:
00123 
00128   static ClassDescription<BranchingRatioAnalysis> initBranchingRatioAnalysis;
00129 
00134   BranchingRatioAnalysis & operator=(const BranchingRatioAnalysis &);
00135 
00136 private:
00137 
00141   PDPtr _particle;
00142 
00146   map<tDMPtr,vector<double> > _points;
00147 
00151   vector<double> _total;
00152 
00153 };
00154 
00155 }
00156 
00157 #include "ThePEG/Utilities/ClassTraits.h"
00158 
00159 namespace ThePEG {
00160 
00165 template <>
00166 struct BaseClassTrait<Herwig::BranchingRatioAnalysis,1> {
00168   typedef AnalysisHandler NthBase;
00169 };
00170 
00173 template <>
00174 struct ClassTraits<Herwig::BranchingRatioAnalysis>
00175   : public ClassTraitsBase<Herwig::BranchingRatioAnalysis> {
00177   static string className() { return "Herwig::BranchingRatioAnalysis"; }
00185   static string library() { return "HwDecayAnalysis.so"; }
00186 };
00187 
00190 }
00191 
00192 #endif /* THEPEG_BranchingRatioAnalysis_H */