CMS 3D CMS Logo

PassThroughEvtVtxGenerator.cc
Go to the documentation of this file.
1 
2 /*
3 */
4 
6 
9 
12 
15 
17 
20 
21 //#include "HepMC/GenEvent.h"
22 // #include "CLHEP/Vector/ThreeVector.h"
23 // #include "HepMC/SimpleVector.h"
24 
25 using namespace edm;
26 using namespace CLHEP;
27 //using namespace HepMC;
28 
31  if (!rng.isAvailable()) {
32  throw cms::Exception("Configuration")
33  << "The PassThroughEvtVtxGenerator requires the RandomNumberGeneratorService\n"
34  "which is not present in the configuration file. \n"
35  "You must add the service\n"
36  "in the configuration file or remove the modules that require it.";
37  }
38  sourceToken = consumes<edm::HepMCProduct>(pset.getParameter<edm::InputTag>("src"));
39 }
40 
42 
43 HepMC::FourVector PassThroughEvtVtxGenerator::newVertex(CLHEP::HepRandomEngine*) const {
44  return HepMC::FourVector(0., 0., 0., 0);
45 }
46 
49 
50  Handle<HepMCProduct> HepUnsmearedMCEvt;
51 
52  evt.getByToken(sourceToken, HepUnsmearedMCEvt);
53 
54  // Copy the HepMC::GenEvent
55  HepMC::GenEvent* genevt = new HepMC::GenEvent(*HepUnsmearedMCEvt->GetEvent());
56  std::unique_ptr<edm::HepMCProduct> HepMCEvt(new edm::HepMCProduct(genevt));
57 
58  evt.put(std::move(HepMCEvt));
59 
60  return;
61 }
edm
HLT enums.
Definition: AlignableModifier.h:19
RandomNumberGenerator.h
PassThroughEvtVtxGenerator.h
edm::Handle
Definition: AssociativeIterator.h:50
edm::Service::isAvailable
bool isAvailable() const
Definition: Service.h:40
HepMC::GenEvent
Definition: hepmc_rootio.cc:9
EDMException.h
Service.h
Provenance.h
PassThroughEvtVtxGenerator::PassThroughEvtVtxGenerator
PassThroughEvtVtxGenerator(const edm::ParameterSet &)
Definition: PassThroughEvtVtxGenerator.cc:29
edm::Event::getByToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:528
PassThroughEvtVtxGenerator::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition: PassThroughEvtVtxGenerator.cc:47
CLHEP
Definition: CocoaGlobals.h:27
edm::ParameterSet
Definition: ParameterSet.h:36
Event.h
edm::Service
Definition: Service.h:30
edm::Event::put
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:132
edm::EventSetup
Definition: EventSetup.h:57
edm::HepMCProduct::GetEvent
const HepMC::GenEvent * GetEvent() const
Definition: HepMCProduct.h:34
eostools.move
def move(src, dest)
Definition: eostools.py:511
Exception
Definition: hltDiff.cc:246
PassThroughEvtVtxGenerator::~PassThroughEvtVtxGenerator
~PassThroughEvtVtxGenerator() override
Definition: PassThroughEvtVtxGenerator.cc:41
Exception.h
PassThroughEvtVtxGenerator::sourceToken
edm::EDGetTokenT< edm::HepMCProduct > sourceToken
Definition: PassThroughEvtVtxGenerator.h:34
edm::HepMCProduct
Definition: HepMCProduct.h:18
ParameterSet.h
HepMCProduct.h
PassThroughEvtVtxGenerator::newVertex
HepMC::FourVector newVertex(CLHEP::HepRandomEngine *) const override
Definition: PassThroughEvtVtxGenerator.cc:43
edm::Event
Definition: Event.h:73
BaseEvtVtxGenerator
Definition: BaseEvtVtxGenerator.h:23
edm::InputTag
Definition: InputTag.h:15
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27