|
|
- Author
- Nancy Marinelli, U. of Notre Dame, US
Definition at line 49 of file ConversionTrackCandidateProducer.cc.
◆ ConversionTrackCandidateProducer()
ConversionTrackCandidateProducer::ConversionTrackCandidateProducer |
( |
const edm::ParameterSet & |
ps | ) |
|
Definition at line 134 of file ConversionTrackCandidateProducer.cc.
171 auto const& flagnamesEB =
config.getParameter<std::vector<std::string>>(
"RecHitFlagToBeExcludedEB");
172 auto const& flagnamesEE =
config.getParameter<std::vector<std::string>>(
"RecHitFlagToBeExcludedEE");
174 flagsexclEB_ = StringToEnumValue<EcalRecHit::Flags>(flagnamesEB);
175 flagsexclEE_ = StringToEnumValue<EcalRecHit::Flags>(flagnamesEE);
177 auto const& severitynamesEB =
config.getParameter<std::vector<std::string>>(
"RecHitSeverityToBeExcludedEB");
178 auto const& severitynamesEE =
config.getParameter<std::vector<std::string>>(
"RecHitSeverityToBeExcludedEE");
180 severitiesexclEB_ = StringToEnumValue<EcalSeverityLevel::SeverityLevel>(severitynamesEB);
181 severitiesexclEE_ = StringToEnumValue<EcalSeverityLevel::SeverityLevel>(severitynamesEE);
204 hcalHelper_ = std::make_unique<ElectronHcalHelper>(cfgCone, consumesCollector());
◆ beginRun()
◆ buildCollections()
Definition at line 347 of file ConversionTrackCandidateProducer.cc.
360 for (
auto const& aClus : scHandle->ptrs()) {
362 if (aClus->energy() / cosh(aClus->eta()) <=
minSCEt_)
364 if (aClus->eta() > 1.479 && aClus->eta() < 1.556)
369 double scEt = sc->
energy() / cosh(sc->
eta());
370 double HoE = hcalHelper.hcalESum(*sc, 0) / sc->
energy();
410 for (
auto it = theOutInTracks.begin(); it != theOutInTracks.end(); ++it) {
411 vecRecOI.push_back(aClus);
415 for (
auto it = theInOutTracks.begin(); it != theInOutTracks.end(); ++it) {
416 vecRecIO.push_back(aClus);
References EgammaRecHitIsolation::doFlagChecks(), EgammaRecHitIsolation::doSeverityChecks(), DetId::Ecal, ecalIsoCut_offset_, ecalIsoCut_slope_, RecoTauCleanerPlugins::ecalIsolation, reco::CaloCluster::energy(), reco::CaloCluster::eta(), flagsexclEB_, flagsexclEE_, EgammaRecHitIsolation::getEtSum(), ElectronHcalHelper::hcalESum(), inOutSeedFinder_, inOutTrackFinder_, PixelPluginsPhase0_cfi::isBarrel, isoConeR_, isoEMin_, isoEtaSlice_, isoEtMin_, isoInnerConeR_, OutInConversionSeedFinder::makeSeeds(), InOutConversionSeedFinder::makeSeeds(), maxHOverE_, minSCEt_, outInSeedFinder_, outInTrackFinder_, reco::CaloCluster::position(), ConversionSeedFinder::seeds(), ConversionSeedFinder::setCandidate(), InOutConversionSeedFinder::setTracks(), EgammaRecHitIsolation::setUseNumCrystals(), EgammaRecHitIsolation::setVetoClustered(), severitiesexclEB_, severitiesexclEE_, theCaloGeom_, InOutConversionTrackFinder::tracks(), OutInConversionTrackFinder::tracks(), useNumXtals_, and vetoClusteredHits_.
Referenced by produce().
◆ fillDescriptions()
Definition at line 422 of file ConversionTrackCandidateProducer.cc.
426 desc.add<
edm::InputTag>(
"bcBarrelCollection", {
"particleFlowSuperClusterECAL",
"particleFlowBasicClusterECALBarrel"});
427 desc.add<
edm::InputTag>(
"bcEndcapCollection", {
"particleFlowSuperClusterECAL",
"particleFlowBasicClusterECALEndcap"});
429 {
"particleFlowSuperClusterECAL",
"particleFlowSuperClusterECALBarrel"});
431 {
"particleFlowSuperClusterECAL",
"particleFlowSuperClusterECALEndcapWithPreshower"});
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");
438 desc.add<
edm::InputTag>(
"barrelEcalRecHitCollection", {
"ecalRecHit",
"EcalRecHitsEB"});
439 desc.add<
edm::InputTag>(
"endcapEcalRecHitCollection", {
"ecalRecHit",
"EcalRecHitsEE"});
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);
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);
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);
466 desc.add<
double>(
"ecalIsoCut_slope", 0.0);
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", {});
473 desc.add<
double>(
"fractionShared", 0.5);
474 desc.add<
std::string>(
"TrajectoryBuilder",
"TrajectoryBuilderForConversions");
482 psd0.
add<
std::string>(
"propagatorAlongTISE",
"alongMomElePropagator");
483 psd0.
add<
int>(
"numberMeasurementsForFit", 4);
484 psd0.
add<
std::string>(
"propagatorOppositeTISE",
"oppositeToMomElePropagator");
487 desc.add<
bool>(
"allowSharedFirstHit",
true);
488 desc.add<
double>(
"ValidHitBonus", 5.0);
489 desc.add<
double>(
"MissingHitPenalty", 20.0);
491 descriptions.
add(
"conversionTrackCandidatesDefault",
desc);
References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), submitPVResolutionJobs::desc, edm::ParameterSetDescription::setUnknown(), and AlCaHLTBitMon_QueryRunRegistry::string.
◆ produce()
Definition at line 223 of file ConversionTrackCandidateProducer.cc.
237 auto outInTrackCandidate_p = std::make_unique<TrackCandidateCollection>();
239 auto inOutTrackCandidate_p = std::make_unique<TrackCandidateCollection>();
241 auto outInAssoc_p = std::make_unique<reco::TrackCandidateCaloClusterPtrAssociation>();
242 auto inOutAssoc_p = std::make_unique<reco::TrackCandidateCaloClusterPtrAssociation>();
245 bool validBarrelBCHandle =
true;
247 if (!bcBarrelHandle.isValid()) {
248 edm::LogError(
"ConversionTrackCandidateProducer") <<
"Error! Can't get the Barrel Basic Clusters!";
249 validBarrelBCHandle =
false;
253 bool validEndcapBCHandle =
true;
255 if (!bcEndcapHandle.isValid()) {
256 edm::LogError(
"CoonversionTrackCandidateProducer") <<
"Error! Can't get the Endcap Basic Clusters";
257 validEndcapBCHandle =
false;
261 bool validBarrelSCHandle =
true;
263 if (!scBarrelHandle.isValid()) {
264 edm::LogError(
"CoonversionTrackCandidateProducer") <<
"Error! Can't get the barrel superclusters!";
265 validBarrelSCHandle =
false;
269 bool validEndcapSCHandle =
true;
271 if (!scEndcapHandle.isValid()) {
272 edm::LogError(
"CoonversionTrackCandidateProducer") <<
"Error! Can't get the endcap superclusters!";
273 validEndcapSCHandle =
false;
292 if (validBarrelBCHandle && validBarrelSCHandle)
299 *outInTrackCandidate_p,
300 *inOutTrackCandidate_p,
304 if (validEndcapBCHandle && validEndcapSCHandle) {
312 *outInTrackCandidate_p,
313 *inOutTrackCandidate_p,
References barrelecalCollection_, bcBarrelCollection_, bcEndcapCollection_, buildCollections(), caloPtrVecInOut_, caloPtrVecOutIn_, ConversionSeedFinder::clear(), endcapecalCollection_, edm::helper::Filler< Map >::fill(), edm::EventSetup::get(), edm::Event::get(), get, edm::Event::getHandle(), hcalHelper_, inOutSeedFinder_, InOutTrackCandidateCollection_, InOutTrackSCAssociationCollection_, edm::helper::Filler< Map >::insert(), PixelPluginsPhase0_cfi::isBarrel, measurementTrkEvtToken_, eostools::move(), outInSeedFinder_, OutInTrackCandidateCollection_, OutInTrackSCAssociationCollection_, edm::ESHandle< T >::product(), edm::Event::put(), scHybridBarrelProducer_, scIslandEndcapProducer_, ConversionSeedFinder::setEvent(), setEventSetup(), theCaloGeom_, and theTrajectoryBuilder_.
◆ setEventSetup()
void ConversionTrackCandidateProducer::setEventSetup |
( |
const edm::EventSetup & |
es | ) |
|
|
private |
◆ barrelecalCollection_
◆ bcBarrelCollection_
◆ bcEndcapCollection_
◆ caloPtrVecInOut_
◆ caloPtrVecOutIn_
◆ ecalIsoCut_offset_
double ConversionTrackCandidateProducer::ecalIsoCut_offset_ |
|
private |
◆ ecalIsoCut_slope_
double ConversionTrackCandidateProducer::ecalIsoCut_slope_ |
|
private |
◆ endcapecalCollection_
◆ flagsexclEB_
std::vector<int> ConversionTrackCandidateProducer::flagsexclEB_ |
|
private |
◆ flagsexclEE_
std::vector<int> ConversionTrackCandidateProducer::flagsexclEE_ |
|
private |
◆ hbheRecHits_
◆ hcalHelper_
◆ hOverEConeSize_
double ConversionTrackCandidateProducer::hOverEConeSize_ |
|
private |
◆ inOutSeedFinder_
◆ InOutTrackCandidateCollection_
std::string ConversionTrackCandidateProducer::InOutTrackCandidateCollection_ |
|
private |
◆ inOutTrackFinder_
◆ InOutTrackSCAssociationCollection_
std::string ConversionTrackCandidateProducer::InOutTrackSCAssociationCollection_ |
|
private |
◆ isoConeR_
double ConversionTrackCandidateProducer::isoConeR_ |
|
private |
◆ isoEMin_
double ConversionTrackCandidateProducer::isoEMin_ |
|
private |
◆ isoEtaSlice_
double ConversionTrackCandidateProducer::isoEtaSlice_ |
|
private |
◆ isoEtMin_
double ConversionTrackCandidateProducer::isoEtMin_ |
|
private |
◆ isoInnerConeR_
double ConversionTrackCandidateProducer::isoInnerConeR_ |
|
private |
◆ maxHOverE_
double ConversionTrackCandidateProducer::maxHOverE_ |
|
private |
◆ measurementTrkEvtToken_
◆ minSCEt_
double ConversionTrackCandidateProducer::minSCEt_ |
|
private |
◆ outInSeedFinder_
◆ OutInTrackCandidateCollection_
std::string ConversionTrackCandidateProducer::OutInTrackCandidateCollection_ |
|
private |
◆ outInTrackFinder_
◆ OutInTrackSCAssociationCollection_
std::string ConversionTrackCandidateProducer::OutInTrackSCAssociationCollection_ |
|
private |
◆ scHybridBarrelProducer_
◆ scIslandEndcapProducer_
◆ severitiesexclEB_
std::vector<int> ConversionTrackCandidateProducer::severitiesexclEB_ |
|
private |
◆ severitiesexclEE_
std::vector<int> ConversionTrackCandidateProducer::severitiesexclEE_ |
|
private |
◆ theCaloGeom_
◆ theTrajectoryBuilder_
◆ useNumXtals_
bool ConversionTrackCandidateProducer::useNumXtals_ |
|
private |
◆ vecOfSCRefForInOut
◆ vecOfSCRefForOutIn
◆ vetoClusteredHits_
bool ConversionTrackCandidateProducer::vetoClusteredHits_ |
|
private |
edm::EDGetTokenT< HBHERecHitCollection > hbheRecHits
OutInConversionSeedFinder outInSeedFinder_
T const * product() const
void setEventSetup(const edm::EventSetup &es)
Initialize EventSetup objects at each event.
std::vector< Trajectory > tracks(const TrajectorySeedCollection &seeds, TrackCandidateCollection &candidate) const override
void setTracks(std::vector< Trajectory > const &in)
edm::EDGetTokenT< edm::View< reco::CaloCluster > > scIslandEndcapProducer_
InOutConversionTrackFinder inOutTrackFinder_
std::vector< int > severitiesexclEB_
edm::EDGetTokenT< edm::View< reco::CaloCluster > > bcBarrelCollection_
std::unique_ptr< BaseCkfTrajectoryBuilder > theTrajectoryBuilder_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
InOutConversionSeedFinder inOutSeedFinder_
std::string OutInTrackSCAssociationCollection_
std::array< double, 4 > arrayHB
std::string OutInTrackCandidateCollection_
std::vector< int > severitiesexclEE_
edm::EDGetTokenT< EcalRecHitCollection > barrelecalCollection_
edm::EDGetTokenT< EcalRecHitCollection > endcapecalCollection_
std::vector< Trajectory > tracks(const TrajectorySeedCollection &seeds, TrackCandidateCollection &candidates) const override
std::vector< int > flagsexclEE_
std::unique_ptr< ElectronHcalHelper > hcalHelper_
void add(std::string const &label, ParameterSetDescription const &psetDescription)
config
parse the configuration file
std::vector< edm::Ptr< reco::CaloCluster > > caloPtrVecOutIn_
Global3DPoint GlobalPoint
void setEventSetup(const edm::EventSetup &es)
Initialize EventSetup objects at each event.
void setEventSetup(const edm::EventSetup &es)
Initialize EventSetup objects at each event.
std::string InOutTrackCandidateCollection_
std::vector< edm::Ptr< reco::CaloCluster > > caloPtrVecInOut_
void makeSeeds(const edm::Handle< edm::View< reco::CaloCluster > > &allBc) override
void setNavigationSchool(const NavigationSchool *navigation)
std::string InOutTrackSCAssociationCollection_
double ecalIsoCut_offset_
edm::EDGetTokenT< MeasurementTrackerEvent > measurementTrkEvtToken_
double eta() const
pseudorapidity of cluster centroid
OutInConversionTrackFinder outInTrackFinder_
TrajectorySeedCollection & seeds()
virtual void setCandidate(float e, GlobalPoint pos)
Log< level::Error, false > LogError
void makeSeeds(const edm::Handle< edm::View< reco::CaloCluster > > &allBc) override
const math::XYZPoint & position() const
cluster centroid position
void setEvent(const edm::Event &e)
EgammaHcalIsolation::arrayHB eThresHB
edm::EDGetTokenT< edm::View< reco::CaloCluster > > scHybridBarrelProducer_
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)
edm::EDGetTokenT< HBHERecHitCollection > hbheRecHits_
edm::ESHandle< CaloGeometry > theCaloGeom_
edm::EDGetTokenT< edm::View< reco::CaloCluster > > bcEndcapCollection_
double energy() const
cluster energy
EgammaHcalIsolation::arrayHE eThresHE
std::array< double, 7 > arrayHE
std::vector< int > flagsexclEB_