CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ME0RecHitProducer.cc
Go to the documentation of this file.
1 
9 
11  : // Get the concrete reconstruction algo from the factory
12  theAlgo{ME0RecHitAlgoFactory::get()->create(config.getParameter<std::string>("recAlgo"),
13  config.getParameter<edm::ParameterSet>("recAlgoConfig"))} {
14  produces<ME0RecHitCollection>();
15 
16  m_token = consumes<ME0DigiPreRecoCollection>(config.getParameter<edm::InputTag>("me0DigiLabel"));
17  m_me0GeomToken = esConsumes<ME0Geometry, MuonGeometryRecord>();
18 }
19 
21 
23  // Get the ME0 Geometry
25 
26  // Get the digis from the event
27 
29  event.getByToken(m_token, digis);
30 
31  // Pass the EventSetup to the algo
32 
33  theAlgo->setES(setup);
34 
35  // Create the pointer to the collection which will store the rechits
36 
37  auto recHitCollection = std::make_unique<ME0RecHitCollection>();
38 
39  // Iterate through all digi collections ordered by LayerId
40 
42  for (me0dgIt = digis->begin(); me0dgIt != digis->end(); ++me0dgIt) {
43  // The layerId
44  const ME0DetId& me0Id = (*me0dgIt).first;
45 
46  // Get the iterators over the digis associated with this LayerId
47  const ME0DigiPreRecoCollection::Range& range = (*me0dgIt).second;
48 
49  // Call the reconstruction algorithm
50 
51  edm::OwnVector<ME0RecHit> recHits = theAlgo->reconstruct(me0Id, range);
52 
53  if (!recHits.empty())
54  recHitCollection->put(me0Id, recHits.begin(), recHits.end());
55  }
56 
57  event.put(std::move(recHitCollection));
58 }
edm::ESGetToken< ME0Geometry, MuonGeometryRecord > m_me0GeomToken
edm::EDGetTokenT< ME0DigiPreRecoCollection > m_token
const uint16_t range(const Frame &aFrame)
iterator begin()
Definition: OwnVector.h:280
std::unique_ptr< ME0RecHitBaseAlgo > theAlgo
void produce(edm::Event &event, const edm::EventSetup &setup) override
The method which produces the rechits.
bool empty() const
Definition: OwnVector.h:305
def move
Definition: eostools.py:511
iterator end()
Definition: OwnVector.h:285
std::pair< const_iterator, const_iterator > Range
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
tuple config
parse the configuration file
~ME0RecHitProducer() override
Destructor.
#define get
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:157
ME0RecHitProducer(const edm::ParameterSet &config)
Constructor.