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...

#include "PhysicsTools/PatAlgos/interface/PATJetProducer.h"

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
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

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<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache 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 43 of file PATJetProducer.h.

Constructor & Destructor Documentation

◆ PATJetProducer()

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

Definition at line 40 of file PATJetProducer.cc.

41  : useUserData_(iConfig.exists("userData")), printWarning_(true) {
42  // initialize configurables
43  jetsToken_ = consumes<edm::View<reco::Jet>>(iConfig.getParameter<edm::InputTag>("jetSource"));
44  embedCaloTowers_ = false; // parameter is optional
45  if (iConfig.exists("embedCaloTowers")) {
46  embedCaloTowers_ = iConfig.getParameter<bool>("embedCaloTowers");
47  }
48  embedPFCandidates_ = iConfig.getParameter<bool>("embedPFCandidates");
49  getJetMCFlavour_ = iConfig.getParameter<bool>("getJetMCFlavour");
50  useLegacyJetMCFlavour_ = iConfig.getParameter<bool>("useLegacyJetMCFlavour");
51  addJetFlavourInfo_ = (useLegacyJetMCFlavour_ ? false : iConfig.getParameter<bool>("addJetFlavourInfo"));
54  consumes<reco::JetFlavourMatchingCollection>(iConfig.getParameter<edm::InputTag>("JetPartonMapSource"));
57  consumes<reco::JetFlavourInfoMatchingCollection>(iConfig.getParameter<edm::InputTag>("JetFlavourInfoSource"));
58  addGenPartonMatch_ = iConfig.getParameter<bool>("addGenPartonMatch");
59  embedGenPartonMatch_ = iConfig.getParameter<bool>("embedGenPartonMatch");
62  consumes<edm::Association<reco::GenParticleCollection>>(iConfig.getParameter<edm::InputTag>("genPartonMatch"));
63  addGenJetMatch_ = iConfig.getParameter<bool>("addGenJetMatch");
64  embedGenJetMatch_ = iConfig.getParameter<bool>("embedGenJetMatch");
65  if (addGenJetMatch_)
66  genJetToken_ =
67  consumes<edm::Association<reco::GenJetCollection>>(iConfig.getParameter<edm::InputTag>("genJetMatch"));
68  addPartonJetMatch_ = iConfig.getParameter<bool>("addPartonJetMatch");
69  // partonJetToken_ = mayConsume<reco::SomePartonJetType>(iConfig.getParameter<edm::InputTag>( "partonJetSource" ));
70  addJetCorrFactors_ = iConfig.getParameter<bool>("addJetCorrFactors");
71  if (addJetCorrFactors_) {
73  iConfig.getParameter<std::vector<edm::InputTag>>("jetCorrFactorsSource"),
74  [this](edm::InputTag const &tag) { return consumes<edm::ValueMap<JetCorrFactors>>(tag); });
75  }
76  addBTagInfo_ = iConfig.getParameter<bool>("addBTagInfo");
77  addDiscriminators_ = iConfig.getParameter<bool>("addDiscriminators");
78  discriminatorTags_ = iConfig.getParameter<std::vector<edm::InputTag>>("discriminatorSources");
80  return mayConsume<reco::JetFloatAssociation::Container>(tag);
81  });
82  addTagInfos_ = iConfig.getParameter<bool>("addTagInfos");
83  tagInfoTags_ = iConfig.getParameter<std::vector<edm::InputTag>>("tagInfoSources");
85  tagInfoTags_, [this](edm::InputTag const &tag) { return mayConsume<edm::View<reco::BaseTagInfo>>(tag); });
86  addAssociatedTracks_ = iConfig.getParameter<bool>("addAssociatedTracks");
89  consumes<reco::JetTracksAssociation::Container>(iConfig.getParameter<edm::InputTag>("trackAssociationSource"));
90  addJetCharge_ = iConfig.getParameter<bool>("addJetCharge");
91  if (addJetCharge_)
93  consumes<reco::JetFloatAssociation::Container>(iConfig.getParameter<edm::InputTag>("jetChargeSource"));
94  addJetID_ = iConfig.getParameter<bool>("addJetID");
95  if (addJetID_)
96  jetIDMapToken_ = consumes<reco::JetIDValueMap>(iConfig.getParameter<edm::InputTag>("jetIDMap"));
97  // Efficiency configurables
98  addEfficiencies_ = iConfig.getParameter<bool>("addEfficiencies");
99  if (addEfficiencies_) {
101  pat::helper::EfficiencyLoader(iConfig.getParameter<edm::ParameterSet>("efficiencies"), consumesCollector());
102  }
103  // Resolution configurables
104  addResolutions_ = iConfig.getParameter<bool>("addResolutions");
105  if (addResolutions_) {
107  }
108  if (discriminatorTags_.empty()) {
109  addDiscriminators_ = false;
110  } else {
111  for (std::vector<edm::InputTag>::const_iterator it = discriminatorTags_.begin(), ed = discriminatorTags_.end();
112  it != ed;
113  ++it) {
114  std::string label = it->label();
115  std::string::size_type pos = label.find("JetTags");
116  if ((pos != std::string::npos) && (pos != label.length() - 7)) {
117  label.erase(pos + 7); // trim a tail after "JetTags"
118  }
119  if (!it->instance().empty()) {
120  label = (label + std::string(":") + it->instance());
121  }
122  discriminatorLabels_.push_back(label);
123  }
124  }
125  if (tagInfoTags_.empty()) {
126  addTagInfos_ = false;
127  } else {
128  for (std::vector<edm::InputTag>::const_iterator it = tagInfoTags_.begin(), ed = tagInfoTags_.end(); it != ed;
129  ++it) {
130  std::string label = it->label();
131  std::string::size_type pos = label.find("TagInfos");
132  if ((pos != std::string::npos) && (pos != label.length() - 8)) {
133  label.erase(pos + 8); // trim a tail after "TagInfos"
134  }
135  tagInfoLabels_.push_back(label);
136  }
137  }
138  if (!addBTagInfo_) {
139  addDiscriminators_ = false;
140  addTagInfos_ = false;
141  }
142  // Check to see if the user wants to add user data
143  if (useUserData_) {
144  userDataHelper_ = PATUserDataHelper<Jet>(iConfig.getParameter<edm::ParameterSet>("userData"), consumesCollector());
145  }
146  // produces vector of jets
147  produces<std::vector<Jet>>();
148  produces<reco::GenJetCollection>("genJets");
149  produces<std::vector<CaloTower>>("caloTowers");
150  produces<reco::PFCandidateCollection>("pfCandidates");
151  produces<edm::OwnVector<reco::BaseTagInfo>>("tagInfos");
152 }

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, GlobalPosition_Frontier_DevDB_cff::tag, tagInfoLabels_, tagInfoTags_, tagInfoTokens_, trackAssociationToken_, useLegacyJetMCFlavour_, userDataHelper_, useUserData_, and edm::vector_transform().

◆ ~PATJetProducer()

PATJetProducer::~PATJetProducer ( )
override

Definition at line 154 of file PATJetProducer.cc.

154 {}

Member Function Documentation

◆ fillDescriptions()

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

Definition at line 462 of file PATJetProducer.cc.

462  {
464  iDesc.setComment("PAT jet producer module");
465 
466  // input source
467  iDesc.add<edm::InputTag>("jetSource", edm::InputTag("no default"))->setComment("input collection");
468 
469  // embedding
470  iDesc.addOptional<bool>("embedCaloTowers", false)
471  ->setComment("embed external CaloTowers (not to be used on AOD input)");
472  iDesc.add<bool>("embedPFCandidates", true)->setComment("embed external PFCandidates");
473 
474  // MC matching configurables
475  iDesc.add<bool>("addGenPartonMatch", true)->setComment("add MC matching");
476  iDesc.add<bool>("embedGenPartonMatch", false)->setComment("embed MC matched MC information");
477  iDesc.add<edm::InputTag>("genPartonMatch", edm::InputTag())->setComment("input with MC match information");
478 
479  iDesc.add<bool>("addGenJetMatch", true)->setComment("add MC matching");
480  iDesc.add<bool>("embedGenJetMatch", false)->setComment("embed MC matched MC information");
481  iDesc.add<edm::InputTag>("genJetMatch", edm::InputTag())->setComment("input with MC match information");
482 
483  iDesc.add<bool>("addJetCharge", true);
484  iDesc.add<edm::InputTag>("jetChargeSource", edm::InputTag("patJetCharge"));
485 
486  // jet id
487  iDesc.add<bool>("addJetID", true)->setComment("Add jet ID information");
488  iDesc.add<edm::InputTag>("jetIDMap", edm::InputTag())->setComment("jet id map");
489 
490  iDesc.add<bool>("addPartonJetMatch", false);
491  iDesc.add<edm::InputTag>("partonJetSource", edm::InputTag("NOT IMPLEMENTED"));
492 
493  // track association
494  iDesc.add<bool>("addAssociatedTracks", true);
495  iDesc.add<edm::InputTag>("trackAssociationSource", edm::InputTag("ak4JTA"));
496 
497  // tag info
498  iDesc.add<bool>("addTagInfos", true);
499  std::vector<edm::InputTag> emptyVInputTags;
500  iDesc.add<std::vector<edm::InputTag>>("tagInfoSources", emptyVInputTags);
501 
502  // jet energy corrections
503  iDesc.add<bool>("addJetCorrFactors", true);
504  iDesc.add<std::vector<edm::InputTag>>("jetCorrFactorsSource", emptyVInputTags);
505 
506  // btag discriminator tags
507  iDesc.add<bool>("addBTagInfo", true);
508  iDesc.add<bool>("addDiscriminators", true);
509  iDesc.add<std::vector<edm::InputTag>>("discriminatorSources", emptyVInputTags);
510 
511  // jet flavour idetification configurables
512  iDesc.add<bool>("getJetMCFlavour", true);
513  iDesc.add<bool>("useLegacyJetMCFlavour", false);
514  iDesc.add<bool>("addJetFlavourInfo", false);
515  iDesc.add<edm::InputTag>("JetPartonMapSource", edm::InputTag("jetFlavourAssociationLegacy"));
516  iDesc.add<edm::InputTag>("JetFlavourInfoSource", edm::InputTag("jetFlavourAssociation"));
517 
519 
520  // Efficiency configurables
521  edm::ParameterSetDescription efficienciesPSet;
522  efficienciesPSet.setAllowAnything(); // TODO: the pat helper needs to implement a description.
523  iDesc.add("efficiencies", efficienciesPSet);
524  iDesc.add<bool>("addEfficiencies", false);
525 
526  // Check to see if the user wants to add user data
527  edm::ParameterSetDescription userDataPSet;
529  iDesc.addOptional("userData", userDataPSet);
530 
531  descriptions.add("PATJetProducer", iDesc);
532 }

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

◆ produce()

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

Definition at line 156 of file PATJetProducer.cc.

156  {
157  // check whether dealing with MC or real data
158  if (iEvent.isRealData()) {
159  getJetMCFlavour_ = false;
160  useLegacyJetMCFlavour_ = false;
161  addJetFlavourInfo_ = false;
162  addGenPartonMatch_ = false;
163  addGenJetMatch_ = false;
164  addPartonJetMatch_ = false;
165  }
166 
167  // Get the vector of jets
169  iEvent.getByToken(jetsToken_, jets);
170 
175 
176  // for jet flavour
180  iEvent.getByToken(jetPartonMapToken_, jetFlavMatch);
182  iEvent.getByToken(jetFlavourInfoToken_, jetFlavInfoMatch);
183 
184  // Get the vector of generated particles from the event if needed
186  if (addGenPartonMatch_)
187  iEvent.getByToken(genPartonToken_, partonMatch);
188  // Get the vector of GenJets from the event if needed
190  if (addGenJetMatch_)
191  iEvent.getByToken(genJetToken_, genJetMatch);
192  /* TO BE IMPLEMENTED FOR >= 1_5_X
193  // Get the vector of PartonJets from the event if needed
194  edm::Handle<edm::View<reco::SomePartonJetType> > partonJets;
195  if (addPartonJetMatch_) iEvent.getByToken(partonJetToken_, partonJets);
196 */
197 
198  // read in the jet correction factors ValueMap
199  std::vector<edm::ValueMap<JetCorrFactors>> jetCorrs;
200  if (addJetCorrFactors_) {
201  for (size_t i = 0; i < jetCorrFactorsTokens_.size(); ++i) {
203  iEvent.getByToken(jetCorrFactorsTokens_[i], jetCorr);
204  jetCorrs.push_back(*jetCorr);
205  }
206  }
207 
208  // Get the vector of jet tags with b-tagging info
209  std::vector<edm::Handle<reco::JetFloatAssociation::Container>> jetDiscriminators;
211  jetDiscriminators.resize(discriminatorTokens_.size());
212  for (size_t i = 0; i < discriminatorTokens_.size(); ++i) {
213  iEvent.getByToken(discriminatorTokens_[i], jetDiscriminators[i]);
214  }
215  }
216  std::vector<edm::Handle<edm::View<reco::BaseTagInfo>>> jetTagInfos;
217  if (addBTagInfo_ && addTagInfos_) {
218  jetTagInfos.resize(tagInfoTokens_.size());
219  for (size_t i = 0; i < tagInfoTokens_.size(); ++i) {
220  iEvent.getByToken(tagInfoTokens_[i], jetTagInfos[i]);
221  }
222  }
223 
224  // tracks Jet Track Association
227  iEvent.getByToken(trackAssociationToken_, hTrackAss);
229  if (addJetCharge_)
230  iEvent.getByToken(jetChargeToken_, hJetChargeAss);
231 
232  // jet ID handle
234  if (addJetID_)
235  iEvent.getByToken(jetIDMapToken_, hJetIDMap);
236 
237  // loop over jets
238  auto patJets = std::make_unique<std::vector<Jet>>();
239 
240  auto genJetsOut = std::make_unique<reco::GenJetCollection>();
241  auto caloTowersOut = std::make_unique<std::vector<CaloTower>>();
242  auto pfCandidatesOut = std::make_unique<reco::PFCandidateCollection>();
243  auto tagInfosOut = std::make_unique<edm::OwnVector<reco::BaseTagInfo>>();
244 
245  edm::RefProd<reco::GenJetCollection> h_genJetsOut = iEvent.getRefBeforePut<reco::GenJetCollection>("genJets");
246  edm::RefProd<std::vector<CaloTower>> h_caloTowersOut = iEvent.getRefBeforePut<std::vector<CaloTower>>("caloTowers");
248  iEvent.getRefBeforePut<reco::PFCandidateCollection>("pfCandidates");
250  iEvent.getRefBeforePut<edm::OwnVector<reco::BaseTagInfo>>("tagInfos");
251 
252  for (edm::View<reco::Jet>::const_iterator itJet = jets->begin(); itJet != jets->end(); itJet++) {
253  // construct the Jet from the ref -> save ref to original object
254  unsigned int idx = itJet - jets->begin();
255  edm::RefToBase<reco::Jet> jetRef = jets->refAt(idx);
256  edm::Ptr<reco::Jet> jetPtr = jets->ptrAt(idx);
257  Jet ajet(jetRef);
258 
259  // add the FwdPtrs to the CaloTowers
260  if ((ajet.isCaloJet() || ajet.isJPTJet()) && embedCaloTowers_) {
261  const reco::CaloJet *cj = nullptr;
262  const reco::JPTJet *jptj = nullptr;
263  if (ajet.isCaloJet())
264  cj = dynamic_cast<const reco::CaloJet *>(jetRef.get());
265  else {
266  jptj = dynamic_cast<const reco::JPTJet *>(jetRef.get());
267  cj = dynamic_cast<const reco::CaloJet *>(jptj->getCaloJetRef().get());
268  }
270  std::vector<CaloTowerPtr> itowers = cj->getCaloConstituents();
271  for (std::vector<CaloTowerPtr>::const_iterator towBegin = itowers.begin(),
272  towEnd = itowers.end(),
273  itow = towBegin;
274  itow != towEnd;
275  ++itow) {
276  if (itow->isAvailable() && itow->isNonnull()) {
277  caloTowersOut->push_back(**itow);
278  // set the "forward" ref to the thinned collection
279  edm::Ref<std::vector<CaloTower>> caloTowerRef(h_caloTowersOut, caloTowersOut->size() - 1);
280  edm::Ptr<CaloTower> caloForwardRef(h_caloTowersOut.id(), caloTowerRef.key(), h_caloTowersOut.productGetter());
281  // set the "backward" ref to the original collection for association
282  edm::Ptr<CaloTower> caloBackRef(*itow);
283  // add to the list of FwdPtr's
284  itowersRef.push_back(pat::CaloTowerFwdPtrCollection::value_type(caloForwardRef, caloBackRef));
285  }
286  }
287  ajet.setCaloTowers(itowersRef);
288  }
289 
290  // add the FwdPtrs to the PFCandidates
291  if (ajet.isPFJet() && embedPFCandidates_) {
292  const reco::PFJet *cj = dynamic_cast<const reco::PFJet *>(jetRef.get());
293  pat::PFCandidateFwdPtrCollection iparticlesRef;
294  std::vector<reco::PFCandidatePtr> iparticles = cj->getPFConstituents();
295  for (std::vector<reco::PFCandidatePtr>::const_iterator partBegin = iparticles.begin(),
296  partEnd = iparticles.end(),
297  ipart = partBegin;
298  ipart != partEnd;
299  ++ipart) {
300  pfCandidatesOut->push_back(**ipart);
301  // set the "forward" ref to the thinned collection
302  edm::Ref<reco::PFCandidateCollection> pfCollectionRef(h_pfCandidatesOut, pfCandidatesOut->size() - 1);
303  edm::Ptr<reco::PFCandidate> pfForwardRef(
304  h_pfCandidatesOut.id(), pfCollectionRef.key(), h_pfCandidatesOut.productGetter());
305  // set the "backward" ref to the original collection for association
306  edm::Ptr<reco::PFCandidate> pfBackRef(*ipart);
307  // add to the list of FwdPtr's
308  iparticlesRef.push_back(pat::PFCandidateFwdPtrCollection::value_type(pfForwardRef, pfBackRef));
309  }
310  ajet.setPFCandidates(iparticlesRef);
311  }
312 
313  if (addJetCorrFactors_) {
314  // add additional JetCorrs to the jet
315  for (unsigned int i = 0; i < jetCorrFactorsTokens_.size(); ++i) {
316  const JetCorrFactors &jcf = jetCorrs[i][jetRef];
317  // uncomment for debugging
318  // jcf.print();
319  ajet.addJECFactors(jcf);
320  }
321  std::vector<std::string> levels = jetCorrs[0][jetRef].correctionLabels();
322  if (std::find(levels.begin(), levels.end(), "L2L3Residual") != levels.end()) {
323  ajet.initializeJEC(jetCorrs[0][jetRef].jecLevel("L2L3Residual"));
324  } else if (std::find(levels.begin(), levels.end(), "L3Absolute") != levels.end()) {
325  ajet.initializeJEC(jetCorrs[0][jetRef].jecLevel("L3Absolute"));
326  } else {
327  ajet.initializeJEC(jetCorrs[0][jetRef].jecLevel("Uncorrected"));
328  if (printWarning_) {
329  edm::LogWarning("L3Absolute not found")
330  << "L2L3Residual and L3Absolute are not part of the jetCorrFactors\n"
331  << "of module " << jetCorrs[0][jetRef].jecSet() << ". Jets will remain"
332  << " uncorrected.";
333  printWarning_ = false;
334  }
335  }
336  }
337 
338  // get the MC flavour information for this jet
340  ajet.setPartonFlavour((*jetFlavMatch)[edm::RefToBase<reco::Jet>(jetRef)].getFlavour());
341  } else if (getJetMCFlavour_ && !useLegacyJetMCFlavour_) {
342  if (addJetFlavourInfo_)
343  ajet.setJetFlavourInfo((*jetFlavInfoMatch)[edm::RefToBase<reco::Jet>(jetRef)]);
344  else {
345  ajet.setPartonFlavour((*jetFlavInfoMatch)[edm::RefToBase<reco::Jet>(jetRef)].getPartonFlavour());
346  ajet.setHadronFlavour((*jetFlavInfoMatch)[edm::RefToBase<reco::Jet>(jetRef)].getHadronFlavour());
347  }
348  }
349  // store the match to the generated partons
350  if (addGenPartonMatch_) {
351  reco::GenParticleRef parton = (*partonMatch)[jetRef];
352  if (parton.isNonnull() && parton.isAvailable()) {
353  ajet.setGenParton(parton, embedGenPartonMatch_);
354  } // leave empty if no match found
355  }
356  // store the match to the GenJets
357  if (addGenJetMatch_) {
358  reco::GenJetRef genjet = (*genJetMatch)[jetRef];
359  if (genjet.isNonnull() && genjet.isAvailable()) {
360  genJetsOut->push_back(*genjet);
361  // set the "forward" ref to the thinned collection
362  edm::Ref<reco::GenJetCollection> genForwardRef(h_genJetsOut, genJetsOut->size() - 1);
363  // set the "backward" ref to the original collection
364  const edm::Ref<reco::GenJetCollection> &genBackRef(genjet);
365  // make the FwdPtr
366  edm::FwdRef<reco::GenJetCollection> genjetFwdRef(genForwardRef, genBackRef);
367  ajet.setGenJetRef(genjetFwdRef);
368  } // leave empty if no match found
369  }
370 
371  if (efficiencyLoader_.enabled()) {
372  efficiencyLoader_.setEfficiencies(ajet, jetRef);
373  }
374 
375  // IMPORTANT: DO THIS AFTER JES CORRECTIONS
376  if (resolutionLoader_.enabled()) {
378  }
379 
380  // TO BE IMPLEMENTED FOR >=1_5_X: do the PartonJet matching
381  if (addPartonJetMatch_) {
382  }
383 
384  // add b-tag info if available & required
385  if (addBTagInfo_) {
386  if (addDiscriminators_) {
387  for (size_t k = 0; k < jetDiscriminators.size(); ++k) {
388  float value = (*jetDiscriminators[k])[jetRef];
389  ajet.addBDiscriminatorPair(std::make_pair(discriminatorLabels_[k], value));
390  }
391  }
392  if (addTagInfos_) {
393  for (size_t k = 0; k < jetTagInfos.size(); ++k) {
394  const edm::View<reco::BaseTagInfo> &taginfos = *jetTagInfos[k];
395  // This is not associative, so we have to search the jet
397  // Try first by 'same index'
398  if ((idx < taginfos.size()) && (taginfos[idx].jet() == jetRef)) {
399  match = taginfos.ptrAt(idx);
400  } else {
401  // otherwise fail back to a simple search
402  for (edm::View<reco::BaseTagInfo>::const_iterator itTI = taginfos.begin(), edTI = taginfos.end();
403  itTI != edTI;
404  ++itTI) {
405  if (itTI->jet() == jetRef) {
406  match = taginfos.ptrAt(itTI - taginfos.begin());
407  break;
408  }
409  }
410  }
411  if (match.isNonnull()) {
412  tagInfosOut->push_back(match->clone());
413  // set the "forward" ptr to the thinned collection
414  edm::Ptr<reco::BaseTagInfo> tagInfoForwardPtr(
415  h_tagInfosOut.id(), &tagInfosOut->back(), tagInfosOut->size() - 1);
416  // set the "backward" ptr to the original collection for association
417  const edm::Ptr<reco::BaseTagInfo> &tagInfoBackPtr(match);
418  // make FwdPtr
419  TagInfoFwdPtrCollection::value_type tagInfoFwdPtr(tagInfoForwardPtr, tagInfoBackPtr);
420  ajet.addTagInfo(tagInfoLabels_[k], tagInfoFwdPtr);
421  }
422  }
423  }
424  }
425 
427  ajet.setAssociatedTracks((*hTrackAss)[jetRef]);
428 
429  if (addJetCharge_)
430  ajet.setJetCharge((*hJetChargeAss)[jetRef]);
431 
432  // add jet ID for calo jets
433  if (addJetID_ && ajet.isCaloJet()) {
434  reco::JetID jetId = (*hJetIDMap)[jetRef];
435  ajet.setJetID(jetId);
436  }
437  // add jet ID jpt jets
438  else if (addJetID_ && ajet.isJPTJet()) {
439  const reco::JPTJet *jptj = dynamic_cast<const reco::JPTJet *>(jetRef.get());
440  reco::JetID jetId = (*hJetIDMap)[jptj->getCaloJetRef()];
441  ajet.setJetID(jetId);
442  }
443  if (useUserData_) {
444  userDataHelper_.add(ajet, iEvent, iSetup);
445  }
446  patJets->push_back(ajet);
447  }
448 
449  // sort jets in pt
450  std::sort(patJets->begin(), patJets->end(), pTComparator_);
451 
452  // put genEvt in Event
453  iEvent.put(std::move(patJets));
454 
455  iEvent.put(std::move(genJetsOut), "genJets");
456  iEvent.put(std::move(caloTowersOut), "caloTowers");
457  iEvent.put(std::move(pfCandidatesOut), "pfCandidates");
458  iEvent.put(std::move(tagInfosOut), "tagInfos");
459 }

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, training_settings::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(), tagInfoLabels_, tagInfoTokens_, trackAssociationToken_, useLegacyJetMCFlavour_, userDataHelper_, and useUserData_.

Member Data Documentation

◆ addAssociatedTracks_

bool pat::PATJetProducer::addAssociatedTracks_
private

Definition at line 82 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ addBTagInfo_

bool pat::PATJetProducer::addBTagInfo_
private

Definition at line 73 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ addDiscriminators_

bool pat::PATJetProducer::addDiscriminators_
private

Definition at line 74 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ addEfficiencies_

bool pat::PATJetProducer::addEfficiencies_
private

Definition at line 92 of file PATJetProducer.h.

Referenced by PATJetProducer().

◆ addGenJetMatch_

bool pat::PATJetProducer::addGenJetMatch_
private

Definition at line 65 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ addGenPartonMatch_

bool pat::PATJetProducer::addGenPartonMatch_
private

Definition at line 62 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ addJetCharge_

bool pat::PATJetProducer::addJetCharge_
private

Definition at line 84 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ addJetCorrFactors_

bool pat::PATJetProducer::addJetCorrFactors_
private

Definition at line 70 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ addJetFlavourInfo_

bool pat::PATJetProducer::addJetFlavourInfo_
private

Definition at line 59 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ addJetID_

bool pat::PATJetProducer::addJetID_
private

Definition at line 86 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ addPartonJetMatch_

bool pat::PATJetProducer::addPartonJetMatch_
private

Definition at line 68 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ addResolutions_

bool pat::PATJetProducer::addResolutions_
private

Definition at line 95 of file PATJetProducer.h.

Referenced by PATJetProducer().

◆ addTagInfos_

bool pat::PATJetProducer::addTagInfos_
private

Definition at line 78 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ caloPTComparator_

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

Definition at line 90 of file PATJetProducer.h.

◆ discriminatorLabels_

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

Definition at line 77 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ discriminatorTags_

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

Definition at line 75 of file PATJetProducer.h.

Referenced by PATJetProducer().

◆ discriminatorTokens_

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

Definition at line 76 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ efficiencyLoader_

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

Definition at line 93 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ embedCaloTowers_

bool pat::PATJetProducer::embedCaloTowers_
private

Definition at line 55 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ embedGenJetMatch_

bool pat::PATJetProducer::embedGenJetMatch_
private

Definition at line 66 of file PATJetProducer.h.

Referenced by PATJetProducer().

◆ embedGenPartonMatch_

bool pat::PATJetProducer::embedGenPartonMatch_
private

Definition at line 63 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ embedPFCandidates_

bool pat::PATJetProducer::embedPFCandidates_
private

Definition at line 56 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ genJetToken_

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

Definition at line 67 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ genPartonToken_

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

Definition at line 64 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ getJetMCFlavour_

bool pat::PATJetProducer::getJetMCFlavour_
private

Definition at line 57 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ jetChargeToken_

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

Definition at line 85 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ jetCorrFactorsTokens_

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

Definition at line 71 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ jetFlavourInfoToken_

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

Definition at line 61 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ jetIDMapToken_

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

Definition at line 87 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ jetPartonMapToken_

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

Definition at line 60 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ jetsToken_

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

Definition at line 54 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ printWarning_

bool pat::PATJetProducer::printWarning_
private

Definition at line 101 of file PATJetProducer.h.

Referenced by produce().

◆ pTComparator_

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

Definition at line 89 of file PATJetProducer.h.

Referenced by produce().

◆ resolutionLoader_

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

Definition at line 96 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ tagInfoLabels_

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

Definition at line 81 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ tagInfoTags_

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

Definition at line 79 of file PATJetProducer.h.

Referenced by PATJetProducer().

◆ tagInfoTokens_

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

Definition at line 80 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ trackAssociationToken_

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

Definition at line 83 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ useLegacyJetMCFlavour_

bool pat::PATJetProducer::useLegacyJetMCFlavour_
private

Definition at line 58 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ userDataHelper_

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

Definition at line 99 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

◆ useUserData_

bool pat::PATJetProducer::useUserData_
private

Definition at line 98 of file PATJetProducer.h.

Referenced by PATJetProducer(), and produce().

edm::RefProd
Definition: EDProductfwd.h:25
pat::PATJetProducer::discriminatorTags_
std::vector< edm::InputTag > discriminatorTags_
Definition: PATJetProducer.h:75
reco::JPTJet
Jets made from CaloJets corrected for ZSP and tracks.
Definition: JPTJet.h:28
pat::PATJetProducer::printWarning_
bool printWarning_
Definition: PATJetProducer.h:101
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.h:65
pat::PATUserDataHelper
Assists in assimilating all pat::UserData into pat objects.
Definition: PATUserDataHelper.h:49
mps_fire.i
i
Definition: mps_fire.py:355
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
funct::false
false
Definition: Factorize.h:34
pat::PATJetProducer::addJetFlavourInfo_
bool addJetFlavourInfo_
Definition: PATJetProducer.h:59
pat::PATJetProducer::genPartonToken_
edm::EDGetTokenT< edm::Association< reco::GenParticleCollection > > genPartonToken_
Definition: PATJetProducer.h:64
edm::FwdRef< reco::GenJetCollection >
pat::PATJetProducer::jetIDMapToken_
edm::EDGetTokenT< reco::JetIDValueMap > jetIDMapToken_
Definition: PATJetProducer.h:87
reco::PFJet::getPFConstituents
virtual std::vector< reco::PFCandidatePtr > getPFConstituents() const
get all constituents
Definition: PFJet.cc:41
pat::PATJetProducer::addBTagInfo_
bool addBTagInfo_
Definition: PATJetProducer.h:73
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.h:92
pat::PATJetProducer::addResolutions_
bool addResolutions_
Definition: PATJetProducer.h:95
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.h:76
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.h:56
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
training_settings.idx
idx
Definition: training_settings.py:16
edm::ParameterSetDescription::addOptional
ParameterDescriptionBase * addOptional(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:105
pat::PATJetProducer::efficiencyLoader_
pat::helper::EfficiencyLoader efficiencyLoader_
Definition: PATJetProducer.h:93
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.h:63
pat::PATJetProducer::embedGenJetMatch_
bool embedGenJetMatch_
Definition: PATJetProducer.h:66
pat::JetCorrFactors
Class for the storage of jet correction factors.
Definition: JetCorrFactors.h:37
pat::PATJetProducer::discriminatorLabels_
std::vector< std::string > discriminatorLabels_
Definition: PATJetProducer.h:77
trigger::size_type
uint16_t size_type
Definition: TriggerTypeDefs.h:18
pat::PATJetProducer::jetPartonMapToken_
edm::EDGetTokenT< reco::JetFlavourMatchingCollection > jetPartonMapToken_
Definition: PATJetProducer.h:60
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.h:70
GlobalPosition_Frontier_DevDB_cff.tag
tag
Definition: GlobalPosition_Frontier_DevDB_cff.py:11
pat::PATJetProducer::userDataHelper_
pat::PATUserDataHelper< pat::Jet > userDataHelper_
Definition: PATJetProducer.h:99
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.h:74
pat::PATJetProducer::addPartonJetMatch_
bool addPartonJetMatch_
Definition: PATJetProducer.h:68
pat::PATJetProducer::tagInfoTags_
std::vector< edm::InputTag > tagInfoTags_
Definition: PATJetProducer.h:79
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.h:98
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
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
edm::LogWarning
Definition: MessageLogger.h:141
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:674
pat::PATJetProducer::tagInfoTokens_
std::vector< edm::EDGetTokenT< edm::View< reco::BaseTagInfo > > > tagInfoTokens_
Definition: PATJetProducer.h:80
edm::View
Definition: CaloClusterFwd.h:14
pat::PATJetProducer::addJetID_
bool addJetID_
Definition: PATJetProducer.h:86
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
edm::ParameterSet
Definition: ParameterSet.h:36
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.h:81
pat::PATJetProducer::jetFlavourInfoToken_
edm::EDGetTokenT< reco::JetFlavourInfoMatchingCollection > jetFlavourInfoToken_
Definition: PATJetProducer.h:61
pat::helper::KinResolutionsLoader::fillDescription
static void fillDescription(edm::ParameterSetDescription &iDesc)
Method for documentation and validation of PSet.
Definition: KinResolutionsLoader.cc:34
edm::Ref::isNonnull
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
pat::PATJetProducer::addGenPartonMatch_
bool addGenPartonMatch_
Definition: PATJetProducer.h:62
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.h:67
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
pat::PATJetProducer::jetChargeToken_
edm::EDGetTokenT< reco::JetFloatAssociation::Container > jetChargeToken_
Definition: PATJetProducer.h:85
edm::Ptr< reco::Jet >
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
pat::PATJetProducer::getJetMCFlavour_
bool getJetMCFlavour_
Definition: PATJetProducer.h:57
eostools.move
def move(src, dest)
Definition: eostools.py:511
pat::PATJetProducer::addTagInfos_
bool addTagInfos_
Definition: PATJetProducer.h:78
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.h:89
metsig::jet
Definition: SignAlgoResolutions.h:47
pat::PATJetProducer::jetsToken_
edm::EDGetTokenT< edm::View< reco::Jet > > jetsToken_
Definition: PATJetProducer.h:54
reco::PFCandidateCollection
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
Definition: PFCandidateFwd.h:12
pat::PATJetProducer::useLegacyJetMCFlavour_
bool useLegacyJetMCFlavour_
Definition: PATJetProducer.h:58
pat::PATJetProducer::addAssociatedTracks_
bool addAssociatedTracks_
Definition: PATJetProducer.h:82
reco::PFJet
Jets made from PFObjects.
Definition: PFJet.h:20
pat::PATJetProducer::resolutionLoader_
pat::helper::KinResolutionsLoader resolutionLoader_
Definition: PATJetProducer.h:96
edm::RefToBase< reco::Jet >
pat::PATJetProducer::addJetCharge_
bool addJetCharge_
Definition: PATJetProducer.h:84
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.h:71
edm::View::end
const_iterator end() const
PhotonMonitor_cff.jetId
jetId
Definition: PhotonMonitor_cff.py:70
pat::PATJetProducer::embedCaloTowers_
bool embedCaloTowers_
Definition: PATJetProducer.h:55
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.h:83
jets_cff.levels
levels
Definition: jets_cff.py:23
edm::OwnVector< reco::BaseTagInfo >