herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
DDalitzAnalysis.h
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 */