Herwig++
2.7.0
|
00001 // -*- C++ -*- 00002 #ifndef HERWIG_EtaDecayAnalysis_H 00003 #define HERWIG_EtaDecayAnalysis_H 00004 // 00005 // This is the declaration of the EtaDecayAnalysis class. 00006 // 00007 00008 #include "ThePEG/Repository/CurrentGenerator.h" 00009 #include "ThePEG/Handlers/AnalysisHandler.h" 00010 #include "Herwig++/Utilities/Histogram.h" 00011 00012 namespace Herwig { 00013 00014 using namespace ThePEG; 00015 00023 class EtaDecayAnalysis: public AnalysisHandler { 00024 00025 public: 00026 00046 virtual void analyze(tEventPtr event, long ieve, int loop, int state); 00047 00053 virtual void analyze(const tPVector & particles); 00054 00059 virtual void analyze(tPPtr particle); 00061 00062 public: 00063 00070 static void Init(); 00071 00072 protected: 00073 00080 inline virtual IBPtr clone() const {return new_ptr(*this);} 00081 00086 inline virtual IBPtr fullclone() const {return new_ptr(*this);} 00088 00089 protected: 00090 00097 virtual void doinitrun(); 00098 00103 virtual void dofinish(); 00105 00106 private: 00107 00112 static NoPIOClassDescription<EtaDecayAnalysis> initEtaDecayAnalysis; 00113 00118 EtaDecayAnalysis & operator=(const EtaDecayAnalysis &); 00119 00120 private: 00121 00129 vector<HistogramPtr> _mgammagamma; 00130 00134 vector<HistogramPtr> _mpi0gamma; 00136 00144 vector<HistogramPtr> _mpipgamma; 00145 00149 vector<HistogramPtr> _mpimgamma; 00150 00154 vector<HistogramPtr> _mpippim; 00155 00159 vector<HistogramPtr> _photonenergy; 00161 00169 vector<HistogramPtr> _dpippim; 00170 00174 vector<HistogramPtr> _dpi0pi0; 00175 00179 vector<HistogramPtr> _dpi0pip; 00180 00184 vector<HistogramPtr> _dpi0pim; 00185 00189 vector<HistogramPtr> _dpipeta; 00190 00194 vector<HistogramPtr> _dpimeta; 00195 00199 vector<HistogramPtr> _dpi0eta; 00200 00202 }; 00203 00204 } 00205 00206 #include "ThePEG/Utilities/ClassTraits.h" 00207 00208 namespace ThePEG { 00209 00214 template <> 00215 struct BaseClassTrait<Herwig::EtaDecayAnalysis,1> { 00217 typedef AnalysisHandler NthBase; 00218 }; 00219 00222 template <> 00223 struct ClassTraits<Herwig::EtaDecayAnalysis> 00224 : public ClassTraitsBase<Herwig::EtaDecayAnalysis> { 00226 static string className() { return "Herwig::EtaDecayAnalysis"; } 00234 static string library() { return "HwDecayAnalysis.so"; } 00235 }; 00236 00239 } 00240 00241 #endif /* HERWIG_EtaDecayAnalysis_H */