CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/GeneratorInterface/Pythia8Interface/interface/Py8InterfaceBase.h

Go to the documentation of this file.
00001 #ifndef gen_Py8InterfaceBase_h
00002 #define gen_Py8InterfaceBase_h
00003 
00004 #include <vector>
00005 #include <string>
00006 
00007 #include "GeneratorInterface/Core/interface/ParameterCollector.h"
00008 
00009 #include <Pythia.h>
00010 #include <HepMCInterface.h>
00011 
00012 namespace gen {
00013 
00014    class Py8InterfaceBase {
00015 
00016       public:
00017          
00018          Py8InterfaceBase( edm::ParameterSet const& ps );
00019          ~Py8InterfaceBase() {}
00020          
00021          virtual bool generatePartonsAndHadronize() = 0;
00022          bool decay() { return true; } // NOT used - let's call it "design imperfection"
00023          bool readSettings( int ); // common func
00024          virtual bool initializeForInternalPartons() = 0;
00025          bool declareStableParticles( const std::vector<int>& ); // common func
00026          bool declareSpecialSettings( const std::vector<std::string>& ); // common func
00027          virtual void finalizeEvent() = 0; 
00028          virtual void statistics();
00029          virtual const char* classname() const = 0;
00030                
00031       protected:
00032          
00033          std::auto_ptr<Pythia8::Pythia> fMasterGen;
00034          std::auto_ptr<Pythia8::Pythia> fDecayer;
00035          HepMC::I_Pythia8               toHepMC;
00036          ParameterCollector             fParameters;
00037          
00038          unsigned int                   pythiaPylistVerbosity;
00039          bool                           pythiaHepMCVerbosity;
00040          unsigned int                   maxEventsToPrint;
00041 
00042    };
00043 
00044 }
00045 
00046 #endif // gen_Py8InterfaceBase_h