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>();
174 bool useIsolationValues = cfg.
getParameter<
bool>(
"useIsolationValues") ;
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");
307 const std::vector<std::string> flagnamesendcaps = cfg.
getParameter<std::vector<std::string> >(
"recHitFlagsToBeExcludedEndcaps");
309 const std::vector<std::string> severitynamesbarrel = cfg.
getParameter<std::vector<std::string> >(
"recHitSeverityToBeExcludedBarrel");
311 const std::vector<std::string> severitynamesendcaps = cfg.
getParameter<std::vector<std::string> >(
"recHitSeverityToBeExcludedEndcaps");
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." ;
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 &)
std::vector< int > recHitSeverityToBeExcludedEndcaps
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
double maxDeltaEtaEndcaps
std::vector< std::string > vweightsfiles
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
std::vector< std::string > getParameterNamesForType(bool trackiness=true) const
GsfElectronAlgo::InputTagsConfiguration inputCfg_
SoftElectronMVAEstimator::Configuration mva_NIso_Cfg_
std::vector< int > recHitSeverityToBeExcludedBarrel
GsfElectronAlgo::CutsConfiguration cutsCfg_
bool pureTrackerDrivenEcalErrorFromSimpleParameterization
ParameterDescriptionBase * add(U const &iLabel, T const &value)
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
double maxDeltaPhiEndcaps
ElectronHcalHelper::Configuration hcalCfg_
std::vector< int > recHitFlagsToBeExcludedBarrel
ElectronHcalHelper::Configuration hcalCfgPflow_
bool ecalSeedingParametersChecked_
std::vector< int > recHitFlagsToBeExcludedEndcaps
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 &)
volatile std::atomic< bool > shutdown_flag false
void setAmbiguityData(bool ignoreNotPreselected=true)
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
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 &)