CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/GeneratorInterface/PyquenInterface/interface/PyquenHadronizer.h

Go to the documentation of this file.
00001 #ifndef Pyquen_Hadronizer_h
00002 #define Pyquen_Hadronizer_h
00003 
00013 #include "GeneratorInterface/Core/interface/BaseHadronizer.h"
00014 #include "GeneratorInterface/HiGenCommon/interface/BaseHiGenEvtSelector.h"
00015 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00016 #include "FWCore/Utilities/interface/InputTag.h"
00017 #include <map>
00018 #include <string>
00019 #include "HepMC/GenEvent.h"
00020 
00021 namespace gen
00022 {
00023    class Pythia6Service;
00024 
00025   class PyquenHadronizer : public BaseHadronizer {
00026   public:
00027 
00028     PyquenHadronizer(const edm::ParameterSet &);
00029     virtual ~PyquenHadronizer();
00030 
00031     bool generatePartonsAndHadronize();
00032     bool hadronize();
00033     bool decay();
00034     bool residualDecay();
00035     bool readSettings( int );
00036     bool initializeForExternalPartons();
00037     bool initializeForInternalPartons();
00038     bool declareStableParticles( const std::vector<int> );
00039     bool declareSpecialSettings( const std::vector<std::string> ) { return true; }
00040     virtual bool select(HepMC::GenEvent* evtTry) const { return selector_->filter(evtTry); }
00041     void finalizeEvent();
00042     void statistics();
00043     const char* classname() const;
00044 
00045   private:
00046     void             add_heavy_ion_rec(HepMC::GenEvent *evt);
00047 
00048     bool             pyqpythia_init(const edm::ParameterSet &pset);
00049     bool             pyquen_init(const edm::ParameterSet &pset);
00050     const char*      nucleon();
00051     void             rotateEvtPlane(HepMC::GenEvent* evt, double angle);
00052 
00053     edm::ParameterSet pset_;
00054     double           abeamtarget_;            
00055     unsigned int     angularspecselector_;    
00056 
00057 
00058 
00059     double           bmin_;                   
00060     double           bmax_;                   
00061     double           bfixed_;                 
00062     int              cflag_;                  
00063     double           comenergy;               
00064     bool             doquench_;               
00065     bool             doradiativeenloss_;      
00066     bool             docollisionalenloss_;    
00067     bool             doIsospin_;              
00068     bool             embedding_;
00069     double           evtPlane_;
00070     double           pfrac_;                  
00071 
00072     unsigned int     nquarkflavor_;           
00073 
00074     double           qgpt0_;                  
00075 
00076     double           qgptau0_;                
00077 
00078     unsigned int     maxEventsToPrint_;       
00079     bool             pythiaHepMCVerbosity_;   
00080     unsigned int     pythiaPylistVerbosity_;  
00081 
00082     //    CLHEP::HepRandomEngine* fRandomEngine;
00083     edm::InputTag   src_;
00084     Pythia6Service* pythia6Service_;
00085     std::string      filterType_;
00086     BaseHiGenEvtSelector* selector_;
00087    };
00088 } /*end namespace*/ 
00089 
00090 #endif