CMS 3D CMS Logo

PFProducer.cc
Go to the documentation of this file.
21 
22 #include <sstream>
23 #include <string>
24 
25 #include "TFile.h"
26 
37 public:
38  explicit PFProducer(const edm::ParameterSet&);
39 
40  void produce(edm::Event&, const edm::EventSetup&) override;
41  void beginRun(const edm::Run&, const edm::EventSetup&) override;
42 
43  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
44 
45 private:
48 
53 
54  std::vector<edm::EDGetTokenT<reco::PFRecHitCollection>> inputTagCleanedHF_;
57 
58  // NEW EGamma Filters
62 
64  std::unique_ptr<PFEGammaFilters> pfegamma_ = nullptr;
65 
66  //Use of HO clusters and links in PF Reconstruction
67  bool useHO_;
68 
70  bool verbose_;
71 
72  // Post muon cleaning ?
74 
75  // what about e/g electrons ?
77 
78  // Use vertices for Neutral particles ?
80 
81  // Take PF cluster calibrations from Global Tag ?
84 
86  // Name of the calibration functions to read from the database
87  // std::vector<std::string> fToRead;
88 
89  // calibrations
92 
95 };
96 
98 
99 using namespace std;
100 using namespace edm;
101 
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"),
117  pfEnergyCalibration_,
118  pfEnergyCalibrationHF_,
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_) {
133  inputTagEgammaElectrons_ =
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_) {
150  inputTagPFEGammaCandidates_ =
151  consumes<edm::View<reco::PFCandidate>>((iConfig.getParameter<edm::InputTag>("PFEGammaCandidates")));
152  inputTagValueMapGedElectrons_ =
153  consumes<edm::ValueMap<reco::GsfElectronRef>>(iConfig.getParameter<edm::InputTag>("GedElectronValueMap"));
154  inputTagValueMapGedPhotons_ =
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
164  pfAlgo_.setEGammaParameters(use_EGammaFilters_, useProtectionsForJetMET);
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 
182  if (useCalibrationsFromDB_)
183  calibrationsLabel_ = iConfig.getParameter<std::string>("calibrationsLabel");
184 
185  // Secondary tracks and displaced vertices parameters
186  pfAlgo_.setDisplacedVerticesParameters(
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
197  pfAlgo_.setPostHFCleaningParameters(postHFCleaning_, pfHFCleaningParams);
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");
209  pfAlgo_.setHOTag(useHO_);
210 
211  verbose_ = iConfig.getUntrackedParameter<bool>("verbose", false);
212 }
213 
216  // read the PFCalibration functions from the global tags
219 
220  PerformancePayloadFromTFormula const* pfCalibrations =
221  static_cast<const PerformancePayloadFromTFormula*>(perfH.product());
222 
224  }
225 }
226 
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 }
305 
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 }
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
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
MessageLogger.h
PFProducer::electronExtraOutputCol_
std::string electronExtraOutputCol_
Definition: PFProducer.cc:55
PFCalibrationRcd.h
ESHandle.h
PFProducer
Producer for particle flow reconstructed particles (PFCandidates)
Definition: PFProducer.cc:36
edm::Run
Definition: Run.h:45
HLT_FULL_cff.useProtectionsForJetMET
useProtectionsForJetMET
Definition: HLT_FULL_cff.py:13734
edm::EDGetTokenT< reco::PFBlockCollection >
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::EDPutTokenT< reco::PFCandidateCollection >
GBRWrapperRcd.h
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)
EDProducer.h
PFAlgo.h
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
PFEGammaFilters.h
ihf
int ihf
Definition: CascadeWrapper.h:27
PFRecHit.h
contentValuesCheck.ss
ss
Definition: contentValuesCheck.py:33
PFEnergyCalibration.h
HLT_FULL_cff.rejectTracks_Bad
rejectTracks_Bad
Definition: HLT_FULL_cff.py:13649
MakerMacros.h
reco::PFRecHitCollection
std::vector< PFRecHit > PFRecHitCollection
collection of PFRecHit objects
Definition: PFRecHitFwd.h:9
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
PFEnergyCalibration
Definition: PFEnergyCalibration.h:42
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
GsfElectron.h
HLT_FULL_cff.usePFNuclearInteractions
usePFNuclearInteractions
Definition: HLT_FULL_cff.py:13727
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
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
Event.h
PFProducer::PFProducer
PFProducer(const edm::ParameterSet &)
Definition: PFProducer.cc:102
EDPutToken.h
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
PFBlockElementSuperCluster.h
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
edm::stream::EDProducer
Definition: EDProducer.h:38
PFEnergyCalibration::setCalibrationFunctions
void setCalibrationFunctions(const PerformancePayloadFromTFormula *thePFCal)
Definition: PFEnergyCalibration.h:65
edm::EventSetup
Definition: EventSetup.h:57
PFProducer::useCalibrationsFromDB_
bool useCalibrationsFromDB_
Definition: PFProducer.cc:82
get
#define get
PFProducer::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition: PFProducer.cc:227
PFAlgo::setMuonHandle
void setMuonHandle(const edm::Handle< reco::MuonCollection > &)
Definition: PFAlgo.cc:86
PFProducer::pfEnergyCalibration_
PFEnergyCalibration pfEnergyCalibration_
Definition: PFProducer.cc:90
ValueMap.h
PerformancePayloadFromTFormula.h
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
std
Definition: JetResolutionObject.h:76
writedatasetfile.run
run
Definition: writedatasetfile.py:27
PFProducer::use_EGammaFilters_
bool use_EGammaFilters_
Definition: PFProducer.cc:63
PFAlgo
Definition: PFAlgo.h:53
PFEnergyCalibrationHF
Definition: PFEnergyCalibrationHF.h:24
PFProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: PFProducer.cc:306
PFProducer::postHFCleaning_
bool postHFCleaning_
Definition: PFProducer.cc:85
EventSetup.h
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
PFEnergyCalibrationHF.h
triggerMatcherToHLTDebug_cfi.tags
tags
Definition: triggerMatcherToHLTDebug_cfi.py:9
PFProducer::photonExtraOutputCol_
std::string photonExtraOutputCol_
Definition: PFProducer.cc:56
PFProducer::useHO_
bool useHO_
Definition: PFProducer.cc:67
ParameterSet.h
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
edm::Event
Definition: Event.h:73
PFProducer::postMuonCleaning_
bool postMuonCleaning_
Definition: PFProducer.cc:73
PFMuonAlgo::fillPSetDescription
static void fillPSetDescription(edm::ParameterSetDescription &iDesc)
Definition: PFMuonAlgo.cc:1016
PFProducer::beginRun
void beginRun(const edm::Run &, const edm::EventSetup &) override
Definition: PFProducer.cc:214
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