CMS 3D CMS Logo

PFProducer.cc
Go to the documentation of this file.
22 
23 #include <sstream>
24 #include <string>
25 
26 #include "TFile.h"
27 
38 public:
39  explicit PFProducer(const edm::ParameterSet&);
40 
41  void produce(edm::Event&, const edm::EventSetup&) override;
42  void beginRun(const edm::Run&, const edm::EventSetup&) override;
43 
44  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
45 
46 private:
49 
54 
55  std::vector<edm::EDGetTokenT<reco::PFRecHitCollection>> inputTagCleanedHF_;
58 
61 
62  // NEW EGamma Filters
66 
68  std::unique_ptr<PFEGammaFilters> pfegamma_ = nullptr;
69 
70  //Use of HO clusters and links in PF Reconstruction
71  bool useHO_;
72 
74  bool verbose_;
75 
76  // Post muon cleaning ?
78 
79  // what about e/g electrons ?
81 
82  // Use vertices for Neutral particles ?
84 
85  // Take PF cluster calibrations from Global Tag ?
88 
90  // Name of the calibration functions to read from the database
91  // std::vector<std::string> fToRead;
92 
93  // calibrations
96 
99 };
100 
102 
103 using namespace std;
104 using namespace edm;
105 
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"),
121  pfEnergyCalibration_,
122  pfEnergyCalibrationHF_,
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_) {
140  inputTagEgammaElectrons_ =
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_) {
157  inputTagPFEGammaCandidates_ =
158  consumes<edm::View<reco::PFCandidate>>((iConfig.getParameter<edm::InputTag>("PFEGammaCandidates")));
159  inputTagValueMapGedElectrons_ =
160  consumes<edm::ValueMap<reco::GsfElectronRef>>(iConfig.getParameter<edm::InputTag>("GedElectronValueMap"));
161  inputTagValueMapGedPhotons_ =
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
171  pfAlgo_.setEGammaParameters(use_EGammaFilters_, useProtectionsForJetMET);
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 
189  if (useCalibrationsFromDB_)
190  calibrationsLabel_ = iConfig.getParameter<std::string>("calibrationsLabel");
191 
192  // Secondary tracks and displaced vertices parameters
193  pfAlgo_.setDisplacedVerticesParameters(
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
204  pfAlgo_.setPostHFCleaningParameters(postHFCleaning_, pfHFCleaningParams);
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");
216  pfAlgo_.setHOTag(useHO_);
217 
218  verbose_ = iConfig.getUntrackedParameter<bool>("verbose", false);
219 }
220 
223  // read the PFCalibration functions from the global tags
226 
227  PerformancePayloadFromTFormula const* pfCalibrations =
228  static_cast<const PerformancePayloadFromTFormula*>(perfH.product());
229 
231  }
232 }
233 
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 }
317 
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 }
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
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
MessageLogger.h
PFAlgo::setMuonHandle
void setMuonHandle(const edm::Handle< reco::MuonCollection > &muons)
Definition: PFAlgo.h:66
PFProducer::electronExtraOutputCol_
std::string electronExtraOutputCol_
Definition: PFProducer.cc:56
PFCalibrationRcd.h
ESHandle.h
PFProducer
Producer for particle flow reconstructed particles (PFCandidates)
Definition: PFProducer.cc:37
edm::Run
Definition: Run.h:45
HLT_FULL_cff.useProtectionsForJetMET
useProtectionsForJetMET
Definition: HLT_FULL_cff.py:13736
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:13633
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89281
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
cms::cuda::assert
assert(be >=bs)
EDProducer.h
EmptyGroupDescription.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< reco::PFRecHitCollection >
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:13650
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:87
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
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
GsfElectron.h
HLT_FULL_cff.usePFNuclearInteractions
usePFNuclearInteractions
Definition: HLT_FULL_cff.py:13729
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
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
Event.h
PFProducer::PFProducer
PFProducer(const edm::ParameterSet &)
Definition: PFProducer.cc:106
EDPutToken.h
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
PFBlockElementSuperCluster.h
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
edm::stream::EDProducer
Definition: EDProducer.h:38
PFEnergyCalibration::setCalibrationFunctions
void setCalibrationFunctions(const PerformancePayloadFromTFormula *thePFCal)
Definition: PFEnergyCalibration.h:65
edm::EventSetup
Definition: EventSetup.h:58
PFProducer::useCalibrationsFromDB_
bool useCalibrationsFromDB_
Definition: PFProducer.cc:86
get
#define get
PFProducer::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition: PFProducer.cc:234
PFProducer::pfEnergyCalibration_
PFEnergyCalibration pfEnergyCalibration_
Definition: PFProducer.cc:94
ValueMap.h
PerformancePayloadFromTFormula.h
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
std
Definition: JetResolutionObject.h:76
writedatasetfile.run
run
Definition: writedatasetfile.py:27
PFProducer::use_EGammaFilters_
bool use_EGammaFilters_
Definition: PFProducer.cc:67
PFAlgo
Definition: PFAlgo.h:53
PFEnergyCalibrationHF
Definition: PFEnergyCalibrationHF.h:24
PFProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: PFProducer.cc:318
PFProducer::postHFCleaning_
bool postHFCleaning_
Definition: PFProducer.cc:89
EventSetup.h
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
PFEnergyCalibrationHF.h
triggerMatcherToHLTDebug_cfi.tags
tags
Definition: triggerMatcherToHLTDebug_cfi.py:9
PFProducer::photonExtraOutputCol_
std::string photonExtraOutputCol_
Definition: PFProducer.cc:57
PFProducer::useHO_
bool useHO_
Definition: PFProducer.cc:71
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:51
PFProducer::pfAlgo_
PFAlgo pfAlgo_
particle flow algorithm
Definition: PFProducer.cc:98
HLT_FULL_cff.usePFDecays
usePFDecays
Definition: HLT_FULL_cff.py:13721
edm::Event
Definition: Event.h:73
PFProducer::postMuonCleaning_
bool postMuonCleaning_
Definition: PFProducer.cc:77
PFMuonAlgo::fillPSetDescription
static void fillPSetDescription(edm::ParameterSetDescription &iDesc)
Definition: PFMuonAlgo.cc:1043
PFProducer::beginRun
void beginRun(const edm::Run &, const edm::EventSetup &) override
Definition: PFProducer.cc:221
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