45 desc.
add<
bool>(
"ctfTracksCheck",
true) ;
48 desc.
add<
bool>(
"gedElectronMode",
true) ;
49 desc.
add<
double>(
"PreSelectMVA",-0.1) ;
50 desc.
add<
double>(
"MaxElePtForOnlyMVA",50.0) ;
53 desc.
add<
bool>(
"useGsfPfRecTracks",
true) ;
54 desc.
add<
bool>(
"applyPreselection",
false) ;
55 desc.
add<
bool>(
"ecalDrivenEcalEnergyFromClassBasedParameterization",
false) ;
56 desc.
add<
bool>(
"ecalDrivenEcalErrorFromClassBasedParameterization",
false) ;
57 desc.
add<
bool>(
"pureTrackerDrivenEcalErrorFromSimpleParameterization",
false) ;
58 desc.
add<
bool>(
"applyAmbResolution",
false) ;
59 desc.
add<
unsigned>(
"ambSortingStrategy",1) ;
60 desc.
add<
unsigned>(
"ambClustersOverlapStrategy",1) ;
119 desc.
add<std::vector<int> >(
"recHitFlagsToBeExcludedBarrel") ;
120 desc.
add<std::vector<int> >(
"recHitFlagsToBeExcludedEndcaps") ;
121 desc.
add<std::vector<int> >(
"recHitSeverityToBeExcludedBarrel") ;
122 desc.
add<std::vector<int> >(
"recHitSeverityToBeExcludedEndcaps") ;
126 desc.
add<
double>(
"intRadiusBarrelTk",0.015) ;
127 desc.
add<
double>(
"intRadiusEndcapTk",0.015) ;
128 desc.
add<
double>(
"stripBarrelTk",0.015) ;
129 desc.
add<
double>(
"stripEndcapTk",0.015) ;
130 desc.
add<
double>(
"ptMinTk",0.7) ;
131 desc.
add<
double>(
"maxVtxDistTk",0.2) ;
132 desc.
add<
double>(
"maxDrbTk",999999999.) ;
133 desc.
add<
double>(
"intRadiusHcal",0.15) ;
134 desc.
add<
double>(
"etMinHcal",0.0) ;
135 desc.
add<
double>(
"intRadiusEcalBarrel",3.0) ;
136 desc.
add<
double>(
"intRadiusEcalEndcaps",3.0) ;
137 desc.
add<
double>(
"jurassicWidth",1.5) ;
138 desc.
add<
double>(
"etMinBarrel",0.0) ;
139 desc.
add<
double>(
"eMinBarrel",0.08) ;
140 desc.
add<
double>(
"etMinEndcaps",0.1) ;
141 desc.
add<
double>(
"eMinEndcaps",0.0) ;
142 desc.
add<
bool>(
"vetoClustered",
false) ;
143 desc.
add<
bool>(
"useNumCrystals",
true) ;
146 descNested.
add<
std::string>(
"propagatorAlongTISE",
"PropagatorWithMaterial") ;
147 descNested.add<
std::string>(
"propagatorOppositeTISE",
"PropagatorWithMaterialOpposite") ;
151 desc.
add<
std::string>(
"superClusterErrorFunction",
"EcalClusterEnergyUncertaintyObjectSpecific") ;
152 desc.
add<
std::string>(
"crackCorrectionFunction",
"EcalClusterCrackCorrection") ;
156 : ecalSeedingParametersChecked_(
false)
158 produces<GsfElectronCollection>();
175 if ( useIsolationValues ) {
176 if( ! cfg.
exists(
"pfIsolationValues") ) {
178 <<
"Missing ParameterSet pfIsolationValues" ;
182 std::vector<std::string> isoNames =
187 mayConsume<edm::ValueMap<double> >(
tag);
191 if ( ! cfg.
exists(
"edIsolationValues") ) {
193 <<
"Missing ParameterSet edIsolationValues" ;
197 std::vector<std::string> isoNames =
202 mayConsume<edm::ValueMap<double> >(
tag);
305 const std::vector<std::string> flagnamesbarrel = cfg.
getParameter<std::vector<std::string> >(
"recHitFlagsToBeExcludedBarrel");
306 recHitsCfg.recHitFlagsToBeExcludedBarrel = StringToEnumValue<EcalRecHit::Flags>(flagnamesbarrel);
307 const std::vector<std::string> flagnamesendcaps = cfg.
getParameter<std::vector<std::string> >(
"recHitFlagsToBeExcludedEndcaps");
308 recHitsCfg.recHitFlagsToBeExcludedEndcaps = StringToEnumValue<EcalRecHit::Flags>(flagnamesendcaps);
309 const std::vector<std::string> severitynamesbarrel = cfg.
getParameter<std::vector<std::string> >(
"recHitSeverityToBeExcludedBarrel");
310 recHitsCfg.recHitSeverityToBeExcludedBarrel = StringToEnumValue<EcalSeverityLevel::SeverityLevel>(severitynamesbarrel);
311 const std::vector<std::string> severitynamesendcaps = cfg.
getParameter<std::vector<std::string> >(
"recHitSeverityToBeExcludedEndcaps");
312 recHitsCfg.recHitSeverityToBeExcludedEndcaps = StringToEnumValue<EcalSeverityLevel::SeverityLevel>(severitynamesendcaps);
318 isoCfg.intRadiusEndcapTk = cfg.
getParameter<
double>(
"intRadiusEndcapTk") ;
319 isoCfg.stripBarrelTk = cfg.
getParameter<
double>(
"stripBarrelTk") ;
320 isoCfg.stripEndcapTk = cfg.
getParameter<
double>(
"stripEndcapTk") ;
322 isoCfg.maxVtxDistTk = cfg.
getParameter<
double>(
"maxVtxDistTk") ;
323 isoCfg.maxDrbTk = cfg.
getParameter<
double>(
"maxDrbTk") ;
324 isoCfg.intRadiusHcal = cfg.
getParameter<
double>(
"intRadiusHcal") ;
325 isoCfg.etMinHcal = cfg.
getParameter<
double>(
"etMinHcal") ;
326 isoCfg.intRadiusEcalBarrel = cfg.
getParameter<
double>(
"intRadiusEcalBarrel") ;
327 isoCfg.intRadiusEcalEndcaps = cfg.
getParameter<
double>(
"intRadiusEcalEndcaps") ;
328 isoCfg.jurassicWidth = cfg.
getParameter<
double>(
"jurassicWidth") ;
329 isoCfg.etMinBarrel = cfg.
getParameter<
double>(
"etMinBarrel") ;
330 isoCfg.eMinBarrel = cfg.
getParameter<
double>(
"eMinBarrel") ;
331 isoCfg.etMinEndcaps = cfg.
getParameter<
double>(
"etMinEndcaps") ;
332 isoCfg.eMinEndcaps = cfg.
getParameter<
double>(
"eMinEndcaps") ;
333 isoCfg.vetoClustered = cfg.
getParameter<
bool>(
"vetoClustered") ;
334 isoCfg.useNumCrystals = cfg.
getParameter<
bool>(
"useNumCrystals") ;
339 regressionCfg.combinationRegressionWeightLabels = cfg.
getParameter<std::vector<std::string> >(
"combinationRegressionWeightLabels");
340 regressionCfg.ecalRegressionWeightFiles = cfg.
getParameter<std::vector<std::string> >(
"ecalRefinedRegressionWeightFiles");
341 regressionCfg.combinationRegressionWeightFiles = cfg.
getParameter<std::vector<std::string> >(
"combinationRegressionWeightFile");
342 regressionCfg.ecalWeightsFromDB = cfg.
getParameter<
bool>(
"ecalWeightsFromDB");
343 regressionCfg.combinationWeightsFromDB = cfg.
getParameter<
bool>(
"combinationWeightsFromDB");
348 if (superClusterErrorFunctionName!=
"")
350 superClusterErrorFunction
355 superClusterErrorFunction
361 if (crackCorrectionFunctionName!=
"")
363 crackCorrectionFunction
376 superClusterErrorFunction,
377 crackCorrectionFunction,
400 <<
"Cannot check consistency of parameters with ecal seeding ones," 401 <<
" because the original collection of seeds is not any more available." ;
432 auto finalCollection = std::make_unique<GsfElectronCollection>();
448 if (seedConfiguration.
getParameter<
bool>(
"applyHOverECut"))
453 {
edm::LogWarning(
"GsfElectronAlgo|InconsistentParameters") <<
"The max barrel H/E is lower than during ecal seeding." ; }
455 {
edm::LogWarning(
"GsfElectronAlgo|InconsistentParameters") <<
"The max endcaps H/E is lower than during ecal seeding." ; }
459 {
edm::LogWarning(
"GsfElectronAlgo|InconsistentParameters") <<
"The minimum super-cluster Et in barrel is lower than during ecal seeding." ; }
461 {
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
ParameterDescriptionBase * add(U const &iLabel, T const &value)
double maxDeltaPhiEndcaps
ElectronHcalHelper::Configuration hcalCfg_
ElectronHcalHelper::Configuration hcalCfgPflow_
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()
virtual ~GsfElectronBaseProducer()
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 &)