14 #include "HepMC/GenEvent.h"
24 #include "CLHEP/Random/RandomEngine.h"
40 produces<edm::HepMCProduct>();
41 produces<edm::LHCTransportLinkContainer>();
48 <<
"LHCTransport (HectorProducer) requires the RandomNumberGeneratorService\n"
49 "which is not present in the configuration file. You must add the service\n"
50 "in the configuration file or remove the modules that require it.";
52 edm::LogInfo(
"SimTransportHectorProducer") <<
"Hector is created";
65 if ( engine->name() !=
"TRandom3" ) {
67 <<
"The TRandom3 engine type must be used with HectorProducer, "
68 <<
"Random Number Generator Service not correctly configured!";
82 <<
"Invalid reference to HepMCProduct\n";
88 <<
"HectorTrasported HepMCProduce already exists\n";
91 evt_ =
new HepMC::GenEvent( *HepMCEvt->GetEvent() );
112 edm::LogInfo(
"SimTransportHectorProducer") <<
"new HepMC product ";
115 NewProduct->addHepMCData(
evt_ ) ;
119 edm::LogInfo(
"SimTransportHectorProducer") <<
"new LHCTransportLinkContainer ";
122 (*NewCorrespondenceMap).swap(thisLink);
125 for (
unsigned int i = 0;
i < (*NewCorrespondenceMap).size();
i++)
126 LogDebug(
"HectorEventProcessing") <<
"Hector correspondence table: " << (*NewCorrespondenceMap)[
i];
130 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.
virtual void beginRun(const edm::Run &r, const edm::EventSetup &c) override
edm::Service< edm::RandomNumberGenerator > rng
edm::EDGetTokenT< edm::HepMCProduct > m_HepMC
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
HectorProducer(edm::ParameterSet const &p)
virtual CLHEP::HepRandomEngine & getEngine(StreamID const &)=0
Use this engine in event methods.
virtual void endRun(const edm::Run &r, const edm::EventSetup &c) override
void filterD1(TRandom3 *)
void filterFP420(TRandom3 *)
void filterZDC(TRandom3 *)
std::string const & moduleLabel() const
virtual ~HectorProducer()
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()
virtual void produce(edm::Event &e, const edm::EventSetup &c) override