CMS 3D CMS Logo

ConversionTrackCandidateProducer.cc
Go to the documentation of this file.
1 
46 
47 #include <vector>
48 
50 public:
52 
53  void beginRun(edm::Run const&, edm::EventSetup const& es) final;
54  void produce(edm::Event& evt, const edm::EventSetup& es) override;
55 
56  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
57 
58 private:
60  void setEventSetup(const edm::EventSetup& es);
61 
64 
67 
76 
78  double maxHOverE_;
79  double minSCEt_;
80  double isoConeR_;
82  double isoEtaSlice_;
83  double isoEtMin_;
84  double isoEMin_;
87 
88  std::vector<int> flagsexclEB_;
89  std::vector<int> flagsexclEE_;
90  std::vector<int> severitiesexclEB_;
91  std::vector<int> severitiesexclEE_;
92 
95 
97 
98  std::unique_ptr<BaseCkfTrajectoryBuilder> theTrajectoryBuilder_;
99 
104 
105  std::vector<edm::Ptr<reco::CaloCluster>> caloPtrVecOutIn_;
106  std::vector<edm::Ptr<reco::CaloCluster>> caloPtrVecInOut_;
107 
108  std::vector<edm::Ref<reco::SuperClusterCollection>> vecOfSCRefForOutIn;
109  std::vector<edm::Ref<reco::SuperClusterCollection>> vecOfSCRefForInOut;
110 
111  std::unique_ptr<ElectronHcalHelper> hcalHelper_;
112 
113  void buildCollections(bool detector,
114  const edm::Handle<edm::View<reco::CaloCluster>>& scHandle,
115  const edm::Handle<edm::View<reco::CaloCluster>>& bcHandle,
116  const EcalRecHitCollection& ecalRecHits,
117  const EcalSeverityLevelAlgo* sevLev,
118  ElectronHcalHelper const& hcalHelper,
119  TrackCandidateCollection& outInTracks,
120  TrackCandidateCollection& inOutTracks,
123 };
124 
127 
128 namespace {
129  auto createBaseCkfTrajectoryBuilder(const edm::ParameterSet& pset, edm::ConsumesCollector&& iC) {
130  return BaseCkfTrajectoryBuilderFactory::get()->create(pset.getParameter<std::string>("ComponentType"), pset, iC);
131  }
132 } // namespace
133 
135  : bcBarrelCollection_{consumes(config.getParameter<edm::InputTag>("bcBarrelCollection"))},
136  bcEndcapCollection_{consumes(config.getParameter<edm::InputTag>("bcEndcapCollection"))},
137  scHybridBarrelProducer_{consumes(config.getParameter<edm::InputTag>("scHybridBarrelProducer"))},
138  scIslandEndcapProducer_{consumes(config.getParameter<edm::InputTag>("scIslandEndcapProducer"))},
139 
140  hbheRecHits_{consumes(config.getParameter<edm::InputTag>("hbheRecHits"))},
141  barrelecalCollection_{consumes(config.getParameter<edm::InputTag>("barrelEcalRecHitCollection"))},
142  endcapecalCollection_{consumes(config.getParameter<edm::InputTag>("endcapEcalRecHitCollection"))},
143  measurementTrkEvtToken_{consumes(edm::InputTag("MeasurementTrackerEvent"))},
144 
145  theTrajectoryBuilder_(createBaseCkfTrajectoryBuilder(
146  config.getParameter<edm::ParameterSet>("TrajectoryBuilderPSet"), consumesCollector())),
147  outInSeedFinder_{config, consumesCollector()},
148  outInTrackFinder_{config, theTrajectoryBuilder_.get()},
149  inOutSeedFinder_{config, consumesCollector()},
150  inOutTrackFinder_{config, theTrajectoryBuilder_.get()} {
151  OutInTrackCandidateCollection_ = config.getParameter<std::string>("outInTrackCandidateCollection");
152  InOutTrackCandidateCollection_ = config.getParameter<std::string>("inOutTrackCandidateCollection");
153 
154  OutInTrackSCAssociationCollection_ = config.getParameter<std::string>("outInTrackCandidateSCAssociationCollection");
155  InOutTrackSCAssociationCollection_ = config.getParameter<std::string>("inOutTrackCandidateSCAssociationCollection");
156 
157  hOverEConeSize_ = config.getParameter<double>("hOverEConeSize");
158  maxHOverE_ = config.getParameter<double>("maxHOverE");
159  minSCEt_ = config.getParameter<double>("minSCEt");
160  isoConeR_ = config.getParameter<double>("isoConeR");
161  isoInnerConeR_ = config.getParameter<double>("isoInnerConeR");
162  isoEtaSlice_ = config.getParameter<double>("isoEtaSlice");
163  isoEtMin_ = config.getParameter<double>("isoEtMin");
164  isoEMin_ = config.getParameter<double>("isoEMin");
165  vetoClusteredHits_ = config.getParameter<bool>("vetoClusteredHits");
166  useNumXtals_ = config.getParameter<bool>("useNumXstals");
167  ecalIsoCut_offset_ = config.getParameter<double>("ecalIsoCut_offset");
168  ecalIsoCut_slope_ = config.getParameter<double>("ecalIsoCut_slope");
169 
170  //Flags and Severities to be excluded from photon calculations
171  auto const& flagnamesEB = config.getParameter<std::vector<std::string>>("RecHitFlagToBeExcludedEB");
172  auto const& flagnamesEE = config.getParameter<std::vector<std::string>>("RecHitFlagToBeExcludedEE");
173 
174  flagsexclEB_ = StringToEnumValue<EcalRecHit::Flags>(flagnamesEB);
175  flagsexclEE_ = StringToEnumValue<EcalRecHit::Flags>(flagnamesEE);
176 
177  auto const& severitynamesEB = config.getParameter<std::vector<std::string>>("RecHitSeverityToBeExcludedEB");
178  auto const& severitynamesEE = config.getParameter<std::vector<std::string>>("RecHitSeverityToBeExcludedEE");
179 
180  severitiesexclEB_ = StringToEnumValue<EcalSeverityLevel::SeverityLevel>(severitynamesEB);
181  severitiesexclEE_ = StringToEnumValue<EcalSeverityLevel::SeverityLevel>(severitynamesEE);
182 
183  // Register the product
184  produces<TrackCandidateCollection>(OutInTrackCandidateCollection_);
185  produces<TrackCandidateCollection>(InOutTrackCandidateCollection_);
186 
187  produces<reco::TrackCandidateCaloClusterPtrAssociation>(OutInTrackSCAssociationCollection_);
188  produces<reco::TrackCandidateCaloClusterPtrAssociation>(InOutTrackSCAssociationCollection_);
189 
191  cfgCone.hOverEConeSize = hOverEConeSize_;
192  if (cfgCone.hOverEConeSize > 0) {
193  cfgCone.onlyBehindCluster = false;
194  cfgCone.checkHcalStatus = false;
195 
196  cfgCone.hbheRecHits = hbheRecHits_;
197 
198  cfgCone.eThresHB = config.getParameter<EgammaHcalIsolation::arrayHB>("recHitEThresholdHB");
199  cfgCone.maxSeverityHB = config.getParameter<int>("maxHcalRecHitSeverity");
200  cfgCone.eThresHE = config.getParameter<EgammaHcalIsolation::arrayHE>("recHitEThresholdHE");
201  cfgCone.maxSeverityHE = cfgCone.maxSeverityHB;
202  }
203 
204  hcalHelper_ = std::make_unique<ElectronHcalHelper>(cfgCone, consumesCollector());
205 }
206 
208  outInSeedFinder_.setEventSetup(theEventSetup);
209  inOutSeedFinder_.setEventSetup(theEventSetup);
210  outInTrackFinder_.setEventSetup(theEventSetup);
211  inOutTrackFinder_.setEventSetup(theEventSetup);
212 }
213 
216  theEventSetup.get<NavigationSchoolRecord>().get("SimpleNavigationSchool", nav);
217  const NavigationSchool* navigation = nav.product();
218  theTrajectoryBuilder_->setNavigationSchool(navigation);
221 }
222 
224  // get the trajectory builder and initialize it with the data
225  theTrajectoryBuilder_->setEvent(theEvent, theEventSetup, &theEvent.get(measurementTrkEvtToken_));
226 
227  // this need to be done after the initialization of the TrajectoryBuilder!
228  setEventSetup(theEventSetup);
229 
230  outInSeedFinder_.setEvent(theEvent);
231  inOutSeedFinder_.setEvent(theEvent);
232 
233  //
234  // create empty output collections
235  //
236  // Out In Track Candidates
237  auto outInTrackCandidate_p = std::make_unique<TrackCandidateCollection>();
238  // In Out Track Candidates
239  auto inOutTrackCandidate_p = std::make_unique<TrackCandidateCollection>();
240  // Track Candidate calo Cluster Association
241  auto outInAssoc_p = std::make_unique<reco::TrackCandidateCaloClusterPtrAssociation>();
242  auto inOutAssoc_p = std::make_unique<reco::TrackCandidateCaloClusterPtrAssociation>();
243 
244  // Get the basic cluster collection in the Barrel
245  bool validBarrelBCHandle = true;
246  auto bcBarrelHandle = theEvent.getHandle(bcBarrelCollection_);
247  if (!bcBarrelHandle.isValid()) {
248  edm::LogError("ConversionTrackCandidateProducer") << "Error! Can't get the Barrel Basic Clusters!";
249  validBarrelBCHandle = false;
250  }
251 
252  // Get the basic cluster collection in the Endcap
253  bool validEndcapBCHandle = true;
254  auto bcEndcapHandle = theEvent.getHandle(bcEndcapCollection_);
255  if (!bcEndcapHandle.isValid()) {
256  edm::LogError("CoonversionTrackCandidateProducer") << "Error! Can't get the Endcap Basic Clusters";
257  validEndcapBCHandle = false;
258  }
259 
260  // Get the Super Cluster collection in the Barrel
261  bool validBarrelSCHandle = true;
262  auto scBarrelHandle = theEvent.getHandle(scHybridBarrelProducer_);
263  if (!scBarrelHandle.isValid()) {
264  edm::LogError("CoonversionTrackCandidateProducer") << "Error! Can't get the barrel superclusters!";
265  validBarrelSCHandle = false;
266  }
267 
268  // Get the Super Cluster collection in the Endcap
269  bool validEndcapSCHandle = true;
270  auto scEndcapHandle = theEvent.getHandle(scIslandEndcapProducer_);
271  if (!scEndcapHandle.isValid()) {
272  edm::LogError("CoonversionTrackCandidateProducer") << "Error! Can't get the endcap superclusters!";
273  validEndcapSCHandle = false;
274  }
275 
276  // get the geometry from the event setup:
277  theEventSetup.get<CaloGeometryRecord>().get(theCaloGeom_);
278 
279  hcalHelper_->beginEvent(theEvent, theEventSetup);
280 
281  auto const& ecalhitsCollEB = theEvent.get(barrelecalCollection_);
282  auto const& ecalhitsCollEE = theEvent.get(endcapecalCollection_);
283 
285  theEventSetup.get<EcalSeverityLevelAlgoRcd>().get(sevlv);
286  const EcalSeverityLevelAlgo* sevLevel = sevlv.product();
287 
288  caloPtrVecOutIn_.clear();
289  caloPtrVecInOut_.clear();
290 
291  bool isBarrel = true;
292  if (validBarrelBCHandle && validBarrelSCHandle)
294  scBarrelHandle,
295  bcBarrelHandle,
296  ecalhitsCollEB,
297  sevLevel,
298  *hcalHelper_,
299  *outInTrackCandidate_p,
300  *inOutTrackCandidate_p,
303 
304  if (validEndcapBCHandle && validEndcapSCHandle) {
305  isBarrel = false;
307  scEndcapHandle,
308  bcEndcapHandle,
309  ecalhitsCollEE,
310  sevLevel,
311  *hcalHelper_,
312  *outInTrackCandidate_p,
313  *inOutTrackCandidate_p,
316  }
317 
318  // std::cout << " ConversionTrackCandidateProducer caloPtrVecOutIn_ size " << caloPtrVecOutIn_.size() << " caloPtrVecInOut_ size " << caloPtrVecInOut_.size() << "\n";
319 
320  // put all products in the event
321  // Barrel
322  //std::cout << "ConversionTrackCandidateProducer Putting in the event " << (*outInTrackCandidate_p).size() << " Out In track Candidates " << "\n";
323  auto const refprodOutInTrackC = theEvent.put(std::move(outInTrackCandidate_p), OutInTrackCandidateCollection_);
324  //std::cout << "ConversionTrackCandidateProducer refprodOutInTrackC size " << (*(refprodOutInTrackC.product())).size() << "\n";
325  //
326  //std::cout << "ConversionTrackCandidateProducer Putting in the event " << (*inOutTrackCandidate_p).size() << " In Out track Candidates " << "\n";
327  auto const refprodInOutTrackC = theEvent.put(std::move(inOutTrackCandidate_p), InOutTrackCandidateCollection_);
328  //std::cout << "ConversionTrackCandidateProducer refprodInOutTrackC size " << (*(refprodInOutTrackC.product())).size() << "\n";
329 
330  edm::ValueMap<reco::CaloClusterPtr>::Filler fillerOI(*outInAssoc_p);
331  fillerOI.insert(refprodOutInTrackC, caloPtrVecOutIn_.begin(), caloPtrVecOutIn_.end());
332  fillerOI.fill();
333  edm::ValueMap<reco::CaloClusterPtr>::Filler fillerIO(*inOutAssoc_p);
334  fillerIO.insert(refprodInOutTrackC, caloPtrVecInOut_.begin(), caloPtrVecInOut_.end());
335  fillerIO.fill();
336 
337  // std::cout << "ConversionTrackCandidateProducer Putting in the event OutIn track - SC association: size " << (*outInAssoc_p).size() << "\n";
338  theEvent.put(std::move(outInAssoc_p), OutInTrackSCAssociationCollection_);
339 
340  // std::cout << "ConversionTrackCandidateProducer Putting in the event InOut track - SC association: size " << (*inOutAssoc_p).size() << "\n";
341  theEvent.put(std::move(inOutAssoc_p), InOutTrackSCAssociationCollection_);
342 
345 }
346 
348  const edm::Handle<edm::View<reco::CaloCluster>>& scHandle,
349  const edm::Handle<edm::View<reco::CaloCluster>>& bcHandle,
350  EcalRecHitCollection const& ecalRecHits,
351  const EcalSeverityLevelAlgo* sevLevel,
352  ElectronHcalHelper const& hcalHelper,
353  TrackCandidateCollection& outInTrackCandidates,
354  TrackCandidateCollection& inOutTrackCandidates,
357 
358 {
359  // Loop over SC in the barrel and reconstruct converted photons
360  for (auto const& aClus : scHandle->ptrs()) {
361  // preselection based in Et and H/E cut.
362  if (aClus->energy() / cosh(aClus->eta()) <= minSCEt_)
363  continue;
364  if (aClus->eta() > 1.479 && aClus->eta() < 1.556)
365  continue;
366 
367  const reco::CaloCluster* pClus = &(*aClus);
368  const reco::SuperCluster* sc = dynamic_cast<const reco::SuperCluster*>(pClus);
369  double scEt = sc->energy() / cosh(sc->eta());
370  double HoE = hcalHelper.hcalESum(*sc, 0) / sc->energy();
371  if (HoE >= maxHOverE_)
372  continue;
373 
375  EgammaRecHitIsolation ecalIso(
377 
380  if (isBarrel) {
381  ecalIso.doFlagChecks(flagsexclEB_);
382  ecalIso.doSeverityChecks(&ecalRecHits, severitiesexclEB_);
383  } else {
384  ecalIso.doFlagChecks(flagsexclEE_);
385  ecalIso.doSeverityChecks(&ecalRecHits, severitiesexclEE_);
386  }
387 
388  double ecalIsolation = ecalIso.getEtSum(sc);
390  continue;
391 
392  // Now launch the seed finding
394  GlobalPoint(pClus->position().x(), pClus->position().y(), pClus->position().z()));
395  outInSeedFinder_.makeSeeds(bcHandle);
396 
397  std::vector<Trajectory> theOutInTracks = outInTrackFinder_.tracks(outInSeedFinder_.seeds(), outInTrackCandidates);
398 
400  GlobalPoint(pClus->position().x(), pClus->position().y(), pClus->position().z()));
401  inOutSeedFinder_.setTracks(theOutInTracks);
402  inOutSeedFinder_.makeSeeds(bcHandle);
403 
404  std::vector<Trajectory> theInOutTracks = inOutTrackFinder_.tracks(inOutSeedFinder_.seeds(), inOutTrackCandidates);
405 
406  // Debug
407  // std::cout << "ConversionTrackCandidateProducer theOutInTracks.size() " << theOutInTracks.size() << " theInOutTracks.size() " << theInOutTracks.size() << " Event pointer to out in track size barrel " << outInTrackCandidates.size() << " in out track size " << inOutTrackCandidates.size() << "\n";
408 
410  for (auto it = theOutInTracks.begin(); it != theOutInTracks.end(); ++it) {
411  vecRecOI.push_back(aClus);
412  // std::cout << "ConversionTrackCandidateProducer Barrel OutIn Tracks Number of hits " << (*it).foundHits() << "\n";
413  }
414 
415  for (auto it = theInOutTracks.begin(); it != theInOutTracks.end(); ++it) {
416  vecRecIO.push_back(aClus);
417  // std::cout << "ConversionTrackCandidateProducer Barrel InOut Tracks Number of hits " << (*it).foundHits() << "\n";
418  }
419  }
420 }
421 
423  // conversionTrackCandidates
425 
426  desc.add<edm::InputTag>("bcBarrelCollection", {"particleFlowSuperClusterECAL", "particleFlowBasicClusterECALBarrel"});
427  desc.add<edm::InputTag>("bcEndcapCollection", {"particleFlowSuperClusterECAL", "particleFlowBasicClusterECALEndcap"});
428  desc.add<edm::InputTag>("scHybridBarrelProducer",
429  {"particleFlowSuperClusterECAL", "particleFlowSuperClusterECALBarrel"});
430  desc.add<edm::InputTag>("scIslandEndcapProducer",
431  {"particleFlowSuperClusterECAL", "particleFlowSuperClusterECALEndcapWithPreshower"});
432 
433  desc.add<std::string>("outInTrackCandidateSCAssociationCollection", "outInTrackCandidateSCAssociationCollection");
434  desc.add<std::string>("inOutTrackCandidateSCAssociationCollection", "inOutTrackCandidateSCAssociationCollection");
435  desc.add<std::string>("outInTrackCandidateCollection", "outInTracksFromConversions");
436  desc.add<std::string>("inOutTrackCandidateCollection", "inOutTracksFromConversions");
437 
438  desc.add<edm::InputTag>("barrelEcalRecHitCollection", {"ecalRecHit", "EcalRecHitsEB"});
439  desc.add<edm::InputTag>("endcapEcalRecHitCollection", {"ecalRecHit", "EcalRecHitsEE"});
440  desc.add<std::string>("MeasurementTrackerName", "");
441  desc.add<std::string>("OutInRedundantSeedCleaner", "CachingSeedCleanerBySharedInput");
442  desc.add<std::string>("InOutRedundantSeedCleaner", "CachingSeedCleanerBySharedInput");
443  desc.add<bool>("useHitsSplitting", false);
444  desc.add<int>("maxNumOfSeedsOutIn", 50);
445  desc.add<int>("maxNumOfSeedsInOut", 50);
446  desc.add<double>("bcEtCut", 1.5);
447  desc.add<double>("bcECut", 1.5);
448  desc.add<bool>("useEtCut", true);
449 
450  desc.add<edm::InputTag>("hbheRecHits", {"hbhereco"});
451  desc.add<std::vector<double>>("recHitEThresholdHB", {0., 0., 0., 0.});
452  desc.add<std::vector<double>>("recHitEThresholdHE", {0., 0., 0., 0., 0., 0., 0.});
453  desc.add<int>("maxHcalRecHitSeverity", 999999);
454 
455  desc.add<double>("minSCEt", 20.0);
456  desc.add<double>("hOverEConeSize", 0.15);
457  desc.add<double>("maxHOverE", 0.15);
458  desc.add<double>("isoInnerConeR", 3.5);
459  desc.add<double>("isoConeR", 0.4);
460  desc.add<double>("isoEtaSlice", 2.5);
461  desc.add<double>("isoEtMin", 0.0);
462  desc.add<double>("isoEMin", 0.08);
463  desc.add<bool>("vetoClusteredHits", false);
464  desc.add<bool>("useNumXstals", true);
465  desc.add<double>("ecalIsoCut_offset", 999999999); // alternative value: 4.2
466  desc.add<double>("ecalIsoCut_slope", 0.0); // alternative value: 0.003
467 
468  desc.add<std::vector<std::string>>("RecHitFlagToBeExcludedEB", {});
469  desc.add<std::vector<std::string>>("RecHitSeverityToBeExcludedEB", {});
470  desc.add<std::vector<std::string>>("RecHitFlagToBeExcludedEE", {});
471  desc.add<std::vector<std::string>>("RecHitSeverityToBeExcludedEE", {});
472 
473  desc.add<double>("fractionShared", 0.5);
474  desc.add<std::string>("TrajectoryBuilder", "TrajectoryBuilderForConversions");
475  {
477  psd0.setUnknown();
478  desc.add<edm::ParameterSetDescription>("TrajectoryBuilderPSet", psd0);
479  }
480  {
482  psd0.add<std::string>("propagatorAlongTISE", "alongMomElePropagator");
483  psd0.add<int>("numberMeasurementsForFit", 4);
484  psd0.add<std::string>("propagatorOppositeTISE", "oppositeToMomElePropagator");
485  desc.add<edm::ParameterSetDescription>("TransientInitialStateEstimatorParameters", psd0);
486  }
487  desc.add<bool>("allowSharedFirstHit", true);
488  desc.add<double>("ValidHitBonus", 5.0);
489  desc.add<double>("MissingHitPenalty", 20.0);
490 
491  descriptions.add("conversionTrackCandidatesDefault", desc);
492  // or use the following to generate the label from the module's C++ type
493  //descriptions.addWithDefaultLabel(desc);
494 }
ElectronHcalHelper::Configuration::hbheRecHits
edm::EDGetTokenT< HBHERecHitCollection > hbheRecHits
Definition: ElectronHcalHelper.h:33
ConfigurationDescriptions.h
ConversionTrackCandidateProducer::outInSeedFinder_
OutInConversionSeedFinder outInSeedFinder_
Definition: ConversionTrackCandidateProducer.cc:100
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
ConversionSeedFinder::setEventSetup
void setEventSetup(const edm::EventSetup &es)
Initialize EventSetup objects at each event.
Definition: ConversionSeedFinder.cc:41
InOutConversionTrackFinder::tracks
std::vector< Trajectory > tracks(const TrajectorySeedCollection &seeds, TrackCandidateCollection &candidate) const override
Definition: InOutConversionTrackFinder.cc:43
EcalSeverityLevelAlgo
Definition: EcalSeverityLevelAlgo.h:33
InOutConversionSeedFinder::setTracks
void setTracks(std::vector< Trajectory > const &in)
Definition: InOutConversionSeedFinder.h:46
ConversionTrackCandidateProducer::scIslandEndcapProducer_
edm::EDGetTokenT< edm::View< reco::CaloCluster > > scIslandEndcapProducer_
Definition: ConversionTrackCandidateProducer.cc:71
ConversionTrackCandidateProducer::inOutTrackFinder_
InOutConversionTrackFinder inOutTrackFinder_
Definition: ConversionTrackCandidateProducer.cc:103
ConversionSeedFinder::clear
void clear()
Definition: ConversionSeedFinder.h:72
Handle.h
ConversionTrackCandidateProducer::severitiesexclEB_
std::vector< int > severitiesexclEB_
Definition: ConversionTrackCandidateProducer.cc:90
edm::helper::Filler::insert
void insert(const H &h, I begin, I end)
Definition: ValueMap.h:53
ConversionTrackCandidateProducer::bcBarrelCollection_
edm::EDGetTokenT< edm::View< reco::CaloCluster > > bcBarrelCollection_
Definition: ConversionTrackCandidateProducer.cc:68
ConversionTrackCandidateProducer::theTrajectoryBuilder_
std::unique_ptr< BaseCkfTrajectoryBuilder > theTrajectoryBuilder_
Definition: ConversionTrackCandidateProducer.cc:98
NavigationSchoolRecord
Definition: NavigationSchoolRecord.h:12
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
MeasurementTrackerEvent.h
InOutConversionTrackFinder.h
MessageLogger.h
ConversionTrackCandidateProducer::useNumXtals_
bool useNumXtals_
Definition: ConversionTrackCandidateProducer.cc:86
ConversionTrackCandidateProducer::vecOfSCRefForOutIn
std::vector< edm::Ref< reco::SuperClusterCollection > > vecOfSCRefForOutIn
Definition: ConversionTrackCandidateProducer.cc:108
TrackCandidateCollection.h
ConversionSeedFinder.h
ConversionTrackCandidateProducer::hOverEConeSize_
double hOverEConeSize_
Definition: ConversionTrackCandidateProducer.cc:77
ESHandle.h
ConversionTrackCandidateProducer::inOutSeedFinder_
InOutConversionSeedFinder inOutSeedFinder_
Definition: ConversionTrackCandidateProducer.cc:102
ConversionTrackCandidateProducer::OutInTrackSCAssociationCollection_
std::string OutInTrackSCAssociationCollection_
Definition: ConversionTrackCandidateProducer.cc:65
BaseCkfTrajectoryBuilderFactory.h
reco::SuperCluster
Definition: SuperCluster.h:18
EcalSeverityLevelAlgoRcd.h
edm::Run
Definition: Run.h:45
EgammaHcalIsolation::arrayHB
std::array< double, 4 > arrayHB
Definition: EgammaHcalIsolation.h:41
ConversionTrackCandidateProducer::beginRun
void beginRun(edm::Run const &, edm::EventSetup const &es) final
Definition: ConversionTrackCandidateProducer.cc:214
edm::EDGetTokenT
Definition: EDGetToken.h:33
CaloGeometryRecord
Definition: CaloGeometryRecord.h:30
OutInConversionTrackFinder.h
edm::helper::Filler::fill
void fill()
Definition: ValueMap.h:65
EgammaRecHitIsolation::setUseNumCrystals
void setUseNumCrystals(bool b=true)
Definition: EgammaRecHitIsolation.h:45
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
ConversionTrackCandidateProducer::OutInTrackCandidateCollection_
std::string OutInTrackCandidateCollection_
Definition: ConversionTrackCandidateProducer.cc:62
ConversionTrackCandidateProducer::severitiesexclEE_
std::vector< int > severitiesexclEE_
Definition: ConversionTrackCandidateProducer.cc:91
ConversionTrackCandidateProducer::barrelecalCollection_
edm::EDGetTokenT< EcalRecHitCollection > barrelecalCollection_
Definition: ConversionTrackCandidateProducer.cc:73
InOutConversionSeedFinder
Definition: InOutConversionSeedFinder.h:34
EDProducer.h
edm::SortedCollection< EcalRecHit >
ConversionTrackCandidateProducer::isoEtMin_
double isoEtMin_
Definition: ConversionTrackCandidateProducer.cc:83
ConversionTrackCandidateProducer::endcapecalCollection_
edm::EDGetTokenT< EcalRecHitCollection > endcapecalCollection_
Definition: ConversionTrackCandidateProducer.cc:74
NavigationSchool
Definition: NavigationSchool.h:18
EgammaRecHitIsolation::setVetoClustered
void setVetoClustered(bool b=true)
Definition: EgammaRecHitIsolation.h:46
EgammaRecHitIsolation
Definition: EgammaRecHitIsolation.h:26
edm::Handle
Definition: AssociativeIterator.h:50
OutInConversionTrackFinder::tracks
std::vector< Trajectory > tracks(const TrajectorySeedCollection &seeds, TrackCandidateCollection &candidates) const override
Definition: OutInConversionTrackFinder.cc:43
ConversionTrackCandidateProducer::flagsexclEE_
std::vector< int > flagsexclEE_
Definition: ConversionTrackCandidateProducer.cc:89
config
Definition: config.py:1
MakerMacros.h
ElectronHcalHelper::Configuration::maxSeverityHB
int maxSeverityHB
Definition: ElectronHcalHelper.h:36
Photon.h
ConversionTrackCandidateProducer::hcalHelper_
std::unique_ptr< ElectronHcalHelper > hcalHelper_
Definition: ConversionTrackCandidateProducer.cc:111
EgammaRecHitIsolation::getEtSum
double getEtSum(const reco::Candidate *emObject) const
Definition: EgammaRecHitIsolation.h:39
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
ConversionTrackCandidateProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: ConversionTrackCandidateProducer.cc:422
ElectronHcalHelper::Configuration::onlyBehindCluster
bool onlyBehindCluster
Definition: ElectronHcalHelper.h:30
ConversionTrackCandidateProducer::isoInnerConeR_
double isoInnerConeR_
Definition: ConversionTrackCandidateProducer.cc:81
submitPVResolutionJobs.config
config
parse the configuration file
Definition: submitPVResolutionJobs.py:281
reco::CaloCluster
Definition: CaloCluster.h:31
ConversionTrackCandidateProducer::caloPtrVecOutIn_
std::vector< edm::Ptr< reco::CaloCluster > > caloPtrVecOutIn_
Definition: ConversionTrackCandidateProducer.cc:105
edm::ESHandle< CaloGeometry >
EcalSeverityLevelAlgoRcd
Definition: EcalSeverityLevelAlgoRcd.h:12
ElectronHcalHelper::Configuration::hOverEConeSize
double hOverEConeSize
Definition: ElectronHcalHelper.h:27
CaloClusterFwd.h
OutInConversionSeedFinder
Definition: OutInConversionSeedFinder.h:29
StringToEnumValue.h
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
ConversionTrackCandidateProducer::maxHOverE_
double maxHOverE_
Definition: ConversionTrackCandidateProducer.cc:78
ConversionTrackFinder::setEventSetup
void setEventSetup(const edm::EventSetup &es)
Initialize EventSetup objects at each event.
Definition: ConversionTrackFinder.cc:31
ParameterSetDescription.h
ElectronHcalHelper::hcalESum
double hcalESum(const reco::SuperCluster &, int depth) const
Definition: ElectronHcalHelper.cc:73
EcalSeverityLevelAlgo.h
EgammaRecHitIsolation::doSeverityChecks
void doSeverityChecks(const EcalRecHitCollection *const recHits, const std::vector< int > &v)
Definition: EgammaRecHitIsolation.h:47
ElectronHcalHelper::Configuration
Definition: ElectronHcalHelper.h:25
CaloGeometryRecord.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
ConversionTrackCandidateProducer::setEventSetup
void setEventSetup(const edm::EventSetup &es)
Initialize EventSetup objects at each event.
Definition: ConversionTrackCandidateProducer.cc:207
ConversionTrackCandidateProducer::InOutTrackCandidateCollection_
std::string InOutTrackCandidateCollection_
Definition: ConversionTrackCandidateProducer.cc:63
PixelPluginsPhase0_cfi.isBarrel
isBarrel
Definition: PixelPluginsPhase0_cfi.py:17
ConversionTrackCandidateProducer::caloPtrVecInOut_
std::vector< edm::Ptr< reco::CaloCluster > > caloPtrVecInOut_
Definition: ConversionTrackCandidateProducer.cc:106
InOutConversionSeedFinder::makeSeeds
void makeSeeds(const edm::Handle< edm::View< reco::CaloCluster > > &allBc) override
Definition: InOutConversionSeedFinder.cc:36
edm::View
Definition: CaloClusterFwd.h:14
ConversionTrackCandidateProducer::vetoClusteredHits_
bool vetoClusteredHits_
Definition: ConversionTrackCandidateProducer.cc:85
ConversionSeedFinder::setNavigationSchool
void setNavigationSchool(const NavigationSchool *navigation)
Definition: ConversionSeedFinder.h:69
edm::ParameterSet
Definition: ParameterSet.h:47
ConversionTrackCandidateProducer::isoConeR_
double isoConeR_
Definition: ConversionTrackCandidateProducer.cc:80
TrackCandidateCollection
std::vector< TrackCandidate > TrackCandidateCollection
Definition: TrackCandidateCollection.h:7
ConversionTrackCandidateProducer::InOutTrackSCAssociationCollection_
std::string InOutTrackSCAssociationCollection_
Definition: ConversionTrackCandidateProducer.cc:66
ConversionTrackCandidateProducer::ecalIsoCut_offset_
double ecalIsoCut_offset_
Definition: ConversionTrackCandidateProducer.cc:93
ConversionTrackCandidateProducer::measurementTrkEvtToken_
edm::EDGetTokenT< MeasurementTrackerEvent > measurementTrkEvtToken_
Definition: ConversionTrackCandidateProducer.cc:75
reco::CaloCluster::eta
double eta() const
pseudorapidity of cluster centroid
Definition: CaloCluster.h:181
Event.h
InOutConversionSeedFinder.h
OutInConversionSeedFinder.h
ConversionTrackCandidateProducer::outInTrackFinder_
OutInConversionTrackFinder outInTrackFinder_
Definition: ConversionTrackCandidateProducer.cc:101
ConversionTrackFinder.h
edm::Event::put
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
ConversionSeedFinder::seeds
TrajectorySeedCollection & seeds()
Definition: ConversionSeedFinder.h:57
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
edm::stream::EDProducer
Definition: EDProducer.h:36
ElectronHcalHelper::Configuration::maxSeverityHE
int maxSeverityHE
Definition: ElectronHcalHelper.h:38
edm::ParameterSetDescription::setUnknown
void setUnknown()
Definition: ParameterSetDescription.cc:39
ConversionSeedFinder::setCandidate
virtual void setCandidate(float e, GlobalPoint pos)
Definition: ConversionSeedFinder.h:58
edm::EventSetup
Definition: EventSetup.h:58
EgammaRecHitIsolation::doFlagChecks
void doFlagChecks(const std::vector< int > &v)
Definition: EgammaRecHitIsolation.h:54
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
DetId::Ecal
Definition: DetId.h:27
get
#define get
OutInConversionSeedFinder::makeSeeds
void makeSeeds(const edm::Handle< edm::View< reco::CaloCluster > > &allBc) override
Definition: OutInConversionSeedFinder.cc:54
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
reco::CaloCluster::position
const math::XYZPoint & position() const
cluster centroid position
Definition: CaloCluster.h:154
edm::Ptr
Definition: AssociationVector.h:31
alignCSCRings.r
r
Definition: alignCSCRings.py:93
CaloTowerCollection.h
ConversionTrackCandidateProducer::produce
void produce(edm::Event &evt, const edm::EventSetup &es) override
Definition: ConversionTrackCandidateProducer.cc:223
ConversionTrackCandidateProducer::minSCEt_
double minSCEt_
Definition: ConversionTrackCandidateProducer.cc:79
ConversionTrackCandidateProducer::isoEMin_
double isoEMin_
Definition: ConversionTrackCandidateProducer.cc:84
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
ConversionSeedFinder::setEvent
void setEvent(const edm::Event &e)
Definition: ConversionSeedFinder.cc:30
eostools.move
def move(src, dest)
Definition: eostools.py:511
OutInConversionTrackFinder
Definition: OutInConversionTrackFinder.h:30
ConversionTrackCandidateProducer::vecOfSCRefForInOut
std::vector< edm::Ref< reco::SuperClusterCollection > > vecOfSCRefForInOut
Definition: ConversionTrackCandidateProducer.cc:109
ElectronHcalHelper::Configuration::eThresHB
EgammaHcalIsolation::arrayHB eThresHB
Definition: ElectronHcalHelper.h:35
DetId.h
ConversionTrackCandidateProducer
Definition: ConversionTrackCandidateProducer.cc:49
ElectronHcalHelper::Configuration::checkHcalStatus
bool checkHcalStatus
Definition: ElectronHcalHelper.h:30
EgammaRecHitIsolation.h
ConversionTrackCandidateProducer::scHybridBarrelProducer_
edm::EDGetTokenT< edm::View< reco::CaloCluster > > scHybridBarrelProducer_
Definition: ConversionTrackCandidateProducer.cc:70
BaseCkfTrajectoryBuilder.h
CaloGeometry.h
ElectronHcalHelper.h
ConversionTrackCandidateProducer::isoEtaSlice_
double isoEtaSlice_
Definition: ConversionTrackCandidateProducer.cc:82
EventSetup.h
ElectronHcalHelper
Definition: ElectronHcalHelper.h:23
ConversionTrackCandidateProducer::ConversionTrackCandidateProducer
ConversionTrackCandidateProducer(const edm::ParameterSet &ps)
Definition: ConversionTrackCandidateProducer.cc:134
ConversionTrackCandidateProducer::buildCollections
void buildCollections(bool detector, const edm::Handle< edm::View< reco::CaloCluster >> &scHandle, const edm::Handle< edm::View< reco::CaloCluster >> &bcHandle, const EcalRecHitCollection &ecalRecHits, const EcalSeverityLevelAlgo *sevLev, ElectronHcalHelper const &hcalHelper, TrackCandidateCollection &outInTracks, TrackCandidateCollection &inOutTracks, std::vector< edm::Ptr< reco::CaloCluster >> &vecRecOI, std::vector< edm::Ptr< reco::CaloCluster >> &vecRecIO)
Definition: ConversionTrackCandidateProducer.cc:347
ConversionTrackCandidateProducer::hbheRecHits_
edm::EDGetTokenT< HBHERecHitCollection > hbheRecHits_
Definition: ConversionTrackCandidateProducer.cc:72
TrackCandidateCaloClusterAssociation.h
hgcalTestNeighbor_cfi.detector
detector
Definition: hgcalTestNeighbor_cfi.py:6
RecoTauCleanerPlugins.ecalIsolation
ecalIsolation
Definition: RecoTauCleanerPlugins.py:112
ConsumesCollector.h
edm::helper::Filler
Definition: ValueMap.h:22
View.h
ParameterSet.h
NavigationSchool.h
NavigationSchoolRecord.h
edm::Event
Definition: Event.h:73
ConversionTrackCandidateProducer::theCaloGeom_
edm::ESHandle< CaloGeometry > theCaloGeom_
Definition: ConversionTrackCandidateProducer.cc:96
InOutConversionTrackFinder
Definition: InOutConversionTrackFinder.h:28
ConversionTrackCandidateProducer::bcEndcapCollection_
edm::EDGetTokenT< edm::View< reco::CaloCluster > > bcEndcapCollection_
Definition: ConversionTrackCandidateProducer.cc:69
reco::CaloCluster::energy
double energy() const
cluster energy
Definition: CaloCluster.h:149
edm::Event::get
bool get(ProductID const &oid, Handle< PROD > &result) const
Definition: Event.h:346
edm::Event::getHandle
Handle< PROD > getHandle(EDGetTokenT< PROD > token) const
Definition: Event.h:563
ElectronHcalHelper::Configuration::eThresHE
EgammaHcalIsolation::arrayHE eThresHE
Definition: ElectronHcalHelper.h:37
ConversionTrackCandidateProducer::ecalIsoCut_slope_
double ecalIsoCut_slope_
Definition: ConversionTrackCandidateProducer.cc:94
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
EgammaHcalIsolation::arrayHE
std::array< double, 7 > arrayHE
Definition: EgammaHcalIsolation.h:42
EcalChannelStatusRcd.h
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
CaloCluster.h
MeasurementTracker.h
ConversionTrackCandidateProducer::flagsexclEB_
std::vector< int > flagsexclEB_
Definition: ConversionTrackCandidateProducer.cc:88