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 345 of file PFRecoTauChargedHadronProducer.cc.

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

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 331 of file PFRecoTauChargedHadronProducer.cc.

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

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  } else {
234  track = nextChargedHadron->getChargedPFCandidate()->bestTrack();
235  }
236  }
237  if (track == nullptr) {
238  if (nextChargedHadron->getTrack().isNonnull()) {
239  track = nextChargedHadron->getTrack().get();
240  } else if (nextChargedHadron->getLostTrackCandidate().isNonnull()) {
241  track = nextChargedHadron->getLostTrackCandidate()->bestTrack();
242  }
243  }
244 
245  // discard candidate in case its track is "used" by any ChargedHadron in the clean collection
246  bool isTrack_overlap = false;
247  if (track) {
248  double track_eta = track->eta();
249  double track_phi = track->phi();
250  for (std::list<etaPhiPair>::const_iterator trackInCleanCollection = tracksInCleanCollection.begin();
251  trackInCleanCollection != tracksInCleanCollection.end();
252  ++trackInCleanCollection) {
253  double dR = deltaR(track_eta, track_phi, trackInCleanCollection->first, trackInCleanCollection->second);
254  if (dR < 1.e-4)
255  isTrack_overlap = true;
256  }
257  }
258  if (verbosity_) {
259  edm::LogPrint("PFRecoTauChHProducer") << "isTrack_overlap = " << isTrack_overlap;
260  }
261  if (isTrack_overlap)
262  continue;
263 
264  // discard ChargedHadron candidates without track in case they are close to neutral PFCandidates "used" by ChargedHadron candidates in the clean collection
265  bool isNeutralPFCand_overlap = false;
266  if (nextChargedHadron->algoIs(reco::PFRecoTauChargedHadron::kPFNeutralHadron)) {
267  for (std::set<reco::CandidatePtr>::const_iterator neutralPFCandInCleanCollection =
268  neutralPFCandsInCleanCollection.begin();
269  neutralPFCandInCleanCollection != neutralPFCandsInCleanCollection.end();
270  ++neutralPFCandInCleanCollection) {
271  if ((*neutralPFCandInCleanCollection) == nextChargedHadron->getChargedPFCandidate())
272  isNeutralPFCand_overlap = true;
273  }
274  }
275  if (verbosity_) {
276  edm::LogPrint("PFRecoTauChHProducer") << "isNeutralPFCand_overlap = " << isNeutralPFCand_overlap;
277  }
278  if (isNeutralPFCand_overlap)
279  continue;
280 
281  // find neutral PFCandidates that are not "used" by any ChargedHadron in the clean collection
282  std::vector<reco::CandidatePtr> uniqueNeutralPFCands;
283  std::set_difference(nextChargedHadron->getNeutralPFCandidates().begin(),
284  nextChargedHadron->getNeutralPFCandidates().end(),
285  neutralPFCandsInCleanCollection.begin(),
286  neutralPFCandsInCleanCollection.end(),
287  std::back_inserter(uniqueNeutralPFCands));
288 
289  if (uniqueNeutralPFCands.size() ==
290  nextChargedHadron->getNeutralPFCandidates()
291  .size()) { // all neutral PFCandidates are unique, add ChargedHadron candidate to clean collection
292  if (track)
293  tracksInCleanCollection.push_back(std::make_pair(track->eta(), track->phi()));
294  neutralPFCandsInCleanCollection.insert(nextChargedHadron->getNeutralPFCandidates().begin(),
295  nextChargedHadron->getNeutralPFCandidates().end());
296  if (verbosity_) {
297  edm::LogPrint("PFRecoTauChHProducer") << "--> adding nextChargedHadron to output collection.";
298  }
299  cleanedChargedHadrons.push_back(*nextChargedHadron);
300  } else { // remove overlapping neutral PFCandidates, reevaluate ranking criterion and process ChargedHadron candidate again
301  nextChargedHadron->neutralPFCandidates_.clear();
302  for (auto const& neutralPFCand : uniqueNeutralPFCands) {
303  nextChargedHadron->neutralPFCandidates_.push_back(neutralPFCand);
304  }
305  // update ChargedHadron four-momentum
306  reco::tau::setChargedHadronP4(*nextChargedHadron);
307  // reinsert ChargedHadron candidate into list of uncleaned candidates,
308  // at position according to new rank
309  ChargedHadronList::iterator insertionPoint = std::lower_bound(
310  uncleanedChargedHadrons.begin(), uncleanedChargedHadrons.end(), *nextChargedHadron, *predicate_);
311  if (verbosity_) {
312  edm::LogPrint("PFRecoTauChHProducer") << "--> removing non-unique neutral PFCandidates and reinserting "
313  "nextChargedHadron in uncleaned collection.";
314  }
315  uncleanedChargedHadrons.insert(insertionPoint, std::move(nextChargedHadron));
316  }
317  }
318 
319  if (verbosity_) {
320  print(cleanedChargedHadrons);
321  }
322 
323  // add ChargedHadron-to-jet association
324  pfJetChargedHadronAssociations->setValue(pfJet.key(), cleanedChargedHadrons);
325  }
326 
327  evt.put(std::move(pfJetChargedHadronAssociations));
328 }

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:89285
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:535
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:331
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:125