46 desc.
add<
bool>(
"ctfTracksCheck",
true) ;
49 desc.
add<
bool>(
"gedElectronMode",
true) ;
50 desc.
add<
double>(
"PreSelectMVA",-0.1) ;
51 desc.
add<
double>(
"MaxElePtForOnlyMVA",50.0) ;
54 desc.
add<
bool>(
"useGsfPfRecTracks",
true) ;
55 desc.
add<
bool>(
"applyPreselection",
false) ;
56 desc.
add<
bool>(
"ecalDrivenEcalEnergyFromClassBasedParameterization",
false) ;
57 desc.
add<
bool>(
"ecalDrivenEcalErrorFromClassBasedParameterization",
false) ;
58 desc.
add<
bool>(
"pureTrackerDrivenEcalErrorFromSimpleParameterization",
false) ;
59 desc.
add<
bool>(
"applyAmbResolution",
false) ;
60 desc.
add<
unsigned>(
"ambSortingStrategy",1) ;
61 desc.
add<
unsigned>(
"ambClustersOverlapStrategy",1) ;
120 desc.
add<std::vector<int> >(
"recHitFlagsToBeExcludedBarrel") ;
121 desc.
add<std::vector<int> >(
"recHitFlagsToBeExcludedEndcaps") ;
122 desc.
add<std::vector<int> >(
"recHitSeverityToBeExcludedBarrel") ;
123 desc.
add<std::vector<int> >(
"recHitSeverityToBeExcludedEndcaps") ;
129 desc.
add<
double>(
"intRadiusHcal",0.15) ;
130 desc.
add<
double>(
"etMinHcal",0.0) ;
131 desc.
add<
double>(
"intRadiusEcalBarrel",3.0) ;
132 desc.
add<
double>(
"intRadiusEcalEndcaps",3.0) ;
133 desc.
add<
double>(
"jurassicWidth",1.5) ;
134 desc.
add<
double>(
"etMinBarrel",0.0) ;
135 desc.
add<
double>(
"eMinBarrel",0.08) ;
136 desc.
add<
double>(
"etMinEndcaps",0.1) ;
137 desc.
add<
double>(
"eMinEndcaps",0.0) ;
138 desc.
add<
bool>(
"vetoClustered",
false) ;
139 desc.
add<
bool>(
"useNumCrystals",
true) ;
142 descNested.
add<
std::string>(
"propagatorAlongTISE",
"PropagatorWithMaterial") ;
143 descNested.add<
std::string>(
"propagatorOppositeTISE",
"PropagatorWithMaterialOpposite") ;
147 desc.
add<
std::string>(
"superClusterErrorFunction",
"EcalClusterEnergyUncertaintyObjectSpecific") ;
148 desc.
add<
std::string>(
"crackCorrectionFunction",
"EcalClusterCrackCorrection") ;
152 : ecalSeedingParametersChecked_(
false)
154 produces<GsfElectronCollection>();
171 if ( useIsolationValues ) {
172 if( ! cfg.
exists(
"pfIsolationValues") ) {
174 <<
"Missing ParameterSet pfIsolationValues" ;
178 std::vector<std::string> isoNames =
183 mayConsume<edm::ValueMap<double> >(
tag);
187 if ( ! cfg.
exists(
"edIsolationValues") ) {
189 <<
"Missing ParameterSet edIsolationValues" ;
193 std::vector<std::string> isoNames =
198 mayConsume<edm::ValueMap<double> >(
tag);
303 const std::vector<std::string> flagnamesbarrel = cfg.
getParameter<std::vector<std::string> >(
"recHitFlagsToBeExcludedBarrel");
304 recHitsCfg.recHitFlagsToBeExcludedBarrel = StringToEnumValue<EcalRecHit::Flags>(flagnamesbarrel);
305 const std::vector<std::string> flagnamesendcaps = cfg.
getParameter<std::vector<std::string> >(
"recHitFlagsToBeExcludedEndcaps");
306 recHitsCfg.recHitFlagsToBeExcludedEndcaps = StringToEnumValue<EcalRecHit::Flags>(flagnamesendcaps);
307 const std::vector<std::string> severitynamesbarrel = cfg.
getParameter<std::vector<std::string> >(
"recHitSeverityToBeExcludedBarrel");
308 recHitsCfg.recHitSeverityToBeExcludedBarrel = StringToEnumValue<EcalSeverityLevel::SeverityLevel>(severitynamesbarrel);
309 const std::vector<std::string> severitynamesendcaps = cfg.
getParameter<std::vector<std::string> >(
"recHitSeverityToBeExcludedEndcaps");
310 recHitsCfg.recHitSeverityToBeExcludedEndcaps = StringToEnumValue<EcalSeverityLevel::SeverityLevel>(severitynamesendcaps);
316 isoCfg.etMinHcal = cfg.
getParameter<
double>(
"etMinHcal") ;
317 isoCfg.intRadiusEcalBarrel = cfg.
getParameter<
double>(
"intRadiusEcalBarrel") ;
318 isoCfg.intRadiusEcalEndcaps = cfg.
getParameter<
double>(
"intRadiusEcalEndcaps") ;
319 isoCfg.jurassicWidth = cfg.
getParameter<
double>(
"jurassicWidth") ;
320 isoCfg.etMinBarrel = cfg.
getParameter<
double>(
"etMinBarrel") ;
321 isoCfg.eMinBarrel = cfg.
getParameter<
double>(
"eMinBarrel") ;
322 isoCfg.etMinEndcaps = cfg.
getParameter<
double>(
"etMinEndcaps") ;
323 isoCfg.eMinEndcaps = cfg.
getParameter<
double>(
"eMinEndcaps") ;
324 isoCfg.vetoClustered = cfg.
getParameter<
bool>(
"vetoClustered") ;
325 isoCfg.useNumCrystals = cfg.
getParameter<
bool>(
"useNumCrystals") ;
330 regressionCfg.combinationRegressionWeightLabels = cfg.
getParameter<std::vector<std::string> >(
"combinationRegressionWeightLabels");
331 regressionCfg.ecalRegressionWeightFiles = cfg.
getParameter<std::vector<std::string> >(
"ecalRefinedRegressionWeightFiles");
332 regressionCfg.combinationRegressionWeightFiles = cfg.
getParameter<std::vector<std::string> >(
"combinationRegressionWeightFile");
333 regressionCfg.ecalWeightsFromDB = cfg.
getParameter<
bool>(
"ecalWeightsFromDB");
334 regressionCfg.combinationWeightsFromDB = cfg.
getParameter<
bool>(
"combinationWeightsFromDB");
339 if (!superClusterErrorFunctionName.empty())
341 superClusterErrorFunction
346 superClusterErrorFunction
352 if (!crackCorrectionFunctionName.empty())
354 crackCorrectionFunction
367 superClusterErrorFunction,
368 crackCorrectionFunction,
394 <<
"Cannot check consistency of parameters with ecal seeding ones," 395 <<
" because the original collection of seeds is not any more available." ;
426 auto finalCollection = std::make_unique<GsfElectronCollection>();
442 if (seedConfiguration.
getParameter<
bool>(
"applyHOverECut"))
447 {
edm::LogWarning(
"GsfElectronAlgo|InconsistentParameters") <<
"The max barrel H/E is lower than during ecal seeding." ; }
449 {
edm::LogWarning(
"GsfElectronAlgo|InconsistentParameters") <<
"The max endcaps H/E is lower than during ecal seeding." ; }
453 {
edm::LogWarning(
"GsfElectronAlgo|InconsistentParameters") <<
"The minimum super-cluster Et in barrel is lower than during ecal seeding." ; }
455 {
edm::LogWarning(
"GsfElectronAlgo|InconsistentParameters") <<
"The minimum super-cluster Et in endcaps is lower than during ecal seeding." ; }
T getParameter(std::string const &) const
void fillEvent(edm::Event &)
ElectronMVAEstimator::Configuration mva_Iso_Cfg_
unsigned ambClustersOverlapStrategy
std::vector< std::string > ecalRegressionWeightLabels
void checkEcalSeedingParameters(edm::ParameterSet const &)
static void fillDescription(edm::ParameterSetDescription &)
bool ecalDrivenEcalErrorFromClassBasedParameterization
unsigned ambSortingStrategy
void beginEvent(edm::Event &)
bool useCombinationRegression
double maxSigmaIetaIetaEndcaps
double minMvaByPassForIsolated
bool exists(std::string const ¶meterName) const
checks if a parameter exists
def setup(process, global_tag, zero_tesla=False)
double maxDeltaEtaEndcaps
std::vector< std::string > vweightsfiles
std::vector< std::string > getParameterNamesForType(bool trackiness=true) const
GsfElectronAlgo::InputTagsConfiguration inputCfg_
SoftElectronMVAEstimator::Configuration mva_NIso_Cfg_
GsfElectronAlgo::CutsConfiguration cutsCfg_
bool pureTrackerDrivenEcalErrorFromSimpleParameterization
static edm::ParameterSetDescription pSetDescript()
ParameterDescriptionBase * add(U const &iLabel, T const &value)
double maxDeltaPhiEndcaps
ElectronHcalHelper::Configuration hcalCfg_
ElectronHcalHelper::Configuration hcalCfgPflow_
~GsfElectronBaseProducer() override
bool ecalSeedingParametersChecked_
superClusterErrorFunction
double maxSigmaIetaIetaBarrel
bool ecalDrivenEcalEnergyFromClassBasedParameterization
GsfElectronAlgo::StrategyConfiguration strategyCfg_
void beginEvent(edm::Event &, const edm::EventSetup &)
std::vector< std::string > vweightsfiles
GsfElectronBaseProducer(const edm::ParameterSet &, const gsfAlgoHelpers::HeavyObjectCache *)
void removeAmbiguousElectrons()
void displayInternalElectrons(const std::string &title) const
void removeNotPreselectedElectrons()
edm::EDGetTokenT< CaloTowerCollection > hcalTowers
void copyElectrons(reco::GsfElectronCollection &)
void setAmbiguityData(bool ignoreNotPreselected=true)
ParameterSet const & parameterSet(Provenance const &provenance)
T get(const Candidate &c)
GsfElectronAlgo::CutsConfiguration cutsCfgPflow_
edm::OrphanHandle< reco::GsfElectronCollection > orphanHandle_
Provenance const * provenance() const
void checkSetup(const edm::EventSetup &)