CMS 3D CMS Logo

ESRecHitProducer.cc
Go to the documentation of this file.
2 
4 
10 
14 
16  : digiToken_(consumes<ESDigiCollection>(ps.getParameter<edm::InputTag>("ESdigiCollection"))),
17  rechitCollection_(ps.getParameter<std::string>("ESrechitCollection")),
18  worker_{ESRecHitWorkerFactory::get()->create(ps.getParameter<std::string>("algo"), ps, consumesCollector())} {
19  produces<ESRecHitCollection>(rechitCollection_);
20 }
21 
23 
26  const ESDigiCollection* digi = nullptr;
27  e.getByToken(digiToken_, digiHandle);
28 
29  digi = digiHandle.product();
30  LogDebug("ESRecHitInfo") << "total # ESdigis: " << digi->size();
31 
32  // Create empty output
33  auto rec = std::make_unique<ESRecHitCollection>();
34 
35  if (digi) {
36  rec->reserve(digi->size());
37 
38  worker_->set(es);
39 
40  // run the algorithm
41  for (ESDigiCollection::const_iterator i(digi->begin()); i != digi->end(); i++) {
42  worker_->run(i, *rec);
43  }
44  }
45 
46  e.put(std::move(rec), rechitCollection_);
47 }
48 
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
std::unique_ptr< ESRecHitWorkerBaseClass > worker_
ESRecHitProducer(const edm::ParameterSet &ps)
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
~ESRecHitProducer() override
T const * product() const
Definition: Handle.h:70
const std::string rechitCollection_
void produce(edm::Event &e, const edm::EventSetup &es) override
const edm::EDGetTokenT< ESDigiCollection > digiToken_
const_iterator end() const
const_iterator begin() const
The iterator returned can not safely be used across threads.
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
HLT enums.
#define get
def move(src, dest)
Definition: eostools.py:511
#define LogDebug(id)