52 std::vector<edm::EDGetTokenT<edm::Association<reco::GenParticleCollection> > >
genMatchTokens_;
71 : userDataHelper_(iConfig.getParameter<edm::
ParameterSet>(
"userData"), consumesCollector()) {
84 iConfig.
getParameter<std::vector<edm::InputTag> >(
"genParticleMatch"),
90 addEfficiencies_ =
iConfig.getParameter<
bool>(
"addEfficiencies");
91 if (addEfficiencies_) {
97 addResolutions_ =
iConfig.getParameter<
bool>(
"addResolutions");
98 if (addResolutions_) {
104 useUserData_ =
false;
105 if (
iConfig.exists(
"userData")) {
110 produces<std::vector<PFParticle> >();
113 PATPFParticleProducer::~PATPFParticleProducer() {}
121 std::vector<edm::Handle<edm::Association<reco::GenParticleCollection> > > genMatches(
genMatchTokens_.size());
134 std::vector<PFParticle>*
patPFParticles =
new std::vector<PFParticle>();
136 itPFParticle != pfCandidates->end();
139 unsigned int idx = itPFParticle - pfCandidates->begin();
145 for (
size_t i = 0,
n = genMatches.size();
i <
n; ++
i) {
166 patPFParticles->push_back(aPFParticle);
170 std::sort(patPFParticles->begin(), patPFParticles->end(),
pTComparator_);
173 std::unique_ptr<std::vector<PFParticle> > ptr(patPFParticles);
bool enabled() const
'true' if this there is at least one efficiency configured
Assists in assimilating all pat::UserData into pat objects.
void newEvent(const edm::Event &event)
To be called for each new event, reads in the ValueMaps for efficiencies.
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
pat::helper::KinResolutionsLoader resolutionLoader_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
std::vector< edm::EDGetTokenT< edm::Association< reco::GenParticleCollection > > > genMatchTokens_
PATPFParticleProducer(const edm::ParameterSet &iConfig)
auto vector_transform(std::vector< InputType > const &input, Function predicate) -> std::vector< typename std::remove_cv< typename std::remove_reference< decltype(predicate(input.front()))>::type >::type >
void setResolutions(pat::PATObject< T > &obj) const
Sets the efficiencies for this object, using the reference to the original objects.
bool enabled() const
'true' if this there is at least one efficiency configured
void newEvent(const edm::Event &event, const edm::EventSetup &setup)
To be called for each new event, reads in the EventSetup object.
pat::helper::EfficiencyLoader efficiencyLoader_
edm::EDGetTokenT< edm::View< reco::PFCandidate > > pfCandidateToken_
Produces pat::PFParticle's.
void addGenParticleRef(const reco::GenParticleRef &ref)
T getParameter(std::string const &) const
void setEfficiencies(pat::PATObject< T > &obj, const R &originalRef) const
Sets the efficiencies for this object, using the reference to the original objects.
Analysis-level class for reconstructed particles.
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
~PATPFParticleProducer() override
pat::PATUserDataHelper< pat::PFParticle > userDataHelper_
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
GreaterByPt< PFParticle > pTComparator_