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_
 
edm::EDGetTokenT< reco::PFCandidateCollectioninputTagVetoes_
 
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_
 
bool vetoEndcap_
 

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 37 of file PFProducer.cc.

Constructor & Destructor Documentation

◆ PFProducer()

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

Definition at line 106 of file PFProducer.cc.

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

Member Function Documentation

◆ beginRun()

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

Definition at line 221 of file PFProducer.cc.

221  {
223  // read the PFCalibration functions from the global tags
226 
227  PerformancePayloadFromTFormula const* pfCalibrations =
228  static_cast<const PerformancePayloadFromTFormula*>(perfH.product());
229 
231  }
232 }

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 318 of file PFProducer.cc.

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

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

◆ produce()

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

Definition at line 234 of file PFProducer.cc.

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

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

Member Data Documentation

◆ calibrationsLabel_

std::string PFProducer::calibrationsLabel_
private

Definition at line 87 of file PFProducer.cc.

Referenced by beginRun().

◆ electronExtraOutputCol_

std::string PFProducer::electronExtraOutputCol_
private

Definition at line 56 of file PFProducer.cc.

◆ inputTagBlocks_

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

Definition at line 50 of file PFProducer.cc.

Referenced by produce().

◆ inputTagCleanedHF_

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

Definition at line 55 of file PFProducer.cc.

Referenced by produce().

◆ inputTagEgammaElectrons_

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

Definition at line 53 of file PFProducer.cc.

◆ inputTagMuons_

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

Definition at line 51 of file PFProducer.cc.

Referenced by produce().

◆ inputTagPFEGammaCandidates_

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

Definition at line 65 of file PFProducer.cc.

Referenced by produce().

◆ inputTagValueMapGedElectrons_

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

Definition at line 63 of file PFProducer.cc.

Referenced by produce().

◆ inputTagValueMapGedPhotons_

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

Definition at line 64 of file PFProducer.cc.

Referenced by produce().

◆ inputTagVetoes_

edm::EDGetTokenT<reco::PFCandidateCollection> PFProducer::inputTagVetoes_
private

Definition at line 60 of file PFProducer.cc.

Referenced by produce().

◆ pfAlgo_

PFAlgo PFProducer::pfAlgo_
private

particle flow algorithm

Definition at line 98 of file PFProducer.cc.

Referenced by produce().

◆ pfCandidatesToken_

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

Definition at line 47 of file PFProducer.cc.

Referenced by produce().

◆ pfCleanedCandidatesToken_

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

Definition at line 48 of file PFProducer.cc.

Referenced by produce().

◆ pfegamma_

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

Definition at line 68 of file PFProducer.cc.

Referenced by produce().

◆ pfEnergyCalibration_

PFEnergyCalibration PFProducer::pfEnergyCalibration_
private

Definition at line 94 of file PFProducer.cc.

Referenced by beginRun().

◆ pfEnergyCalibrationHF_

PFEnergyCalibrationHF PFProducer::pfEnergyCalibrationHF_
private

Definition at line 95 of file PFProducer.cc.

◆ photonExtraOutputCol_

std::string PFProducer::photonExtraOutputCol_
private

Definition at line 57 of file PFProducer.cc.

◆ postHFCleaning_

bool PFProducer::postHFCleaning_
private

Definition at line 89 of file PFProducer.cc.

Referenced by produce().

◆ postMuonCleaning_

bool PFProducer::postMuonCleaning_
private

Definition at line 77 of file PFProducer.cc.

Referenced by produce().

◆ use_EGammaFilters_

bool PFProducer::use_EGammaFilters_
private

Definition at line 67 of file PFProducer.cc.

Referenced by produce().

◆ useCalibrationsFromDB_

bool PFProducer::useCalibrationsFromDB_
private

Definition at line 86 of file PFProducer.cc.

Referenced by beginRun().

◆ useEGammaElectrons_

bool PFProducer::useEGammaElectrons_
private

Definition at line 80 of file PFProducer.cc.

◆ useHO_

bool PFProducer::useHO_
private

Definition at line 71 of file PFProducer.cc.

◆ useVerticesForNeutral_

bool PFProducer::useVerticesForNeutral_
private

Definition at line 83 of file PFProducer.cc.

Referenced by produce().

◆ verbose_

bool PFProducer::verbose_
private

verbose ?

Definition at line 74 of file PFProducer.cc.

Referenced by produce().

◆ vertices_

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

Definition at line 52 of file PFProducer.cc.

Referenced by produce().

◆ vetoEndcap_

bool PFProducer::vetoEndcap_
private

Definition at line 59 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:47
PFProducer::useVerticesForNeutral_
bool useVerticesForNeutral_
Definition: PFProducer.cc:83
PFProducer::inputTagValueMapGedPhotons_
edm::EDGetTokenT< edm::ValueMap< reco::PhotonRef > > inputTagValueMapGedPhotons_
Definition: PFProducer.cc:64
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:130
PFAlgo::setDisplacedVerticesParameters
void setDisplacedVerticesParameters(bool rejectTracks_Bad, bool rejectTracks_Step45, bool usePFNuclearInteractions, bool usePFConversions, bool usePFDecays, double dptRel_DispVtx)
Definition: PFAlgo.cc:96
PFAlgo::setMuonHandle
void setMuonHandle(const edm::Handle< reco::MuonCollection > &muons)
Definition: PFAlgo.h:66
HLT_FULL_cff.useProtectionsForJetMET
useProtectionsForJetMET
Definition: HLT_FULL_cff.py:13736
HLT_FULL_cff.usePFConversions
usePFConversions
Definition: HLT_FULL_cff.py:13633
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89285
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< reco::PFRecHitCollection >
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:13650
reco::PFRecHitCollection
std::vector< PFRecHit > PFRecHitCollection
collection of PFRecHit objects
Definition: PFRecHitFwd.h:9
edm::EventSetup::get
T get() const
Definition: EventSetup.h:87
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
PFProducer::inputTagVetoes_
edm::EDGetTokenT< reco::PFCandidateCollection > inputTagVetoes_
Definition: PFProducer.cc:60
str
#define str(s)
Definition: TestProcessor.cc:52
edm::ESHandle
Definition: DTSurvey.h:22
PFAlgo::checkCleaning
void checkCleaning(const reco::PFRecHitCollection &cleanedHF)
Check HF Cleaning.
Definition: PFAlgo.cc:3587
HLT_FULL_cff.usePFNuclearInteractions
usePFNuclearInteractions
Definition: HLT_FULL_cff.py:13729
PFProducer::inputTagEgammaElectrons_
edm::EDGetTokenT< reco::GsfElectronCollection > inputTagEgammaElectrons_
Definition: PFProducer.cc:53
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
PFProducer::pfCleanedCandidatesToken_
const edm::EDPutTokenT< reco::PFCandidateCollection > pfCleanedCandidatesToken_
Definition: PFProducer.cc:48
PFProducer::verbose_
bool verbose_
verbose ?
Definition: PFProducer.cc:74
PFProducer::calibrationsLabel_
std::string calibrationsLabel_
Definition: PFProducer.cc:87
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
edm::ParameterSet
Definition: ParameterSet.h:47
PFAlgo::setPFVertexParameters
void setPFVertexParameters(bool useVertex, reco::VertexCollection const &primaryVertices)
Definition: PFAlgo.cc:110
HLT_FULL_cff.dptRel_DispVtx
dptRel_DispVtx
Definition: HLT_FULL_cff.py:13654
PFCalibrationRcd
Definition: PFCalibrationRcd.h:6
PFProducer::inputTagValueMapGedElectrons_
edm::EDGetTokenT< edm::ValueMap< reco::GsfElectronRef > > inputTagValueMapGedElectrons_
Definition: PFProducer.cc:63
cand
Definition: decayParser.h:32
iEvent
int iEvent
Definition: GenABIO.cc:224
PFMuonAlgo::setVetoes
void setVetoes(const reco::PFCandidateCollection &vetoes)
Definition: PFMuonAlgo.h:54
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:86
get
#define get
PFProducer::pfEnergyCalibration_
PFEnergyCalibration pfEnergyCalibration_
Definition: PFProducer.cc:94
PFProducer::inputTagPFEGammaCandidates_
edm::EDGetTokenT< edm::View< reco::PFCandidate > > inputTagPFEGammaCandidates_
Definition: PFProducer.cc:65
PFProducer::inputTagCleanedHF_
std::vector< edm::EDGetTokenT< reco::PFRecHitCollection > > inputTagCleanedHF_
Definition: PFProducer.cc:55
PFProducer::vetoEndcap_
bool vetoEndcap_
Definition: PFProducer.cc:59
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
HLT_FULL_cff.rejectTracks_Step45
rejectTracks_Step45
Definition: HLT_FULL_cff.py:13723
PFProducer::use_EGammaFilters_
bool use_EGammaFilters_
Definition: PFProducer.cc:67
PFProducer::postHFCleaning_
bool postHFCleaning_
Definition: PFProducer.cc:89
PFAlgo::setPostHFCleaningParameters
void setPostHFCleaningParameters(bool postHFCleaning, const edm::ParameterSet &pfHFCleaningParams)
Definition: PFAlgo.cc:86
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
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:71
edm::ParameterDescriptionNode::setComment
void setComment(std::string const &value)
Definition: ParameterDescriptionNode.cc:106
PFProducer::inputTagMuons_
edm::EDGetTokenT< reco::MuonCollection > inputTagMuons_
Definition: PFProducer.cc:51
PFProducer::pfAlgo_
PFAlgo pfAlgo_
particle flow algorithm
Definition: PFProducer.cc:98
HLT_FULL_cff.usePFDecays
usePFDecays
Definition: HLT_FULL_cff.py:13721
PFProducer::postMuonCleaning_
bool postMuonCleaning_
Definition: PFProducer.cc:77
PFMuonAlgo::fillPSetDescription
static void fillPSetDescription(edm::ParameterSetDescription &iDesc)
Definition: PFMuonAlgo.cc:1043
edm::EmptyGroupDescription
Definition: EmptyGroupDescription.h:15
edm::ParameterDescription
Definition: ParameterDescription.h:110
PFProducer::pfEnergyCalibrationHF_
PFEnergyCalibrationHF pfEnergyCalibrationHF_
Definition: PFProducer.cc:95
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:52
PFCandConnector::fillPSetDescription
static void fillPSetDescription(edm::ParameterSetDescription &iDesc)
Definition: PFCandConnector.cc:554
PFProducer::useEGammaElectrons_
bool useEGammaElectrons_
Definition: PFProducer.cc:80
PFProducer::pfegamma_
std::unique_ptr< PFEGammaFilters > pfegamma_
Definition: PFProducer.cc:68
PFProducer::inputTagBlocks_
const edm::EDGetTokenT< reco::PFBlockCollection > inputTagBlocks_
Definition: PFProducer.cc:50
PFEGammaFilters::fillPSetDescription
static void fillPSetDescription(edm::ParameterSetDescription &iDesc)
Definition: PFEGammaFilters.cc:403
PFAlgo::getPFMuonAlgo
PFMuonAlgo * getPFMuonAlgo()
Definition: PFAlgo.cc:66