#include <GsfElectronBaseProducer.h>
Public Member Functions | |
GsfElectronBaseProducer (const edm::ParameterSet &) | |
virtual | ~GsfElectronBaseProducer () |
Static Public Member Functions | |
static void | fillDescription (edm::ParameterSetDescription &) |
Protected Member Functions | |
void | beginEvent (edm::Event &, const edm::EventSetup &) |
void | endEvent () |
void | fillEvent (edm::Event &) |
reco::GsfElectron * | newElectron () |
Protected Attributes | |
GsfElectronAlgo * | algo_ |
GsfElectronAlgo::CutsConfiguration | cutsCfg_ |
GsfElectronAlgo::CutsConfiguration | cutsCfgPflow_ |
ElectronHcalHelper::Configuration | hcalCfg_ |
ElectronHcalHelper::Configuration | hcalCfgPflow_ |
GsfElectronAlgo::InputTagsConfiguration | inputCfg_ |
GsfElectronAlgo::StrategyConfiguration | strategyCfg_ |
Private Member Functions | |
void | checkEcalSeedingParameters (edm::ParameterSetID const &) |
Private Attributes | |
bool | ecalSeedingParametersChecked_ |
Definition at line 26 of file GsfElectronBaseProducer.h.
GsfElectronBaseProducer::GsfElectronBaseProducer | ( | const edm::ParameterSet & | cfg | ) | [explicit] |
Definition at line 143 of file GsfElectronBaseProducer.cc.
References GsfElectronAlgo::StrategyConfiguration::addPflowElectrons, algo_, GsfElectronAlgo::StrategyConfiguration::ambClustersOverlapStrategy, GsfElectronAlgo::StrategyConfiguration::ambSortingStrategy, GsfElectronAlgo::StrategyConfiguration::applyAmbResolution, GsfElectronAlgo::StrategyConfiguration::applyEtaCorrection, GsfElectronAlgo::StrategyConfiguration::applyPreselection, GsfElectronAlgo::InputTagsConfiguration::beamSpotTag, GsfElectronAlgo::InputTagsConfiguration::ctfTracks, GsfElectronAlgo::StrategyConfiguration::ctfTracksCheck, cutsCfg_, cutsCfgPflow_, GsfElectronAlgo::IsolationConfiguration::eMinBarrel, GsfElectronAlgo::IsolationConfiguration::eMinEndcaps, GsfElectronAlgo::IsolationConfiguration::etMinBarrel, GsfElectronAlgo::IsolationConfiguration::etMinEndcaps, GsfElectronAlgo::IsolationConfiguration::etMinHcal, reco::get(), edm::ParameterSet::getParameter(), GsfElectronAlgo::InputTagsConfiguration::gsfElectronCores, GsfElectronAlgo::InputTagsConfiguration::gsfPfRecTracksTag, hcalCfg_, hcalCfgPflow_, ElectronHcalHelper::Configuration::hcalTowers, GsfElectronAlgo::InputTagsConfiguration::hcalTowersTag, ElectronHcalHelper::Configuration::hOverEConeSize, ElectronHcalHelper::Configuration::hOverEPtMin, inputCfg_, GsfElectronAlgo::IsolationConfiguration::intRadiusBarrelTk, GsfElectronAlgo::IsolationConfiguration::intRadiusEcalBarrel, GsfElectronAlgo::IsolationConfiguration::intRadiusEcalEndcaps, GsfElectronAlgo::IsolationConfiguration::intRadiusEndcapTk, GsfElectronAlgo::IsolationConfiguration::intRadiusHcal, GsfElectronAlgo::CutsConfiguration::isBarrel, GsfElectronAlgo::CutsConfiguration::isEndcaps, GsfElectronAlgo::CutsConfiguration::isFiducial, GsfElectronAlgo::IsolationConfiguration::jurassicWidth, GsfElectronAlgo::CutsConfiguration::maxDeltaEtaBarrel, GsfElectronAlgo::CutsConfiguration::maxDeltaEtaEndcaps, GsfElectronAlgo::CutsConfiguration::maxDeltaPhiBarrel, GsfElectronAlgo::CutsConfiguration::maxDeltaPhiEndcaps, GsfElectronAlgo::IsolationConfiguration::maxDrbTk, GsfElectronAlgo::CutsConfiguration::maxEOverPBarrel, GsfElectronAlgo::CutsConfiguration::maxEOverPEndcaps, GsfElectronAlgo::CutsConfiguration::maxFbremBarrel, GsfElectronAlgo::CutsConfiguration::maxFbremEndcaps, GsfElectronAlgo::CutsConfiguration::maxHBarrel, GsfElectronAlgo::CutsConfiguration::maxHEndcaps, GsfElectronAlgo::CutsConfiguration::maxHOverEBarrel, GsfElectronAlgo::CutsConfiguration::maxHOverEEndcaps, GsfElectronAlgo::CutsConfiguration::maxSigmaIetaIetaBarrel, GsfElectronAlgo::CutsConfiguration::maxSigmaIetaIetaEndcaps, GsfElectronAlgo::CutsConfiguration::maxTIP, GsfElectronAlgo::IsolationConfiguration::maxVtxDistTk, GsfElectronAlgo::CutsConfiguration::minEOverPBarrel, GsfElectronAlgo::CutsConfiguration::minEOverPEndcaps, GsfElectronAlgo::CutsConfiguration::minMVA, GsfElectronAlgo::CutsConfiguration::minSCEtBarrel, GsfElectronAlgo::CutsConfiguration::minSCEtEndcaps, GsfElectronAlgo::InputTagsConfiguration::pflowGsfElectronsTag, GsfElectronAlgo::InputTagsConfiguration::pfMVA, GsfElectronAlgo::InputTagsConfiguration::previousGsfElectrons, GsfElectronAlgo::IsolationConfiguration::ptMinTk, GsfElectronAlgo::InputTagsConfiguration::reducedBarrelRecHitCollection, GsfElectronAlgo::InputTagsConfiguration::reducedEndcapRecHitCollection, GsfElectronAlgo::CutsConfiguration::seedFromTEC, GsfElectronAlgo::InputTagsConfiguration::seedsTag, GsfElectronAlgo::SpikeConfiguration::severityLevelCut, strategyCfg_, GsfElectronAlgo::IsolationConfiguration::stripBarrelTk, GsfElectronAlgo::IsolationConfiguration::stripEndcapTk, funct::true, GsfElectronAlgo::StrategyConfiguration::useGsfPfRecTracks, GsfElectronAlgo::IsolationConfiguration::useNumCrystals, ElectronHcalHelper::Configuration::useTowers, and GsfElectronAlgo::IsolationConfiguration::vetoClustered.
: ecalSeedingParametersChecked_(false) { produces<GsfElectronCollection>(); inputCfg_.previousGsfElectrons = cfg.getParameter<edm::InputTag>("previousGsfElectronsTag"); inputCfg_.pflowGsfElectronsTag = cfg.getParameter<edm::InputTag>("pflowGsfElectronsTag"); inputCfg_.gsfElectronCores = cfg.getParameter<edm::InputTag>("gsfElectronCoresTag"); inputCfg_.hcalTowersTag = cfg.getParameter<edm::InputTag>("hcalTowers") ; //inputCfg_.tracks_ = cfg.getParameter<edm::InputTag>("tracks"); inputCfg_.reducedBarrelRecHitCollection = cfg.getParameter<edm::InputTag>("reducedBarrelRecHitCollectionTag") ; inputCfg_.reducedEndcapRecHitCollection = cfg.getParameter<edm::InputTag>("reducedEndcapRecHitCollectionTag") ; inputCfg_.pfMVA = cfg.getParameter<edm::InputTag>("pfMvaTag") ; inputCfg_.ctfTracks = cfg.getParameter<edm::InputTag>("ctfTracksTag"); inputCfg_.seedsTag = cfg.getParameter<edm::InputTag>("seedsTag"); // used to check config consistency with seeding inputCfg_.beamSpotTag = cfg.getParameter<edm::InputTag>("beamSpotTag") ; inputCfg_.gsfPfRecTracksTag = cfg.getParameter<edm::InputTag>("gsfPfRecTracksTag") ; strategyCfg_.useGsfPfRecTracks = cfg.getParameter<bool>("useGsfPfRecTracks") ; strategyCfg_.applyPreselection = cfg.getParameter<bool>("applyPreselection") ; strategyCfg_.applyEtaCorrection = cfg.getParameter<bool>("applyEtaCorrection") ; strategyCfg_.applyAmbResolution = cfg.getParameter<bool>("applyAmbResolution") ; strategyCfg_.ambSortingStrategy = cfg.getParameter<unsigned>("ambSortingStrategy") ; strategyCfg_.ambClustersOverlapStrategy = cfg.getParameter<unsigned>("ambClustersOverlapStrategy") ; strategyCfg_.addPflowElectrons = cfg.getParameter<bool>("addPflowElectrons") ; strategyCfg_.ctfTracksCheck = cfg.getParameter<bool>("ctfTracksCheck"); cutsCfg_.minSCEtBarrel = cfg.getParameter<double>("minSCEtBarrel") ; cutsCfg_.minSCEtEndcaps = cfg.getParameter<double>("minSCEtEndcaps") ; cutsCfg_.maxEOverPBarrel = cfg.getParameter<double>("maxEOverPBarrel") ; cutsCfg_.maxEOverPEndcaps = cfg.getParameter<double>("maxEOverPEndcaps") ; cutsCfg_.minEOverPBarrel = cfg.getParameter<double>("minEOverPBarrel") ; cutsCfg_.minEOverPEndcaps = cfg.getParameter<double>("minEOverPEndcaps") ; // H/E cutsCfg_.maxHOverEBarrel = cfg.getParameter<double>("maxHOverEBarrel") ; cutsCfg_.maxHOverEEndcaps = cfg.getParameter<double>("maxHOverEEndcaps") ; cutsCfg_.maxHBarrel = cfg.getParameter<double>("maxHBarrel") ; cutsCfg_.maxHEndcaps = cfg.getParameter<double>("maxHEndcaps") ; cutsCfg_.maxDeltaEtaBarrel = cfg.getParameter<double>("maxDeltaEtaBarrel") ; cutsCfg_.maxDeltaEtaEndcaps = cfg.getParameter<double>("maxDeltaEtaEndcaps") ; cutsCfg_.maxDeltaPhiBarrel = cfg.getParameter<double>("maxDeltaPhiBarrel") ; cutsCfg_.maxDeltaPhiEndcaps = cfg.getParameter<double>("maxDeltaPhiEndcaps") ; cutsCfg_.maxDeltaPhiBarrel = cfg.getParameter<double>("maxDeltaPhiBarrel") ; cutsCfg_.maxDeltaPhiEndcaps = cfg.getParameter<double>("maxDeltaPhiEndcaps") ; cutsCfg_.maxDeltaPhiBarrel = cfg.getParameter<double>("maxDeltaPhiBarrel") ; cutsCfg_.maxDeltaPhiEndcaps = cfg.getParameter<double>("maxDeltaPhiEndcaps") ; cutsCfg_.maxSigmaIetaIetaBarrel = cfg.getParameter<double>("maxSigmaIetaIetaBarrel") ; cutsCfg_.maxSigmaIetaIetaEndcaps = cfg.getParameter<double>("maxSigmaIetaIetaEndcaps") ; cutsCfg_.maxFbremBarrel = cfg.getParameter<double>("maxFbremBarrel") ; cutsCfg_.maxFbremEndcaps = cfg.getParameter<double>("maxFbremEndcaps") ; cutsCfg_.isBarrel = cfg.getParameter<bool>("isBarrel") ; cutsCfg_.isEndcaps = cfg.getParameter<bool>("isEndcaps") ; cutsCfg_.isFiducial = cfg.getParameter<bool>("isFiducial") ; cutsCfg_.minMVA = cfg.getParameter<double>("minMVA") ; cutsCfg_.maxTIP = cfg.getParameter<double>("maxTIP") ; cutsCfg_.seedFromTEC = cfg.getParameter<bool>("seedFromTEC") ; cutsCfgPflow_.minSCEtBarrel = cfg.getParameter<double>("minSCEtBarrelPflow") ; cutsCfgPflow_.minSCEtEndcaps = cfg.getParameter<double>("minSCEtEndcapsPflow") ; cutsCfgPflow_.maxEOverPBarrel = cfg.getParameter<double>("maxEOverPBarrelPflow") ; cutsCfgPflow_.maxEOverPEndcaps = cfg.getParameter<double>("maxEOverPEndcapsPflow") ; cutsCfgPflow_.minEOverPBarrel = cfg.getParameter<double>("minEOverPBarrelPflow") ; cutsCfgPflow_.minEOverPEndcaps = cfg.getParameter<double>("minEOverPEndcapsPflow") ; // H/E cutsCfgPflow_.maxHOverEBarrel = cfg.getParameter<double>("maxHOverEBarrelPflow") ; cutsCfgPflow_.maxHOverEEndcaps = cfg.getParameter<double>("maxHOverEEndcapsPflow") ; cutsCfgPflow_.maxHBarrel = cfg.getParameter<double>("maxHBarrelPflow") ; cutsCfgPflow_.maxHEndcaps = cfg.getParameter<double>("maxHEndcapsPflow") ; cutsCfgPflow_.maxDeltaEtaBarrel = cfg.getParameter<double>("maxDeltaEtaBarrelPflow") ; cutsCfgPflow_.maxDeltaEtaEndcaps = cfg.getParameter<double>("maxDeltaEtaEndcapsPflow") ; cutsCfgPflow_.maxDeltaPhiBarrel = cfg.getParameter<double>("maxDeltaPhiBarrelPflow") ; cutsCfgPflow_.maxDeltaPhiEndcaps = cfg.getParameter<double>("maxDeltaPhiEndcapsPflow") ; cutsCfgPflow_.maxDeltaPhiBarrel = cfg.getParameter<double>("maxDeltaPhiBarrelPflow") ; cutsCfgPflow_.maxDeltaPhiEndcaps = cfg.getParameter<double>("maxDeltaPhiEndcapsPflow") ; cutsCfgPflow_.maxDeltaPhiBarrel = cfg.getParameter<double>("maxDeltaPhiBarrelPflow") ; cutsCfgPflow_.maxDeltaPhiEndcaps = cfg.getParameter<double>("maxDeltaPhiEndcapsPflow") ; cutsCfgPflow_.maxSigmaIetaIetaBarrel = cfg.getParameter<double>("maxSigmaIetaIetaBarrelPflow") ; cutsCfgPflow_.maxSigmaIetaIetaEndcaps = cfg.getParameter<double>("maxSigmaIetaIetaEndcapsPflow") ; cutsCfgPflow_.maxFbremBarrel = cfg.getParameter<double>("maxFbremBarrelPflow") ; cutsCfgPflow_.maxFbremEndcaps = cfg.getParameter<double>("maxFbremEndcapsPflow") ; cutsCfgPflow_.isBarrel = cfg.getParameter<bool>("isBarrelPflow") ; cutsCfgPflow_.isEndcaps = cfg.getParameter<bool>("isEndcapsPflow") ; cutsCfgPflow_.isFiducial = cfg.getParameter<bool>("isFiducialPflow") ; cutsCfgPflow_.minMVA = cfg.getParameter<double>("minMVAPflow") ; cutsCfgPflow_.maxTIP = cfg.getParameter<double>("maxTIPPflow") ; cutsCfgPflow_.seedFromTEC = true ; // not applied for pflow // hcal helpers hcalCfg_.hOverEConeSize = cfg.getParameter<double>("hOverEConeSize") ; if (hcalCfg_.hOverEConeSize>0) { hcalCfg_.useTowers = true ; hcalCfg_.hcalTowers = cfg.getParameter<edm::InputTag>("hcalTowers") ; hcalCfg_.hOverEPtMin = cfg.getParameter<double>("hOverEPtMin") ; } hcalCfgPflow_.hOverEConeSize = cfg.getParameter<double>("hOverEConeSizePflow") ; if (hcalCfgPflow_.hOverEConeSize>0) { hcalCfgPflow_.useTowers = true ; hcalCfgPflow_.hcalTowers = cfg.getParameter<edm::InputTag>("hcalTowers") ; hcalCfgPflow_.hOverEPtMin = cfg.getParameter<double>("hOverEPtMinPflow") ; } // isolation GsfElectronAlgo::IsolationConfiguration isoCfg ; isoCfg.intRadiusBarrelTk = cfg.getParameter<double>("intRadiusBarrelTk") ; isoCfg.intRadiusEndcapTk = cfg.getParameter<double>("intRadiusEndcapTk") ; isoCfg.stripBarrelTk = cfg.getParameter<double>("stripBarrelTk") ; isoCfg.stripEndcapTk = cfg.getParameter<double>("stripEndcapTk") ; isoCfg.ptMinTk = cfg.getParameter<double>("ptMinTk") ; isoCfg.maxVtxDistTk = cfg.getParameter<double>("maxVtxDistTk") ; isoCfg.maxDrbTk = cfg.getParameter<double>("maxDrbTk") ; isoCfg.intRadiusHcal = cfg.getParameter<double>("intRadiusHcal") ; isoCfg.etMinHcal = cfg.getParameter<double>("etMinHcal") ; isoCfg.intRadiusEcalBarrel = cfg.getParameter<double>("intRadiusEcalBarrel") ; isoCfg.intRadiusEcalEndcaps = cfg.getParameter<double>("intRadiusEcalEndcaps") ; isoCfg.jurassicWidth = cfg.getParameter<double>("jurassicWidth") ; isoCfg.etMinBarrel = cfg.getParameter<double>("etMinBarrel") ; isoCfg.eMinBarrel = cfg.getParameter<double>("eMinBarrel") ; isoCfg.etMinEndcaps = cfg.getParameter<double>("etMinEndcaps") ; isoCfg.eMinEndcaps = cfg.getParameter<double>("eMinEndcaps") ; isoCfg.vetoClustered = cfg.getParameter<bool>("vetoClustered") ; isoCfg.useNumCrystals = cfg.getParameter<bool>("useNumCrystals") ; // spike removal configuration GsfElectronAlgo::SpikeConfiguration spikeCfg ; spikeCfg.severityLevelCut = cfg.getParameter<int>("severityLevelCut") ; // spikeCfg.severityRecHitThreshold = cfg.getParameter<double>("severityRecHitThreshold") ; // spikeCfg.spikeIdThreshold = cfg.getParameter<double>("spikeIdThreshold") ; // std::string spikeIdString = cfg.getParameter<std::string>("spikeIdString") ; // if (!spikeIdString.compare("kE1OverE9")) spikeCfg.spikeId = EcalSeverityLevelAlgo::kE1OverE9 ; // else if(!spikeIdString.compare("kSwissCross")) spikeCfg.spikeId = EcalSeverityLevelAlgo::kSwissCross ; // else if(!spikeIdString.compare("kSwissCrossBordersIncluded")) spikeCfg.spikeId = EcalSeverityLevelAlgo::kSwissCrossBordersIncluded ; // else // { // spikeCfg.spikeId = EcalSeverityLevelAlgo::kSwissCrossBordersIncluded ; // edm::LogWarning("GsfElectronAlgo|SpikeRemovalForIsolation") // << "Cannot find the requested method. kSwissCross set instead." ; // } spikeCfg.recHitFlagsToBeExcluded = cfg.getParameter<std::vector<int> >("recHitFlagsToBeExcluded") ; // function for corrector EcalClusterFunctionBaseClass * superClusterErrorFunction = 0 ; std::string superClusterErrorFunctionName = cfg.getParameter<std::string>("superClusterErrorFunction") ; if (superClusterErrorFunctionName!="") { superClusterErrorFunction = EcalClusterFunctionFactory::get()->create(superClusterErrorFunctionName,cfg) ; } // create algo algo_ = new GsfElectronAlgo ( inputCfg_, strategyCfg_, cutsCfg_,cutsCfgPflow_, hcalCfg_,hcalCfgPflow_, isoCfg,spikeCfg, superClusterErrorFunction ) ; }
GsfElectronBaseProducer::~GsfElectronBaseProducer | ( | ) | [virtual] |
void GsfElectronBaseProducer::beginEvent | ( | edm::Event & | event, |
const edm::EventSetup & | setup | ||
) | [protected] |
Reimplemented in GsfElectronProducer.
Definition at line 310 of file GsfElectronBaseProducer.cc.
References algo_, GsfElectronAlgo::beginEvent(), checkEcalSeedingParameters(), GsfElectronAlgo::checkSetup(), ecalSeedingParametersChecked_, inputCfg_, edm::HandleBase::isValid(), edm::HandleBase::provenance(), GsfElectronAlgo::InputTagsConfiguration::seedsTag, and funct::true.
Referenced by GsfElectronEcalDrivenProducer::produce().
{ // check configuration if (!ecalSeedingParametersChecked_) { ecalSeedingParametersChecked_ = true ; edm::Handle<reco::ElectronSeedCollection> seeds ; event.getByLabel(inputCfg_.seedsTag,seeds) ; if (!seeds.isValid()) { edm::LogWarning("GsfElectronAlgo|UnreachableSeedsProvenance") <<"Cannot check consistency of parameters with ecal seeding ones," <<" because the original collection of seeds is not any more available." ; } else { checkEcalSeedingParameters(seeds.provenance()->psetID()) ; } } // init the algo algo_->checkSetup(setup) ; algo_->beginEvent(event) ; }
void GsfElectronBaseProducer::checkEcalSeedingParameters | ( | edm::ParameterSetID const & | psetid | ) | [private] |
Definition at line 366 of file GsfElectronBaseProducer.cc.
References cutsCfg_, edm::ParameterSet::getParameter(), hcalCfg_, ElectronHcalHelper::Configuration::hOverEConeSize, edm::detail::ThreadSafeRegistry< KEY, T, E >::instance(), GsfElectronAlgo::CutsConfiguration::maxHOverEBarrel, GsfElectronAlgo::CutsConfiguration::maxHOverEEndcaps, GsfElectronAlgo::CutsConfiguration::minSCEtBarrel, GsfElectronAlgo::CutsConfiguration::minSCEtEndcaps, and MultipleCompare::pset.
Referenced by beginEvent().
{ edm::ParameterSet pset ; edm::pset::Registry::instance()->getMapped(psetid,pset) ; edm::ParameterSet seedConfiguration = pset.getParameter<edm::ParameterSet>("SeedConfiguration") ; //edm::ParameterSet orderedHitsFactoryPSet = seedConfiguration.getParameter<edm::ParameterSet>("OrderedHitsFactoryPSet") ; //edm::ParameterSet seedParameters = seedConfiguration.getParameter<edm::ParameterSet>("ecalDrivenElectronSeedsParameters") ; if (seedConfiguration.getParameter<bool>("applyHOverECut")) { if ((hcalCfg_.hOverEConeSize!=0)&&(hcalCfg_.hOverEConeSize!=seedConfiguration.getParameter<double>("hOverEConeSize"))) { edm::LogWarning("GsfElectronAlgo|InconsistentParameters") <<"The H/E cone size ("<<hcalCfg_.hOverEConeSize<<") is different from ecal seeding ("<<seedConfiguration.getParameter<double>("hOverEConeSize")<<")." ; } if (cutsCfg_.maxHOverEBarrel<seedConfiguration.getParameter<double>("maxHOverEBarrel")) { edm::LogWarning("GsfElectronAlgo|InconsistentParameters") <<"The max barrel H/E is lower than during ecal seeding." ; } if (cutsCfg_.maxHOverEEndcaps<seedConfiguration.getParameter<double>("maxHOverEEndcaps")) { edm::LogWarning("GsfElectronAlgo|InconsistentParameters") <<"The max endcaps H/E is lower than during ecal seeding." ; } } if (cutsCfg_.minSCEtBarrel<seedConfiguration.getParameter<double>("SCEtCut")) { edm::LogWarning("GsfElectronAlgo|InconsistentParameters") <<"The minimum super-cluster Et in barrel is lower than during ecal seeding." ; } if (cutsCfg_.minSCEtEndcaps<seedConfiguration.getParameter<double>("SCEtCut")) { edm::LogWarning("GsfElectronAlgo|InconsistentParameters") <<"The minimum super-cluster Et in endcaps is lower than during ecal seeding." ; } }
void GsfElectronBaseProducer::endEvent | ( | ) | [protected] |
Definition at line 361 of file GsfElectronBaseProducer.cc.
References algo_, and GsfElectronAlgo::endEvent().
Referenced by GsfElectronEcalDrivenProducer::produce(), and GsfElectronProducer::produce().
void GsfElectronBaseProducer::fillDescription | ( | edm::ParameterSetDescription & | desc | ) | [static] |
Definition at line 27 of file GsfElectronBaseProducer.cc.
References edm::ParameterSetDescription::add().
{ // input collections desc.add<edm::InputTag>("previousGsfElectronsTag",edm::InputTag("ecalDrivenGsfElectrons")) ; desc.add<edm::InputTag>("pflowGsfElectronsTag",edm::InputTag("pflowGsfElectrons")) ; desc.add<edm::InputTag>("gsfElectronCoresTag",edm::InputTag("gsfElectronCores")) ; desc.add<edm::InputTag>("hcalTowers",edm::InputTag("towerMaker")) ; desc.add<edm::InputTag>("reducedBarrelRecHitCollectionTag",edm::InputTag("ecalRecHit","EcalRecHitsEB")) ; desc.add<edm::InputTag>("reducedEndcapRecHitCollectionTag",edm::InputTag("ecalRecHit","EcalRecHitsEE")) ; //desc.add<edm::InputTag>("pfMvaTag",edm::InputTag("pfElectronTranslator:pf")) ; desc.add<edm::InputTag>("seedsTag",edm::InputTag("ecalDrivenElectronSeeds")) ; desc.add<edm::InputTag>("beamSpotTag",edm::InputTag("offlineBeamSpot")) ; desc.add<edm::InputTag>("gsfPfRecTracksTag",edm::InputTag("pfTrackElec")) ; // backward compatibility mechanism for ctf tracks desc.add<bool>("ctfTracksCheck",true) ; desc.add<edm::InputTag>("ctfTracksTag",edm::InputTag("generalTracks")) ; // steering desc.add<bool>("useGsfPfRecTracks",true) ; desc.add<bool>("applyPreselection",false) ; desc.add<bool>("applyEtaCorrection",false) ; desc.add<bool>("applyAmbResolution",false) ; desc.add<unsigned>("ambSortingStrategy",1) ; desc.add<unsigned>("ambClustersOverlapStrategy",1) ; //desc.add<bool>("addPflowElectrons",true) ; // // preselection parameters (ecal driven electrons) // desc.add<bool>("seedFromTEC",true) ; // desc.add<double>("minSCEtBarrel",4.0) ; // desc.add<double>("minSCEtEndcaps",4.0) ; // desc.add<double>("minEOverPBarrel",0.0) ; // desc.add<double>("maxEOverPBarrel",999999999.) ; // desc.add<double>("minEOverPEndcaps",0.0) ; // desc.add<double>("maxEOverPEndcaps",999999999.) ; // desc.add<double>("maxDeltaEtaBarrel",0.02) ; // desc.add<double>("maxDeltaEtaEndcaps",0.02) ; // desc.add<double>("maxDeltaPhiBarrel",0.15) ; // desc.add<double>("maxDeltaPhiEndcaps",0.15) ; // desc.add<double>("hOverEConeSize",0.15) ; // desc.add<double>("hOverEPtMin",0.) ; // desc.add<double>("maxHOverEBarrel",0.15) ; // desc.add<double>("maxHOverEEndcaps",0.15) ; // desc.add<double>("maxHBarrel",0.0) ; // desc.add<double>("maxHEndcaps",0.0) ; // desc.add<double>("maxSigmaIetaIetaBarrel",999999999.) ; // desc.add<double>("maxSigmaIetaIetaEndcaps",999999999.) ; // desc.add<double>("maxFbremBarrel",999999999.) ; // desc.add<double>("maxFbremEndcaps",999999999.) ; // desc.add<bool>("isBarrel",false) ; // desc.add<bool>("isEndcaps",false) ; // desc.add<bool>("isFiducial",false) ; // desc.add<double>("maxTIP",999999999.) ; // desc.add<double>("minMVA",-0.4) ; // // // preselection parameters (tracker driven only electrons) // desc.add<double>("minSCEtBarrelPflow",0.0) ; // desc.add<double>("minSCEtEndcapsPflow",0.0) ; // desc.add<double>("minEOverPBarrelPflow",0.0) ; // desc.add<double>("maxEOverPBarrelPflow",999999999.) ; // desc.add<double>("minEOverPEndcapsPflow",0.0) ; // desc.add<double>("maxEOverPEndcapsPflow",999999999.) ; // desc.add<double>("maxDeltaEtaBarrelPflow",999999999.) ; // desc.add<double>("maxDeltaEtaEndcapsPflow",999999999.) ; // desc.add<double>("maxDeltaPhiBarrelPflow",999999999.) ; // desc.add<double>("maxDeltaPhiEndcapsPflow",999999999.) ; // desc.add<double>("hOverEConeSizePflow",0.15) ; // desc.add<double>("hOverEPtMinPflow",0.) ; // desc.add<double>("maxHOverEBarrelPflow",999999999.) ; // desc.add<double>("maxHOverEEndcapsPflow",999999999.) ; // desc.add<double>("maxHBarrelPflow",0.0) ; // desc.add<double>("maxHEndcapsPflow",0.0) ; // desc.add<double>("maxSigmaIetaIetaBarrelPflow",999999999.) ; // desc.add<double>("maxSigmaIetaIetaEndcapsPflow",999999999.) ; // desc.add<double>("maxFbremBarrelPflow",999999999.) ; // desc.add<double>("maxFbremEndcapsPflow",999999999.) ; // desc.add<bool>("isBarrelPflow",false) ; // desc.add<bool>("isEndcapsPflow",false) ; // desc.add<bool>("isFiducialPflow",false) ; // desc.add<double>("maxTIPPflow",999999999.) ; // desc.add<double>("minMVAPflow",-0.4) ; // Isolation algos configuration desc.add<double>("intRadiusBarrelTk",0.015) ; desc.add<double>("intRadiusEndcapTk",0.015) ; desc.add<double>("stripBarrelTk",0.015) ; desc.add<double>("stripEndcapTk",0.015) ; desc.add<double>("ptMinTk",0.7) ; desc.add<double>("maxVtxDistTk",0.2) ; desc.add<double>("maxDrbTk",999999999.) ; desc.add<double>("intRadiusHcal",0.15) ; desc.add<double>("etMinHcal",0.0) ; desc.add<double>("intRadiusEcalBarrel",3.0) ; desc.add<double>("intRadiusEcalEndcaps",3.0) ; desc.add<double>("jurassicWidth",1.5) ; desc.add<double>("etMinBarrel",0.0) ; desc.add<double>("eMinBarrel",0.08) ; desc.add<double>("etMinEndcaps",0.1) ; desc.add<double>("eMinEndcaps",0.0) ; desc.add<bool>("vetoClustered",false) ; desc.add<bool>("useNumCrystals",true) ; desc.add<int>("severityLevelCut",4) ; //desc.add<double>("severityRecHitThreshold",5.0) ; //desc.add<double>("spikeIdThreshold",0.95) ; //desc.add<std::string>("spikeIdString","kSwissCrossBordersIncluded") ; desc.add<std::vector<int> >("recHitFlagsToBeExcluded") ; edm::ParameterSetDescription descNested ; descNested.add<std::string>("propagatorAlongTISE","PropagatorWithMaterial") ; descNested.add<std::string>("propagatorOppositeTISE","PropagatorWithMaterialOpposite") ; desc.add<edm::ParameterSetDescription>("TransientInitialStateEstimatorParameters",descNested) ; // Corrections desc.add<std::string>("superClusterErrorFunction","EcalClusterEnergyUncertainty") ; }
void GsfElectronBaseProducer::fillEvent | ( | edm::Event & | event | ) | [protected] |
Definition at line 335 of file GsfElectronBaseProducer.cc.
References algo_, GsfElectronAlgo::StrategyConfiguration::applyAmbResolution, GsfElectronAlgo::StrategyConfiguration::applyPreselection, GsfElectronAlgo::copyElectrons(), GsfElectronAlgo::displayInternalElectrons(), GsfElectronAlgo::removeAmbiguousElectrons(), GsfElectronAlgo::removeNotPreselectedElectrons(), GsfElectronAlgo::setAmbiguityData(), and strategyCfg_.
Referenced by GsfElectronEcalDrivenProducer::produce(), and GsfElectronProducer::produce().
{ // all electrons algo_->displayInternalElectrons("GsfElectronAlgo Info (before preselection)") ; // preselection if (strategyCfg_.applyPreselection) { algo_->removeNotPreselectedElectrons() ; algo_->displayInternalElectrons("GsfElectronAlgo Info (after preselection)") ; } // ambiguity algo_->setAmbiguityData() ; if (strategyCfg_.applyAmbResolution) { algo_->removeAmbiguousElectrons() ; algo_->displayInternalElectrons("GsfElectronAlgo Info (after amb. solving)") ; } // final filling std::auto_ptr<GsfElectronCollection> finalCollection( new GsfElectronCollection ) ; algo_->copyElectrons(*finalCollection) ; event.put(finalCollection) ; }
reco::GsfElectron* GsfElectronBaseProducer::newElectron | ( | ) | [inline, protected] |
Definition at line 43 of file GsfElectronBaseProducer.h.
{ return 0 ; }
GsfElectronAlgo* GsfElectronBaseProducer::algo_ [protected] |
Definition at line 38 of file GsfElectronBaseProducer.h.
Referenced by beginEvent(), endEvent(), fillEvent(), GsfElectronBaseProducer(), GsfElectronEcalDrivenProducer::produce(), GsfElectronProducer::produce(), and ~GsfElectronBaseProducer().
Definition at line 48 of file GsfElectronBaseProducer.h.
Referenced by checkEcalSeedingParameters(), GsfElectronProducer::checkPfTranslatorParameters(), and GsfElectronBaseProducer().
Definition at line 49 of file GsfElectronBaseProducer.h.
Referenced by GsfElectronProducer::checkPfTranslatorParameters(), and GsfElectronBaseProducer().
bool GsfElectronBaseProducer::ecalSeedingParametersChecked_ [private] |
Definition at line 56 of file GsfElectronBaseProducer.h.
Referenced by beginEvent().
Definition at line 50 of file GsfElectronBaseProducer.h.
Referenced by checkEcalSeedingParameters(), and GsfElectronBaseProducer().
Definition at line 51 of file GsfElectronBaseProducer.h.
Referenced by GsfElectronBaseProducer().
Definition at line 46 of file GsfElectronBaseProducer.h.
Referenced by GsfElectronProducer::beginEvent(), beginEvent(), and GsfElectronBaseProducer().
Definition at line 47 of file GsfElectronBaseProducer.h.
Referenced by GsfElectronProducer::checkPfTranslatorParameters(), fillEvent(), GsfElectronBaseProducer(), and GsfElectronProducer::produce().