![]() |
![]() |
Public Member Functions | |
ThePEGSource (const edm::ParameterSet ¶ms, const edm::InputSourceDescription &desc) | |
virtual | ~ThePEGSource () |
Private Member Functions | |
virtual void | beginRun (edm::Run &run) |
virtual void | endRun (edm::Run &run) |
virtual bool | produce (edm::Event &event) |
Private Attributes | |
unsigned int | eventsToPrint |
const double | extCrossSect |
const double | extFilterEff |
Definition at line 25 of file ThePEGSource.cc.
ThePEGSource::ThePEGSource | ( | const edm::ParameterSet & | params, | |
const edm::InputSourceDescription & | desc | |||
) |
Definition at line 42 of file ThePEGSource.cc.
References ThePEGInterface::initRepository().
00043 : 00044 edm::GeneratedInputSource(pset, desc), 00045 ThePEGInterface(pset), 00046 eventsToPrint(pset.getUntrackedParameter<unsigned int>("eventsToPrint", 0)), 00047 extCrossSect(pset.getUntrackedParameter<double>("crossSection", -1.0)), 00048 extFilterEff(pset.getUntrackedParameter<double>("filterEfficiency", -1.0)) 00049 { 00050 initRepository(pset); 00051 00052 produces<edm::HepMCProduct>(); 00053 produces<edm::GenInfoProduct, edm::InRun>(); 00054 }
ThePEGSource::~ThePEGSource | ( | ) | [virtual] |
Reimplemented from edm::ConfigurableInputSource.
Definition at line 60 of file ThePEGSource.cc.
References ThePEGInterface::eg_, and ThePEGInterface::initGenerator().
00061 { 00062 initGenerator(); 00063 00064 edm::Service<edm::RandomNumberGenerator> rng; 00065 eg_->setSeed(rng->mySeed()); 00066 }
Reimplemented from edm::ConfigurableInputSource.
Definition at line 68 of file ThePEGSource.cc.
References ThePEGInterface::eg_, extCrossSect, extFilterEff, and edm::Run::put().
00069 { 00070 std::auto_ptr<edm::GenInfoProduct> genInfoProd(new edm::GenInfoProduct); 00071 genInfoProd->set_cross_section(eg_->integratedXSec() / ThePEG::picobarn); 00072 genInfoProd->set_external_cross_section(extCrossSect); 00073 genInfoProd->set_filter_efficiency(extFilterEff); 00074 run.put(genInfoProd); 00075 }
bool ThePEGSource::produce | ( | edm::Event & | event | ) | [private, virtual] |
Implements edm::ConfigurableInputSource.
Definition at line 77 of file ThePEGSource.cc.
References ThePEGInterface::clearAuxiliary(), ThePEGInterface::convert(), ThePEGInterface::eg_, eventsToPrint, ThePEGInterface::fillAuxiliary(), ThePEGInterface::iobc_, edm::ConfigurableInputSource::numberEventsInRun(), edm::InputSource::remainingEvents(), and HLT_VtxMuL3::result.
00078 { 00079 edm::LogInfo("Generator|ThePEGSource") << "Start production"; 00080 00081 ThePEG::EventPtr thepegEvent = eg_->shoot(); 00082 if (!thepegEvent) { 00083 edm::LogWarning("Generator|ThePEGSource") << "thepegEvent not initialized"; 00084 return false; 00085 } 00086 00087 std::auto_ptr<HepMC::GenEvent> hepmcEvent = convert(thepegEvent); 00088 if (!hepmcEvent.get()) { 00089 edm::LogWarning("Generator|ThePEGSource") << "hepmcEvent not initialized"; 00090 return false; 00091 } 00092 00093 HepMC::PdfInfo pdf; 00094 clearAuxiliary(hepmcEvent.get(), &pdf); 00095 hepmcEvent->set_event_number(numberEventsInRun() - 00096 remainingEvents() - 1); 00097 fillAuxiliary(hepmcEvent.get(), &pdf, thepegEvent); 00098 hepmcEvent->set_pdf_info(pdf); 00099 00100 if (eventsToPrint) { 00101 eventsToPrint--; 00102 hepmcEvent->print(); 00103 } 00104 00105 if (iobc_.get()) 00106 iobc_->write_event(hepmcEvent.get()); 00107 00108 std::auto_ptr<edm::HepMCProduct> result(new edm::HepMCProduct()); 00109 result->addHepMCData(hepmcEvent.release()); 00110 event.put(result); 00111 edm::LogInfo("Generator|ThePEGSource") << "Event produced"; 00112 00113 return true; 00114 }
unsigned int ThePEGSource::eventsToPrint [private] |
const double ThePEGSource::extCrossSect [private] |
const double ThePEGSource::extFilterEff [private] |