CMS 3D CMS Logo

PATCompositeCandidateProducer.cc
Go to the documentation of this file.
1 //
2 //
3 
11 #include <memory>
12 
13 #include <iostream>
14 
15 using namespace pat;
16 using namespace std;
17 using namespace edm;
18 
20  : srcToken_(consumes<edm::View<reco::CompositeCandidate> >(iConfig.getParameter<InputTag>("src"))),
21  useUserData_(iConfig.exists("userData")),
22  userDataHelper_(iConfig.getParameter<edm::ParameterSet>("userData"), consumesCollector()),
23  addEfficiencies_(iConfig.getParameter<bool>("addEfficiencies")),
24  addResolutions_(iConfig.getParameter<bool>("addResolutions")) {
25  // Efficiency configurables
26  if (addEfficiencies_) {
28  pat::helper::EfficiencyLoader(iConfig.getParameter<edm::ParameterSet>("efficiencies"), consumesCollector());
29  }
30 
31  // Resolution configurables
32  if (addResolutions_) {
34  }
35 
36  // produces vector of particles
37  produces<vector<pat::CompositeCandidate> >();
38 }
39 
41 
43  // Get the vector of CompositeCandidate's from the event
45  iEvent.getByToken(srcToken_, cands);
46 
51 
52  auto myCompositeCandidates = std::make_unique<vector<pat::CompositeCandidate> >();
53 
54  if (cands.isValid()) {
55  View<reco::CompositeCandidate>::const_iterator ibegin = cands->begin(), iend = cands->end(), i = ibegin;
56  for (; i != iend; ++i) {
58 
59  if (useUserData_) {
60  userDataHelper_.add(cand, iEvent, iSetup);
61  }
62 
64  efficiencyLoader_.setEfficiencies(cand, cands->refAt(i - cands->begin()));
67 
68  myCompositeCandidates->push_back(std::move(cand));
69  }
70 
71  } // end if the two handles are valid
72 
73  iEvent.put(std::move(myCompositeCandidates));
74 }
75 
77 
pat::PATCompositeCandidateProducer::useUserData_
const bool useUserData_
Definition: PATCompositeCandidateProducer.h:50
electrons_cff.bool
bool
Definition: electrons_cff.py:372
mps_fire.i
i
Definition: mps_fire.py:355
MessageLogger.h
pat::PATCompositeCandidateProducer::addResolutions_
const bool addResolutions_
Definition: PATCompositeCandidateProducer.h:56
pat::helper::EfficiencyLoader
Definition: EfficiencyLoader.h:16
pat::CompositeCandidate
Analysis-level particle class.
Definition: CompositeCandidate.h:31
edm
HLT enums.
Definition: AlignableModifier.h:19
pat::helper::EfficiencyLoader::enabled
bool enabled() const
'true' if this there is at least one efficiency configured
Definition: EfficiencyLoader.h:25
pat::PATCompositeCandidateProducer::efficiencyLoader_
pat::helper::EfficiencyLoader efficiencyLoader_
Definition: PATCompositeCandidateProducer.h:54
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
edm::Handle
Definition: AssociativeIterator.h:50
pat::helper::KinResolutionsLoader::enabled
bool enabled() const
'true' if this there is at least one efficiency configured
Definition: KinResolutionsLoader.h:27
pat::PATCompositeCandidateProducer::~PATCompositeCandidateProducer
~PATCompositeCandidateProducer() override
Definition: PATCompositeCandidateProducer.cc:40
pat::PATCompositeCandidateProducer::produce
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
Definition: PATCompositeCandidateProducer.cc:42
MakerMacros.h
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
pat::PATUserDataHelper::add
void add(ObjectType &patObject, edm::Event const &iEvent, edm::EventSetup const &iSetup)
Definition: PATUserDataHelper.h:114
pat::helper::EfficiencyLoader::newEvent
void newEvent(const edm::Event &event)
To be called for each new event, reads in the ValueMaps for efficiencies.
Definition: EfficiencyLoader.cc:21
pat::helper::KinResolutionsLoader
Definition: KinResolutionsLoader.h:18
pat::PATCompositeCandidateProducer::addEfficiencies_
const bool addEfficiencies_
Definition: PATCompositeCandidateProducer.h:53
pat::helper::KinResolutionsLoader::setResolutions
void setResolutions(pat::PATObject< T > &obj) const
Sets the efficiencies for this object, using the reference to the original objects.
Definition: KinResolutionsLoader.h:49
edm::View
Definition: CaloClusterFwd.h:14
PATCompositeCandidateProducer.h
edm::ParameterSet
Definition: ParameterSet.h:36
cand
Definition: decayParser.h:34
AddFourMomenta.h
iEvent
int iEvent
Definition: GenABIO.cc:224
edm::EventSetup
Definition: EventSetup.h:57
pat
Definition: HeavyIon.h:7
pat::helper::KinResolutionsLoader::newEvent
void newEvent(const edm::Event &event, const edm::EventSetup &setup)
To be called for each new event, reads in the EventSetup object.
Definition: KinResolutionsLoader.cc:27
pat::PATCompositeCandidateProducer::resolutionLoader_
pat::helper::KinResolutionsLoader resolutionLoader_
Definition: PATCompositeCandidateProducer.h:57
pat::PATCompositeCandidateProducer::PATCompositeCandidateProducer
PATCompositeCandidateProducer(const edm::ParameterSet &iConfig)
Definition: PATCompositeCandidateProducer.cc:19
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
pat::PATCompositeCandidateProducer
Produces the pat::CompositeCandidate.
Definition: PATCompositeCandidateProducer.h:39
pat::helper::EfficiencyLoader::setEfficiencies
void setEfficiencies(pat::PATObject< T > &obj, const R &originalRef) const
Sets the efficiencies for this object, using the reference to the original objects.
Definition: EfficiencyLoader.h:41
HLT_2018_cff.cands
cands
Definition: HLT_2018_cff.py:13762
Exception.h
edm::View::const_iterator
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
View.h
edm::Event
Definition: Event.h:73
StringObjectFunction.h
edm::InputTag
Definition: InputTag.h:15
pat::PATCompositeCandidateProducer::srcToken_
const edm::EDGetTokenT< edm::View< reco::CompositeCandidate > > srcToken_
Definition: PATCompositeCandidateProducer.h:48
pat::PATCompositeCandidateProducer::userDataHelper_
pat::PATUserDataHelper< pat::CompositeCandidate > userDataHelper_
Definition: PATCompositeCandidateProducer.h:51