CMS 3D CMS Logo

ElectronIdentifier.cc
Go to the documentation of this file.
11 
16 
19 
20 #include <TLorentzVector.h>
21 #include <TMath.h>
22 #include <algorithm>
23 
25  : _effectiveAreas((c.getParameter<edm::FileInPath>("effAreasConfigFile")).fullPath())
26 
27 {
28  rho_ = -1;
29  ID_ = -1;
34 
39 
44 
49 
54 
59 
64 
69 
74 
79 
84 
89 
94 
99 
104 
109 }
110 
112  if (rho >= 0) {
113  rho_ = rho;
114  } else {
115  throw cms::Exception("ValueError") << "Encountered invalid value for energy density rho.\n"
116  << "Value: " << rho << "\n"
117  << "Rho should be a real, positive number.\n";
118  }
119 }
121  if (ID == "TIGHT")
123  else if (ID == "MEDIUM")
125  else if (ID == "LOOSE")
127  else if (ID == "VETO")
129  else
130  throw;
131 }
133  return ele->superCluster().isNonnull() && ele->superCluster()->seed().isNonnull()
134  ? ele->deltaEtaSuperClusterTrackAtVtx() - ele->superCluster()->eta() + ele->superCluster()->seed()->eta()
136 }
138  if (rho_ < 0) {
139  throw;
140  }
142  const float chad = pfIso.sumChargedHadronPt;
143  const float nhad = pfIso.sumNeutralHadronEt;
144  const float pho = pfIso.sumPhotonEt;
145  const float eA = _effectiveAreas.getEffectiveArea(fabs(ele->superCluster()->eta()));
146  const float iso = chad + std::max(0.0, nhad + pho - rho_ * eA);
147 
148  // Apply the cut and return the result
149  // Scale by pT if the relative isolation is requested but avoid division by 0
150  return iso;
151 }
152 
156  if (ID_ == -1)
157  throw;
158  unsigned int region = fabs(ele->superCluster()->eta()) < 1.479 ? EleIDEtaBins::BARREL : EleIDEtaBins::BARREL;
159 
161  return false;
163  return false;
165  return false;
167  return false;
168  if (isolation(ele) / ele->pt() > cuts_[EleIDCutNames::ISO][ID_][region])
169  return false;
171  return false;
172  if ((ele->gsfTrack()->hitPattern().numberOfAllHits(reco::HitPattern::MISSING_INNER_HITS)) >
174  return false;
176  return false;
177 
178  return true;
179 }
Handle.h
TTrigger.h
Muon.h
reco::GsfElectron::gsfTrack
GsfTrackRef gsfTrack() const override
reference to a GsfTrack
Definition: GsfElectron.h:164
TriggerResults.h
reco::GsfElectron::deltaPhiSuperClusterTrackAtVtx
float deltaPhiSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:236
TIGHT
Definition: ElectronIdentifier.h:38
TriggerEvent.h
contentValuesFiles.fullPath
fullPath
Definition: contentValuesFiles.py:64
edm
HLT enums.
Definition: AlignableModifier.h:19
reco::GsfElectron::PflowIsolationVariables
Definition: GsfElectron.h:669
ZElectronSkim_cff.rho
rho
Definition: ZElectronSkim_cff.py:38
ONEOVERE
Definition: ElectronIdentifier.h:34
ElectronIdentifier::setID
void setID(std::string ID)
Definition: ElectronIdentifier.cc:120
reco::LeafCandidate::pt
double pt() const final
transverse momentum
Definition: LeafCandidate.h:146
reco::GsfElectron::hadronicOverEm
float hadronicOverEm() const
Definition: GsfElectron.h:508
BARREL
Definition: ElectronIdentifier.h:39
edm::Handle< reco::BeamSpot >
ElectronIdentifier::ElectronIdentifier
ElectronIdentifier(const edm::ParameterSet &c)
Definition: ElectronIdentifier.cc:24
ElectronIdentifier::cuts_
std::array< std::array< std::array< double, 2 >, 4 >, 8 > cuts_
Definition: ElectronIdentifier.h:55
TriggerTools.h
reco::GsfElectron::PflowIsolationVariables::sumPhotonEt
float sumPhotonEt
sum pt of PF photons // old float photonIso ;
Definition: GsfElectron.h:673
MISSINGHITS
Definition: ElectronIdentifier.h:35
ElectronIdentifier::isolation
float isolation(const reco::GsfElectronPtr &ele)
Definition: ElectronIdentifier.cc:137
MuonSelectors.h
ConversionTools::hasMatchedConversion
static bool hasMatchedConversion(const reco::GsfElectron &ele, const reco::ConversionCollection &convCol, const math::XYZPoint &beamspot, bool allowCkfMatch=true, float lxyMin=2.0, float probMin=1e-6, unsigned int nHitsBeforeVtxMax=0)
Definition: ConversionTools.cc:181
DETAINSEED
Definition: ElectronIdentifier.h:30
beamspot
Definition: BeamSpotWrite2Txt.h:8
CONVERSION
Definition: ElectronIdentifier.h:36
GsfElectron.h
ElectronIdentifier::dEtaInSeed
float dEtaInSeed(const reco::GsfElectronPtr &ele)
Definition: ElectronIdentifier.cc:132
DDAxes::rho
edm::ParameterSet
Definition: ParameterSet.h:47
align::ID
uint32_t ID
Definition: Definitions.h:24
reco::GsfElectron::deltaEtaSuperClusterTrackAtVtx
float deltaEtaSuperClusterTrackAtVtx() const
Definition: GsfElectron.h:233
Event.h
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
ElectronIdentifier::passID
bool passID(const reco::GsfElectronPtr &ele, edm::Handle< reco::BeamSpot > beamspot, edm::Handle< reco::ConversionCollection > conversions)
Definition: ElectronIdentifier.cc:153
reco::GsfElectron::full5x5_sigmaIetaIeta
float full5x5_sigmaIetaIeta() const
Definition: GsfElectron.h:479
edm::Ref::isNonnull
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:238
ElectronIdentifier.h
ElectronIdentifier::rho_
double rho_
Definition: ElectronIdentifier.h:53
DPHIIN
Definition: ElectronIdentifier.h:31
LOOSE
Definition: ElectronIdentifier.h:38
HLT_FULL_cff.region
region
Definition: HLT_FULL_cff.py:88286
TriggerNames.h
HOVERE
Definition: ElectronIdentifier.h:32
VETO
Definition: ElectronIdentifier.h:38
ISO
Definition: ElectronIdentifier.h:33
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
reco::GsfElectron::PflowIsolationVariables::sumNeutralHadronEt
float sumNeutralHadronEt
sum pt of neutral hadrons // old float neutralHadronIso ;
Definition: GsfElectron.h:672
edm::Ptr< reco::GsfElectron >
SIGMAIETA
Definition: ElectronIdentifier.h:29
Electron.h
ElectronIdentifier::ID_
int ID_
Definition: ElectronIdentifier.h:54
Vertex.h
SuperCluster.h
Exception
Definition: hltDiff.cc:245
reco::HitPattern::MISSING_INNER_HITS
Definition: HitPattern.h:155
reco::GsfElectron::eSuperClusterOverP
float eSuperClusterOverP() const
Definition: GsfElectron.h:229
EffectiveAreas::getEffectiveArea
const float getEffectiveArea(float eta) const
Definition: EffectiveAreas.cc:44
ElectronIdentifier::_effectiveAreas
EffectiveAreas _effectiveAreas
Definition: ElectronIdentifier.h:57
reco::GsfElectron::superCluster
SuperClusterRef superCluster() const override
reference to a SuperCluster
Definition: GsfElectron.h:163
ElectronIdentifier::setRho
void setRho(double rho)
Definition: ElectronIdentifier.cc:111
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
reco::GsfElectron::pfIsolationVariables
const PflowIsolationVariables & pfIsolationVariables() const
Definition: GsfElectron.h:721
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:56
MEDIUM
Definition: ElectronIdentifier.h:38
pwdgSkimBPark_cfi.conversions
conversions
Definition: pwdgSkimBPark_cfi.py:10
RegexMatch.h
reco::GsfElectron::PflowIsolationVariables::sumChargedHadronPt
float sumChargedHadronPt
sum-pt of charged Hadron // old float chargedHadronIso ;
Definition: GsfElectron.h:671
ConversionTools.h
ENDCAP
Definition: ElectronIdentifier.h:39
reco::GsfElectron::ecalEnergy
float ecalEnergy() const
Definition: GsfElectron.h:883