src
RecoParticleFlow
PFProducer
plugins
PFConcretePFCandidateProducer.cc
Go to the documentation of this file.
1
#include "
DataFormats/ParticleFlowCandidate/interface/PFCandidate.h
"
2
#include "
FWCore/Framework/interface/stream/EDProducer.h
"
3
#include "
FWCore/Framework/interface/Event.h
"
4
#include "
FWCore/Framework/interface/MakerMacros.h
"
5
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
6
7
namespace
edm
{
8
class
EventSetup
;
9
}
// namespace edm
10
11
class
PFConcretePFCandidateProducer
:
public
edm::stream::EDProducer
<> {
12
public
:
13
explicit
PFConcretePFCandidateProducer
(
const
edm::ParameterSet
&);
14
~PFConcretePFCandidateProducer
()
override
;
15
16
void
produce
(
edm::Event
&,
const
edm::EventSetup
&)
override
;
17
18
private
:
19
edm::InputTag
inputColl_
;
20
};
21
22
DEFINE_FWK_MODULE
(
PFConcretePFCandidateProducer
);
23
24
PFConcretePFCandidateProducer::PFConcretePFCandidateProducer
(
const
edm::ParameterSet
& iConfig) {
25
inputColl_
= iConfig.
getParameter
<
edm::InputTag
>(
"src"
);
26
// register products
27
produces<reco::PFCandidateCollection>();
28
}
29
30
PFConcretePFCandidateProducer::~PFConcretePFCandidateProducer
() {}
31
32
void
PFConcretePFCandidateProducer::produce
(
edm::Event
&
iEvent
,
const
edm::EventSetup
& iSetup) {
33
edm::Handle<reco::PFCandidateCollection>
inputColl
;
34
bool
inputOk =
iEvent
.getByLabel(
inputColl_
,
inputColl
);
35
36
if
(!inputOk) {
37
// nothing ... I guess we prefer to send an exception in the next lines
38
}
39
40
auto
outputColl
= std::make_unique<reco::PFCandidateCollection>();
41
outputColl
->resize(
inputColl
->size());
42
43
for
(
unsigned
int
iCopy = 0; iCopy !=
inputColl
->size(); ++iCopy) {
44
const
reco::PFCandidate
&
pf
= (*inputColl)[iCopy];
45
(*outputColl)[iCopy] =
pf
;
46
//dereferenced internally the ref and hardcopy the value
47
(*outputColl)[iCopy].setVertex(
pf
.vertex());
48
//math::XYZPoint(pf.vx(),pf.vy(),pf.vz()));
49
}
50
51
iEvent
.put(
std::move
(
outputColl
));
52
}
PFConcretePFCandidateProducer
Definition:
PFConcretePFCandidateProducer.cc:11
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition:
ParameterSet.h:303
EDProducer.h
PFConcretePFCandidateProducer::PFConcretePFCandidateProducer
PFConcretePFCandidateProducer(const edm::ParameterSet &)
Definition:
PFConcretePFCandidateProducer.cc:24
Event.h
edm::Handle
Definition:
AssociativeIterator.h:50
packedPFCandidateRefMixer_cfi.pf
pf
Definition:
packedPFCandidateRefMixer_cfi.py:4
ParameterSet.h
EventSetup
iEvent
int iEvent
Definition:
GenABIO.cc:224
HLT_2023v12_cff.inputColl
inputColl
Definition:
HLT_2023v12_cff.py:17547
hiSpikeCleaner_cfi.outputColl
outputColl
Definition:
hiSpikeCleaner_cfi.py:7
PFConcretePFCandidateProducer::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition:
PFConcretePFCandidateProducer.cc:32
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition:
MakerMacros.h:16
edm::EventSetup
Definition:
EventSetup.h:56
PFConcretePFCandidateProducer::~PFConcretePFCandidateProducer
~PFConcretePFCandidateProducer() override
Definition:
PFConcretePFCandidateProducer.cc:30
edm::stream::EDProducer
Definition:
EDProducer.h:36
reco::PFCandidate
Particle reconstructed by the particle flow algorithm.
Definition:
PFCandidate.h:41
edm
HLT enums.
Definition:
AlignableModifier.h:19
edm::InputTag
Definition:
InputTag.h:15
edm::ParameterSet
Definition:
ParameterSet.h:47
edm::Event
Definition:
Event.h:73
PFCandidate.h
MakerMacros.h
eostools.move
def move(src, dest)
Definition:
eostools.py:511
PFConcretePFCandidateProducer::inputColl_
edm::InputTag inputColl_
Definition:
PFConcretePFCandidateProducer.cc:19
Generated for CMSSW Reference Manual by
1.8.14