CommonTools
CandAlgos
interface
ShallowCloneProducer.h
Go to the documentation of this file.
1
#ifndef CandAlgos_ShallowCloneProducer_h
2
#define CandAlgos_ShallowCloneProducer_h
3
16
#include "
FWCore/Framework/interface/EDProducer.h
"
17
#include "
FWCore/Framework/interface/Event.h
"
18
#include "
FWCore/ParameterSet/interface/ParameterSet.h
"
19
#include "
FWCore/Utilities/interface/InputTag.h
"
20
#include "
DataFormats/Candidate/interface/ShallowCloneCandidate.h
"
21
22
template
<
typename
C>
23
class
ShallowCloneProducer
:
public
edm::EDProducer
{
24
public
:
26
explicit
ShallowCloneProducer
(
const
edm::ParameterSet
&);
28
~ShallowCloneProducer
()
override
;
29
30
private
:
32
void
produce
(
edm::Event
&,
const
edm::EventSetup
&)
override
;
34
edm::EDGetTokenT<C>
srcToken_
;
35
};
36
37
template
<
typename
C>
38
ShallowCloneProducer<C>::ShallowCloneProducer
(
const
edm::ParameterSet
& par)
39
: srcToken_(consumes<
C
>(par.
template
getParameter<
edm
::
InputTag
>(
"src"
))) {
40
produces<reco::CandidateCollection>();
41
}
42
43
template
<
typename
C>
44
ShallowCloneProducer<C>::~ShallowCloneProducer
() {}
45
46
template
<
typename
C>
47
void
ShallowCloneProducer<C>::produce
(
edm::Event
& evt,
const
edm::EventSetup
&) {
48
std::unique_ptr<reco::CandidateCollection> coll(
new
reco::CandidateCollection
);
49
edm::Handle<C>
masterCollection;
50
evt.
getByToken
(srcToken_, masterCollection);
51
for
(
size_t
i
= 0;
i
< masterCollection->size(); ++
i
) {
52
reco::CandidateBaseRef
masterClone(
edm::Ref<C>
(masterCollection,
i
));
53
coll->push_back(
new
reco::ShallowCloneCandidate
(masterClone));
54
}
55
evt.
put
(
std::move
(coll));
56
}
57
58
#endif
mps_fire.i
i
Definition:
mps_fire.py:428
ShallowCloneProducer
Definition:
ShallowCloneProducer.h:23
EDProducer.h
ShallowCloneProducer::produce
void produce(edm::Event &, const edm::EventSetup &) override
process an event
Definition:
ShallowCloneProducer.h:47
edm::EDGetTokenT< C >
edm
HLT enums.
Definition:
AlignableModifier.h:19
HLT_FULL_cff.InputTag
InputTag
Definition:
HLT_FULL_cff.py:89281
ShallowCloneProducer::srcToken_
edm::EDGetTokenT< C > srcToken_
labels of the collection to be converted
Definition:
ShallowCloneProducer.h:34
edm::Handle
Definition:
AssociativeIterator.h:50
edm::Ref
Definition:
AssociativeIterator.h:58
ShallowCloneProducer::ShallowCloneProducer
ShallowCloneProducer(const edm::ParameterSet &)
constructor from parameter set
Definition:
ShallowCloneProducer.h:38
edm::Event::getByToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition:
Event.h:535
edm::ParameterSet
Definition:
ParameterSet.h:47
Event.h
edm::Event::put
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition:
Event.h:133
edm::EventSetup
Definition:
EventSetup.h:58
svgfig.template
def template(fileName, svg, replaceme="REPLACEME")
Definition:
svgfig.py:521
InputTag.h
ShallowCloneCandidate.h
eostools.move
def move(src, dest)
Definition:
eostools.py:511
gen::C
C
Definition:
PomwigHadronizer.cc:78
edm::EDProducer
Definition:
EDProducer.h:35
edm::RefToBase< Candidate >
reco::ShallowCloneCandidate
Definition:
ShallowCloneCandidate.h:15
ParameterSet.h
edm::Event
Definition:
Event.h:73
ShallowCloneProducer::~ShallowCloneProducer
~ShallowCloneProducer() override
destructor
Definition:
ShallowCloneProducer.h:44
edm::OwnVector
Definition:
OwnVector.h:24
Generated for CMSSW Reference Manual by
1.8.16