CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
Herwig7Hadronizer Class Reference
Inheritance diagram for Herwig7Hadronizer:
Herwig7Interface gen::BaseHadronizer

Public Member Functions

const char * classname () const
 
bool decay ()
 
bool declareSpecialSettings (const std::vector< std::string >)
 
bool declareStableParticles (const std::vector< int > &pdgIds)
 
void finalizeEvent ()
 
bool generatePartonsAndHadronize ()
 
bool hadronize ()
 
 Herwig7Hadronizer (const edm::ParameterSet &params)
 
bool initializeForExternalPartons ()
 
bool initializeForInternalPartons ()
 
bool readSettings (int)
 
bool residualDecay ()
 
void statistics ()
 
 ~Herwig7Hadronizer () override
 
- Public Member Functions inherited from Herwig7Interface
 Herwig7Interface (const edm::ParameterSet &params)
 
void setPEGRandomEngine (CLHEP::HepRandomEngine *)
 
 ~Herwig7Interface ()
 
- Public Member Functions inherited from gen::BaseHadronizer
 BaseHadronizer (edm::ParameterSet const &ps)
 
void cleanLHE ()
 
void generateLHE (edm::LuminosityBlock const &lumi, CLHEP::HepRandomEngine *rengine, unsigned int ncpu)
 
edm::EventgetEDMEvent () const
 
HepMC::GenEvent * getGenEvent ()
 
GenEventInfoProductgetGenEventInfo ()
 
virtual GenLumiInfoHeadergetGenLumiInfoHeader () const
 
GenRunInfoProductgetGenRunInfo ()
 
const boost::shared_ptr< lhef::LHERunInfo > & getLHERunInfo () const
 
const std::string & gridpackPath () const
 
int randomIndex () const
 
const std::string & randomInitConfigDescription () const
 
void randomizeIndex (edm::LuminosityBlock const &lumi, CLHEP::HepRandomEngine *rengine)
 
void resetEvent (HepMC::GenEvent *event)
 
void resetEventInfo (GenEventInfoProduct *eventInfo)
 
virtual bool select (HepMC::GenEvent *) const
 
void setEDMEvent (edm::Event &event)
 
void setLHEEvent (lhef::LHEEvent *event)
 
void setLHERunInfo (lhef::LHERunInfo *runInfo)
 
void setRandomEngine (CLHEP::HepRandomEngine *v)
 
std::vector< std::string > const & sharedResources () const
 
virtual ~BaseHadronizer ()(false)
 

Private Member Functions

void doSetRandomEngine (CLHEP::HepRandomEngine *v) override
 

Private Attributes

unsigned int eventsToPrint
 
const std::string handlerDirectory_
 
boost::shared_ptr< lhef::LHEProxyproxy_
 
ThePEG::EventPtr thepegEvent
 

Additional Inherited Members

- Public Attributes inherited from Herwig7Interface
ThePEG::EGPtr eg_
 
- Protected Member Functions inherited from Herwig7Interface
void callHerwigGenerator ()
 
void createInputFile (const edm::ParameterSet &params)
 
void flushRandomNumberGenerator ()
 
bool initGenerator ()
 
void initRepository (const edm::ParameterSet &params)
 
- Protected Member Functions inherited from gen::BaseHadronizer
std::auto_ptr< HepMC::GenEvent > & event ()
 
std::auto_ptr< GenEventInfoProduct > & eventInfo ()
 
lhef::LHEEventlheEvent ()
 
lhef::LHERunInfolheRunInfo ()
 
GenRunInfoProductrunInfo ()
 
- Static Protected Member Functions inherited from Herwig7Interface
static std::auto_ptr< HepMC::GenEvent > convert (const ThePEG::EventPtr &event)
 
static double pthat (const ThePEG::EventPtr &event)
 
- Protected Attributes inherited from Herwig7Interface
Herwig::HerwigUIProviderHwUI_
 
std::auto_ptr< HepMC::IO_BaseClass > iobc_
 
- Protected Attributes inherited from gen::BaseHadronizer
std::string lheFile_
 
int randomIndex_
 

Detailed Description

Definition at line 30 of file Herwig7Hadronizer.cc.

Constructor & Destructor Documentation

Herwig7Hadronizer::Herwig7Hadronizer ( const edm::ParameterSet params)

Definition at line 63 of file Herwig7Hadronizer.cc.

References Herwig7Interface::initRepository().

63  :
66  eventsToPrint(pset.getUntrackedParameter<unsigned int>("eventsToPrint", 0)),
67  handlerDirectory_(pset.getParameter<std::string>("eventHandlers"))
68 {
70 
71 }
void initRepository(const edm::ParameterSet &params)
BaseHadronizer(edm::ParameterSet const &ps)
unsigned int eventsToPrint
Herwig7Interface(const edm::ParameterSet &params)
const std::string handlerDirectory_
Herwig7Hadronizer::~Herwig7Hadronizer ( )
override

Definition at line 73 of file Herwig7Hadronizer.cc.

74 {
75 }

Member Function Documentation

const char* Herwig7Hadronizer::classname ( ) const
inline

Definition at line 49 of file Herwig7Hadronizer.cc.

49 { return "Herwig7Hadronizer"; }
bool Herwig7Hadronizer::decay ( )

Definition at line 156 of file Herwig7Hadronizer.cc.

157 {
158  return true;
159 }
bool Herwig7Hadronizer::declareSpecialSettings ( const std::vector< std::string >  )
inline

Definition at line 39 of file Herwig7Hadronizer.cc.

References SelectingProcedure_cff::decay, and myMessageLogger_cff::statistics.

39 { return true; }
bool Herwig7Hadronizer::declareStableParticles ( const std::vector< int > &  pdgIds)

Definition at line 93 of file Herwig7Hadronizer.cc.

94 {
95  return false;
96 }
void Herwig7Hadronizer::doSetRandomEngine ( CLHEP::HepRandomEngine *  v)
inlineoverrideprivatevirtual

Reimplemented from gen::BaseHadronizer.

Definition at line 53 of file Herwig7Hadronizer.cc.

void setPEGRandomEngine(CLHEP::HepRandomEngine *)
void Herwig7Hadronizer::finalizeEvent ( )

Definition at line 139 of file Herwig7Hadronizer.cc.

References gen::BaseHadronizer::event(), gen::BaseHadronizer::eventInfo(), eventsToPrint, Herwig7Interface::iobc_, Herwig7Interface::pthat(), and thepegEvent.

140 {
141  eventInfo().reset(new GenEventInfoProduct(event().get()));
142  eventInfo()->setBinningValues(
143  std::vector<double>(1, pthat(thepegEvent)));
144 
145  if (eventsToPrint) {
146  eventsToPrint--;
147  event()->print();
148  }
149 
150  if (iobc_.get())
151  iobc_->write_event(event().get());
152 
153  edm::LogInfo("Generator|Herwig7Hadronizer") << "Event produced";
154 }
static double pthat(const ThePEG::EventPtr &event)
std::auto_ptr< HepMC::IO_BaseClass > iobc_
std::auto_ptr< HepMC::GenEvent > & event()
unsigned int eventsToPrint
std::auto_ptr< GenEventInfoProduct > & eventInfo()
ThePEG::EventPtr thepegEvent
Definition: event.py:1
bool Herwig7Hadronizer::generatePartonsAndHadronize ( )

Definition at line 105 of file Herwig7Hadronizer.cc.

References Herwig7Interface::convert(), Herwig7Interface::eg_, gen::BaseHadronizer::event(), cppFunctionSkipper::exception, Herwig7Interface::flushRandomNumberGenerator(), and thepegEvent.

106 {
107  edm::LogInfo("Generator|Herwig7Hadronizer") << "Start production";
108 
110 
111  try {
112  thepegEvent = eg_->shoot();
113  } catch (std::exception& exc) {
114  edm::LogWarning("Generator|Herwig7Hadronizer") << "EGPtr::shoot() thrown an exception, event skipped: " << exc.what();
115  return false;
116  }
117 
118  if (!thepegEvent) {
119  edm::LogWarning("Generator|Herwig7Hadronizer") << "thepegEvent not initialized";
120  return false;
121  }
122 
124  if (!event().get()) {
125  edm::LogWarning("Generator|Herwig7Hadronizer") << "genEvent not initialized";
126  return false;
127  }
128 
129  return true;
130 }
std::auto_ptr< HepMC::GenEvent > & event()
ThePEG::EGPtr eg_
static std::auto_ptr< HepMC::GenEvent > convert(const ThePEG::EventPtr &event)
ThePEG::EventPtr thepegEvent
void flushRandomNumberGenerator()
bool Herwig7Hadronizer::hadronize ( )

Definition at line 132 of file Herwig7Hadronizer.cc.

133 {
134 
135  edm::LogError("Herwig7 interface") << "Read in of LHE files is not supported in this way. You can read them manually if necessary.";
136  return false;
137 }
bool Herwig7Hadronizer::initializeForExternalPartons ( )

Definition at line 87 of file Herwig7Hadronizer.cc.

88 {
89  edm::LogError("Herwig7 interface") << "Read in of LHE files is not supported in this way. You can read them manually if necessary.";
90  return false;
91 }
bool Herwig7Hadronizer::initializeForInternalPartons ( )

Definition at line 77 of file Herwig7Hadronizer.cc.

References cmsRelvalreport::exit, and Herwig7Interface::initGenerator().

78 {
79  if (!initGenerator())
80  {
81  edm::LogInfo("Generator|Herwig7Hadronizer") << "No run step for Herwig chosen. Program will be aborted.";
82  exit(0);
83  }
84  return true;
85 }
bool Herwig7Hadronizer::readSettings ( int  )
inline

Definition at line 35 of file Herwig7Hadronizer.cc.

35 { return true; }
bool Herwig7Hadronizer::residualDecay ( )

Definition at line 161 of file Herwig7Hadronizer.cc.

162 {
163  return true;
164 }
void Herwig7Hadronizer::statistics ( )

Definition at line 98 of file Herwig7Hadronizer.cc.

References Herwig7Interface::eg_, gen::BaseHadronizer::runInfo(), and GenRunInfoProduct::setInternalXSec().

99 {
101  eg_->integratedXSec() / ThePEG::picobarn,
102  eg_->integratedXSecErr() / ThePEG::picobarn));
103 }
void setInternalXSec(const XSec &xsec)
GenRunInfoProduct & runInfo()
ThePEG::EGPtr eg_

Member Data Documentation

unsigned int Herwig7Hadronizer::eventsToPrint
private

Definition at line 55 of file Herwig7Hadronizer.cc.

Referenced by finalizeEvent().

const std::string Herwig7Hadronizer::handlerDirectory_
private

Definition at line 60 of file Herwig7Hadronizer.cc.

boost::shared_ptr<lhef::LHEProxy> Herwig7Hadronizer::proxy_
private

Definition at line 59 of file Herwig7Hadronizer.cc.

ThePEG::EventPtr Herwig7Hadronizer::thepegEvent
private

Definition at line 57 of file Herwig7Hadronizer.cc.

Referenced by finalizeEvent(), and generatePartonsAndHadronize().