Herwig++
2.7.0
|
00001 // -*- C++ -*- 00002 #ifndef HERWIG_DDalitzAnalysis_H 00003 #define HERWIG_DDalitzAnalysis_H 00004 // 00005 // This is the declaration of the DDalitzAnalysis class. 00006 // 00007 00008 #include "ThePEG/Handlers/AnalysisHandler.h" 00009 #include "Herwig++/Utilities/Histogram.h" 00010 #include "ThePEG/EventRecord/Particle.h" 00011 00012 namespace Herwig { 00013 00014 using namespace ThePEG; 00015 00022 class DDalitzAnalysis: public AnalysisHandler { 00023 00024 public: 00025 00045 virtual void analyze(tEventPtr event, long ieve, int loop, int state); 00046 00053 virtual LorentzRotation transform(tEventPtr event) const; 00054 00060 virtual void analyze(const tPVector & particles); 00061 00066 virtual void analyze(tPPtr particle); 00068 00069 public: 00070 00077 void persistentOutput(PersistentOStream & os) const; 00078 00084 void persistentInput(PersistentIStream & is, int version); 00086 00093 static void Init(); 00094 00095 protected: 00096 00100 void findChildren(tPPtr,ParticleVector &); 00101 00102 protected: 00103 00110 inline virtual IBPtr clone() const {return new_ptr(*this);} 00111 00116 inline virtual IBPtr fullclone() const {return new_ptr(*this);} 00118 protected: 00119 00126 virtual void doinitrun(); 00127 00132 virtual void dofinish(); 00134 00135 private: 00136 00141 static ClassDescription<DDalitzAnalysis> initDDalitzAnalysis; 00142 00147 DDalitzAnalysis & operator=(const DDalitzAnalysis &); 00148 00149 private: 00150 00158 HistogramPtr _m2plus1; 00159 00163 HistogramPtr _m2minus1; 00164 00168 HistogramPtr _m2pipi1; 00169 00173 vector<pair<Energy2,Energy2> > _points1; 00175 00183 HistogramPtr _m2minus2; 00184 00188 HistogramPtr _m2pipi2; 00189 00193 HistogramPtr _m2neutral2; 00194 00198 vector<pair<Energy2,Energy2> > _points2; 00200 00208 HistogramPtr _mKpilow3; 00209 00213 HistogramPtr _mKpihigh3; 00214 00218 HistogramPtr _mKpiall3; 00219 00223 HistogramPtr _mpipi3; 00224 00228 vector<pair<Energy2,Energy2> > _points3; 00230 00238 HistogramPtr _m2Kpip4; 00239 00243 HistogramPtr _m2pipi4; 00244 00248 HistogramPtr _m2Kpi04; 00249 00253 vector<pair<Energy2,Energy2> > _points4; 00255 00263 HistogramPtr _mkppim5; 00264 00268 HistogramPtr _mkppip5; 00269 00273 HistogramPtr _mpippim5; 00274 00278 vector<pair<Energy2,Energy2> > _points5; 00280 00288 HistogramPtr _mkppim6; 00289 00293 HistogramPtr _mkppip6; 00294 00298 HistogramPtr _mpippim6; 00299 00303 vector<pair<Energy2,Energy2> > _points6; 00305 }; 00306 00307 } 00308 00309 #include "ThePEG/Utilities/ClassTraits.h" 00310 00311 namespace ThePEG { 00312 00317 template <> 00318 struct BaseClassTrait<Herwig::DDalitzAnalysis,1> { 00320 typedef AnalysisHandler NthBase; 00321 }; 00322 00325 template <> 00326 struct ClassTraits<Herwig::DDalitzAnalysis> 00327 : public ClassTraitsBase<Herwig::DDalitzAnalysis> { 00329 static string className() { return "Herwig::DDalitzAnalysis"; } 00337 static string library() { return "HwDecayAnalysis.so"; } 00338 }; 00339 00342 } 00343 00344 #endif /* HERWIG_DDalitzAnalysis_H */