4 #include <boost/shared_ptr.hpp>
6 #include "HepMC/GenEvent.h"
18 "GeneratorInterfaceLHEHadronisation");
24 Hadronisation(params) {}
55 (
rawEvent->getRunInfo() !=
event->getRunInfo() &&
56 *
rawEvent->getRunInfo() != *
event->getRunInfo());
71 return std::set<std::string>();
75 const std::set<std::string> &capabilities)
79 for(std::set<std::string>::const_iterator
iter = capabilities.begin();
80 iter != capabilities.end(); ++
iter) {
83 else if (*
iter ==
"psFinalState")
85 else if (*
iter ==
"matchSummary")
89 <<
"JetMatching expected capability \""
90 << *
iter <<
"\", but hadronizer does not "
91 "support it." << std::endl;
101 return std::auto_ptr<Hadronisation>(
102 new NoHadronisation(params));
104 std::auto_ptr<Hadronisation>
plugin(
109 <<
"Unknown MC generator \"" << name <<
"\""
110 " specified for hadronisation in LHEProducer."
114 <<
"Using " << name <<
" to hadronize LHE input." << std::endl;
125 const HepMC::GenVertex *signalVertex =
event->signal_process_vertex();
128 event->set_signal_process_vertex(
129 const_cast<HepMC::GenVertex*>(signalVertex));
140 const boost::shared_ptr<HepMC::GenEvent> &
event)
143 const HepMC::GenVertex *signalVertex =
144 event->signal_process_vertex();
147 event->set_signal_process_vertex(
148 const_cast<HepMC::GenVertex*>(signalVertex));
T getParameter(std::string const &) const
virtual std::set< std::string > capabilities() const
auto_ptr< JetDefinition::Plugin > plugin
bool showeredEvent(const boost::shared_ptr< HepMC::GenEvent > &event)
virtual void newRunInfo(const boost::shared_ptr< LHERunInfo > &runInfo)
virtual std::auto_ptr< HepMC::GenEvent > doHadronisation()=0
Hadronisation(const edm::ParameterSet ¶ms)
const boost::shared_ptr< LHEEvent > & getRawEvent() const
virtual void matchingCapabilities(const std::set< std::string > &capabilities)
std::auto_ptr< HepMC::GenEvent > hadronize()
boost::shared_ptr< LHEEvent > rawEvent
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
#define EDM_REGISTER_PLUGINFACTORY(_factory_, _category_)
static std::auto_ptr< Hadronisation > create(const edm::ParameterSet ¶ms)
sigc::signal< bool, const boost::shared_ptr< HepMC::GenEvent > & > sigShower
bool setEvent(const boost::shared_ptr< LHEEvent > &event)
static const HepMC::GenVertex * findSignalVertex(const HepMC::GenEvent *event, bool status3=true)
volatile std::atomic< bool > shutdown_flag false
T get(const Candidate &c)