herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
ShowerModel.h
00001 // -*- C++ -*-
00002 //
00003 // ShowerModel.h is a part of Herwig++ - A multi-purpose Monte Carlo event generator
00004 // Copyright (C) 2002-2011 The Herwig Collaboration
00005 //
00006 // Herwig++ is licenced under version 2 of the GPL, see COPYING for details.
00007 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
00008 //
00009 #ifndef HERWIG_ShowerModel_H
00010 #define HERWIG_ShowerModel_H
00011 //
00012 // This is the declaration of the ShowerModel class.
00013 //
00014 #include "ThePEG/Interface/Interfaced.h"
00015 #include "KinematicsReconstructor.fh"
00016 #include "PartnerFinder.fh"
00017 #include "SudakovFormFactor.fh"
00018 #include "ShowerModel.fh"
00019 
00020 namespace Herwig {
00021 
00022 using namespace ThePEG;
00023 
00045 class ShowerModel: public Interfaced {
00046 
00047 public:  
00048 
00056   tKinematicsReconstructorPtr kinematicsReconstructor() const { return _reconstructor; }
00057 
00061   tPartnerFinderPtr partnerFinder() const { return _partnerfinder; }
00062 
00066   const vector<SudakovPtr> & sudakovFormFactors() const { return _sudakovs; }
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 
00096 protected:
00097 
00102   virtual void checkConsistency() =0;
00103 
00111   virtual void doinit();
00113 
00114 private:
00115 
00120   ShowerModel & operator=(const ShowerModel &);
00121 
00122 private:
00123 
00131   KinematicsReconstructorPtr _reconstructor;
00132 
00136   PartnerFinderPtr _partnerfinder;
00137 
00141   vector<SudakovPtr> _sudakovs;
00143 
00144 };
00145 
00146 }
00147 
00148 #endif /* HERWIG_ShowerModel_H */