23 edm::LogError(
"ClassBasedElectronID") <<
"Invalid electronQuality parameter: must be tight, medium or loose." ;
54 edm::LogError(
"ClassBasedElectronID") <<
"Error: unrecognized electron classification ";
58 bool useDeltaEtaIn =
true;
59 bool useSigmaIetaIeta =
true;
60 bool useHoverE =
true;
61 bool useEoverPOut =
true;
62 bool useDeltaPhiInCharge =
true;
67 std::vector<double> maxcut =
cuts_.
getParameter<std::vector<double> >(
"deltaEtaIn");
68 if (fabs(value)>maxcut[icut])
return 0.;
72 if(useSigmaIetaIeta) {
74 std::vector<double> maxcut =
cuts_.
getParameter<std::vector<double> >(
"sigmaIetaIetaMax");
75 std::vector<double> mincut =
cuts_.
getParameter<std::vector<double> >(
"sigmaIetaIetaMin");
76 if(value<mincut[icut] || value>maxcut[icut])
return 0.;
83 if (value>maxcut[icut])
return 0.;
89 std::vector<double> maxcut =
cuts_.
getParameter<std::vector<double> >(
"EoverPOutMax");
90 std::vector<double> mincut =
cuts_.
getParameter<std::vector<double> >(
"EoverPOutMin");
91 if (value<mincut[icut] || value>maxcut[icut])
return 0.;
95 if (useDeltaPhiInCharge) {
97 double value2 = electron->
charge();
98 double value = value1*value2;
99 std::vector<double> maxcut =
cuts_.
getParameter<std::vector<double> >(
"deltaPhiInChargeMax");
100 std::vector<double> mincut =
cuts_.
getParameter<std::vector<double> >(
"deltaPhiInChargeMin");
101 if (value<mincut[icut] || value>maxcut[icut])
return 0.;
T getParameter(std::string const &) const
float deltaEtaSuperClusterTrackAtVtx() const
float sigmaIetaIeta() const
float hadronicOverEm() const
float deltaPhiSuperClusterTrackAtVtx() const
virtual int charge() const
electric charge
float eSeedClusterOverPout() const
double result(const reco::GsfElectron *, const edm::Event &, const edm::EventSetup &)
Classification classification() const
void setup(const edm::ParameterSet &conf)