CMS 3D CMS Logo

PythiaProducer.h

Go to the documentation of this file.
00001 #ifndef Pythia_Producer_h
00002 #define Pythia_Producer_h
00003 
00015 #define PYCOMP pycomp_
00016 
00017 #include "FWCore/Framework/interface/EDProducer.h"
00018 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00019 #include <map>
00020 #include <string>
00021 #include "HepMC/GenEvent.h"
00022 
00023 #include "GeneratorInterface/CommonInterface/interface/TauolaInterface.h"
00024 #include "GeneratorInterface/Pythia6Interface/interface/PtYDistributor.h"
00025 
00026 class Run;
00027 namespace CLHEP {
00028 class HepRandomEngine;
00029 class RandFlat;
00030 }
00031 
00032 namespace edm
00033 {
00034   class PythiaProducer : public EDProducer {
00035   public:
00036 
00038     PythiaProducer(const ParameterSet &);
00040     virtual ~PythiaProducer();
00041 
00042     void endRun( Run& r, const EventSetup& es);
00043 
00044   private:
00045 
00047     bool call_pygive(const std::string& iParm );
00048     bool call_txgive(const std::string& iParm );
00049     bool call_txgive_init();
00050     bool call_slhagive(const std::string& iParm );
00051     bool call_slha_init();
00052   
00053   private:
00054     
00055     virtual void produce(Event & e, const EventSetup& es);
00056     void clear();
00057     
00058     HepMC::GenEvent  *evt;
00059 
00060     // for pyinit
00061     std::string fFrame ;
00062     std::string fBeam1;
00063     std::string fBeam2;
00064     double      fCOMEnergy;
00065         
00067     unsigned int pythiaPylistVerbosity_;
00069     bool pythiaHepMCVerbosity_;
00071     bool imposeProperTimes_;
00073     unsigned int maxEventsToPrint_;    
00074    
00075     // external cross section and filter efficiency
00076     double extCrossSect;
00077     double extFilterEff;    
00078  
00079     // for single particle generation in pythia
00080     int    particleID;
00081     bool   doubleParticle;
00082     std::string kinedata;
00083     double ptmin, ptmax;
00084     double etamin, etamax;
00085     double phimin, phimax;
00086     double emin, emax;
00087     double ymin, ymax;
00088     bool flatEnergy;
00089 
00090     // external generators (tauola,...)
00091     bool useExternalGenerators_ ;
00092     bool useTauola_ ;
00093     bool useTauolaPolarization_ ;
00094     TauolaInterface tauola_ ;
00095     
00096     bool stopHadronsEnabled;
00097     bool gluinoHadronsEnabled;
00098     
00099     CLHEP::HepRandomEngine& fRandomEngine;
00100     CLHEP::RandFlat*        fRandomGenerator; 
00101     PtYDistributor*         fPtYGenerator;
00102     int                     eventNumber_;
00103   };
00104 }
00105 
00106 #endif

Generated on Tue Jun 9 17:37:09 2009 for CMSSW by  doxygen 1.5.4