CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
pat::PATJetProducer Class Reference

Produces pat::Jet's. More...

Inheritance diagram for pat::PATJetProducer:
edm::stream::EDProducer<>

Public Member Functions

 PATJetProducer (const edm::ParameterSet &iConfig)
 
void produce (edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
 ~PATJetProducer () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Attributes

bool addAssociatedTracks_
 
bool addBTagInfo_
 
bool addDiscriminators_
 
bool addEfficiencies_
 
bool addGenJetMatch_
 
bool addGenPartonMatch_
 
bool addJetCharge_
 
bool addJetCorrFactors_
 
bool addJetFlavourInfo_
 
bool addJetID_
 
bool addPartonJetMatch_
 
bool addResolutions_
 
bool addTagInfos_
 
GreaterByPt< CaloTowercaloPTComparator_
 
std::vector< std::string > discriminatorLabels_
 
std::vector< edm::InputTagdiscriminatorTags_
 
std::vector< edm::EDGetTokenT< reco::JetFloatAssociation::Container > > discriminatorTokens_
 
pat::helper::EfficiencyLoader efficiencyLoader_
 
bool embedCaloTowers_
 
bool embedGenJetMatch_
 
bool embedGenPartonMatch_
 
bool embedPFCandidates_
 
edm::EDGetTokenT< edm::Association< reco::GenJetCollection > > genJetToken_
 
edm::EDGetTokenT< edm::Association< reco::GenParticleCollection > > genPartonToken_
 
bool getJetMCFlavour_
 
edm::EDGetTokenT< reco::JetFloatAssociation::ContainerjetChargeToken_
 
std::vector< edm::EDGetTokenT< edm::ValueMap< JetCorrFactors > > > jetCorrFactorsTokens_
 
edm::EDGetTokenT< reco::JetFlavourInfoMatchingCollectionjetFlavourInfoToken_
 
edm::EDGetTokenT< reco::JetIDValueMapjetIDMapToken_
 
edm::EDGetTokenT< reco::JetFlavourMatchingCollectionjetPartonMapToken_
 
edm::EDGetTokenT< edm::View< reco::Jet > > jetsToken_
 
bool printWarning_
 
GreaterByPt< JetpTComparator_
 
pat::helper::KinResolutionsLoader resolutionLoader_
 
std::vector< std::string > tagInfoLabels_
 
std::vector< edm::InputTagtagInfoTags_
 
std::vector< edm::EDGetTokenT< edm::View< reco::BaseTagInfo > > > tagInfoTokens_
 
edm::EDGetTokenT< reco::JetTracksAssociation::ContainertrackAssociationToken_
 
bool useLegacyJetMCFlavour_
 
pat::PATUserDataHelper< pat::JetuserDataHelper_
 
bool useUserData_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Produces pat::Jet's.

The PATJetProducer produces analysis-level pat::Jet's starting from a collection of objects of JetType.

Author
Steven Lowette, Jeremy Andrea
Version
Id
PATJetProducer.h,v 1.26 2010/08/09 18:13:54 srappocc Exp

Definition at line 56 of file PATJetProducer.cc.

Constructor & Destructor Documentation

◆ PATJetProducer()

PATJetProducer::PATJetProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 121 of file PATJetProducer.cc.

122  : useUserData_(iConfig.exists("userData")), printWarning_(true) {
123  // initialize configurables
124  jetsToken_ = consumes<edm::View<reco::Jet>>(iConfig.getParameter<edm::InputTag>("jetSource"));
125  embedCaloTowers_ = false; // parameter is optional
126  if (iConfig.exists("embedCaloTowers")) {
127  embedCaloTowers_ = iConfig.getParameter<bool>("embedCaloTowers");
128  }
129  embedPFCandidates_ = iConfig.getParameter<bool>("embedPFCandidates");
130  getJetMCFlavour_ = iConfig.getParameter<bool>("getJetMCFlavour");
131  useLegacyJetMCFlavour_ = iConfig.getParameter<bool>("useLegacyJetMCFlavour");
132  addJetFlavourInfo_ = (useLegacyJetMCFlavour_ ? false : iConfig.getParameter<bool>("addJetFlavourInfo"));
135  consumes<reco::JetFlavourMatchingCollection>(iConfig.getParameter<edm::InputTag>("JetPartonMapSource"));
138  consumes<reco::JetFlavourInfoMatchingCollection>(iConfig.getParameter<edm::InputTag>("JetFlavourInfoSource"));
139  addGenPartonMatch_ = iConfig.getParameter<bool>("addGenPartonMatch");
140  embedGenPartonMatch_ = iConfig.getParameter<bool>("embedGenPartonMatch");
141  if (addGenPartonMatch_)
143  consumes<edm::Association<reco::GenParticleCollection>>(iConfig.getParameter<edm::InputTag>("genPartonMatch"));
144  addGenJetMatch_ = iConfig.getParameter<bool>("addGenJetMatch");
145  embedGenJetMatch_ = iConfig.getParameter<bool>("embedGenJetMatch");
146  if (addGenJetMatch_)
147  genJetToken_ =
148  consumes<edm::Association<reco::GenJetCollection>>(iConfig.getParameter<edm::InputTag>("genJetMatch"));
149  addPartonJetMatch_ = iConfig.getParameter<bool>("addPartonJetMatch");
150  // partonJetToken_ = mayConsume<reco::SomePartonJetType>(iConfig.getParameter<edm::InputTag>( "partonJetSource" ));
151  addJetCorrFactors_ = iConfig.getParameter<bool>("addJetCorrFactors");
152  if (addJetCorrFactors_) {
154  iConfig.getParameter<std::vector<edm::InputTag>>("jetCorrFactorsSource"),
155  [this](edm::InputTag const &tag) { return consumes<edm::ValueMap<JetCorrFactors>>(tag); });
156  }
157  addBTagInfo_ = iConfig.getParameter<bool>("addBTagInfo");
158  addDiscriminators_ = iConfig.getParameter<bool>("addDiscriminators");
159  discriminatorTags_ = iConfig.getParameter<std::vector<edm::InputTag>>("discriminatorSources");
161  return mayConsume<reco::JetFloatAssociation::Container>(tag);
162  });
163  addTagInfos_ = iConfig.getParameter<bool>("addTagInfos");
164  tagInfoTags_ = iConfig.getParameter<std::vector<edm::InputTag>>("tagInfoSources");
166  tagInfoTags_, [this](edm::InputTag const &tag) { return mayConsume<edm::View<reco::BaseTagInfo>>(tag); });
167  addAssociatedTracks_ = iConfig.getParameter<bool>("addAssociatedTracks");
170  consumes<reco::JetTracksAssociation::Container>(iConfig.getParameter<edm::InputTag>("trackAssociationSource"));
171  addJetCharge_ = iConfig.getParameter<bool>("addJetCharge");
172  if (addJetCharge_)
174  consumes<reco::JetFloatAssociation::Container>(iConfig.getParameter<edm::InputTag>("jetChargeSource"));
175  addJetID_ = iConfig.getParameter<bool>("addJetID");
176  if (addJetID_)
177  jetIDMapToken_ = consumes<reco::JetIDValueMap>(iConfig.getParameter<edm::InputTag>("jetIDMap"));
178  // Efficiency configurables
179  addEfficiencies_ = iConfig.getParameter<bool>("addEfficiencies");
180  if (addEfficiencies_) {
182  pat::helper::EfficiencyLoader(iConfig.getParameter<edm::ParameterSet>("efficiencies"), consumesCollector());
183  }
184  // Resolution configurables
185  addResolutions_ = iConfig.getParameter<bool>("addResolutions");
186  if (addResolutions_) {
188  }
189  if (discriminatorTags_.empty()) {
190  addDiscriminators_ = false;
191  } else {
192  for (std::vector<edm::InputTag>::const_iterator it = discriminatorTags_.begin(), ed = discriminatorTags_.end();
193  it != ed;
194  ++it) {
195  std::string label = it->label();
196  std::string::size_type pos = label.find("JetTags");
197  if ((pos != std::string::npos) && (pos != label.length() - 7)) {
198  label.erase(pos + 7); // trim a tail after "JetTags"
199  }
200  if (!it->instance().empty()) {
201  label = (label + std::string(":") + it->instance());
202  }
203  discriminatorLabels_.push_back(label);
204  }
205  }
206  if (tagInfoTags_.empty()) {
207  addTagInfos_ = false;
208  } else {
209  for (std::vector<edm::InputTag>::const_iterator it = tagInfoTags_.begin(), ed = tagInfoTags_.end(); it != ed;
210  ++it) {
211  std::string label = it->label();
212  std::string::size_type pos = label.find("TagInfos");
213  if ((pos != std::string::npos) && (pos != label.length() - 8)) {
214  label.erase(pos + 8); // trim a tail after "TagInfos"
215  }
216  tagInfoLabels_.push_back(label);
217  }
218  }
219  if (!addBTagInfo_) {
220  addDiscriminators_ = false;
221  addTagInfos_ = false;
222  }
223  // Check to see if the user wants to add user data
224  if (useUserData_) {
225  userDataHelper_ = PATUserDataHelper<Jet>(iConfig.getParameter<edm::ParameterSet>("userData"), consumesCollector());
226  }
227  // produces vector of jets
228  produces<std::vector<Jet>>();
229  produces<reco::GenJetCollection>("genJets");
230  produces<std::vector<CaloTower>>("caloTowers");
231  produces<reco::PFCandidateCollection>("pfCandidates");
232  produces<edm::OwnVector<reco::BaseTagInfo>>("tagInfos");
233 }

References addAssociatedTracks_, addBTagInfo_, addDiscriminators_, addEfficiencies_, addGenJetMatch_, addGenPartonMatch_, addJetCharge_, addJetCorrFactors_, addJetFlavourInfo_, addJetID_, addPartonJetMatch_, addResolutions_, addTagInfos_, discriminatorLabels_, discriminatorTags_, discriminatorTokens_, efficiencyLoader_, embedCaloTowers_, embedGenJetMatch_, embedGenPartonMatch_, embedPFCandidates_, edm::ParameterSet::exists(), funct::false, genJetToken_, genPartonToken_, getJetMCFlavour_, edm::ParameterSet::getParameter(), jetChargeToken_, jetCorrFactorsTokens_, jetFlavourInfoToken_, jetIDMapToken_, jetPartonMapToken_, jetsToken_, label, resolutionLoader_, AlCaHLTBitMon_QueryRunRegistry::string, makeGlobalPositionRcd_cfg::tag, tagInfoLabels_, tagInfoTags_, tagInfoTokens_, trackAssociationToken_, useLegacyJetMCFlavour_, userDataHelper_, useUserData_, and edm::vector_transform().

◆ ~PATJetProducer()

PATJetProducer::~PATJetProducer ( )
override

Definition at line 235 of file PATJetProducer.cc.

235 {}

Member Function Documentation

◆ fillDescriptions()

void PATJetProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 543 of file PATJetProducer.cc.

543  {
545  iDesc.setComment("PAT jet producer module");
546 
547  // input source
548  iDesc.add<edm::InputTag>("jetSource", edm::InputTag("no default"))->setComment("input collection");
549 
550  // embedding
551  iDesc.addOptional<bool>("embedCaloTowers", false)
552  ->setComment("embed external CaloTowers (not to be used on AOD input)");
553  iDesc.add<bool>("embedPFCandidates", true)->setComment("embed external PFCandidates");
554 
555  // MC matching configurables
556  iDesc.add<bool>("addGenPartonMatch", true)->setComment("add MC matching");
557  iDesc.add<bool>("embedGenPartonMatch", false)->setComment("embed MC matched MC information");
558  iDesc.add<edm::InputTag>("genPartonMatch", edm::InputTag())->setComment("input with MC match information");
559 
560  iDesc.add<bool>("addGenJetMatch", true)->setComment("add MC matching");
561  iDesc.add<bool>("embedGenJetMatch", false)->setComment("embed MC matched MC information");
562  iDesc.add<edm::InputTag>("genJetMatch", edm::InputTag())->setComment("input with MC match information");
563 
564  iDesc.add<bool>("addJetCharge", true);
565  iDesc.add<edm::InputTag>("jetChargeSource", edm::InputTag("patJetCharge"));
566 
567  // jet id
568  iDesc.add<bool>("addJetID", true)->setComment("Add jet ID information");
569  iDesc.add<edm::InputTag>("jetIDMap", edm::InputTag())->setComment("jet id map");
570 
571  iDesc.add<bool>("addPartonJetMatch", false);
572  iDesc.add<edm::InputTag>("partonJetSource", edm::InputTag("NOT IMPLEMENTED"));
573 
574  // track association
575  iDesc.add<bool>("addAssociatedTracks", true);
576  iDesc.add<edm::InputTag>("trackAssociationSource", edm::InputTag("ak4JTA"));
577 
578  // tag info
579  iDesc.add<bool>("addTagInfos", true);
580  std::vector<edm::InputTag> emptyVInputTags;
581  iDesc.add<std::vector<edm::InputTag>>("tagInfoSources", emptyVInputTags);
582 
583  // jet energy corrections
584  iDesc.add<bool>("addJetCorrFactors", true);
585  iDesc.add<std::vector<edm::InputTag>>("jetCorrFactorsSource", emptyVInputTags);
586 
587  // btag discriminator tags
588  iDesc.add<bool>("addBTagInfo", true);
589  iDesc.add<bool>("addDiscriminators", true);
590  iDesc.add<std::vector<edm::InputTag>>("discriminatorSources", emptyVInputTags);
591 
592  // jet flavour idetification configurables
593  iDesc.add<bool>("getJetMCFlavour", true);
594  iDesc.add<bool>("useLegacyJetMCFlavour", false);
595  iDesc.add<bool>("addJetFlavourInfo", false);
596  iDesc.add<edm::InputTag>("JetPartonMapSource", edm::InputTag("jetFlavourAssociationLegacy"));
597  iDesc.add<edm::InputTag>("JetFlavourInfoSource", edm::InputTag("jetFlavourAssociation"));
598 
600 
601  // Efficiency configurables
602  edm::ParameterSetDescription efficienciesPSet;
603  efficienciesPSet.setAllowAnything(); // TODO: the pat helper needs to implement a description.
604  iDesc.add("efficiencies", efficienciesPSet);
605  iDesc.add<bool>("addEfficiencies", false);
606 
607  // Check to see if the user wants to add user data
608  edm::ParameterSetDescription userDataPSet;
610  iDesc.addOptional("userData", userDataPSet);
611 
612  descriptions.add("PATJetProducer", iDesc);
613 }

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), edm::ParameterSetDescription::addOptional(), pat::helper::KinResolutionsLoader::fillDescription(), pat::PATUserDataHelper< ObjectType >::fillDescription(), HLT_FULL_cff::InputTag, edm::ParameterSetDescription::setAllowAnything(), and edm::ParameterSetDescription::setComment().

◆ produce()

void PATJetProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 237 of file PATJetProducer.cc.

237  {
238  // check whether dealing with MC or real data
239  if (iEvent.isRealData()) {
240  getJetMCFlavour_ = false;
241  useLegacyJetMCFlavour_ = false;
242  addJetFlavourInfo_ = false;
243  addGenPartonMatch_ = false;
244  addGenJetMatch_ = false;
245  addPartonJetMatch_ = false;
246  }
247 
248  // Get the vector of jets
250  iEvent.getByToken(jetsToken_, jets);
251 
256 
257  // for jet flavour
261  iEvent.getByToken(jetPartonMapToken_, jetFlavMatch);
263  iEvent.getByToken(jetFlavourInfoToken_, jetFlavInfoMatch);
264 
265  // Get the vector of generated particles from the event if needed
267  if (addGenPartonMatch_)
268  iEvent.getByToken(genPartonToken_, partonMatch);
269  // Get the vector of GenJets from the event if needed
271  if (addGenJetMatch_)
272  iEvent.getByToken(genJetToken_, genJetMatch);
273  /* TO BE IMPLEMENTED FOR >= 1_5_X
274  // Get the vector of PartonJets from the event if needed
275  edm::Handle<edm::View<reco::SomePartonJetType> > partonJets;
276  if (addPartonJetMatch_) iEvent.getByToken(partonJetToken_, partonJets);
277 */
278 
279  // read in the jet correction factors ValueMap
280  std::vector<edm::ValueMap<JetCorrFactors>> jetCorrs;
281  if (addJetCorrFactors_) {
282  for (size_t i = 0; i < jetCorrFactorsTokens_.size(); ++i) {
284  iEvent.getByToken(jetCorrFactorsTokens_[i], jetCorr);
285  jetCorrs.push_back(*jetCorr);
286  }
287  }
288 
289  // Get the vector of jet tags with b-tagging info
290  std::vector<edm::Handle<reco::JetFloatAssociation::Container>> jetDiscriminators;
292  jetDiscriminators.resize(discriminatorTokens_.size());
293  for (size_t i = 0; i < discriminatorTokens_.size(); ++i) {
294  iEvent.getByToken(discriminatorTokens_[i], jetDiscriminators[i]);
295  }
296  }
297  std::vector<edm::Handle<edm::View<reco::BaseTagInfo>>> jetTagInfos;
298  if (addBTagInfo_ && addTagInfos_) {
299  jetTagInfos.resize(tagInfoTokens_.size());
300  for (size_t i = 0; i < tagInfoTokens_.size(); ++i) {
301  iEvent.getByToken(tagInfoTokens_[i], jetTagInfos[i]);
302  }
303  }
304 
305  // tracks Jet Track Association
308  iEvent.getByToken(trackAssociationToken_, hTrackAss);
310  if (addJetCharge_)
311  iEvent.getByToken(jetChargeToken_, hJetChargeAss);
312 
313  // jet ID handle
315  if (addJetID_)
316  iEvent.getByToken(jetIDMapToken_, hJetIDMap);
317 
318  // loop over jets
319  auto patJets = std::make_unique<std::vector<Jet>>();
320 
321  auto genJetsOut = std::make_unique<reco::GenJetCollection>();
322  auto caloTowersOut = std::make_unique<std::vector<CaloTower>>();
323  auto pfCandidatesOut = std::make_unique<reco::PFCandidateCollection>();
324  auto tagInfosOut = std::make_unique<edm::OwnVector<reco::BaseTagInfo>>();
325 
326  edm::RefProd<reco::GenJetCollection> h_genJetsOut = iEvent.getRefBeforePut<reco::GenJetCollection>("genJets");
327  edm::RefProd<std::vector<CaloTower>> h_caloTowersOut = iEvent.getRefBeforePut<std::vector<CaloTower>>("caloTowers");
329  iEvent.getRefBeforePut<reco::PFCandidateCollection>("pfCandidates");
331  iEvent.getRefBeforePut<edm::OwnVector<reco::BaseTagInfo>>("tagInfos");
332 
333  for (edm::View<reco::Jet>::const_iterator itJet = jets->begin(); itJet != jets->end(); itJet++) {
334  // construct the Jet from the ref -> save ref to original object
335  unsigned int idx = itJet - jets->begin();
336  edm::RefToBase<reco::Jet> jetRef = jets->refAt(idx);
337  edm::Ptr<reco::Jet> jetPtr = jets->ptrAt(idx);
338  Jet ajet(jetRef);
339 
340  // add the FwdPtrs to the CaloTowers
341  if ((ajet.isCaloJet() || ajet.isJPTJet()) && embedCaloTowers_) {
342  const reco::CaloJet *cj = nullptr;
343  const reco::JPTJet *jptj = nullptr;
344  if (ajet.isCaloJet())
345  cj = dynamic_cast<const reco::CaloJet *>(jetRef.get());
346  else {
347  jptj = dynamic_cast<const reco::JPTJet *>(jetRef.get());
348  cj = dynamic_cast<const reco::CaloJet *>(jptj->getCaloJetRef().get());
349  }
351  std::vector<CaloTowerPtr> itowers = cj->getCaloConstituents();
352  for (std::vector<CaloTowerPtr>::const_iterator towBegin = itowers.begin(),
353  towEnd = itowers.end(),
354  itow = towBegin;
355  itow != towEnd;
356  ++itow) {
357  if (itow->isAvailable() && itow->isNonnull()) {
358  caloTowersOut->push_back(**itow);
359  // set the "forward" ref to the thinned collection
360  edm::Ref<std::vector<CaloTower>> caloTowerRef(h_caloTowersOut, caloTowersOut->size() - 1);
361  edm::Ptr<CaloTower> caloForwardRef(h_caloTowersOut.id(), caloTowerRef.key(), h_caloTowersOut.productGetter());
362  // set the "backward" ref to the original collection for association
363  edm::Ptr<CaloTower> caloBackRef(*itow);
364  // add to the list of FwdPtr's
365  itowersRef.push_back(pat::CaloTowerFwdPtrCollection::value_type(caloForwardRef, caloBackRef));
366  }
367  }
368  ajet.setCaloTowers(itowersRef);
369  }
370 
371  // add the FwdPtrs to the PFCandidates
372  if (ajet.isPFJet() && embedPFCandidates_) {
373  const reco::PFJet *cj = dynamic_cast<const reco::PFJet *>(jetRef.get());
374  pat::PFCandidateFwdPtrCollection iparticlesRef;
375  std::vector<reco::PFCandidatePtr> iparticles = cj->getPFConstituents();
376  for (std::vector<reco::PFCandidatePtr>::const_iterator partBegin = iparticles.begin(),
377  partEnd = iparticles.end(),
378  ipart = partBegin;
379  ipart != partEnd;
380  ++ipart) {
381  pfCandidatesOut->push_back(**ipart);
382  // set the "forward" ref to the thinned collection
383  edm::Ref<reco::PFCandidateCollection> pfCollectionRef(h_pfCandidatesOut, pfCandidatesOut->size() - 1);
384  edm::Ptr<reco::PFCandidate> pfForwardRef(
385  h_pfCandidatesOut.id(), pfCollectionRef.key(), h_pfCandidatesOut.productGetter());
386  // set the "backward" ref to the original collection for association
387  edm::Ptr<reco::PFCandidate> pfBackRef(*ipart);
388  // add to the list of FwdPtr's
389  iparticlesRef.push_back(pat::PFCandidateFwdPtrCollection::value_type(pfForwardRef, pfBackRef));
390  }
391  ajet.setPFCandidates(iparticlesRef);
392  }
393 
394  if (addJetCorrFactors_) {
395  // add additional JetCorrs to the jet
396  for (unsigned int i = 0; i < jetCorrFactorsTokens_.size(); ++i) {
397  const JetCorrFactors &jcf = jetCorrs[i][jetRef];
398  // uncomment for debugging
399  // jcf.print();
400  ajet.addJECFactors(jcf);
401  }
402  std::vector<std::string> levels = jetCorrs[0][jetRef].correctionLabels();
403  if (std::find(levels.begin(), levels.end(), "L2L3Residual") != levels.end()) {
404  ajet.initializeJEC(jetCorrs[0][jetRef].jecLevel("L2L3Residual"));
405  } else if (std::find(levels.begin(), levels.end(), "L3Absolute") != levels.end()) {
406  ajet.initializeJEC(jetCorrs[0][jetRef].jecLevel("L3Absolute"));
407  } else {
408  ajet.initializeJEC(jetCorrs[0][jetRef].jecLevel("Uncorrected"));
409  if (printWarning_) {
410  edm::LogWarning("L3Absolute not found")
411  << "L2L3Residual and L3Absolute are not part of the jetCorrFactors\n"
412  << "of module " << jetCorrs[0][jetRef].jecSet() << ". Jets will remain"
413  << " uncorrected.";
414  printWarning_ = false;
415  }
416  }
417  }
418 
419  // get the MC flavour information for this jet
421  ajet.setPartonFlavour((*jetFlavMatch)[edm::RefToBase<reco::Jet>(jetRef)].getFlavour());
422  } else if (getJetMCFlavour_ && !useLegacyJetMCFlavour_) {
423  if (addJetFlavourInfo_)
424  ajet.setJetFlavourInfo((*jetFlavInfoMatch)[edm::RefToBase<reco::Jet>(jetRef)]);
425  else {
426  ajet.setPartonFlavour((*jetFlavInfoMatch)[edm::RefToBase<reco::Jet>(jetRef)].getPartonFlavour());
427  ajet.setHadronFlavour((*jetFlavInfoMatch)[edm::RefToBase<reco::Jet>(jetRef)].getHadronFlavour());
428  }
429  }
430  // store the match to the generated partons
431  if (addGenPartonMatch_) {
432  reco::GenParticleRef parton = (*partonMatch)[jetRef];
433  if (parton.isNonnull() && parton.isAvailable()) {
434  ajet.setGenParton(parton, embedGenPartonMatch_);
435  } // leave empty if no match found
436  }
437  // store the match to the GenJets
438  if (addGenJetMatch_) {
439  reco::GenJetRef genjet = (*genJetMatch)[jetRef];
440  if (genjet.isNonnull() && genjet.isAvailable()) {
441  genJetsOut->push_back(*genjet);
442  // set the "forward" ref to the thinned collection
443  edm::Ref<reco::GenJetCollection> genForwardRef(h_genJetsOut, genJetsOut->size() - 1);
444  // set the "backward" ref to the original collection
445  const edm::Ref<reco::GenJetCollection> &genBackRef(genjet);
446  // make the FwdPtr
447  edm::FwdRef<reco::GenJetCollection> genjetFwdRef(genForwardRef, genBackRef);
448  ajet.setGenJetRef(genjetFwdRef);
449  } // leave empty if no match found
450  }
451 
452  if (efficiencyLoader_.enabled()) {
453  efficiencyLoader_.setEfficiencies(ajet, jetRef);
454  }
455 
456  // IMPORTANT: DO THIS AFTER JES CORRECTIONS
457  if (resolutionLoader_.enabled()) {
459  }
460 
461  // TO BE IMPLEMENTED FOR >=1_5_X: do the PartonJet matching
462  if (addPartonJetMatch_) {
463  }
464 
465  // add b-tag info if available & required
466  if (addBTagInfo_) {
467  if (addDiscriminators_) {
468  for (size_t k = 0; k < jetDiscriminators.size(); ++k) {
469  float value = (*jetDiscriminators[k])[jetRef];
470  ajet.addBDiscriminatorPair(std::make_pair(discriminatorLabels_[k], value));
471  }
472  }
473  if (addTagInfos_) {
474  for (size_t k = 0; k < jetTagInfos.size(); ++k) {
475  const edm::View<reco::BaseTagInfo> &taginfos = *jetTagInfos[k];
476  // This is not associative, so we have to search the jet
478  // Try first by 'same index'
479  if ((idx < taginfos.size()) && (taginfos[idx].jet() == jetRef)) {
480  match = taginfos.ptrAt(idx);
481  } else {
482  // otherwise fail back to a simple search
483  for (edm::View<reco::BaseTagInfo>::const_iterator itTI = taginfos.begin(), edTI = taginfos.end();
484  itTI != edTI;
485  ++itTI) {
486  if (itTI->jet() == jetRef) {
487  match = taginfos.ptrAt(itTI - taginfos.begin());
488  break;
489  }
490  }
491  }
492  if (match.isNonnull()) {
493  tagInfosOut->push_back(match->clone());
494  // set the "forward" ptr to the thinned collection
495  edm::Ptr<reco::BaseTagInfo> tagInfoForwardPtr(
496  h_tagInfosOut.id(), &tagInfosOut->back(), tagInfosOut->size() - 1);
497  // set the "backward" ptr to the original collection for association
498  const edm::Ptr<reco::BaseTagInfo> &tagInfoBackPtr(match);
499  // make FwdPtr
500  TagInfoFwdPtrCollection::value_type tagInfoFwdPtr(tagInfoForwardPtr, tagInfoBackPtr);
501  ajet.addTagInfo(tagInfoLabels_[k], tagInfoFwdPtr);
502  }
503  }
504  }
505  }
506 
508  ajet.setAssociatedTracks((*hTrackAss)[jetRef]);
509 
510  if (addJetCharge_)
511  ajet.setJetCharge((*hJetChargeAss)[jetRef]);
512 
513  // add jet ID for calo jets
514  if (addJetID_ && ajet.isCaloJet()) {
515  reco::JetID jetId = (*hJetIDMap)[jetRef];
516  ajet.setJetID(jetId);
517  }
518  // add jet ID jpt jets
519  else if (addJetID_ && ajet.isJPTJet()) {
520  const reco::JPTJet *jptj = dynamic_cast<const reco::JPTJet *>(jetRef.get());
521  reco::JetID jetId = (*hJetIDMap)[jptj->getCaloJetRef()];
522  ajet.setJetID(jetId);
523  }
524  if (useUserData_) {
525  userDataHelper_.add(ajet, iEvent, iSetup);
526  }
527  patJets->push_back(ajet);
528  }
529 
530  // sort jets in pt
531  std::sort(patJets->begin(), patJets->end(), pTComparator_);
532 
533  // put genEvt in Event
534  iEvent.put(std::move(patJets));
535 
536  iEvent.put(std::move(genJetsOut), "genJets");
537  iEvent.put(std::move(caloTowersOut), "caloTowers");
538  iEvent.put(std::move(pfCandidatesOut), "pfCandidates");
539  iEvent.put(std::move(tagInfosOut), "tagInfos");
540 }

References pat::PATUserDataHelper< ObjectType >::add(), addAssociatedTracks_, pat::Jet::addBDiscriminatorPair(), addBTagInfo_, addDiscriminators_, addGenJetMatch_, addGenPartonMatch_, pat::Jet::addJECFactors(), addJetCharge_, addJetCorrFactors_, addJetFlavourInfo_, addJetID_, addPartonJetMatch_, pat::Jet::addTagInfo(), addTagInfos_, edm::View< T >::begin(), discriminatorLabels_, discriminatorTokens_, efficiencyLoader_, embedCaloTowers_, embedGenPartonMatch_, embedPFCandidates_, pat::helper::EfficiencyLoader::enabled(), pat::helper::KinResolutionsLoader::enabled(), edm::View< T >::end(), spr::find(), jetProducer_cfi::genJetMatch, genJetToken_, genPartonToken_, edm::RefToBase< T >::get(), reco::CaloJet::getCaloConstituents(), reco::JPTJet::getCaloJetRef(), getJetMCFlavour_, reco::PFJet::getPFConstituents(), mps_fire::i, heavyIonCSV_trainingSettings::idx, iEvent, pat::Jet::initializeJEC(), edm::Ref< C, T, F >::isAvailable(), pat::Jet::isCaloJet(), pat::Jet::isJPTJet(), edm::Ref< C, T, F >::isNonnull(), pat::Jet::isPFJet(), metsig::jet, jetChargeToken_, jetCorrFactorsTokens_, jetFlavourInfoToken_, PhotonMonitor_cff::jetId, jetIDMapToken_, jetPartonMapToken_, singleTopDQM_cfi::jets, jetsToken_, dqmdumpme::k, jets_cff::levels, match(), eostools::move(), pat::helper::EfficiencyLoader::newEvent(), pat::helper::KinResolutionsLoader::newEvent(), hemisphereProducer_cfi::patJets, printWarning_, pTComparator_, edm::View< T >::ptrAt(), resolutionLoader_, pat::Jet::setAssociatedTracks(), pat::Jet::setCaloTowers(), pat::helper::EfficiencyLoader::setEfficiencies(), pat::Jet::setGenJetRef(), pat::Jet::setGenParton(), pat::Jet::setHadronFlavour(), pat::Jet::setJetCharge(), pat::Jet::setJetFlavourInfo(), pat::Jet::setJetID(), pat::Jet::setPartonFlavour(), pat::Jet::setPFCandidates(), pat::helper::KinResolutionsLoader::setResolutions(), edm::View< T >::size(), jetUpdater_cfi::sort, tagInfoLabels_, tagInfoTokens_, trackAssociationToken_, useLegacyJetMCFlavour_, userDataHelper_, and useUserData_.

Member Data Documentation

◆ addAssociatedTracks_

bool pat::PATJetProducer::addAssociatedTracks_
private

Definition at line 95 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ addBTagInfo_

bool pat::PATJetProducer::addBTagInfo_
private

Definition at line 86 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ addDiscriminators_

bool pat::PATJetProducer::addDiscriminators_
private

Definition at line 87 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ addEfficiencies_

bool pat::PATJetProducer::addEfficiencies_
private

Definition at line 105 of file PATJetProducer.cc.

Referenced by PATJetProducer().

◆ addGenJetMatch_

bool pat::PATJetProducer::addGenJetMatch_
private

Definition at line 78 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ addGenPartonMatch_

bool pat::PATJetProducer::addGenPartonMatch_
private

Definition at line 75 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ addJetCharge_

bool pat::PATJetProducer::addJetCharge_
private

Definition at line 97 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ addJetCorrFactors_

bool pat::PATJetProducer::addJetCorrFactors_
private

Definition at line 83 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ addJetFlavourInfo_

bool pat::PATJetProducer::addJetFlavourInfo_
private

Definition at line 72 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ addJetID_

bool pat::PATJetProducer::addJetID_
private

Definition at line 99 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ addPartonJetMatch_

bool pat::PATJetProducer::addPartonJetMatch_
private

Definition at line 81 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ addResolutions_

bool pat::PATJetProducer::addResolutions_
private

Definition at line 108 of file PATJetProducer.cc.

Referenced by PATJetProducer().

◆ addTagInfos_

bool pat::PATJetProducer::addTagInfos_
private

Definition at line 91 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ caloPTComparator_

GreaterByPt<CaloTower> pat::PATJetProducer::caloPTComparator_
private

Definition at line 103 of file PATJetProducer.cc.

◆ discriminatorLabels_

std::vector<std::string> pat::PATJetProducer::discriminatorLabels_
private

Definition at line 90 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ discriminatorTags_

std::vector<edm::InputTag> pat::PATJetProducer::discriminatorTags_
private

Definition at line 88 of file PATJetProducer.cc.

Referenced by PATJetProducer().

◆ discriminatorTokens_

std::vector<edm::EDGetTokenT<reco::JetFloatAssociation::Container> > pat::PATJetProducer::discriminatorTokens_
private

Definition at line 89 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ efficiencyLoader_

pat::helper::EfficiencyLoader pat::PATJetProducer::efficiencyLoader_
private

Definition at line 106 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ embedCaloTowers_

bool pat::PATJetProducer::embedCaloTowers_
private

Definition at line 68 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ embedGenJetMatch_

bool pat::PATJetProducer::embedGenJetMatch_
private

Definition at line 79 of file PATJetProducer.cc.

Referenced by PATJetProducer().

◆ embedGenPartonMatch_

bool pat::PATJetProducer::embedGenPartonMatch_
private

Definition at line 76 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ embedPFCandidates_

bool pat::PATJetProducer::embedPFCandidates_
private

Definition at line 69 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ genJetToken_

edm::EDGetTokenT<edm::Association<reco::GenJetCollection> > pat::PATJetProducer::genJetToken_
private

Definition at line 80 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ genPartonToken_

edm::EDGetTokenT<edm::Association<reco::GenParticleCollection> > pat::PATJetProducer::genPartonToken_
private

Definition at line 77 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ getJetMCFlavour_

bool pat::PATJetProducer::getJetMCFlavour_
private

Definition at line 70 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ jetChargeToken_

edm::EDGetTokenT<reco::JetFloatAssociation::Container> pat::PATJetProducer::jetChargeToken_
private

Definition at line 98 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ jetCorrFactorsTokens_

std::vector<edm::EDGetTokenT<edm::ValueMap<JetCorrFactors> > > pat::PATJetProducer::jetCorrFactorsTokens_
private

Definition at line 84 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ jetFlavourInfoToken_

edm::EDGetTokenT<reco::JetFlavourInfoMatchingCollection> pat::PATJetProducer::jetFlavourInfoToken_
private

Definition at line 74 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ jetIDMapToken_

edm::EDGetTokenT<reco::JetIDValueMap> pat::PATJetProducer::jetIDMapToken_
private

Definition at line 100 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ jetPartonMapToken_

edm::EDGetTokenT<reco::JetFlavourMatchingCollection> pat::PATJetProducer::jetPartonMapToken_
private

Definition at line 73 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ jetsToken_

edm::EDGetTokenT<edm::View<reco::Jet> > pat::PATJetProducer::jetsToken_
private

Definition at line 67 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ printWarning_

bool pat::PATJetProducer::printWarning_
private

Definition at line 114 of file PATJetProducer.cc.

Referenced by produce().

◆ pTComparator_

GreaterByPt<Jet> pat::PATJetProducer::pTComparator_
private

Definition at line 102 of file PATJetProducer.cc.

Referenced by produce().

◆ resolutionLoader_

pat::helper::KinResolutionsLoader pat::PATJetProducer::resolutionLoader_
private

Definition at line 109 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ tagInfoLabels_

std::vector<std::string> pat::PATJetProducer::tagInfoLabels_
private

Definition at line 94 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ tagInfoTags_

std::vector<edm::InputTag> pat::PATJetProducer::tagInfoTags_
private

Definition at line 92 of file PATJetProducer.cc.

Referenced by PATJetProducer().

◆ tagInfoTokens_

std::vector<edm::EDGetTokenT<edm::View<reco::BaseTagInfo> > > pat::PATJetProducer::tagInfoTokens_
private

Definition at line 93 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ trackAssociationToken_

edm::EDGetTokenT<reco::JetTracksAssociation::Container> pat::PATJetProducer::trackAssociationToken_
private

Definition at line 96 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ useLegacyJetMCFlavour_

bool pat::PATJetProducer::useLegacyJetMCFlavour_
private

Definition at line 71 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ userDataHelper_

pat::PATUserDataHelper<pat::Jet> pat::PATJetProducer::userDataHelper_
private

Definition at line 112 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

◆ useUserData_

bool pat::PATJetProducer::useUserData_
private

Definition at line 111 of file PATJetProducer.cc.

Referenced by PATJetProducer(), and produce().

edm::RefProd
Definition: EDProductfwd.h:25
pat::PATJetProducer::discriminatorTags_
std::vector< edm::InputTag > discriminatorTags_
Definition: PATJetProducer.cc:88
reco::JPTJet
Jets made from CaloJets corrected for ZSP and tracks.
Definition: JPTJet.h:28
pat::PATJetProducer::printWarning_
bool printWarning_
Definition: PATJetProducer.cc:114
pat::PFCandidateFwdPtrCollection
std::vector< edm::FwdPtr< reco::PFCandidate > > PFCandidateFwdPtrCollection
Definition: Jet.h:73
reco::JetID
Jet ID object.
Definition: JetID.h:16
reco::CaloJet
Jets made from CaloTowers.
Definition: CaloJet.h:27
edm::View::begin
const_iterator begin() const
pat::PATJetProducer::addGenJetMatch_
bool addGenJetMatch_
Definition: PATJetProducer.cc:78
pat::PATUserDataHelper
Assists in assimilating all pat::UserData into pat objects.
Definition: PATUserDataHelper.h:49
mps_fire.i
i
Definition: mps_fire.py:428
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
funct::false
false
Definition: Factorize.h:29
pat::PATJetProducer::addJetFlavourInfo_
bool addJetFlavourInfo_
Definition: PATJetProducer.cc:72
pat::PATJetProducer::genPartonToken_
edm::EDGetTokenT< edm::Association< reco::GenParticleCollection > > genPartonToken_
Definition: PATJetProducer.cc:77
edm::FwdRef< reco::GenJetCollection >
pat::PATJetProducer::jetIDMapToken_
edm::EDGetTokenT< reco::JetIDValueMap > jetIDMapToken_
Definition: PATJetProducer.cc:100
reco::PFJet::getPFConstituents
virtual std::vector< reco::PFCandidatePtr > getPFConstituents() const
get all constituents
Definition: PFJet.cc:41
pat::PATJetProducer::addBTagInfo_
bool addBTagInfo_
Definition: PATJetProducer.cc:86
reco::GenJetCollection
std::vector< GenJet > GenJetCollection
collection of GenJet objects
Definition: GenJetCollection.h:14
pat::helper::EfficiencyLoader
Definition: EfficiencyLoader.h:16
edm::Ref::isAvailable
bool isAvailable() const
Definition: Ref.h:537
pat::PATUserDataHelper::fillDescription
static void fillDescription(edm::ParameterSetDescription &iDesc)
Definition: PATUserDataHelper.h:135
pos
Definition: PixelAliasList.h:18
pat::PATJetProducer::addEfficiencies_
bool addEfficiencies_
Definition: PATJetProducer.cc:105
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
pat::PATJetProducer::addResolutions_
bool addResolutions_
Definition: PATJetProducer.cc:108
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
pat::helper::EfficiencyLoader::enabled
bool enabled() const
'true' if this there is at least one efficiency configured
Definition: EfficiencyLoader.h:25
pat::PATJetProducer::discriminatorTokens_
std::vector< edm::EDGetTokenT< reco::JetFloatAssociation::Container > > discriminatorTokens_
Definition: PATJetProducer.cc:89
pat::CaloTowerFwdPtrCollection
std::vector< edm::FwdPtr< CaloTower > > CaloTowerFwdPtrCollection
Definition: Jet.h:74
singleTopDQM_cfi.jets
jets
Definition: singleTopDQM_cfi.py:42
pat::PATJetProducer::embedPFCandidates_
bool embedPFCandidates_
Definition: PATJetProducer.cc:69
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
edm::Handle
Definition: AssociativeIterator.h:50
edm::ParameterSetDescription::addOptional
ParameterDescriptionBase * addOptional(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:105
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
pat::PATJetProducer::efficiencyLoader_
pat::helper::EfficiencyLoader efficiencyLoader_
Definition: PATJetProducer.cc:106
pat::helper::KinResolutionsLoader::enabled
bool enabled() const
'true' if this there is at least one efficiency configured
Definition: KinResolutionsLoader.h:27
edm::Ref
Definition: AssociativeIterator.h:58
pat::PATJetProducer::embedGenPartonMatch_
bool embedGenPartonMatch_
Definition: PATJetProducer.cc:76
heavyIonCSV_trainingSettings.idx
idx
Definition: heavyIonCSV_trainingSettings.py:5
pat::PATJetProducer::embedGenJetMatch_
bool embedGenJetMatch_
Definition: PATJetProducer.cc:79
pat::JetCorrFactors
Class for the storage of jet correction factors.
Definition: JetCorrFactors.h:37
pat::PATJetProducer::discriminatorLabels_
std::vector< std::string > discriminatorLabels_
Definition: PATJetProducer.cc:90
trigger::size_type
uint16_t size_type
Definition: TriggerTypeDefs.h:18
pat::PATJetProducer::jetPartonMapToken_
edm::EDGetTokenT< reco::JetFlavourMatchingCollection > jetPartonMapToken_
Definition: PATJetProducer.cc:73
Jet
Definition: Jet.py:1
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
pat::PATJetProducer::addJetCorrFactors_
bool addJetCorrFactors_
Definition: PATJetProducer.cc:83
pat::PATJetProducer::userDataHelper_
pat::PATUserDataHelper< pat::Jet > userDataHelper_
Definition: PATJetProducer.cc:112
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
reco::JPTJet::getCaloJetRef
const edm::RefToBase< reco::Jet > & getCaloJetRef() const
Definition: JPTJet.h:133
pat::helper::KinResolutionsLoader
Definition: KinResolutionsLoader.h:18
pat::PATJetProducer::addDiscriminators_
bool addDiscriminators_
Definition: PATJetProducer.cc:87
pat::PATJetProducer::addPartonJetMatch_
bool addPartonJetMatch_
Definition: PATJetProducer.cc:81
pat::PATJetProducer::tagInfoTags_
std::vector< edm::InputTag > tagInfoTags_
Definition: PATJetProducer.cc:92
dqmdumpme.k
k
Definition: dqmdumpme.py:60
edm::RefToBase::get
value_type const * get() const
Definition: RefToBase.h:209
pat::PATJetProducer::useUserData_
bool useUserData_
Definition: PATJetProducer.cc:111
edm::vector_transform
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 >
Definition: transform.h:11
edm::View::size
size_type size() const
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::ParameterSet::exists
bool exists(std::string const &parameterName) const
checks if a parameter exists
Definition: ParameterSet.cc:681
pat::PATJetProducer::tagInfoTokens_
std::vector< edm::EDGetTokenT< edm::View< reco::BaseTagInfo > > > tagInfoTokens_
Definition: PATJetProducer.cc:93
edm::View
Definition: CaloClusterFwd.h:14
pat::PATJetProducer::addJetID_
bool addJetID_
Definition: PATJetProducer.cc:99
edm::ParameterSet
Definition: ParameterSet.h:47
edm::ParameterSetDescription::setComment
void setComment(std::string const &value)
Definition: ParameterSetDescription.cc:33
jetProducer_cfi.genJetMatch
genJetMatch
switch on/off embedding of matched genJet's
Definition: jetProducer_cfi.py:85
pat::PATJetProducer::tagInfoLabels_
std::vector< std::string > tagInfoLabels_
Definition: PATJetProducer.cc:94
pat::PATJetProducer::jetFlavourInfoToken_
edm::EDGetTokenT< reco::JetFlavourInfoMatchingCollection > jetFlavourInfoToken_
Definition: PATJetProducer.cc:74
makeGlobalPositionRcd_cfg.tag
tag
Definition: makeGlobalPositionRcd_cfg.py:6
pat::helper::KinResolutionsLoader::fillDescription
static void fillDescription(edm::ParameterSetDescription &iDesc)
Method for documentation and validation of PSet.
Definition: KinResolutionsLoader.cc:34
jetUpdater_cfi.sort
sort
Definition: jetUpdater_cfi.py:29
edm::Ref::isNonnull
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
pat::PATJetProducer::addGenPartonMatch_
bool addGenPartonMatch_
Definition: PATJetProducer.cc:75
match
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
iEvent
int iEvent
Definition: GenABIO.cc:224
pat::PATJetProducer::genJetToken_
edm::EDGetTokenT< edm::Association< reco::GenJetCollection > > genJetToken_
Definition: PATJetProducer.cc:80
reco::CaloJet::getCaloConstituents
virtual std::vector< CaloTowerPtr > getCaloConstituents() const
get all constituents
Definition: CaloJet.cc:78
value
Definition: value.py:1
reco::JetExtendedAssociation::value_type
Container::value_type value_type
Definition: JetExtendedAssociation.h:30
edm::ParameterSetDescription::setAllowAnything
void setAllowAnything()
allow any parameter label/value pairs
Definition: ParameterSetDescription.cc:37
hemisphereProducer_cfi.patJets
patJets
Definition: hemisphereProducer_cfi.py:5
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
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
pat::PATJetProducer::jetChargeToken_
edm::EDGetTokenT< reco::JetFloatAssociation::Container > jetChargeToken_
Definition: PATJetProducer.cc:98
edm::Ptr< reco::Jet >
pat::PATJetProducer::getJetMCFlavour_
bool getJetMCFlavour_
Definition: PATJetProducer.cc:70
eostools.move
def move(src, dest)
Definition: eostools.py:511
pat::PATJetProducer::addTagInfos_
bool addTagInfos_
Definition: PATJetProducer.cc:91
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
pat::PATJetProducer::pTComparator_
GreaterByPt< Jet > pTComparator_
Definition: PATJetProducer.cc:102
metsig::jet
Definition: SignAlgoResolutions.h:47
pat::PATJetProducer::jetsToken_
edm::EDGetTokenT< edm::View< reco::Jet > > jetsToken_
Definition: PATJetProducer.cc:67
reco::PFCandidateCollection
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
Definition: PFCandidateFwd.h:12
pat::PATJetProducer::useLegacyJetMCFlavour_
bool useLegacyJetMCFlavour_
Definition: PATJetProducer.cc:71
pat::PATJetProducer::addAssociatedTracks_
bool addAssociatedTracks_
Definition: PATJetProducer.cc:95
reco::PFJet
Jets made from PFObjects.
Definition: PFJet.h:20
pat::PATJetProducer::resolutionLoader_
pat::helper::KinResolutionsLoader resolutionLoader_
Definition: PATJetProducer.cc:109
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::RefToBase< reco::Jet >
pat::PATJetProducer::addJetCharge_
bool addJetCharge_
Definition: PATJetProducer.cc:97
edm::View::const_iterator
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:86
pat::PATJetProducer::jetCorrFactorsTokens_
std::vector< edm::EDGetTokenT< edm::ValueMap< JetCorrFactors > > > jetCorrFactorsTokens_
Definition: PATJetProducer.cc:84
edm::View::end
const_iterator end() const
PhotonMonitor_cff.jetId
jetId
Definition: PhotonMonitor_cff.py:70
pat::PATJetProducer::embedCaloTowers_
bool embedCaloTowers_
Definition: PATJetProducer.cc:68
edm::View::ptrAt
Ptr< value_type > ptrAt(size_type i) const
edm::InputTag
Definition: InputTag.h:15
label
const char * label
Definition: PFTauDecayModeTools.cc:11
pat::PATJetProducer::trackAssociationToken_
edm::EDGetTokenT< reco::JetTracksAssociation::Container > trackAssociationToken_
Definition: PATJetProducer.cc:96
jets_cff.levels
levels
Definition: jets_cff.py:21
edm::OwnVector< reco::BaseTagInfo >