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  void buildCollections(bool detector,
112  const edm::Handle<edm::View<reco::CaloCluster>>& scHandle,
113  const edm::Handle<edm::View<reco::CaloCluster>>& bcHandle,
114  const EcalRecHitCollection& ecalRecHits,
115  const EcalSeverityLevelAlgo* sevLev,
117  TrackCandidateCollection& outInTracks,
118  TrackCandidateCollection& inOutTracks,
121 };
122 
125 
126 namespace {
127  auto createBaseCkfTrajectoryBuilder(const edm::ParameterSet& pset, edm::ConsumesCollector&& iC) {
128  return BaseCkfTrajectoryBuilderFactory::get()->create(pset.getParameter<std::string>("ComponentType"), pset, iC);
129  }
130 } // namespace
131 
133  : bcBarrelCollection_{consumes(config.getParameter<edm::InputTag>("bcBarrelCollection"))},
134  bcEndcapCollection_{consumes(config.getParameter<edm::InputTag>("bcEndcapCollection"))},
135  scHybridBarrelProducer_{consumes(config.getParameter<edm::InputTag>("scHybridBarrelProducer"))},
136  scIslandEndcapProducer_{consumes(config.getParameter<edm::InputTag>("scIslandEndcapProducer"))},
137 
138  hcalTowers_{consumes(config.getParameter<edm::InputTag>("hcalTowers"))},
139  barrelecalCollection_{consumes(config.getParameter<edm::InputTag>("barrelEcalRecHitCollection"))},
140  endcapecalCollection_{consumes(config.getParameter<edm::InputTag>("endcapEcalRecHitCollection"))},
141  measurementTrkEvtToken_{consumes(edm::InputTag("MeasurementTrackerEvent"))},
142 
143  theTrajectoryBuilder_(createBaseCkfTrajectoryBuilder(
144  config.getParameter<edm::ParameterSet>("TrajectoryBuilderPSet"), consumesCollector())),
145  outInSeedFinder_{config, consumesCollector()},
146  outInTrackFinder_{config, theTrajectoryBuilder_.get()},
147  inOutSeedFinder_{config, consumesCollector()},
148  inOutTrackFinder_{config, theTrajectoryBuilder_.get()} {
149  OutInTrackCandidateCollection_ = config.getParameter<std::string>("outInTrackCandidateCollection");
150  InOutTrackCandidateCollection_ = config.getParameter<std::string>("inOutTrackCandidateCollection");
151 
152  OutInTrackSCAssociationCollection_ = config.getParameter<std::string>("outInTrackCandidateSCAssociationCollection");
153  InOutTrackSCAssociationCollection_ = config.getParameter<std::string>("inOutTrackCandidateSCAssociationCollection");
154 
155  hOverEConeSize_ = config.getParameter<double>("hOverEConeSize");
156  maxHOverE_ = config.getParameter<double>("maxHOverE");
157  minSCEt_ = config.getParameter<double>("minSCEt");
158  isoConeR_ = config.getParameter<double>("isoConeR");
159  isoInnerConeR_ = config.getParameter<double>("isoInnerConeR");
160  isoEtaSlice_ = config.getParameter<double>("isoEtaSlice");
161  isoEtMin_ = config.getParameter<double>("isoEtMin");
162  isoEMin_ = config.getParameter<double>("isoEMin");
163  vetoClusteredHits_ = config.getParameter<bool>("vetoClusteredHits");
164  useNumXtals_ = config.getParameter<bool>("useNumXstals");
165  ecalIsoCut_offset_ = config.getParameter<double>("ecalIsoCut_offset");
166  ecalIsoCut_slope_ = config.getParameter<double>("ecalIsoCut_slope");
167 
168  //Flags and Severities to be excluded from photon calculations
169  auto const& flagnamesEB = config.getParameter<std::vector<std::string>>("RecHitFlagToBeExcludedEB");
170  auto const& flagnamesEE = config.getParameter<std::vector<std::string>>("RecHitFlagToBeExcludedEE");
171 
172  flagsexclEB_ = StringToEnumValue<EcalRecHit::Flags>(flagnamesEB);
173  flagsexclEE_ = StringToEnumValue<EcalRecHit::Flags>(flagnamesEE);
174 
175  auto const& severitynamesEB = config.getParameter<std::vector<std::string>>("RecHitSeverityToBeExcludedEB");
176  auto const& severitynamesEE = config.getParameter<std::vector<std::string>>("RecHitSeverityToBeExcludedEE");
177 
178  severitiesexclEB_ = StringToEnumValue<EcalSeverityLevel::SeverityLevel>(severitynamesEB);
179  severitiesexclEE_ = StringToEnumValue<EcalSeverityLevel::SeverityLevel>(severitynamesEE);
180 
181  // Register the product
182  produces<TrackCandidateCollection>(OutInTrackCandidateCollection_);
183  produces<TrackCandidateCollection>(InOutTrackCandidateCollection_);
184 
185  produces<reco::TrackCandidateCaloClusterPtrAssociation>(OutInTrackSCAssociationCollection_);
186  produces<reco::TrackCandidateCaloClusterPtrAssociation>(InOutTrackSCAssociationCollection_);
187 }
188 
190  outInSeedFinder_.setEventSetup(theEventSetup);
191  inOutSeedFinder_.setEventSetup(theEventSetup);
192  outInTrackFinder_.setEventSetup(theEventSetup);
193  inOutTrackFinder_.setEventSetup(theEventSetup);
194 }
195 
198  theEventSetup.get<NavigationSchoolRecord>().get("SimpleNavigationSchool", nav);
199  const NavigationSchool* navigation = nav.product();
200  theTrajectoryBuilder_->setNavigationSchool(navigation);
203 }
204 
206  // get the trajectory builder and initialize it with the data
207  theTrajectoryBuilder_->setEvent(theEvent, theEventSetup, &theEvent.get(measurementTrkEvtToken_));
208 
209  // this need to be done after the initialization of the TrajectoryBuilder!
210  setEventSetup(theEventSetup);
211 
212  outInSeedFinder_.setEvent(theEvent);
213  inOutSeedFinder_.setEvent(theEvent);
214 
215  //
216  // create empty output collections
217  //
218  // Out In Track Candidates
219  auto outInTrackCandidate_p = std::make_unique<TrackCandidateCollection>();
220  // In Out Track Candidates
221  auto inOutTrackCandidate_p = std::make_unique<TrackCandidateCollection>();
222  // Track Candidate calo Cluster Association
223  auto outInAssoc_p = std::make_unique<reco::TrackCandidateCaloClusterPtrAssociation>();
224  auto inOutAssoc_p = std::make_unique<reco::TrackCandidateCaloClusterPtrAssociation>();
225 
226  // Get the basic cluster collection in the Barrel
227  bool validBarrelBCHandle = true;
228  auto bcBarrelHandle = theEvent.getHandle(bcBarrelCollection_);
229  if (!bcBarrelHandle.isValid()) {
230  edm::LogError("ConversionTrackCandidateProducer") << "Error! Can't get the Barrel Basic Clusters!";
231  validBarrelBCHandle = false;
232  }
233 
234  // Get the basic cluster collection in the Endcap
235  bool validEndcapBCHandle = true;
236  auto bcEndcapHandle = theEvent.getHandle(bcEndcapCollection_);
237  if (!bcEndcapHandle.isValid()) {
238  edm::LogError("CoonversionTrackCandidateProducer") << "Error! Can't get the Endcap Basic Clusters";
239  validEndcapBCHandle = false;
240  }
241 
242  // Get the Super Cluster collection in the Barrel
243  bool validBarrelSCHandle = true;
244  auto scBarrelHandle = theEvent.getHandle(scHybridBarrelProducer_);
245  if (!scBarrelHandle.isValid()) {
246  edm::LogError("CoonversionTrackCandidateProducer") << "Error! Can't get the barrel superclusters!";
247  validBarrelSCHandle = false;
248  }
249 
250  // Get the Super Cluster collection in the Endcap
251  bool validEndcapSCHandle = true;
252  auto scEndcapHandle = theEvent.getHandle(scIslandEndcapProducer_);
253  if (!scEndcapHandle.isValid()) {
254  edm::LogError("CoonversionTrackCandidateProducer") << "Error! Can't get the endcap superclusters!";
255  validEndcapSCHandle = false;
256  }
257 
258  // get the geometry from the event setup:
259  theEventSetup.get<CaloGeometryRecord>().get(theCaloGeom_);
260 
261  auto const& hcalTowers = theEvent.get(hcalTowers_);
262 
263  auto const& ecalhitsCollEB = theEvent.get(barrelecalCollection_);
264  auto const& ecalhitsCollEE = theEvent.get(endcapecalCollection_);
265 
267  theEventSetup.get<EcalSeverityLevelAlgoRcd>().get(sevlv);
268  const EcalSeverityLevelAlgo* sevLevel = sevlv.product();
269 
270  caloPtrVecOutIn_.clear();
271  caloPtrVecInOut_.clear();
272 
273  bool isBarrel = true;
274  if (validBarrelBCHandle && validBarrelSCHandle)
276  scBarrelHandle,
277  bcBarrelHandle,
278  ecalhitsCollEB,
279  sevLevel,
280  hcalTowers,
281  *outInTrackCandidate_p,
282  *inOutTrackCandidate_p,
285 
286  if (validEndcapBCHandle && validEndcapSCHandle) {
287  isBarrel = false;
289  scEndcapHandle,
290  bcEndcapHandle,
291  ecalhitsCollEE,
292  sevLevel,
293  hcalTowers,
294  *outInTrackCandidate_p,
295  *inOutTrackCandidate_p,
298  }
299 
300  // std::cout << " ConversionTrackCandidateProducer caloPtrVecOutIn_ size " << caloPtrVecOutIn_.size() << " caloPtrVecInOut_ size " << caloPtrVecInOut_.size() << "\n";
301 
302  // put all products in the event
303  // Barrel
304  //std::cout << "ConversionTrackCandidateProducer Putting in the event " << (*outInTrackCandidate_p).size() << " Out In track Candidates " << "\n";
305  auto const refprodOutInTrackC = theEvent.put(std::move(outInTrackCandidate_p), OutInTrackCandidateCollection_);
306  //std::cout << "ConversionTrackCandidateProducer refprodOutInTrackC size " << (*(refprodOutInTrackC.product())).size() << "\n";
307  //
308  //std::cout << "ConversionTrackCandidateProducer Putting in the event " << (*inOutTrackCandidate_p).size() << " In Out track Candidates " << "\n";
309  auto const refprodInOutTrackC = theEvent.put(std::move(inOutTrackCandidate_p), InOutTrackCandidateCollection_);
310  //std::cout << "ConversionTrackCandidateProducer refprodInOutTrackC size " << (*(refprodInOutTrackC.product())).size() << "\n";
311 
312  edm::ValueMap<reco::CaloClusterPtr>::Filler fillerOI(*outInAssoc_p);
313  fillerOI.insert(refprodOutInTrackC, caloPtrVecOutIn_.begin(), caloPtrVecOutIn_.end());
314  fillerOI.fill();
315  edm::ValueMap<reco::CaloClusterPtr>::Filler fillerIO(*inOutAssoc_p);
316  fillerIO.insert(refprodInOutTrackC, caloPtrVecInOut_.begin(), caloPtrVecInOut_.end());
317  fillerIO.fill();
318 
319  // std::cout << "ConversionTrackCandidateProducer Putting in the event OutIn track - SC association: size " << (*outInAssoc_p).size() << "\n";
320  theEvent.put(std::move(outInAssoc_p), OutInTrackSCAssociationCollection_);
321 
322  // std::cout << "ConversionTrackCandidateProducer Putting in the event InOut track - SC association: size " << (*inOutAssoc_p).size() << "\n";
323  theEvent.put(std::move(inOutAssoc_p), InOutTrackSCAssociationCollection_);
324 
327 }
328 
330  const edm::Handle<edm::View<reco::CaloCluster>>& scHandle,
331  const edm::Handle<edm::View<reco::CaloCluster>>& bcHandle,
332  EcalRecHitCollection const& ecalRecHits,
333  const EcalSeverityLevelAlgo* sevLevel,
335  TrackCandidateCollection& outInTrackCandidates,
336  TrackCandidateCollection& inOutTrackCandidates,
339 
340 {
341  // Loop over SC in the barrel and reconstruct converted photons
342  for (auto const& aClus : scHandle->ptrs()) {
343  // preselection based in Et and H/E cut.
344  if (aClus->energy() / cosh(aClus->eta()) <= minSCEt_)
345  continue;
346  if (aClus->eta() > 1.479 && aClus->eta() < 1.556)
347  continue;
348 
349  const reco::CaloCluster* pClus = &(*aClus);
350  const reco::SuperCluster* sc = dynamic_cast<const reco::SuperCluster*>(pClus);
351  double scEt = sc->energy() / cosh(sc->eta());
352  EgammaTowerIsolation towerIso(hOverEConeSize_, 0., 0., -1, &hcalTowers);
353  double HoE = towerIso.getTowerESum(sc) / sc->energy();
354  if (HoE >= maxHOverE_)
355  continue;
356 
358  EgammaRecHitIsolation ecalIso(
360 
363  if (isBarrel) {
364  ecalIso.doFlagChecks(flagsexclEB_);
365  ecalIso.doSeverityChecks(&ecalRecHits, severitiesexclEB_);
366  } else {
367  ecalIso.doFlagChecks(flagsexclEE_);
368  ecalIso.doSeverityChecks(&ecalRecHits, severitiesexclEE_);
369  }
370 
371  double ecalIsolation = ecalIso.getEtSum(sc);
373  continue;
374 
375  // Now launch the seed finding
377  GlobalPoint(pClus->position().x(), pClus->position().y(), pClus->position().z()));
378  outInSeedFinder_.makeSeeds(bcHandle);
379 
380  std::vector<Trajectory> theOutInTracks = outInTrackFinder_.tracks(outInSeedFinder_.seeds(), outInTrackCandidates);
381 
383  GlobalPoint(pClus->position().x(), pClus->position().y(), pClus->position().z()));
384  inOutSeedFinder_.setTracks(theOutInTracks);
385  inOutSeedFinder_.makeSeeds(bcHandle);
386 
387  std::vector<Trajectory> theInOutTracks = inOutTrackFinder_.tracks(inOutSeedFinder_.seeds(), inOutTrackCandidates);
388 
389  // Debug
390  // 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";
391 
393  for (auto it = theOutInTracks.begin(); it != theOutInTracks.end(); ++it) {
394  vecRecOI.push_back(aClus);
395  // std::cout << "ConversionTrackCandidateProducer Barrel OutIn Tracks Number of hits " << (*it).foundHits() << "\n";
396  }
397 
398  for (auto it = theInOutTracks.begin(); it != theInOutTracks.end(); ++it) {
399  vecRecIO.push_back(aClus);
400  // std::cout << "ConversionTrackCandidateProducer Barrel InOut Tracks Number of hits " << (*it).foundHits() << "\n";
401  }
402  }
403 }
404 
406  // conversionTrackCandidates
408 
409  desc.add<edm::InputTag>("bcBarrelCollection", {"particleFlowSuperClusterECAL", "particleFlowBasicClusterECALBarrel"});
410  desc.add<edm::InputTag>("bcEndcapCollection", {"particleFlowSuperClusterECAL", "particleFlowBasicClusterECALEndcap"});
411  desc.add<edm::InputTag>("scHybridBarrelProducer",
412  {"particleFlowSuperClusterECAL", "particleFlowSuperClusterECALBarrel"});
413  desc.add<edm::InputTag>("scIslandEndcapProducer",
414  {"particleFlowSuperClusterECAL", "particleFlowSuperClusterECALEndcapWithPreshower"});
415 
416  desc.add<std::string>("outInTrackCandidateSCAssociationCollection", "outInTrackCandidateSCAssociationCollection");
417  desc.add<std::string>("inOutTrackCandidateSCAssociationCollection", "inOutTrackCandidateSCAssociationCollection");
418  desc.add<std::string>("outInTrackCandidateCollection", "outInTracksFromConversions");
419  desc.add<std::string>("inOutTrackCandidateCollection", "inOutTracksFromConversions");
420 
421  desc.add<edm::InputTag>("barrelEcalRecHitCollection", {"ecalRecHit", "EcalRecHitsEB"});
422  desc.add<edm::InputTag>("endcapEcalRecHitCollection", {"ecalRecHit", "EcalRecHitsEE"});
423  desc.add<std::string>("MeasurementTrackerName", "");
424  desc.add<std::string>("OutInRedundantSeedCleaner", "CachingSeedCleanerBySharedInput");
425  desc.add<std::string>("InOutRedundantSeedCleaner", "CachingSeedCleanerBySharedInput");
426  desc.add<bool>("useHitsSplitting", false);
427  desc.add<int>("maxNumOfSeedsOutIn", 50);
428  desc.add<int>("maxNumOfSeedsInOut", 50);
429  desc.add<double>("bcEtCut", 1.5);
430  desc.add<double>("bcECut", 1.5);
431  desc.add<bool>("useEtCut", true);
432  desc.add<edm::InputTag>("hcalTowers", {"towerMaker"});
433  desc.add<double>("minSCEt", 20.0);
434  desc.add<double>("hOverEConeSize", 0.15);
435  desc.add<double>("maxHOverE", 0.15);
436  desc.add<double>("isoInnerConeR", 3.5);
437  desc.add<double>("isoConeR", 0.4);
438  desc.add<double>("isoEtaSlice", 2.5);
439  desc.add<double>("isoEtMin", 0.0);
440  desc.add<double>("isoEMin", 0.08);
441  desc.add<bool>("vetoClusteredHits", false);
442  desc.add<bool>("useNumXstals", true);
443  desc.add<double>("ecalIsoCut_offset", 999999999); // alternative value: 4.2
444  desc.add<double>("ecalIsoCut_slope", 0.0); // alternative value: 0.003
445 
446  desc.add<std::vector<std::string>>("RecHitFlagToBeExcludedEB", {});
447  desc.add<std::vector<std::string>>("RecHitSeverityToBeExcludedEB", {});
448  desc.add<std::vector<std::string>>("RecHitFlagToBeExcludedEE", {});
449  desc.add<std::vector<std::string>>("RecHitSeverityToBeExcludedEE", {});
450 
451  desc.add<double>("fractionShared", 0.5);
452  desc.add<std::string>("TrajectoryBuilder", "TrajectoryBuilderForConversions");
453  {
455  psd0.setUnknown();
456  desc.add<edm::ParameterSetDescription>("TrajectoryBuilderPSet", psd0);
457  }
458  {
460  psd0.add<std::string>("propagatorAlongTISE", "alongMomElePropagator");
461  psd0.add<int>("numberMeasurementsForFit", 4);
462  psd0.add<std::string>("propagatorOppositeTISE", "oppositeToMomElePropagator");
463  desc.add<edm::ParameterSetDescription>("TransientInitialStateEstimatorParameters", psd0);
464  }
465  desc.add<bool>("allowSharedFirstHit", true);
466  desc.add<double>("ValidHitBonus", 5.0);
467  desc.add<double>("MissingHitPenalty", 20.0);
468 
469  descriptions.add("conversionTrackCandidates", desc);
470  // or use the following to generate the label from the module's C++ type
471  //descriptions.addWithDefaultLabel(desc);
472 }
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
ConversionTrackCandidateProducer::beginRun
void beginRun(edm::Run const &, edm::EventSetup const &es) final
Definition: ConversionTrackCandidateProducer.cc:196
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
Photon.h
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::hcalTowers_
edm::EDGetTokenT< CaloTowerCollection > hcalTowers_
Definition: ConversionTrackCandidateProducer.cc:72
ConversionTrackCandidateProducer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: ConversionTrackCandidateProducer.cc:405
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
CaloClusterFwd.h
OutInConversionSeedFinder
Definition: OutInConversionSeedFinder.h:29
StringToEnumValue.h
GlobalPoint
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
EgammaTowerIsolation.h
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
EcalSeverityLevelAlgo.h
EgammaRecHitIsolation::doSeverityChecks
void doSeverityChecks(const EcalRecHitCollection *const recHits, const std::vector< int > &v)
Definition: EgammaRecHitIsolation.h:47
CaloGeometryRecord.h
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
ConversionTrackCandidateProducer::setEventSetup
void setEventSetup(const edm::EventSetup &es)
Initialize EventSetup objects at each event.
Definition: ConversionTrackCandidateProducer.cc:189
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
EgammaTowerIsolation
Definition: EgammaTowerIsolation.h:197
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: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
reco::CaloCluster::position
const math::XYZPoint & position() const
cluster centroid position
Definition: CaloCluster.h:154
conversions_cfi.hcalTowers
hcalTowers
Definition: conversions_cfi.py:21
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:205
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
DetId.h
ConversionTrackCandidateProducer
Definition: ConversionTrackCandidateProducer.cc:49
EgammaRecHitIsolation.h
ConversionTrackCandidateProducer::scHybridBarrelProducer_
edm::EDGetTokenT< edm::View< reco::CaloCluster > > scHybridBarrelProducer_
Definition: ConversionTrackCandidateProducer.cc:70
BaseCkfTrajectoryBuilder.h
CaloGeometry.h
ConversionTrackCandidateProducer::isoEtaSlice_
double isoEtaSlice_
Definition: ConversionTrackCandidateProducer.cc:82
EventSetup.h
ConversionTrackCandidateProducer::ConversionTrackCandidateProducer
ConversionTrackCandidateProducer(const edm::ParameterSet &ps)
Definition: ConversionTrackCandidateProducer.cc:132
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:342
edm::Event::getHandle
Handle< PROD > getHandle(EDGetTokenT< PROD > token) const
Definition: Event.h:559
ConversionTrackCandidateProducer::ecalIsoCut_slope_
double ecalIsoCut_slope_
Definition: ConversionTrackCandidateProducer.cc:94
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
EcalChannelStatusRcd.h
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, CaloTowerCollection const &hcalTowers, TrackCandidateCollection &outInTracks, TrackCandidateCollection &inOutTracks, std::vector< edm::Ptr< reco::CaloCluster >> &vecRecOI, std::vector< edm::Ptr< reco::CaloCluster >> &vecRecIO)
Definition: ConversionTrackCandidateProducer.cc:329
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27
CaloCluster.h
MeasurementTracker.h
ConversionTrackCandidateProducer::flagsexclEB_
std::vector< int > flagsexclEB_
Definition: ConversionTrackCandidateProducer.cc:88