CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
pat::PATJetUpdater Class Reference

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

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

Inheritance diagram for pat::PATJetUpdater:
edm::stream::EDProducer<> edm::stream::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 PATJetUpdater (const edm::ParameterSet &iConfig)
 
virtual void produce (edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
 ~PATJetUpdater ()
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
- Public Member Functions inherited from edm::stream::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDProducerBase ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (std::string const &iProcessName, std::string const &iModuleLabel, bool iPrint, std::vector< char const * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::stream::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Attributes

bool addBTagInfo_
 
bool addDiscriminators_
 
bool addJetCorrFactors_
 
bool addTagInfos_
 
std::vector< std::string > discriminatorLabels_
 
std::vector< edm::InputTagdiscriminatorTags_
 
std::vector< edm::EDGetTokenT
< reco::JetFloatAssociation::Container > > 
discriminatorTokens_
 
std::vector< edm::EDGetTokenT
< edm::ValueMap
< JetCorrFactors > > > 
jetCorrFactorsTokens_
 
edm::EDGetTokenT< edm::View
< reco::Jet > > 
jetsToken_
 
bool printWarning_
 
GreaterByPt< JetpTComparator_
 
std::vector< std::string > tagInfoLabels_
 
std::vector< edm::InputTagtagInfoTags_
 
std::vector< edm::EDGetTokenT
< edm::View< reco::BaseTagInfo > > > 
tagInfoTokens_
 
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, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDProducerBase
typedef EDProducerAdaptorBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Produces pat::Jet's.

The PATJetUpdater produces analysis-level pat::Jet's starting from a collection of pat::Jet's and updates information.

Author
Andreas Hinzmann
Version
Id:
PATJetUpdater.h,v 1.00 2014/03/11 18:13:54 srappocc Exp

Definition at line 34 of file PATJetUpdater.h.

Constructor & Destructor Documentation

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

Definition at line 28 of file PATJetUpdater.cc.

References addJetCorrFactors_, edm::ParameterSet::getParameter(), jetCorrFactorsTokens_, jetsToken_, edm::EDConsumerBase::mayConsume(), GlobalPosition_Frontier_DevDB_cff::tag, and edm::vector_transform().

28  :
29  useUserData_(iConfig.exists("userData")),
30  printWarning_(true)
31 {
32  // initialize configurables
33  jetsToken_ = consumes<edm::View<reco::Jet> >(iConfig.getParameter<edm::InputTag>( "jetSource" ));
34  addJetCorrFactors_ = iConfig.getParameter<bool>( "addJetCorrFactors" );
35  if( addJetCorrFactors_ ) {
36  jetCorrFactorsTokens_ = edm::vector_transform(iConfig.getParameter<std::vector<edm::InputTag> >( "jetCorrFactorsSource" ), [this](edm::InputTag const & tag){return mayConsume<edm::ValueMap<JetCorrFactors> >(tag);});
37  }
38  addBTagInfo_ = iConfig.getParameter<bool>( "addBTagInfo" );
39  addDiscriminators_ = iConfig.getParameter<bool>( "addDiscriminators" );
40  discriminatorTags_ = iConfig.getParameter<std::vector<edm::InputTag> >( "discriminatorSources" );
41  discriminatorTokens_ = edm::vector_transform(discriminatorTags_, [this](edm::InputTag const & tag){return mayConsume<reco::JetFloatAssociation::Container>(tag);});
42  addTagInfos_ = iConfig.getParameter<bool>( "addTagInfos" );
43  tagInfoTags_ = iConfig.getParameter<std::vector<edm::InputTag> >( "tagInfoSources" );
44  tagInfoTokens_ =edm::vector_transform(tagInfoTags_, [this](edm::InputTag const & tag){return mayConsume<edm::View<reco::BaseTagInfo> >(tag);});
45  if (discriminatorTags_.empty()) {
46  addDiscriminators_ = false;
47  } else {
48  for (std::vector<edm::InputTag>::const_iterator it = discriminatorTags_.begin(), ed = discriminatorTags_.end(); it != ed; ++it) {
49  std::string label = it->label();
50  std::string::size_type pos = label.find("JetTags");
51  if ((pos != std::string::npos) && (pos != label.length() - 7)) {
52  label.erase(pos+7); // trim a tail after "JetTags"
53  }
54  discriminatorLabels_.push_back(label);
55  }
56  }
57  if (tagInfoTags_.empty()) {
58  addTagInfos_ = false;
59  } else {
60  for (std::vector<edm::InputTag>::const_iterator it = tagInfoTags_.begin(), ed = tagInfoTags_.end(); it != ed; ++it) {
61  std::string label = it->label();
62  std::string::size_type pos = label.find("TagInfos");
63  if ((pos != std::string::npos) && (pos != label.length() - 8)) {
64  label.erase(pos+8); // trim a tail after "TagInfos"
65  }
66  tagInfoLabels_.push_back(label);
67  }
68  }
69  if (!addBTagInfo_) { addDiscriminators_ = false; addTagInfos_ = false; }
70  // Check to see if the user wants to add user data
71  if ( useUserData_ ) {
73  }
74  // produces vector of jets
75  produces<std::vector<Jet> >();
76  produces<edm::OwnVector<reco::BaseTagInfo> > ("tagInfos");
77 }
T getParameter(std::string const &) const
Assists in assimilating all pat::UserData into pat objects.
edm::EDGetTokenT< edm::View< reco::Jet > > jetsToken_
Definition: PATJetUpdater.h:48
bool exists(std::string const &parameterName) const
checks if a parameter exists
std::vector< edm::InputTag > tagInfoTags_
Definition: PATJetUpdater.h:58
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
uint16_t size_type
std::vector< edm::EDGetTokenT< edm::View< reco::BaseTagInfo > > > tagInfoTokens_
Definition: PATJetUpdater.h:59
std::vector< edm::EDGetTokenT< reco::JetFloatAssociation::Container > > discriminatorTokens_
Definition: PATJetUpdater.h:55
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
std::vector< edm::InputTag > discriminatorTags_
Definition: PATJetUpdater.h:54
std::vector< std::string > discriminatorLabels_
Definition: PATJetUpdater.h:56
pat::PATUserDataHelper< pat::Jet > userDataHelper_
Definition: PATJetUpdater.h:65
std::vector< std::string > tagInfoLabels_
Definition: PATJetUpdater.h:60
EDGetTokenT< ProductType > mayConsume(edm::InputTag const &tag)
std::vector< edm::EDGetTokenT< edm::ValueMap< JetCorrFactors > > > jetCorrFactorsTokens_
Definition: PATJetUpdater.h:50
PATJetUpdater::~PATJetUpdater ( )

Definition at line 80 of file PATJetUpdater.cc.

80  {
81 
82 }

Member Function Documentation

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

Definition at line 215 of file PATJetUpdater.cc.

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

216 {
218  iDesc.setComment("PAT jet producer module");
219 
220  // input source
221  iDesc.add<edm::InputTag>("jetSource", edm::InputTag("no default"))->setComment("input collection");
222 
223  // tag info
224  iDesc.add<bool>("addTagInfos", true);
225  std::vector<edm::InputTag> emptyVInputTags;
226  iDesc.add<std::vector<edm::InputTag> >("tagInfoSources", emptyVInputTags);
227 
228  // jet energy corrections
229  iDesc.add<bool>("addJetCorrFactors", true);
230  iDesc.add<std::vector<edm::InputTag> >("jetCorrFactorsSource", emptyVInputTags);
231 
232  // btag discriminator tags
233  iDesc.add<bool>("addBTagInfo",true);
234  iDesc.add<bool>("addDiscriminators", true);
235  iDesc.add<std::vector<edm::InputTag> >("discriminatorSources", emptyVInputTags);
236 
237  // Check to see if the user wants to add user data
238  edm::ParameterSetDescription userDataPSet;
240  iDesc.addOptional("userData", userDataPSet);
241 
242  descriptions.add("PATJetUpdater", iDesc);
243 }
ParameterDescriptionBase * addOptional(U const &iLabel, T const &value)
static void fillDescription(edm::ParameterSetDescription &iDesc)
void setComment(std::string const &value)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void PATJetUpdater::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Implements edm::stream::EDProducerBase.

Definition at line 85 of file PATJetUpdater.cc.

References pat::Jet::addBDiscriminatorPair(), addBTagInfo_, addDiscriminators_, pat::Jet::addJECFactors(), addJetCorrFactors_, pat::Jet::addTagInfo(), addTagInfos_, edm::View< T >::begin(), edm::RefToBase< T >::castTo(), pat::Jet::correctedP4(), discriminatorLabels_, discriminatorTokens_, edm::View< T >::end(), spr::find(), edm::Event::getByToken(), edm::Event::getRefBeforePut(), i, edm::RefProd< T >::id(), customizeTrackingMonitorSeedNumber::idx, pat::Jet::initializeJEC(), edm::Ptr< T >::isNonnull(), pat::Jet::jec_, metsig::jet, jetCorrFactorsTokens_, fwrapper::jets, jetsToken_, relval_2017::k, match(), jetProducer_cfi::patJets, printWarning_, pTComparator_, edm::View< T >::ptrAt(), edm::Event::put(), reco::LeafCandidate::setP4(), edm::View< T >::size(), tagInfoLabels_, tagInfoTokens_, userDataHelper_, useUserData_, and relativeConstraints::value.

86 {
87  // Get the vector of jets
89  iEvent.getByToken(jetsToken_, jets);
90 
91  // read in the jet correction factors ValueMap
92  std::vector<edm::ValueMap<JetCorrFactors> > jetCorrs;
93  if (addJetCorrFactors_) {
94  for ( size_t i = 0; i < jetCorrFactorsTokens_.size(); ++i ) {
96  iEvent.getByToken(jetCorrFactorsTokens_[i], jetCorr);
97  jetCorrs.push_back( *jetCorr );
98  }
99  }
100 
101  // Get the vector of jet tags with b-tagging info
102  std::vector<edm::Handle<reco::JetFloatAssociation::Container> > jetDiscriminators;
104  jetDiscriminators.resize(discriminatorTokens_.size());
105  for (size_t i = 0; i < discriminatorTokens_.size(); ++i) {
106  iEvent.getByToken(discriminatorTokens_[i], jetDiscriminators[i]);
107  }
108  }
109  std::vector<edm::Handle<edm::View<reco::BaseTagInfo> > > jetTagInfos;
110  if (addBTagInfo_ && addTagInfos_) {
111  jetTagInfos.resize(tagInfoTokens_.size());
112  for (size_t i = 0; i < tagInfoTokens_.size(); ++i) {
113  iEvent.getByToken(tagInfoTokens_[i], jetTagInfos[i]);
114  }
115  }
116 
117  // loop over jets
118  std::auto_ptr< std::vector<Jet> > patJets ( new std::vector<Jet>() );
119 
120  std::auto_ptr<edm::OwnVector<reco::BaseTagInfo> > tagInfosOut ( new edm::OwnVector<reco::BaseTagInfo>() );
121 
123 
124  for (edm::View<reco::Jet>::const_iterator itJet = jets->begin(); itJet != jets->end(); itJet++) {
125 
126  // construct the Jet from the ref -> save ref to original object
127  unsigned int idx = itJet - jets->begin();
128  edm::RefToBase<reco::Jet> jetRef = jets->refAt(idx);
129  edm::Ptr<reco::Jet> jetPtr = jets->ptrAt(idx);
130  Jet ajet( edm::RefToBase<Jet>(jetRef.castTo<JetRef>()) );
131 
132  if (addJetCorrFactors_) {
133  // undo previous jet energy corrections
134  ajet.setP4(ajet.correctedP4(0));
135  // clear previous JetCorrFactors
136  ajet.jec_.clear();
137  // add additional JetCorrs to the jet
138  for ( unsigned int i=0; i<jetCorrFactorsTokens_.size(); ++i ) {
139  const JetCorrFactors& jcf = jetCorrs[i][jetRef];
140  // uncomment for debugging
141  // jcf.print();
142  ajet.addJECFactors(jcf);
143  }
144  std::vector<std::string> levels = jetCorrs[0][jetRef].correctionLabels();
145  if(std::find(levels.begin(), levels.end(), "L2L3Residual")!=levels.end()){
146  ajet.initializeJEC(jetCorrs[0][jetRef].jecLevel("L2L3Residual"));
147  }
148  else if(std::find(levels.begin(), levels.end(), "L3Absolute")!=levels.end()){
149  ajet.initializeJEC(jetCorrs[0][jetRef].jecLevel("L3Absolute"));
150  }
151  else{
152  ajet.initializeJEC(jetCorrs[0][jetRef].jecLevel("Uncorrected"));
153  if(printWarning_){
154  edm::LogWarning("L3Absolute not found") << "L2L3Residual and L3Absolute are not part of the jetCorrFactors\n"
155  << "of module " << jetCorrs[0][jetRef].jecSet() << ". Jets will remain"
156  << " uncorrected."; printWarning_=false;
157  }
158  }
159  }
160 
161  // add b-tag info if available & required
162  if (addBTagInfo_) {
163  if (addDiscriminators_) {
164  for (size_t k=0; k<jetDiscriminators.size(); ++k) {
165  float value = (*jetDiscriminators[k])[jetRef];
166  ajet.addBDiscriminatorPair(std::make_pair(discriminatorLabels_[k], value));
167  }
168  }
169  if (addTagInfos_) {
170  for (size_t k=0; k<jetTagInfos.size(); ++k) {
171  const edm::View<reco::BaseTagInfo> & taginfos = *jetTagInfos[k];
172  // This is not associative, so we have to search the jet
174  // Try first by 'same index'
175  if ((idx < taginfos.size()) && (taginfos[idx].jet() == jetRef)) {
176  match = taginfos.ptrAt(idx);
177  } else {
178  // otherwise fail back to a simple search
179  for (edm::View<reco::BaseTagInfo>::const_iterator itTI = taginfos.begin(), edTI = taginfos.end(); itTI != edTI; ++itTI) {
180  if (itTI->jet() == jetRef) { match = taginfos.ptrAt( itTI - taginfos.begin() ); break; }
181  }
182  }
183  if (match.isNonnull()) {
184  tagInfosOut->push_back( match->clone() );
185  // set the "forward" ptr to the thinned collection
186  edm::Ptr<reco::BaseTagInfo> tagInfoForwardPtr ( h_tagInfosOut.id(), &tagInfosOut->back(), tagInfosOut->size() - 1 );
187  // set the "backward" ptr to the original collection for association
188  edm::Ptr<reco::BaseTagInfo> tagInfoBackPtr ( match );
189  // make FwdPtr
190  TagInfoFwdPtrCollection::value_type tagInfoFwdPtr( tagInfoForwardPtr, tagInfoBackPtr ) ;
191  ajet.addTagInfo(tagInfoLabels_[k], tagInfoFwdPtr );
192  }
193  }
194  }
195  }
196 
197  if ( useUserData_ ) {
198  userDataHelper_.add( ajet, iEvent, iSetup );
199  }
200 
201  patJets->push_back(ajet);
202  }
203 
204  // sort jets in pt
205  std::sort(patJets->begin(), patJets->end(), pTComparator_);
206 
207  // put genEvt in Event
208  iEvent.put(patJets);
209 
210  iEvent.put( tagInfosOut, "tagInfos" );
211 
212 }
int i
Definition: DBlmapReader.cc:9
GreaterByPt< Jet > pTComparator_
Definition: PATJetUpdater.h:62
std::vector< std::string > correctionLabels() const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:462
Ptr< value_type > ptrAt(size_type i) const
edm::EDGetTokenT< edm::View< reco::Jet > > jetsToken_
Definition: PATJetUpdater.h:48
size_type size() const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
std::vector< edm::EDGetTokenT< edm::View< reco::BaseTagInfo > > > tagInfoTokens_
Definition: PATJetUpdater.h:59
std::vector< edm::EDGetTokenT< reco::JetFloatAssociation::Container > > discriminatorTokens_
Definition: PATJetUpdater.h:55
const_iterator begin() const
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:121
Class for the storage of jet correction factors.
vector< PseudoJet > jets
RefProd< PROD > getRefBeforePut()
Definition: Event.h:141
bool isNonnull() const
Checks for non-null.
Definition: Ptr.h:169
std::vector< std::string > discriminatorLabels_
Definition: PATJetUpdater.h:56
tuple idx
DEBUGGING if hasattr(process,&quot;trackMonIterativeTracking2012&quot;): print &quot;trackMonIterativeTracking2012 D...
REF castTo() const
Definition: RefToBase.h:271
Analysis-level calorimeter jet class.
Definition: Jet.h:77
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
Definition: View.h:81
ProductID id() const
Accessor for product ID.
Definition: RefProd.h:137
const_iterator end() const
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
pat::PATUserDataHelper< pat::Jet > userDataHelper_
Definition: PATJetUpdater.h:65
std::vector< std::string > tagInfoLabels_
Definition: PATJetUpdater.h:60
std::vector< edm::EDGetTokenT< edm::ValueMap< JetCorrFactors > > > jetCorrFactorsTokens_
Definition: PATJetUpdater.h:50

Member Data Documentation

bool pat::PATJetUpdater::addBTagInfo_
private

Definition at line 52 of file PATJetUpdater.h.

Referenced by produce().

bool pat::PATJetUpdater::addDiscriminators_
private

Definition at line 53 of file PATJetUpdater.h.

Referenced by produce().

bool pat::PATJetUpdater::addJetCorrFactors_
private

Definition at line 49 of file PATJetUpdater.h.

Referenced by PATJetUpdater(), and produce().

bool pat::PATJetUpdater::addTagInfos_
private

Definition at line 57 of file PATJetUpdater.h.

Referenced by produce().

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

Definition at line 56 of file PATJetUpdater.h.

Referenced by produce().

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

Definition at line 54 of file PATJetUpdater.h.

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

Definition at line 55 of file PATJetUpdater.h.

Referenced by produce().

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

Definition at line 50 of file PATJetUpdater.h.

Referenced by PATJetUpdater(), and produce().

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

Definition at line 48 of file PATJetUpdater.h.

Referenced by PATJetUpdater(), and produce().

bool pat::PATJetUpdater::printWarning_
private

Definition at line 67 of file PATJetUpdater.h.

Referenced by produce().

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

Definition at line 62 of file PATJetUpdater.h.

Referenced by produce().

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

Definition at line 60 of file PATJetUpdater.h.

Referenced by produce().

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

Definition at line 58 of file PATJetUpdater.h.

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

Definition at line 59 of file PATJetUpdater.h.

Referenced by produce().

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

Definition at line 65 of file PATJetUpdater.h.

Referenced by produce().

bool pat::PATJetUpdater::useUserData_
private

Definition at line 64 of file PATJetUpdater.h.

Referenced by produce().