CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
PFProducer Class Reference

Producer for particle flow reconstructed particles (PFCandidates) More...

Inheritance diagram for PFProducer:
edm::stream::EDProducer<>

Public Member Functions

void beginRun (const edm::Run &, const edm::EventSetup &) override
 
 PFProducer (const edm::ParameterSet &)
 
void produce (edm::Event &, const edm::EventSetup &) 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 Attributes

std::string calibrationsLabel_
 
std::string electronExtraOutputCol_
 
const edm::EDGetTokenT< reco::PFBlockCollectioninputTagBlocks_
 
std::vector< edm::EDGetTokenT< reco::PFRecHitCollection > > inputTagCleanedHF_
 
edm::EDGetTokenT< reco::GsfElectronCollectioninputTagEgammaElectrons_
 
edm::EDGetTokenT< reco::MuonCollectioninputTagMuons_
 
edm::EDGetTokenT< edm::View< reco::PFCandidate > > inputTagPFEGammaCandidates_
 
edm::EDGetTokenT< edm::ValueMap< reco::GsfElectronRef > > inputTagValueMapGedElectrons_
 
edm::EDGetTokenT< edm::ValueMap< reco::PhotonRef > > inputTagValueMapGedPhotons_
 
PFAlgo pfAlgo_
 particle flow algorithm More...
 
const edm::EDPutTokenT< reco::PFCandidateCollectionpfCandidatesToken_
 
const edm::EDPutTokenT< reco::PFCandidateCollectionpfCleanedCandidatesToken_
 
std::unique_ptr< PFEGammaFilterspfegamma_ = nullptr
 
PFEnergyCalibration pfEnergyCalibration_
 
PFEnergyCalibrationHF pfEnergyCalibrationHF_
 
std::string photonExtraOutputCol_
 
bool postHFCleaning_
 
bool postMuonCleaning_
 
bool use_EGammaFilters_
 
bool useCalibrationsFromDB_
 
bool useEGammaElectrons_
 
bool useHO_
 
bool useVerticesForNeutral_
 
bool verbose_
 verbose ? More...
 
edm::EDGetTokenT< reco::VertexCollectionvertices_
 

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

Producer for particle flow reconstructed particles (PFCandidates)

This producer makes use of PFAlgo, the particle flow algorithm.

Author
Colin Bernet
Date
July 2006

Definition at line 36 of file PFProducer.cc.

Constructor & Destructor Documentation

◆ PFProducer()

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

Definition at line 102 of file PFProducer.cc.

103  : pfCandidatesToken_{produces<reco::PFCandidateCollection>()},
104  pfCleanedCandidatesToken_{produces<reco::PFCandidateCollection>("CleanedHF")},
105  inputTagBlocks_(consumes<reco::PFBlockCollection>(iConfig.getParameter<InputTag>("blocks"))),
106  pfEnergyCalibrationHF_(iConfig.getParameter<bool>("calibHF_use"),
107  iConfig.getParameter<std::vector<double>>("calibHF_eta_step"),
108  iConfig.getParameter<std::vector<double>>("calibHF_a_EMonly"),
109  iConfig.getParameter<std::vector<double>>("calibHF_b_HADonly"),
110  iConfig.getParameter<std::vector<double>>("calibHF_a_EMHAD"),
111  iConfig.getParameter<std::vector<double>>("calibHF_b_EMHAD")),
112  pfAlgo_(iConfig.getParameter<double>("pf_nsigma_ECAL"),
113  iConfig.getParameter<double>("pf_nsigma_HCAL"),
114  iConfig.getParameter<double>("pf_nsigma_HFEM"),
115  iConfig.getParameter<double>("pf_nsigma_HFHAD"),
116  iConfig.getParameter<std::vector<double>>("resolHF_square"),
119  iConfig) {
120  //Post cleaning of the muons
121  inputTagMuons_ = consumes<reco::MuonCollection>(iConfig.getParameter<InputTag>("muons"));
122  postMuonCleaning_ = iConfig.getParameter<bool>("postMuonCleaning");
123 
124  if (iConfig.existsAs<bool>("useEGammaFilters")) {
125  use_EGammaFilters_ = iConfig.getParameter<bool>("useEGammaFilters");
126  } else {
127  use_EGammaFilters_ = false;
128  }
129 
130  useEGammaElectrons_ = iConfig.getParameter<bool>("useEGammaElectrons");
131 
132  if (useEGammaElectrons_) {
134  consumes<reco::GsfElectronCollection>(iConfig.getParameter<edm::InputTag>("egammaElectrons"));
135  }
136 
137  // register products
138  produces<reco::PFCandidateCollection>("CleanedCosmicsMuons");
139  produces<reco::PFCandidateCollection>("CleanedTrackerAndGlobalMuons");
140  produces<reco::PFCandidateCollection>("CleanedFakeMuons");
141  produces<reco::PFCandidateCollection>("CleanedPunchThroughMuons");
142  produces<reco::PFCandidateCollection>("CleanedPunchThroughNeutralHadrons");
143  produces<reco::PFCandidateCollection>("AddedMuonsAndHadrons");
144 
145  // Reading new EGamma selection cuts
146  bool useProtectionsForJetMET(false);
147 
148  // Reading new EGamma ubiased collections and value maps
149  if (use_EGammaFilters_) {
151  consumes<edm::View<reco::PFCandidate>>((iConfig.getParameter<edm::InputTag>("PFEGammaCandidates")));
153  consumes<edm::ValueMap<reco::GsfElectronRef>>(iConfig.getParameter<edm::InputTag>("GedElectronValueMap"));
155  consumes<edm::ValueMap<reco::PhotonRef>>(iConfig.getParameter<edm::InputTag>("GedPhotonValueMap"));
156  useProtectionsForJetMET = iConfig.getParameter<bool>("useProtectionsForJetMET");
157 
158  const edm::ParameterSet pfEGammaFiltersParams =
159  iConfig.getParameter<edm::ParameterSet>("PFEGammaFiltersParameters");
160  pfegamma_ = std::make_unique<PFEGammaFilters>(pfEGammaFiltersParams);
161  }
162 
163  // EGamma filters
165 
166  //Secondary tracks and displaced vertices parameters
167 
168  bool rejectTracks_Bad = iConfig.getParameter<bool>("rejectTracks_Bad");
169 
170  bool rejectTracks_Step45 = iConfig.getParameter<bool>("rejectTracks_Step45");
171 
172  bool usePFNuclearInteractions = iConfig.getParameter<bool>("usePFNuclearInteractions");
173 
174  bool usePFConversions = iConfig.getParameter<bool>("usePFConversions");
175 
176  bool usePFDecays = iConfig.getParameter<bool>("usePFDecays");
177 
178  double dptRel_DispVtx = iConfig.getParameter<double>("dptRel_DispVtx");
179 
180  useCalibrationsFromDB_ = iConfig.getParameter<bool>("useCalibrationsFromDB");
181 
183  calibrationsLabel_ = iConfig.getParameter<std::string>("calibrationsLabel");
184 
185  // Secondary tracks and displaced vertices parameters
188 
190  pfAlgo_.setCandConnectorParameters(iConfig.getParameter<edm::ParameterSet>("iCfgCandConnector"));
191 
192  // Post cleaning of the HF
193  postHFCleaning_ = iConfig.getParameter<bool>("postHFCleaning");
194  const edm::ParameterSet pfHFCleaningParams = iConfig.getParameter<edm::ParameterSet>("PFHFCleaningParameters");
195 
196  // Set post HF cleaning muon parameters
198 
199  // Input tags for HF cleaned rechits
200  std::vector<edm::InputTag> tags = iConfig.getParameter<std::vector<edm::InputTag>>("cleanedHF");
201  for (unsigned int i = 0; i < tags.size(); ++i)
202  inputTagCleanedHF_.push_back(consumes<reco::PFRecHitCollection>(tags[i]));
203  //MIKE: Vertex Parameters
204  vertices_ = consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("vertexCollection"));
205  useVerticesForNeutral_ = iConfig.getParameter<bool>("useVerticesForNeutral");
206 
207  // Use HO clusters and links in the PF reconstruction
208  useHO_ = iConfig.getParameter<bool>("useHO");
210 
211  verbose_ = iConfig.getUntrackedParameter<bool>("verbose", false);
212 }

Member Function Documentation

◆ beginRun()

void PFProducer::beginRun ( const edm::Run run,
const edm::EventSetup es 
)
override

Definition at line 214 of file PFProducer.cc.

214  {
216  // read the PFCalibration functions from the global tags
219 
220  PerformancePayloadFromTFormula const* pfCalibrations =
221  static_cast<const PerformancePayloadFromTFormula*>(perfH.product());
222 
224  }
225 }

References calibrationsLabel_, edm::EventSetup::get(), get, pfEnergyCalibration_, edm::ESHandle< T >::product(), PFEnergyCalibration::setCalibrationFunctions(), and useCalibrationsFromDB_.

◆ fillDescriptions()

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

Definition at line 306 of file PFProducer.cc.

306  {
308 
309  // Verbosity and debug flags
310  desc.addUntracked<bool>("verbose", false);
311  desc.addUntracked<bool>("debug", false);
312 
313  // PF Blocks label
314  desc.add<edm::InputTag>("blocks", edm::InputTag("particleFlowBlock"));
315 
316  // reco::muons label and Post Muon cleaning
317  desc.add<edm::InputTag>("muons", edm::InputTag("muons1stStep"));
318  desc.add<bool>("postMuonCleaning", true);
319 
320  // Vertices label
321  desc.add<edm::InputTag>("vertexCollection", edm::InputTag("offlinePrimaryVertices"));
322  desc.add<bool>("useVerticesForNeutral", true);
323 
324  // Use HO clusters in PF hadron reconstruction
325  desc.add<bool>("useHO", true);
326 
327  // EGamma-related
328  desc.add<edm::InputTag>("PFEGammaCandidates", edm::InputTag("particleFlowEGamma"));
329  desc.add<edm::InputTag>("GedElectronValueMap", {"gedGsfElectronValueMapsTmp"});
330  desc.add<edm::InputTag>("GedPhotonValueMap", edm::InputTag("gedPhotonsTmp", "valMapPFEgammaCandToPhoton"));
331 
332  desc.add<bool>("useEGammaElectrons", true);
333  desc.add<edm::InputTag>("egammaElectrons", edm::InputTag("mvaElectrons"));
334 
335  desc.add<bool>("useEGammaFilters", true);
336  desc.add<bool>("useProtectionsForJetMET", true); // Propagated to PFEGammaFilters
337 
338  // For PFEGammaFilters
339  edm::ParameterSetDescription psd_PFEGammaFilters;
340  PFEGammaFilters::fillPSetDescription(psd_PFEGammaFilters);
341  desc.add<edm::ParameterSetDescription>("PFEGammaFiltersParameters", psd_PFEGammaFilters);
342 
343  // Treatment of muons :
344  // Expected energy in ECAL and HCAL, and RMS
345  desc.add<std::vector<double>>("muon_HCAL", {3.0, 3.0});
346  desc.add<std::vector<double>>("muon_ECAL", {0.5, 0.5});
347  desc.add<std::vector<double>>("muon_HO", {0.9, 0.9});
348 
349  // For PFMuonAlgo
350  edm::ParameterSetDescription psd_PFMuonAlgo;
351  PFMuonAlgo::fillPSetDescription(psd_PFMuonAlgo);
352  desc.add<edm::ParameterSetDescription>("PFMuonAlgoParameters", psd_PFMuonAlgo);
353 
354  // Input displaced vertices
355  // It is strongly adviced to keep usePFNuclearInteractions = bCorrect
356  desc.add<bool>("rejectTracks_Bad", true);
357  desc.add<bool>("rejectTracks_Step45", true);
358 
359  desc.add<bool>("usePFNuclearInteractions", true);
360  desc.add<bool>("usePFConversions", true);
361  desc.add<bool>("usePFDecays", false);
362 
363  desc.add<double>("dptRel_DispVtx", 10.0);
364 
365  // PFCandConnector
366  edm::ParameterSetDescription psd_CandConnector;
367  PFCandConnector::fillPSetDescription(psd_CandConnector);
368  desc.add<edm::ParameterSetDescription>("iCfgCandConnector", psd_CandConnector);
369 
370  // Treatment of potential fake tracks
371  desc.add<double>("nsigma_TRACK", 1.0)->setComment("Number of sigmas for fake track detection");
372  // pt_Error: dont forget to modify also ptErrorSecondary if you modify this parameter
373  desc.add<double>("pt_Error", 1.0)
374  ->setComment("Absolute pt error to detect fake tracks in the first three iterations");
375  desc.add<std::vector<double>>("factors_45", {10.0, 100.0})
376  ->setComment("Factors to be applied in the four and fifth steps to the pt error");
377 
378  // Treatment of tracks in region of bad HCal
379  desc.add<double>("goodTrackDeadHcal_ptErrRel", 0.2)->setComment("trackRef->ptError()/trackRef->pt() < X");
380  desc.add<double>("goodTrackDeadHcal_chi2n", 5)->setComment("trackRef->normalizedChi2() < X");
381  desc.add<unsigned int>("goodTrackDeadHcal_layers", 4)
382  ->setComment("trackRef->hitPattern().trackerLayersWithMeasurement() >= X");
383  desc.add<double>("goodTrackDeadHcal_validFr", 0.5)->setComment("trackRef->validFraction() > X");
384  desc.add<double>("goodTrackDeadHcal_dxy", 0.5)->setComment("abs(trackRef->dxy(primaryVertex_.position())) < X [cm]");
385 
386  desc.add<double>("goodPixelTrackDeadHcal_minEta", 2.3)->setComment("abs(trackRef->eta()) > X");
387  desc.add<double>("goodPixelTrackDeadHcal_maxPt", 50.0)->setComment("trackRef->ptError()/trackRef->pt() < X");
388  desc.add<double>("goodPixelTrackDeadHcal_ptErrRel", 1.0)->setComment("trackRef->ptError()/trackRef->pt() < X");
389  desc.add<double>("goodPixelTrackDeadHcal_chi2n", 2)->setComment("trackRef->normalizedChi2() < X");
390  desc.add<int>("goodPixelTrackDeadHcal_maxLost3Hit", 0)
391  ->setComment(
392  "max missing outer hits for a track with 3 valid pixel layers (can set to -1 to reject all these tracks)");
393  desc.add<int>("goodPixelTrackDeadHcal_maxLost4Hit", 1)
394  ->setComment("max missing outer hits for a track with >= 4 valid pixel layers");
395  desc.add<double>("goodPixelTrackDeadHcal_dxy", 0.02)
396  ->setComment("abs(trackRef->dxy(primaryVertex_.position())) < X [cm] ");
397  desc.add<double>("goodPixelTrackDeadHcal_dz", 0.05)
398  ->setComment("abs(trackRef->dz(primaryVertex_.position())) < X [cm]");
399 
400  // number of sigmas for neutral energy detection
401  desc.add<double>("pf_nsigma_ECAL", 0.0);
402  desc.add<double>("pf_nsigma_HCAL", 1.0);
403  desc.add<double>("pf_nsigma_HFEM", 1.0);
404  desc.add<double>("pf_nsigma_HFHAD", 1.0);
405 
406  // ECAL/HCAL PF cluster calibration : take it from global tag ?
407  desc.add<bool>("useCalibrationsFromDB", true);
408  desc.add<std::string>("calibrationsLabel", "");
409 
410  // Post HF cleaning
411  desc.add<bool>("postHFCleaning", false);
412  {
413  edm::ParameterSetDescription psd_PFHFCleaning;
414  psd_PFHFCleaning.add<double>("minHFCleaningPt", 5.0)
415  ->setComment("Clean only objects with pt larger than this value");
416  psd_PFHFCleaning.add<double>("maxSignificance", 2.5)
417  ->setComment("Clean only if the initial MET/sqrt(sumet) is larger than this value");
418  psd_PFHFCleaning.add<double>("minSignificance", 2.5)
419  ->setComment("Clean only if the final MET/sqrt(sumet) is smaller than this value");
420  psd_PFHFCleaning.add<double>("minSignificanceReduction", 1.4)
421  ->setComment("Clean only if the significance reduction is larger than this value");
422  psd_PFHFCleaning.add<double>("maxDeltaPhiPt", 7.0)
423  ->setComment("Clean only if the MET and the to-be-cleaned object satisfy this DeltaPhi * Pt cut");
424  // (the MET angular resoution is in 1/MET)
425  psd_PFHFCleaning.add<double>("minDeltaMet", 0.4)
426  ->setComment(
427  "Clean only if the MET relative reduction from the to-be-cleaned object is larger than this value");
428  desc.add<edm::ParameterSetDescription>("PFHFCleaningParameters", psd_PFHFCleaning);
429  }
430 
431  // Check HF cleaning
432  desc.add<std::vector<edm::InputTag>>("cleanedHF",
433  {
434  edm::InputTag("particleFlowRecHitHF", "Cleaned"),
435  edm::InputTag("particleFlowClusterHF", "Cleaned"),
436  });
437 
438  // calibration parameters for HF:
439  desc.add<bool>("calibHF_use", false);
440  desc.add<std::vector<double>>("calibHF_eta_step", {0.0, 2.9, 3.0, 3.2, 4.2, 4.4, 4.6, 4.8, 5.2, 5.4});
441  desc.add<std::vector<double>>("calibHF_a_EMonly", {1., 1., 1., 1., 1., 1., 1., 1., 1., 1.});
442  desc.add<std::vector<double>>("calibHF_a_EMHAD", {1., 1., 1., 1., 1., 1., 1., 1., 1., 1.});
443  desc.add<std::vector<double>>("calibHF_b_HADonly", {1., 1., 1., 1., 1., 1., 1., 1., 1., 1.});
444  desc.add<std::vector<double>>("calibHF_b_EMHAD", {1., 1., 1., 1., 1., 1., 1., 1., 1., 1.});
445 
446  // resolution parameters for HF: EPJC 53(2008)139, doi:10.1140/epjc/s10052-007-0459-4
447  desc.add<std::vector<double>>("resolHF_square", {2.799 * 2.799, 0.114 * 0.114, 0.0 * 0.0})
448  ->setComment("HF resolution - stochastic, constant, noise term squares");
449 
450  descriptions.add("particleFlow", desc);
451 }

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), submitPVResolutionJobs::desc, PFMuonAlgo::fillPSetDescription(), PFEGammaFilters::fillPSetDescription(), PFCandConnector::fillPSetDescription(), HLT_FULL_cff::InputTag, edm::ParameterDescriptionNode::setComment(), and AlCaHLTBitMon_QueryRunRegistry::string.

◆ produce()

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

Definition at line 227 of file PFProducer.cc.

227  {
228  LogDebug("PFProducer") << "START event: " << iEvent.id().event() << " in run " << iEvent.id().run() << endl;
229 
230  //Assign the PFAlgo Parameters
232 
233  // get the collection of blocks
234  auto blocks = iEvent.getHandle(inputTagBlocks_);
235  assert(blocks.isValid());
236 
237  // get the collection of muons
238  if (postMuonCleaning_)
240 
241  if (use_EGammaFilters_)
245 
246  LogDebug("PFProducer") << "particle flow is starting" << endl;
247 
249 
250  if (verbose_) {
251  ostringstream str;
252  str << pfAlgo_ << endl;
253  LogInfo("PFProducer") << str.str() << endl;
254  }
255 
256  // Check HF overcleaning
257  if (postHFCleaning_) {
259  for (unsigned ihf = 0; ihf < inputTagCleanedHF_.size(); ++ihf) {
261  bool foundHF = iEvent.getByToken(inputTagCleanedHF_[ihf], hfCleaned);
262  if (!foundHF)
263  continue;
264  for (unsigned jhf = 0; jhf < (*hfCleaned).size(); ++jhf) {
265  hfCopy.push_back((*hfCleaned)[jhf]);
266  }
267  }
268  pfAlgo_.checkCleaning(hfCopy);
269  }
270 
271  // Save the final PFCandidate collection
272  auto pOutputCandidateCollection = pfAlgo_.makeConnectedCandidates();
273 
274  LogDebug("PFProducer") << "particle flow: putting products in the event";
275  if (verbose_) {
276  int nC = 0;
277  ostringstream ss;
278  for (auto const& cand : pOutputCandidateCollection) {
279  nC++;
280  ss << " " << nC << ") pid=" << cand.particleId() << " pt=" << cand.pt() << endl;
281  }
282  LogDebug("PFProducer") << "Here the full list:" << endl << ss.str();
283  }
284 
285  // Write in the event
286  iEvent.emplace(pfCandidatesToken_, pOutputCandidateCollection);
288 
289  if (postMuonCleaning_) {
290  auto& muAlgo = *pfAlgo_.getPFMuonAlgo();
291  // Save cosmic cleaned muon candidates
292  iEvent.put(muAlgo.transferCleanedCosmicCandidates(), "CleanedCosmicsMuons");
293  // Save tracker/global cleaned muon candidates
294  iEvent.put(muAlgo.transferCleanedTrackerAndGlobalCandidates(), "CleanedTrackerAndGlobalMuons");
295  // Save fake cleaned muon candidates
296  iEvent.put(muAlgo.transferCleanedFakeCandidates(), "CleanedFakeMuons");
297  // Save punch-through cleaned muon candidates
298  iEvent.put(muAlgo.transferPunchThroughCleanedMuonCandidates(), "CleanedPunchThroughMuons");
299  // Save punch-through cleaned neutral hadron candidates
300  iEvent.put(muAlgo.transferPunchThroughCleanedHadronCandidates(), "CleanedPunchThroughNeutralHadrons");
301  // Save added muon candidates
302  iEvent.put(muAlgo.transferAddedMuonCandidates(), "AddedMuonsAndHadrons");
303  }
304 }

References cms::cuda::assert(), gather_cfg::blocks, PFAlgo::checkCleaning(), PFAlgo::getCleanedCandidates(), PFAlgo::getPFMuonAlgo(), iEvent, ihf, inputTagBlocks_, inputTagCleanedHF_, inputTagMuons_, inputTagPFEGammaCandidates_, inputTagValueMapGedElectrons_, inputTagValueMapGedPhotons_, LogDebug, PFAlgo::makeConnectedCandidates(), pfAlgo_, pfCandidatesToken_, pfCleanedCandidatesToken_, pfegamma_, postHFCleaning_, postMuonCleaning_, PFAlgo::reconstructParticles(), PFAlgo::setEGammaCollections(), PFAlgo::setMuonHandle(), PFAlgo::setPFVertexParameters(), contentValuesCheck::ss, str, use_EGammaFilters_, useVerticesForNeutral_, verbose_, and vertices_.

Member Data Documentation

◆ calibrationsLabel_

std::string PFProducer::calibrationsLabel_
private

Definition at line 83 of file PFProducer.cc.

Referenced by beginRun().

◆ electronExtraOutputCol_

std::string PFProducer::electronExtraOutputCol_
private

Definition at line 55 of file PFProducer.cc.

◆ inputTagBlocks_

const edm::EDGetTokenT<reco::PFBlockCollection> PFProducer::inputTagBlocks_
private

Definition at line 49 of file PFProducer.cc.

Referenced by produce().

◆ inputTagCleanedHF_

std::vector<edm::EDGetTokenT<reco::PFRecHitCollection> > PFProducer::inputTagCleanedHF_
private

Definition at line 54 of file PFProducer.cc.

Referenced by produce().

◆ inputTagEgammaElectrons_

edm::EDGetTokenT<reco::GsfElectronCollection> PFProducer::inputTagEgammaElectrons_
private

Definition at line 52 of file PFProducer.cc.

◆ inputTagMuons_

edm::EDGetTokenT<reco::MuonCollection> PFProducer::inputTagMuons_
private

Definition at line 50 of file PFProducer.cc.

Referenced by produce().

◆ inputTagPFEGammaCandidates_

edm::EDGetTokenT<edm::View<reco::PFCandidate> > PFProducer::inputTagPFEGammaCandidates_
private

Definition at line 61 of file PFProducer.cc.

Referenced by produce().

◆ inputTagValueMapGedElectrons_

edm::EDGetTokenT<edm::ValueMap<reco::GsfElectronRef> > PFProducer::inputTagValueMapGedElectrons_
private

Definition at line 59 of file PFProducer.cc.

Referenced by produce().

◆ inputTagValueMapGedPhotons_

edm::EDGetTokenT<edm::ValueMap<reco::PhotonRef> > PFProducer::inputTagValueMapGedPhotons_
private

Definition at line 60 of file PFProducer.cc.

Referenced by produce().

◆ pfAlgo_

PFAlgo PFProducer::pfAlgo_
private

particle flow algorithm

Definition at line 94 of file PFProducer.cc.

Referenced by produce().

◆ pfCandidatesToken_

const edm::EDPutTokenT<reco::PFCandidateCollection> PFProducer::pfCandidatesToken_
private

Definition at line 46 of file PFProducer.cc.

Referenced by produce().

◆ pfCleanedCandidatesToken_

const edm::EDPutTokenT<reco::PFCandidateCollection> PFProducer::pfCleanedCandidatesToken_
private

Definition at line 47 of file PFProducer.cc.

Referenced by produce().

◆ pfegamma_

std::unique_ptr<PFEGammaFilters> PFProducer::pfegamma_ = nullptr
private

Definition at line 64 of file PFProducer.cc.

Referenced by produce().

◆ pfEnergyCalibration_

PFEnergyCalibration PFProducer::pfEnergyCalibration_
private

Definition at line 90 of file PFProducer.cc.

Referenced by beginRun().

◆ pfEnergyCalibrationHF_

PFEnergyCalibrationHF PFProducer::pfEnergyCalibrationHF_
private

Definition at line 91 of file PFProducer.cc.

◆ photonExtraOutputCol_

std::string PFProducer::photonExtraOutputCol_
private

Definition at line 56 of file PFProducer.cc.

◆ postHFCleaning_

bool PFProducer::postHFCleaning_
private

Definition at line 85 of file PFProducer.cc.

Referenced by produce().

◆ postMuonCleaning_

bool PFProducer::postMuonCleaning_
private

Definition at line 73 of file PFProducer.cc.

Referenced by produce().

◆ use_EGammaFilters_

bool PFProducer::use_EGammaFilters_
private

Definition at line 63 of file PFProducer.cc.

Referenced by produce().

◆ useCalibrationsFromDB_

bool PFProducer::useCalibrationsFromDB_
private

Definition at line 82 of file PFProducer.cc.

Referenced by beginRun().

◆ useEGammaElectrons_

bool PFProducer::useEGammaElectrons_
private

Definition at line 76 of file PFProducer.cc.

◆ useHO_

bool PFProducer::useHO_
private

Definition at line 67 of file PFProducer.cc.

◆ useVerticesForNeutral_

bool PFProducer::useVerticesForNeutral_
private

Definition at line 79 of file PFProducer.cc.

Referenced by produce().

◆ verbose_

bool PFProducer::verbose_
private

verbose ?

Definition at line 70 of file PFProducer.cc.

Referenced by produce().

◆ vertices_

edm::EDGetTokenT<reco::VertexCollection> PFProducer::vertices_
private

Definition at line 51 of file PFProducer.cc.

Referenced by produce().

PerformancePayloadFromTFormula
Definition: PerformancePayloadFromTFormula.h:17
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
PFProducer::pfCandidatesToken_
const edm::EDPutTokenT< reco::PFCandidateCollection > pfCandidatesToken_
Definition: PFProducer.cc:46
PFProducer::useVerticesForNeutral_
bool useVerticesForNeutral_
Definition: PFProducer.cc:79
PFProducer::inputTagValueMapGedPhotons_
edm::EDGetTokenT< edm::ValueMap< reco::PhotonRef > > inputTagValueMapGedPhotons_
Definition: PFProducer.cc:60
PFAlgo::setHOTag
void setHOTag(bool ho)
Definition: PFAlgo.h:65
mps_fire.i
i
Definition: mps_fire.py:428
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
PFAlgo::reconstructParticles
void reconstructParticles(const reco::PFBlockHandle &blockHandle, PFEGammaFilters const *pfegamma)
reconstruct particles
Definition: PFAlgo.cc:132
PFAlgo::setDisplacedVerticesParameters
void setDisplacedVerticesParameters(bool rejectTracks_Bad, bool rejectTracks_Step45, bool usePFNuclearInteractions, bool usePFConversions, bool usePFDecays, double dptRel_DispVtx)
Definition: PFAlgo.cc:98
HLT_FULL_cff.useProtectionsForJetMET
useProtectionsForJetMET
Definition: HLT_FULL_cff.py:13734
HLT_FULL_cff.usePFConversions
usePFConversions
Definition: HLT_FULL_cff.py:13632
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
cms::cuda::assert
assert(be >=bs)
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
edm::ParameterSet::existsAs
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:171
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
PFAlgo::makeConnectedCandidates
reco::PFCandidateCollection makeConnectedCandidates()
Definition: PFAlgo.h:115
edm::Handle
Definition: AssociativeIterator.h:50
PFAlgo::getCleanedCandidates
reco::PFCandidateCollection & getCleanedCandidates()
Definition: PFAlgo.h:112
ihf
int ihf
Definition: CascadeWrapper.h:27
PFAlgo::setCandConnectorParameters
void setCandConnectorParameters(const edm::ParameterSet &iCfgCandConnector)
Definition: PFAlgo.h:68
contentValuesCheck.ss
ss
Definition: contentValuesCheck.py:33
HLT_FULL_cff.rejectTracks_Bad
rejectTracks_Bad
Definition: HLT_FULL_cff.py:13649
reco::PFRecHitCollection
std::vector< PFRecHit > PFRecHitCollection
collection of PFRecHit objects
Definition: PFRecHitFwd.h:9
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
PFAlgo::setEGammaParameters
void setEGammaParameters(bool use_EGammaFilters, bool useProtectionsForJetMET)
Definition: PFAlgo.cc:68
str
#define str(s)
Definition: TestProcessor.cc:51
edm::ESHandle
Definition: DTSurvey.h:22
PFAlgo::checkCleaning
void checkCleaning(const reco::PFRecHitCollection &cleanedHF)
Check HF Cleaning.
Definition: PFAlgo.cc:3589
HLT_FULL_cff.usePFNuclearInteractions
usePFNuclearInteractions
Definition: HLT_FULL_cff.py:13727
PFProducer::inputTagEgammaElectrons_
edm::EDGetTokenT< reco::GsfElectronCollection > inputTagEgammaElectrons_
Definition: PFProducer.cc:52
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
PFProducer::pfCleanedCandidatesToken_
const edm::EDPutTokenT< reco::PFCandidateCollection > pfCleanedCandidatesToken_
Definition: PFProducer.cc:47
PFProducer::verbose_
bool verbose_
verbose ?
Definition: PFProducer.cc:70
PFProducer::calibrationsLabel_
std::string calibrationsLabel_
Definition: PFProducer.cc:83
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
edm::ParameterSet
Definition: ParameterSet.h:47
PFAlgo::setPFVertexParameters
void setPFVertexParameters(bool useVertex, reco::VertexCollection const &primaryVertices)
Definition: PFAlgo.cc:112
HLT_FULL_cff.dptRel_DispVtx
dptRel_DispVtx
Definition: HLT_FULL_cff.py:13653
PFCalibrationRcd
Definition: PFCalibrationRcd.h:6
PFProducer::inputTagValueMapGedElectrons_
edm::EDGetTokenT< edm::ValueMap< reco::GsfElectronRef > > inputTagValueMapGedElectrons_
Definition: PFProducer.cc:59
cand
Definition: decayParser.h:32
iEvent
int iEvent
Definition: GenABIO.cc:224
PFAlgo::setEGammaCollections
void setEGammaCollections(const edm::View< reco::PFCandidate > &pfEgammaCandidates, const edm::ValueMap< reco::GsfElectronRef > &valueMapGedElectrons, const edm::ValueMap< reco::PhotonRef > &valueMapGedPhotons)
Definition: PFAlgo.cc:76
PFEnergyCalibration::setCalibrationFunctions
void setCalibrationFunctions(const PerformancePayloadFromTFormula *thePFCal)
Definition: PFEnergyCalibration.h:65
PFProducer::useCalibrationsFromDB_
bool useCalibrationsFromDB_
Definition: PFProducer.cc:82
get
#define get
PFAlgo::setMuonHandle
void setMuonHandle(const edm::Handle< reco::MuonCollection > &)
Definition: PFAlgo.cc:86
PFProducer::pfEnergyCalibration_
PFEnergyCalibration pfEnergyCalibration_
Definition: PFProducer.cc:90
PFProducer::inputTagPFEGammaCandidates_
edm::EDGetTokenT< edm::View< reco::PFCandidate > > inputTagPFEGammaCandidates_
Definition: PFProducer.cc:61
PFProducer::inputTagCleanedHF_
std::vector< edm::EDGetTokenT< reco::PFRecHitCollection > > inputTagCleanedHF_
Definition: PFProducer.cc:54
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
HLT_FULL_cff.rejectTracks_Step45
rejectTracks_Step45
Definition: HLT_FULL_cff.py:13722
PFProducer::use_EGammaFilters_
bool use_EGammaFilters_
Definition: PFProducer.cc:63
PFProducer::postHFCleaning_
bool postHFCleaning_
Definition: PFProducer.cc:85
PFAlgo::setPostHFCleaningParameters
void setPostHFCleaningParameters(bool postHFCleaning, const edm::ParameterSet &pfHFCleaningParams)
Definition: PFAlgo.cc:88
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
triggerMatcherToHLTDebug_cfi.tags
tags
Definition: triggerMatcherToHLTDebug_cfi.py:9
PFProducer::useHO_
bool useHO_
Definition: PFProducer.cc:67
edm::ParameterDescriptionNode::setComment
void setComment(std::string const &value)
Definition: ParameterDescriptionNode.cc:106
PFProducer::inputTagMuons_
edm::EDGetTokenT< reco::MuonCollection > inputTagMuons_
Definition: PFProducer.cc:50
PFProducer::pfAlgo_
PFAlgo pfAlgo_
particle flow algorithm
Definition: PFProducer.cc:94
HLT_FULL_cff.usePFDecays
usePFDecays
Definition: HLT_FULL_cff.py:13720
PFProducer::postMuonCleaning_
bool postMuonCleaning_
Definition: PFProducer.cc:73
PFMuonAlgo::fillPSetDescription
static void fillPSetDescription(edm::ParameterSetDescription &iDesc)
Definition: PFMuonAlgo.cc:1016
PFProducer::pfEnergyCalibrationHF_
PFEnergyCalibrationHF pfEnergyCalibrationHF_
Definition: PFProducer.cc:91
gather_cfg.blocks
blocks
Definition: gather_cfg.py:90
edm::InputTag
Definition: InputTag.h:15
PFProducer::vertices_
edm::EDGetTokenT< reco::VertexCollection > vertices_
Definition: PFProducer.cc:51
PFCandConnector::fillPSetDescription
static void fillPSetDescription(edm::ParameterSetDescription &iDesc)
Definition: PFCandConnector.cc:554
PFProducer::useEGammaElectrons_
bool useEGammaElectrons_
Definition: PFProducer.cc:76
PFProducer::pfegamma_
std::unique_ptr< PFEGammaFilters > pfegamma_
Definition: PFProducer.cc:64
PFProducer::inputTagBlocks_
const edm::EDGetTokenT< reco::PFBlockCollection > inputTagBlocks_
Definition: PFProducer.cc:49
PFEGammaFilters::fillPSetDescription
static void fillPSetDescription(edm::ParameterSetDescription &iDesc)
Definition: PFEGammaFilters.cc:403
PFAlgo::getPFMuonAlgo
PFMuonAlgo * getPFMuonAlgo()
Definition: PFAlgo.cc:66