CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Types | Private Attributes
PFRecoTauChargedHadronProducer Class Reference
Inheritance diagram for PFRecoTauChargedHadronProducer:
edm::stream::EDProducer<>

Public Types

typedef reco::tau::PFRecoTauChargedHadronBuilderPlugin Builder
 
typedef reco::tau::PFRecoTauChargedHadronQualityPlugin Ranker
 
- 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
 

Public Member Functions

 PFRecoTauChargedHadronProducer (const edm::ParameterSet &cfg)
 
template<typename T >
void print (const T &chargedHadrons)
 
void produce (edm::Event &evt, const edm::EventSetup &es) override
 
 ~PFRecoTauChargedHadronProducer () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Types

typedef boost::ptr_vector< BuilderbuilderList
 
typedef boost::ptr_list< reco::PFRecoTauChargedHadronChargedHadronList
 
typedef reco::tau::RecoTauLexicographicalRanking< rankerList, reco::PFRecoTauChargedHadronChargedHadronPredicate
 
typedef boost::ptr_vector< reco::PFRecoTauChargedHadronChargedHadronVector
 
typedef boost::ptr_vector< RankerrankerList
 

Private Attributes

builderList builders_
 
edm::EDGetTokenT< reco::JetViewJets_token
 
double maxJetAbsEta_
 
double minJetPt_
 
std::string moduleLabel_
 
std::unique_ptr< StringCutObjectSelector< reco::PFRecoTauChargedHadron > > outputSelector_
 
std::unique_ptr< ChargedHadronPredicatepredicate_
 
rankerList rankers_
 
edm::InputTag srcJets_
 
int verbosity_
 

Detailed Description

Definition at line 57 of file PFRecoTauChargedHadronProducer.cc.

Member Typedef Documentation

◆ Builder

Definition at line 59 of file PFRecoTauChargedHadronProducer.cc.

◆ builderList

typedef boost::ptr_vector<Builder> PFRecoTauChargedHadronProducer::builderList
private

Definition at line 71 of file PFRecoTauChargedHadronProducer.cc.

◆ ChargedHadronList

Definition at line 74 of file PFRecoTauChargedHadronProducer.cc.

◆ ChargedHadronPredicate

Definition at line 76 of file PFRecoTauChargedHadronProducer.cc.

◆ ChargedHadronVector

Definition at line 73 of file PFRecoTauChargedHadronProducer.cc.

◆ Ranker

Definition at line 60 of file PFRecoTauChargedHadronProducer.cc.

◆ rankerList

typedef boost::ptr_vector<Ranker> PFRecoTauChargedHadronProducer::rankerList
private

Definition at line 72 of file PFRecoTauChargedHadronProducer.cc.

Constructor & Destructor Documentation

◆ PFRecoTauChargedHadronProducer()

PFRecoTauChargedHadronProducer::PFRecoTauChargedHadronProducer ( const edm::ParameterSet cfg)
explicit

Definition at line 99 of file PFRecoTauChargedHadronProducer.cc.

100  : moduleLabel_(cfg.getParameter<std::string>("@module_label")) {
101  srcJets_ = cfg.getParameter<edm::InputTag>("jetSrc");
102  Jets_token = consumes<reco::JetView>(srcJets_);
103  minJetPt_ = cfg.getParameter<double>("minJetPt");
104  maxJetAbsEta_ = cfg.getParameter<double>("maxJetAbsEta");
105  verbosity_ = cfg.getParameter<int>("verbosity");
106 
107  // get set of ChargedHadron builder plugins
108  edm::VParameterSet psets_builders = cfg.getParameter<edm::VParameterSet>("builders");
109  for (edm::VParameterSet::const_iterator pset = psets_builders.begin(); pset != psets_builders.end(); ++pset) {
110  std::string pluginType = pset->getParameter<std::string>("plugin");
111  edm::ParameterSet pset_modified = (*pset);
112  pset_modified.addParameter<int>("verbosity", verbosity_);
113  builders_.push_back(
114  PFRecoTauChargedHadronBuilderPluginFactory::get()->create(pluginType, pset_modified, consumesCollector()));
115  }
116 
117  // get set of plugins for ranking ChargedHadrons in quality
118  edm::VParameterSet psets_rankers = cfg.getParameter<edm::VParameterSet>("ranking");
119  for (edm::VParameterSet::const_iterator pset = psets_rankers.begin(); pset != psets_rankers.end(); ++pset) {
120  std::string pluginType = pset->getParameter<std::string>("plugin");
121  edm::ParameterSet pset_modified = (*pset);
122  pset_modified.addParameter<int>("verbosity", verbosity_);
123  rankers_.push_back(PFRecoTauChargedHadronQualityPluginFactory::get()->create(pluginType, pset_modified));
124  }
125 
126  // build the sorting predicate
127  predicate_ = std::make_unique<ChargedHadronPredicate>(rankers_);
128 
129  // check if we want to apply a final output selection
130  std::string selection = cfg.getParameter<std::string>("outputSelection");
131  if (!selection.empty()) {
132  outputSelector_ = std::make_unique<StringCutObjectSelector<reco::PFRecoTauChargedHadron>>(selection);
133  }
134 
135  produces<reco::PFJetChargedHadronAssociation>();
136 }

References edm::ParameterSet::addParameter(), builders_, looper::cfg, beamerCreator::create(), get, Jets_token, maxJetAbsEta_, minJetPt_, outputSelector_, predicate_, muonDTDigis_cfi::pset, rankers_, corrVsCorr::selection, srcJets_, AlCaHLTBitMon_QueryRunRegistry::string, and verbosity_.

◆ ~PFRecoTauChargedHadronProducer()

PFRecoTauChargedHadronProducer::~PFRecoTauChargedHadronProducer ( )
inlineoverride

Definition at line 63 of file PFRecoTauChargedHadronProducer.cc.

63 {}

Member Function Documentation

◆ fillDescriptions()

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

Definition at line 339 of file PFRecoTauChargedHadronProducer.cc.

339  {
340  // ak4PFJetsRecoTauChargedHadrons
342  {
343  edm::ParameterSetDescription desc_ranking;
344  desc_ranking.add<std::string>("selectionPassFunction", "-pt");
345  desc_ranking.add<double>("selectionFailValue", 1000.0);
346  desc_ranking.add<std::string>("selection", "algoIs(\"kChargedPFCandidate\")");
347  desc_ranking.add<std::string>("name", "ChargedPFCandidate");
348  desc_ranking.add<std::string>("plugin", "PFRecoTauChargedHadronStringQuality");
349 
350  edm::ParameterSet pset_ranking;
351  pset_ranking.addParameter<std::string>("selectionPassFunction", "-pt");
352  pset_ranking.addParameter<double>("selectionFailValue", 1000.0);
353  pset_ranking.addParameter<std::string>("selection", "algoIs(\"kChargedPFCandidate\")");
354  pset_ranking.addParameter<std::string>("name", "ChargedPFCandidate");
355  pset_ranking.addParameter<std::string>("plugin", "PFRecoTauChargedHadronStringQuality");
356  std::vector<edm::ParameterSet> vpsd_ranking;
357  vpsd_ranking.push_back(pset_ranking);
358 
359  desc.addVPSet("ranking", desc_ranking, vpsd_ranking);
360  }
361 
362  desc.add<int>("verbosity", 0);
363  desc.add<double>("maxJetAbsEta", 2.5);
364  desc.add<std::string>("outputSelection", "pt > 0.5");
365  desc.add<double>("minJetPt", 14.0);
366  desc.add<edm::InputTag>("jetSrc", edm::InputTag("ak4PFJets"));
367 
368  {
369  edm::ParameterSetDescription desc_builders;
370  desc_builders.add<double>("minMergeChargedHadronPt");
371  desc_builders.add<std::string>("name");
372  desc_builders.add<std::string>("plugin");
373  desc_builders.addOptional<double>("dRcone");
374  desc_builders.addOptional<bool>("dRconeLimitedToJetArea");
375  desc_builders.addOptional<double>("dRmergeNeutralHadron");
376  desc_builders.addOptional<double>("dRmergePhoton");
377  desc_builders.addOptional<edm::InputTag>("srcTracks");
378 
379  edm::ParameterSetDescription desc_qualityCuts;
381  desc_builders.add<edm::ParameterSetDescription>("qualityCuts", desc_qualityCuts);
382 
383  desc_builders.add<double>("minMergeGammaEt");
384  desc_builders.add<int>("verbosity", 0);
385  desc_builders.add<double>("minMergeNeutralHadronEt");
386 
387  desc_builders.addOptional<double>("dRmergePhotonWrtChargedHadron");
388  desc_builders.addOptional<double>("dRmergePhotonWrtNeutralHadron");
389  desc_builders.addOptional<int>("maxUnmatchedBlockElementsNeutralHadron");
390  desc_builders.addOptional<double>("dRmergePhotonWrtElectron");
391  desc_builders.addOptional<std::vector<int>>("chargedHadronCandidatesParticleIds");
392  desc_builders.addOptional<int>("minBlockElementMatchesPhoton");
393  desc_builders.addOptional<double>("dRmergeNeutralHadronWrtNeutralHadron");
394  desc_builders.addOptional<int>("maxUnmatchedBlockElementsPhoton");
395  desc_builders.addOptional<double>("dRmergeNeutralHadronWrtOther");
396  desc_builders.addOptional<double>("dRmergeNeutralHadronWrtElectron");
397  desc_builders.addOptional<int>("minBlockElementMatchesNeutralHadron");
398  desc_builders.addOptional<double>("dRmergePhotonWrtOther");
399  desc_builders.addOptional<double>("dRmergeNeutralHadronWrtChargedHadron");
400 
401  edm::ParameterSet pset_builders;
402  pset_builders.addParameter<std::string>("name", "");
403  pset_builders.addParameter<std::string>("plugin", "");
405  pset_builders.addParameter<edm::ParameterSet>("qualityCuts", qualityCuts);
406  pset_builders.addParameter<int>("verbosity", 0);
407  std::vector<edm::ParameterSet> vpsd_builders;
408  vpsd_builders.push_back(pset_builders);
409 
410  desc.addVPSet("builders", desc_builders, vpsd_builders);
411  }
412 
413  descriptions.add("pfRecoTauChargedHadronProducer", desc);
414 }

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), edm::ParameterSetDescription::addOptional(), edm::ParameterSet::addParameter(), submitPVResolutionJobs::desc, reco::tau::RecoTauQualityCuts::fillDescriptions(), HLT_FULL_cff::InputTag, beam_dqm_sourceclient-live_cfg::qualityCuts, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ print()

template<typename T >
void PFRecoTauChargedHadronProducer::print ( const T chargedHadrons)

Definition at line 325 of file PFRecoTauChargedHadronProducer.cc.

325  {
326  for (typename T::const_iterator chargedHadron = chargedHadrons.begin(); chargedHadron != chargedHadrons.end();
327  ++chargedHadron) {
328  edm::LogPrint("PFRecoTauChHProducer") << (*chargedHadron);
329  edm::LogPrint("PFRecoTauChHProducer") << "Rankers:";
330  for (rankerList::const_iterator ranker = rankers_.begin(); ranker != rankers_.end(); ++ranker) {
331  const unsigned width = 25;
332  edm::LogPrint("PFRecoTauChHProducer")
333  << " " << std::setiosflags(std::ios::left) << std::setw(width) << ranker->name() << " "
334  << std::resetiosflags(std::ios::left) << std::setprecision(3) << (*ranker)(*chargedHadron) << std::endl;
335  }
336  }
337 }

References muons2muons_cfi::chargedHadron, rankers_, and ApeEstimator_cff::width.

Referenced by produce().

◆ produce()

void PFRecoTauChargedHadronProducer::produce ( edm::Event evt,
const edm::EventSetup es 
)
override

Definition at line 138 of file PFRecoTauChargedHadronProducer.cc.

138  {
139  if (verbosity_) {
140  edm::LogPrint("PFRecoTauChHProducer") << "<PFRecoTauChargedHadronProducer::produce>:";
141  edm::LogPrint("PFRecoTauChHProducer") << " moduleLabel = " << moduleLabel_;
142  }
143 
144  // give each of our plugins a chance at doing something with the edm::Event
145  for (auto& builder : builders_) {
146  builder.setup(evt, es);
147  }
148 
149  // get a view of our jets via the base candidates
151  evt.getByToken(Jets_token, jets);
152 
153  // convert the view to a RefVector of actual PFJets
155  size_t nElements = jets->size();
156  for (size_t i = 0; i < nElements; ++i) {
157  pfJets.push_back(jets->refAt(i));
158  }
159 
160  // make our association
161  std::unique_ptr<reco::PFJetChargedHadronAssociation> pfJetChargedHadronAssociations;
162 
163  if (!pfJets.empty()) {
164  pfJetChargedHadronAssociations = std::make_unique<reco::PFJetChargedHadronAssociation>(reco::JetRefBaseProd(jets));
165  } else {
166  pfJetChargedHadronAssociations = std::make_unique<reco::PFJetChargedHadronAssociation>();
167  }
168 
169  // loop over our jets
170  for (const auto& pfJet : pfJets) {
171  if (pfJet->pt() - minJetPt_ < 1e-5)
172  continue;
173  if (std::abs(pfJet->eta()) - maxJetAbsEta_ > -1e-5)
174  continue;
175 
176  // build global list of ChargedHadron candidates for each jet
177  ChargedHadronList uncleanedChargedHadrons;
178 
179  // merge candidates reconstructed by all desired algorithm plugins
180  for (auto const& builder : builders_) {
181  try {
182  ChargedHadronVector result(builder(*pfJet));
183  if (verbosity_) {
184  edm::LogPrint("PFRecoTauChHProducer") << "result of builder = " << builder.name() << ":";
185  print(result);
186  }
187  uncleanedChargedHadrons.transfer(uncleanedChargedHadrons.end(), result);
188  } catch (cms::Exception& exception) {
189  edm::LogError("BuilderPluginException")
190  << "Exception caught in builder plugin " << builder.name() << ", rethrowing" << std::endl;
191  throw exception;
192  }
193  }
194 
195  // rank the candidates according to our quality plugins
196  uncleanedChargedHadrons.sort(*predicate_);
197 
198  // define collection of cleaned ChargedHadrons;
199  std::vector<reco::PFRecoTauChargedHadron> cleanedChargedHadrons;
200 
201  // keep track of neutral PFCandidates, charged PFCandidates and tracks "used" by ChargedHadron candidates in the clean collection
202  typedef std::pair<double, double> etaPhiPair;
203  std::list<etaPhiPair> tracksInCleanCollection;
204  std::set<reco::CandidatePtr> neutralPFCandsInCleanCollection;
205 
206  while (!uncleanedChargedHadrons.empty()) {
207  // get next best ChargedHadron candidate
208  std::unique_ptr<reco::PFRecoTauChargedHadron> nextChargedHadron(uncleanedChargedHadrons.pop_front().release());
209  if (verbosity_) {
210  edm::LogPrint("PFRecoTauChHProducer") << "processing nextChargedHadron:";
211  edm::LogPrint("PFRecoTauChHProducer") << (*nextChargedHadron);
212  }
213 
214  // discard candidates which fail final output selection
215  if (!(*outputSelector_)(*nextChargedHadron))
216  continue;
217 
218  const reco::Track* track = nullptr;
219  if (nextChargedHadron->getChargedPFCandidate().isNonnull()) {
220  const reco::PFCandidate* chargedPFCand =
221  dynamic_cast<const reco::PFCandidate*>(&*nextChargedHadron->getChargedPFCandidate());
222  if (chargedPFCand) {
223  if (chargedPFCand->trackRef().isNonnull())
224  track = chargedPFCand->trackRef().get();
225  else if (chargedPFCand->muonRef().isNonnull() && chargedPFCand->muonRef()->innerTrack().isNonnull())
226  track = chargedPFCand->muonRef()->innerTrack().get();
227  else if (chargedPFCand->muonRef().isNonnull() && chargedPFCand->muonRef()->globalTrack().isNonnull())
228  track = chargedPFCand->muonRef()->globalTrack().get();
229  else if (chargedPFCand->muonRef().isNonnull() && chargedPFCand->muonRef()->outerTrack().isNonnull())
230  track = chargedPFCand->muonRef()->outerTrack().get();
231  else if (chargedPFCand->gsfTrackRef().isNonnull())
232  track = chargedPFCand->gsfTrackRef().get();
233  }
234  }
235  if (nextChargedHadron->getTrack().isNonnull() && !track) {
236  track = nextChargedHadron->getTrack().get();
237  }
238 
239  // discard candidate in case its track is "used" by any ChargedHadron in the clean collection
240  bool isTrack_overlap = false;
241  if (track) {
242  double track_eta = track->eta();
243  double track_phi = track->phi();
244  for (std::list<etaPhiPair>::const_iterator trackInCleanCollection = tracksInCleanCollection.begin();
245  trackInCleanCollection != tracksInCleanCollection.end();
246  ++trackInCleanCollection) {
247  double dR = deltaR(track_eta, track_phi, trackInCleanCollection->first, trackInCleanCollection->second);
248  if (dR < 1.e-4)
249  isTrack_overlap = true;
250  }
251  }
252  if (verbosity_) {
253  edm::LogPrint("PFRecoTauChHProducer") << "isTrack_overlap = " << isTrack_overlap;
254  }
255  if (isTrack_overlap)
256  continue;
257 
258  // discard ChargedHadron candidates without track in case they are close to neutral PFCandidates "used" by ChargedHadron candidates in the clean collection
259  bool isNeutralPFCand_overlap = false;
260  if (nextChargedHadron->algoIs(reco::PFRecoTauChargedHadron::kPFNeutralHadron)) {
261  for (std::set<reco::CandidatePtr>::const_iterator neutralPFCandInCleanCollection =
262  neutralPFCandsInCleanCollection.begin();
263  neutralPFCandInCleanCollection != neutralPFCandsInCleanCollection.end();
264  ++neutralPFCandInCleanCollection) {
265  if ((*neutralPFCandInCleanCollection) == nextChargedHadron->getChargedPFCandidate())
266  isNeutralPFCand_overlap = true;
267  }
268  }
269  if (verbosity_) {
270  edm::LogPrint("PFRecoTauChHProducer") << "isNeutralPFCand_overlap = " << isNeutralPFCand_overlap;
271  }
272  if (isNeutralPFCand_overlap)
273  continue;
274 
275  // find neutral PFCandidates that are not "used" by any ChargedHadron in the clean collection
276  std::vector<reco::CandidatePtr> uniqueNeutralPFCands;
277  std::set_difference(nextChargedHadron->getNeutralPFCandidates().begin(),
278  nextChargedHadron->getNeutralPFCandidates().end(),
279  neutralPFCandsInCleanCollection.begin(),
280  neutralPFCandsInCleanCollection.end(),
281  std::back_inserter(uniqueNeutralPFCands));
282 
283  if (uniqueNeutralPFCands.size() ==
284  nextChargedHadron->getNeutralPFCandidates()
285  .size()) { // all neutral PFCandidates are unique, add ChargedHadron candidate to clean collection
286  if (track)
287  tracksInCleanCollection.push_back(std::make_pair(track->eta(), track->phi()));
288  neutralPFCandsInCleanCollection.insert(nextChargedHadron->getNeutralPFCandidates().begin(),
289  nextChargedHadron->getNeutralPFCandidates().end());
290  if (verbosity_) {
291  edm::LogPrint("PFRecoTauChHProducer") << "--> adding nextChargedHadron to output collection.";
292  }
293  cleanedChargedHadrons.push_back(*nextChargedHadron);
294  } else { // remove overlapping neutral PFCandidates, reevaluate ranking criterion and process ChargedHadron candidate again
295  nextChargedHadron->neutralPFCandidates_.clear();
296  for (auto const& neutralPFCand : uniqueNeutralPFCands) {
297  nextChargedHadron->neutralPFCandidates_.push_back(neutralPFCand);
298  }
299  // update ChargedHadron four-momentum
300  reco::tau::setChargedHadronP4(*nextChargedHadron);
301  // reinsert ChargedHadron candidate into list of uncleaned candidates,
302  // at position according to new rank
303  ChargedHadronList::iterator insertionPoint = std::lower_bound(
304  uncleanedChargedHadrons.begin(), uncleanedChargedHadrons.end(), *nextChargedHadron, *predicate_);
305  if (verbosity_) {
306  edm::LogPrint("PFRecoTauChHProducer") << "--> removing non-unique neutral PFCandidates and reinserting "
307  "nextChargedHadron in uncleaned collection.";
308  }
309  uncleanedChargedHadrons.insert(insertionPoint, std::move(nextChargedHadron));
310  }
311  }
312 
313  if (verbosity_) {
314  print(cleanedChargedHadrons);
315  }
316 
317  // add ChargedHadron-to-jet association
318  pfJetChargedHadronAssociations->setValue(pfJet.key(), cleanedChargedHadrons);
319  }
320 
321  evt.put(std::move(pfJetChargedHadronAssociations));
322 }

References funct::abs(), builders_, PbPb_ZMuSkimMuonDPG_cff::deltaR, HGC3DClusterGenMatchSelector_cfi::dR, MillePedeFileConverter_cfg::e, cppFunctionSkipper::exception, edm::Ref< C, T, F >::get(), edm::Event::getByToken(), reco::PFCandidate::gsfTrackRef(), mps_fire::i, edm::Ref< C, T, F >::isNonnull(), singleTopDQM_cfi::jets, Jets_token, reco::PFRecoTauChargedHadron::kPFNeutralHadron, pfDeepBoostedJetPreprocessParams_cfi::lower_bound, maxJetAbsEta_, minJetPt_, moduleLabel_, eostools::move(), reco::PFCandidate::muonRef(), outputSelector_, pfJetBenchmark_cfi::pfJets, predicate_, print(), edm::Event::put(), mps_fire::result, reco::tau::setChargedHadronP4(), HLT_FULL_cff::track, reco::PFCandidate::trackRef(), and verbosity_.

Member Data Documentation

◆ builders_

builderList PFRecoTauChargedHadronProducer::builders_
private

Definition at line 87 of file PFRecoTauChargedHadronProducer.cc.

Referenced by PFRecoTauChargedHadronProducer(), and produce().

◆ Jets_token

edm::EDGetTokenT<reco::JetView> PFRecoTauChargedHadronProducer::Jets_token
private

Definition at line 82 of file PFRecoTauChargedHadronProducer.cc.

Referenced by PFRecoTauChargedHadronProducer(), and produce().

◆ maxJetAbsEta_

double PFRecoTauChargedHadronProducer::maxJetAbsEta_
private

Definition at line 84 of file PFRecoTauChargedHadronProducer.cc.

Referenced by PFRecoTauChargedHadronProducer(), and produce().

◆ minJetPt_

double PFRecoTauChargedHadronProducer::minJetPt_
private

Definition at line 83 of file PFRecoTauChargedHadronProducer.cc.

Referenced by PFRecoTauChargedHadronProducer(), and produce().

◆ moduleLabel_

std::string PFRecoTauChargedHadronProducer::moduleLabel_
private

◆ outputSelector_

std::unique_ptr<StringCutObjectSelector<reco::PFRecoTauChargedHadron> > PFRecoTauChargedHadronProducer::outputSelector_
private

Definition at line 93 of file PFRecoTauChargedHadronProducer.cc.

Referenced by PFRecoTauChargedHadronProducer(), and produce().

◆ predicate_

std::unique_ptr<ChargedHadronPredicate> PFRecoTauChargedHadronProducer::predicate_
private

Definition at line 90 of file PFRecoTauChargedHadronProducer.cc.

Referenced by PFRecoTauChargedHadronProducer(), and produce().

◆ rankers_

rankerList PFRecoTauChargedHadronProducer::rankers_
private

Definition at line 88 of file PFRecoTauChargedHadronProducer.cc.

Referenced by PFRecoTauChargedHadronProducer(), and print().

◆ srcJets_

edm::InputTag PFRecoTauChargedHadronProducer::srcJets_
private

Definition at line 81 of file PFRecoTauChargedHadronProducer.cc.

Referenced by PFRecoTauChargedHadronProducer().

◆ verbosity_

int PFRecoTauChargedHadronProducer::verbosity_
private

Definition at line 96 of file PFRecoTauChargedHadronProducer.cc.

Referenced by PFRecoTauChargedHadronProducer(), and produce().

reco::PFCandidate::trackRef
reco::TrackRef trackRef() const
Definition: PFCandidate.cc:408
ApeEstimator_cff.width
width
Definition: ApeEstimator_cff.py:24
mps_fire.i
i
Definition: mps_fire.py:428
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11713
PFRecoTauChargedHadronProducer::verbosity_
int verbosity_
Definition: PFRecoTauChargedHadronProducer.cc:96
muons2muons_cfi.chargedHadron
chargedHadron
Definition: muons2muons_cfi.py:26
edm::LogPrint
Log< level::Warning, true > LogPrint
Definition: MessageLogger.h:130
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
edm::Ref::get
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:232
edm::VParameterSet
std::vector< ParameterSet > VParameterSet
Definition: ParameterSet.h:34
singleTopDQM_cfi.jets
jets
Definition: singleTopDQM_cfi.py:42
beamerCreator.create
def create(alignables, pedeDump, additionalData, outputFile, config)
Definition: beamerCreator.py:44
edm::Handle
Definition: AssociativeIterator.h:50
edm::ParameterSetDescription::addOptional
ParameterDescriptionBase * addOptional(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:105
PFRecoTauChargedHadronProducer::Jets_token
edm::EDGetTokenT< reco::JetView > Jets_token
Definition: PFRecoTauChargedHadronProducer.cc:82
PFRecoTauChargedHadronProducer::builders_
builderList builders_
Definition: PFRecoTauChargedHadronProducer.cc:87
PFRecoTauChargedHadronProducer::ChargedHadronVector
boost::ptr_vector< reco::PFRecoTauChargedHadron > ChargedHadronVector
Definition: PFRecoTauChargedHadronProducer.cc:73
PFRecoTauChargedHadronProducer::moduleLabel_
std::string moduleLabel_
Definition: PFRecoTauChargedHadronProducer.cc:78
reco::PFCandidate::muonRef
reco::MuonRef muonRef() const
Definition: PFCandidate.cc:421
reco::tau::setChargedHadronP4
void setChargedHadronP4(reco::PFRecoTauChargedHadron &chargedHadron, double scaleFactor_neutralPFCands=1.0)
Definition: pfRecoTauChargedHadronAuxFunctions.cc:31
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
PFRecoTauChargedHadronProducer::minJetPt_
double minJetPt_
Definition: PFRecoTauChargedHadronProducer.cc:83
corrVsCorr.selection
selection
main part
Definition: corrVsCorr.py:100
PFRecoTauChargedHadronProducer::srcJets_
edm::InputTag srcJets_
Definition: PFRecoTauChargedHadronProducer.cc:81
reco::Track
Definition: Track.h:27
edm::Event::getByToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:531
PFRecoTauChargedHadronProducer::outputSelector_
std::unique_ptr< StringCutObjectSelector< reco::PFRecoTauChargedHadron > > outputSelector_
Definition: PFRecoTauChargedHadronProducer.cc:93
PbPb_ZMuSkimMuonDPG_cff.deltaR
deltaR
Definition: PbPb_ZMuSkimMuonDPG_cff.py:63
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
cppFunctionSkipper.exception
exception
Definition: cppFunctionSkipper.py:10
pfDeepBoostedJetPreprocessParams_cfi.lower_bound
lower_bound
Definition: pfDeepBoostedJetPreprocessParams_cfi.py:15
edm::ParameterSet
Definition: ParameterSet.h:47
reco::PFCandidate::gsfTrackRef
reco::GsfTrackRef gsfTrackRef() const
Definition: PFCandidate.cc:440
PFRecoTauChargedHadronProducer::print
void print(const T &chargedHadrons)
Definition: PFRecoTauChargedHadronProducer.cc:325
edm::Ref::isNonnull
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
edm::ParameterSet::addParameter
void addParameter(std::string const &name, T const &value)
Definition: ParameterSet.h:135
PFRecoTauChargedHadronProducer::rankers_
rankerList rankers_
Definition: PFRecoTauChargedHadronProducer.cc:88
reco::tau::RecoTauQualityCuts::fillDescriptions
static void fillDescriptions(edm::ParameterSetDescription &descriptions)
Declare all parameters read from python config file.
Definition: RecoTauQualityCuts.cc:346
edm::Event::put
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
get
#define get
edm::RefToBaseVector< reco::Jet >
looper.cfg
cfg
Definition: looper.py:297
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
reco::PFRecoTauChargedHadron::kPFNeutralHadron
Definition: PFRecoTauChargedHadron.h:32
reco::PFCandidate
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:41
mps_fire.result
result
Definition: mps_fire.py:311
cms::Exception
Definition: Exception.h:70
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
HGC3DClusterGenMatchSelector_cfi.dR
dR
Definition: HGC3DClusterGenMatchSelector_cfi.py:7
PFRecoTauChargedHadronProducer::predicate_
std::unique_ptr< ChargedHadronPredicate > predicate_
Definition: PFRecoTauChargedHadronProducer.cc:90
edm::InputTag
Definition: InputTag.h:15
PFRecoTauChargedHadronProducer::maxJetAbsEta_
double maxJetAbsEta_
Definition: PFRecoTauChargedHadronProducer.cc:84
pfJetBenchmark_cfi.pfJets
pfJets
Definition: pfJetBenchmark_cfi.py:4
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
PFRecoTauChargedHadronProducer::ChargedHadronList
boost::ptr_list< reco::PFRecoTauChargedHadron > ChargedHadronList
Definition: PFRecoTauChargedHadronProducer.cc:74
edm::RefToBaseProd
Definition: RefToBase.h:65
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
beam_dqm_sourceclient-live_cfg.qualityCuts
qualityCuts
Definition: beam_dqm_sourceclient-live_cfg.py:123