41 desc.
add<
bool>(
"ctfTracksCheck",
true) ;
45 desc.
add<
bool>(
"applyPreselection",
false) ;
46 desc.
add<
bool>(
"applyEtaCorrection",
false) ;
47 desc.
add<
bool>(
"applyAmbResolution",
false) ;
48 desc.
add<
unsigned>(
"ambSortingStrategy",1) ;
49 desc.
add<
unsigned>(
"ambClustersOverlapStrategy",1) ;
108 desc.
add<
double>(
"intRadiusBarrelTk",0.015) ;
109 desc.
add<
double>(
"intRadiusEndcapTk",0.015) ;
110 desc.
add<
double>(
"stripBarrelTk",0.015) ;
111 desc.
add<
double>(
"stripEndcapTk",0.015) ;
112 desc.
add<
double>(
"ptMinTk",0.7) ;
113 desc.
add<
double>(
"maxVtxDistTk",0.2) ;
114 desc.
add<
double>(
"maxDrbTk",999999999.) ;
115 desc.
add<
double>(
"intRadiusHcal",0.15) ;
116 desc.
add<
double>(
"etMinHcal",0.0) ;
117 desc.
add<
double>(
"intRadiusEcalBarrel",3.0) ;
118 desc.
add<
double>(
"intRadiusEcalEndcaps",3.0) ;
119 desc.
add<
double>(
"jurassicWidth",1.5) ;
120 desc.
add<
double>(
"etMinBarrel",0.0) ;
121 desc.
add<
double>(
"eMinBarrel",0.08) ;
122 desc.
add<
double>(
"etMinEndcaps",0.1) ;
123 desc.
add<
double>(
"eMinEndcaps",0.0) ;
124 desc.
add<
bool>(
"vetoClustered",
false) ;
125 desc.
add<
bool>(
"useNumCrystals",
true) ;
126 desc.
add<
int>(
"severityLevelCut",4) ;
127 desc.
add<
double>(
"severityRecHitThreshold",5.0) ;
128 desc.
add<
double>(
"spikeIdThreshold",0.95) ;
129 desc.
add<std::string>(
"spikeIdString",
"kSwissCrossBordersIncluded") ;
130 desc.
add<std::vector<int> >(
"recHitFlagsToBeExcluded") ;
133 descNested.
add<std::string>(
"propagatorAlongTISE",
"PropagatorWithMaterial") ;
134 descNested.add<std::string>(
"propagatorOppositeTISE",
"PropagatorWithMaterialOpposite") ;
138 desc.
add<std::string>(
"superClusterErrorFunction",
"EcalClusterEnergyUncertainty") ;
142 : pfTranslatorParametersChecked_(
false),
143 ecalSeedingParametersChecked_(
false)
145 produces<GsfElectronCollection>();
270 spikeCfg.severityRecHitThreshold = cfg.
getParameter<
double>(
"severityRecHitThreshold") ;
271 spikeCfg.spikeIdThreshold = cfg.
getParameter<
double>(
"spikeIdThreshold") ;
280 <<
"Cannot find the requested method. kSwissCross set instead." ;
282 spikeCfg.recHitFlagsToBeExcluded = cfg.getParameter<std::vector<int> >(
"recHitFlagsToBeExcluded") ;
286 std::string superClusterErrorFunctionName
287 = cfg.getParameter<std::string>(
"superClusterErrorFunction") ;
288 if (superClusterErrorFunctionName!=
"")
290 superClusterErrorFunction
296 ( inputCfg_, strategyCfg_,
297 cutsCfg_,cutsCfgPflow_,
298 hcalCfg_,hcalCfgPflow_,
300 superClusterErrorFunction ) ;
324 <<
"Cannot check consistency of parameters with ecal seeding ones,"
325 <<
" because the original collection of seeds is not any more available." ;
361 event.put(finalCollection) ;
374 double pfTranslatorMinMva = mvaBlock.
getParameter<
double>(
"MVACut") ;
375 double pfTranslatorUndefined = -99. ;
381 <<
"Parameter minMVAPflow will have no effect on purely tracker seeded electrons."
382 <<
" It is inferior to the cut already applied by PFlow translator." ;
392 <<
"Parameter minMVA is inferior to the cut applied by PFlow translator."
393 <<
" Some ecal (and eventually tracker) seeded electrons may lack their MVA value and PFlow supercluster." ;
400 <<
"Parameter minMVA is inferior to the lowest possible value."
401 <<
" Every electron will be blessed whatever other criteria." ;
414 if (seedConfiguration.
getParameter<
bool>(
"applyHOverECut"))
419 {
edm::LogWarning(
"GsfElectronAlgo|InconsistentParameters") <<
"The max barrel H/E is lower than during ecal seeding." ; }
421 {
edm::LogWarning(
"GsfElectronAlgo|InconsistentParameters") <<
"The max endcaps H/E is lower than during ecal seeding." ; }
425 {
edm::LogWarning(
"GsfElectronAlgo|InconsistentParameters") <<
"The minimum super-cluster Et in barrel is lower than during ecal seeding." ; }
427 {
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 &)
void checkEcalSeedingParameters(edm::ParameterSetID const &)
double intRadiusEcalEndcaps
unsigned ambClustersOverlapStrategy
static void fillDescription(edm::ParameterSetDescription &)
double intRadiusEcalBarrel
unsigned ambSortingStrategy
void beginEvent(edm::Event &)
double maxSigmaIetaIetaEndcaps
bool getMapped(key_type const &k, value_type &result) const
double maxDeltaEtaEndcaps
GsfElectronBaseProducer(const edm::ParameterSet &)
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
ParameterSetID psetID() const
GsfElectronAlgo::InputTagsConfiguration inputCfg_
GsfElectronAlgo::CutsConfiguration cutsCfg_
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_
ElectronHcalHelper::Configuration hcalCfgPflow_
bool ecalSeedingParametersChecked_
double maxSigmaIetaIetaBarrel
void checkPfTranslatorParameters(edm::ParameterSetID const &)
GsfElectronAlgo::StrategyConfiguration strategyCfg_
void beginEvent(edm::Event &, const edm::EventSetup &)
bool pfTranslatorParametersChecked_
void removeAmbiguousElectrons()
virtual ~GsfElectronBaseProducer()
void displayInternalElectrons(const std::string &title) const
void removeNotPreselectedElectrons()
static ThreadSafeRegistry * instance()
void copyElectrons(reco::GsfElectronCollection &)
void setAmbiguityData(bool ignoreNotPreselected=true)
T get(const Candidate &c)
GsfElectronAlgo::CutsConfiguration cutsCfgPflow_
Provenance const * provenance() const
void checkSetup(const edm::EventSetup &)