RecoLocalMuon
GEMRecHit
plugins
ME0RecHitProducer.cc
Go to the documentation of this file.
1
8
#include "
RecoLocalMuon/GEMRecHit/plugins/ME0RecHitProducer.h
"
9
10
ME0RecHitProducer::ME0RecHitProducer
(
const
edm::ParameterSet
&
config
)
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
}
18
19
ME0RecHitProducer::~ME0RecHitProducer
() =
default
;
20
21
void
ME0RecHitProducer::produce
(
edm::Event
&
event
,
const
edm::EventSetup
&
setup
) {
22
// Get the ME0 Geometry
23
edm::ESHandle<ME0Geometry>
me0Geom;
24
setup
.get<
MuonGeometryRecord
>().
get
(me0Geom);
25
26
// Get the digis from the event
27
28
edm::Handle<ME0DigiPreRecoCollection>
digis;
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
41
ME0DigiPreRecoCollection::DigiRangeIterator
me0dgIt;
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
}
FastTimerService_cff.range
range
Definition:
FastTimerService_cff.py:34
ME0RecHitProducer::ME0RecHitProducer
ME0RecHitProducer(const edm::ParameterSet &config)
Constructor.
Definition:
ME0RecHitProducer.cc:10
ME0RecHitProducer::theAlgo
std::unique_ptr< ME0RecHitBaseAlgo > theAlgo
Definition:
ME0RecHitProducer.h:60
edm::Handle
Definition:
AssociativeIterator.h:50
ME0RecHitProducer::produce
void produce(edm::Event &event, const edm::EventSetup &setup) override
The method which produces the rechits.
Definition:
ME0RecHitProducer.cc:21
singleTopDQM_cfi.setup
setup
Definition:
singleTopDQM_cfi.py:37
config
Definition:
config.py:1
edm::ESHandle< ME0Geometry >
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition:
AlCaHLTBitMon_QueryRunRegistry.py:256
FastTrackerRecHitMaskProducer_cfi.recHits
recHits
Definition:
FastTrackerRecHitMaskProducer_cfi.py:8
edm::ParameterSet
Definition:
ParameterSet.h:36
ME0RecHitProducer::m_token
edm::EDGetTokenT< ME0DigiPreRecoCollection > m_token
Definition:
ME0RecHitProducer.h:57
edm::EventSetup
Definition:
EventSetup.h:57
ME0RecHitProducer.h
ME0DetId
Definition:
ME0DetId.h:16
get
#define get
eostools.move
def move(src, dest)
Definition:
eostools.py:511
MuonDigiCollection::Range
std::pair< const_iterator, const_iterator > Range
Definition:
MuonDigiCollection.h:95
event
Definition:
event.py:1
DigiContainerIterator
Definition:
MuonDigiCollection.h:30
edm::Event
Definition:
Event.h:73
MuonGeometryRecord
Definition:
MuonGeometryRecord.h:34
ME0RecHitProducer::~ME0RecHitProducer
~ME0RecHitProducer() override
Destructor.
edm::InputTag
Definition:
InputTag.h:15
edm::OwnVector
Definition:
OwnVector.h:24
Generated for CMSSW Reference Manual by
1.8.16