15 #include "HepMC/GenEvent.h" 25 #include <CLHEP/Random/RandomEngine.h> 34 : m_HepMC(consumes<
edm::
HepMCProduct>(p.getParameter<
edm::InputTag>(
"HepMCProductLabel"))) {
40 produces<edm::HepMCProduct>();
41 produces<edm::LHCTransportLinkContainer>();
47 throw cms::Exception(
"Configuration") <<
"LHCTransport (HectorProducer) requires the " 48 "RandomNumberGeneratorService\n" 49 "which is not present in the configuration file. You must add the " 51 "in the configuration file or remove the modules that require it.";
53 edm::LogInfo(
"SimTransportHectorProducer") <<
"Hector is created";
65 if (engine->name() !=
"TRandom3") {
66 throw cms::Exception(
"Configuration") <<
"The TRandom3 engine type must be used with HectorProducer, " 67 <<
"Random Number Generator Service not correctly configured!";
79 throw cms::Exception(
"InvalidReference") <<
"Invalid reference to HepMCProduct\n";
83 throw cms::Exception(
"LogicError") <<
"HectorTrasported HepMCProduce already exists\n";
107 edm::LogInfo(
"SimTransportHectorProducer") <<
"new HepMC product ";
110 NewProduct->addHepMCData(
evt_);
114 edm::LogInfo(
"SimTransportHectorProducer") <<
"new LHCTransportLinkContainer ";
117 (*NewCorrespondenceMap).swap(thisLink);
120 for (
unsigned int i = 0;
i < (*NewCorrespondenceMap).size();
i++)
121 LogDebug(
"HectorEventProcessing") <<
"Hector correspondence table: " << (*NewCorrespondenceMap)[
i];
125 edm::LogInfo(
"SimTransportHectorProducer") <<
"produce end ";
T getParameter(std::string const &) const
int m_evtAnalysed
just to count events that have been analysed
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
void beginRun(const edm::Run &r, const edm::EventSetup &c) override
edm::EDGetTokenT< edm::HepMCProduct > m_HepMC
bool getByToken(EDGetToken token, Handle< PROD > &result) const
HectorProducer(edm::ParameterSet const &p)
virtual CLHEP::HepRandomEngine & getEngine(StreamID const &)=0
Use this engine in event methods.
void endRun(const edm::Run &r, const edm::EventSetup &c) override
#define DEFINE_FWK_MODULE(type)
void filterD1(TRandom3 *)
void filterFP420(TRandom3 *)
void filterZDC(TRandom3 *)
const HepMC::GenEvent * GetEvent() const
~HectorProducer() override
std::string const & moduleLabel() const
void add(const HepMC::GenEvent *ev, const edm::EventSetup &es)
std::vector< LHCTransportLink > & getCorrespondenceMap()
HepMC::GenEvent * addPartToHepMC(HepMC::GenEvent *event)
StreamID streamID() const
std::vector< LHCTransportLink > LHCTransportLinkContainer
Provenance const * provenance() const
void clearApertureFlags()
void produce(edm::Event &e, const edm::EventSetup &c) override