26 using namespace egHLT;
99 hltEleTrkIsolPtMin_, hltEleTrkIsolOuterCone_, hltEleTrkIsolZSpan_, hltEleTrkIsolRSpan_, hltEleTrkIsolInnerCone_);
101 hltPhoTrkIsolPtMin_, hltPhoTrkIsolOuterCone_, hltPhoTrkIsolZSpan_, hltPhoTrkIsolRSpan_, hltPhoTrkIsolInnerCone_);
107 const std::vector<std::string>& hltFiltersUsed,
113 for (
size_t filterNr = 0; filterNr <
hltFiltersUsed_.size(); filterNr++) {
128 trigCutParams_.clear();
140 if (filterNr.find(
"hltPreL1") == 0) {
225 egHLTOffEles.clear();
228 if (!gsfIter.ecalDrivenSeed())
233 if (!nVit.isFake() && nVit.ndof() > 4 && std::fabs(nVit.z() < 24.0) &&
234 sqrt(nVit.x() * nVit.x() + nVit.y() * nVit.y()) < 2.0) {
251 egHLTOffEles.emplace_back(gsfIter, clusShapeData, isolData, hltData, eventData);
254 OffEle& ele = egHLTOffEles.back();
258 std::vector<std::pair<TrigCodes::TrigBitSet, int> > trigCutsCutCodes;
260 trigCutsCutCodes.push_back(std::make_pair(trigCut.first, trigCut.second.getCutCode(ele)));
296 isolData.
hltHad = hcalIsolAlgo.getTowerESum(&ele);
311 isolData.
hltEm = ecalIsolAlgoEB.getEtSum(&ele) + ecalIsolAlgoEE.getEtSum(&ele);
319 double e5x5 = ele.
e5x5();
330 const DetId seedDetId =
343 clusShapeData.
r9 = -1.;
355 clusShapeData.
r9 = -1.;
367 math::XYZPoint scPosWRTVtx(scClus->x() - bsPos.x(), scClus->y() - bsPos.y(), scClus->z() - ctfTrack->vz());
368 hltData.
dEtaIn = fabs(scPosWRTVtx.eta() - ctfTrack->eta());
371 float deltaPhi = fabs(ctfTrack->outerPosition().phi() - scClus->phi());
372 if (deltaPhi > 6.283185308)
373 deltaPhi -= 6.283185308;
374 if (deltaPhi > 3.141592654)
379 if (ele.
ecalEnergy() != 0 && ctfTrack->p() != 0)
410 egHLTOffPhos.clear();
422 egHLTOffPhos.emplace_back(phoIter, clusShapeData, isolData, hltData);
423 OffPho& pho = egHLTOffPhos.back();
427 std::vector<std::pair<TrigCodes::TrigBitSet, int> > trigCutsCutCodes;
429 trigCutsCutCodes.push_back(std::make_pair(trigCut.first, trigCut.second.getCutCode(pho)));
465 isolData.
hltHad = hcalIsolAlgo.getTowerESum(&pho);
476 isolData.
hltEm = ecalIsolAlgoEB.getEtSum(&pho) + ecalIsolAlgoEE.getEtSum(&pho);
484 double e5x5 = pho.
e5x5();
493 clusShapeData.
r9 = pho.
r9();
499 const DetId seedDetId =
void setTrigCutsCutCodes(const std::vector< std::pair< TrigCodes::TrigBitSet, int > > &trigCutsCutCodes)
double hltEMIsolEtaSliceEB_
edm::ESGetToken< CaloTopology, CaloTopologyRecord > caloTopoToken_
edm::Handle< reco::TrackCollection > isolTrks_
const edm::EventSetup & c
virtual TrackRef closestCtfTrackRef() const
bool isNonnull() const
Checks for non-null.
The single EDProduct to be saved for each event (AOD case)
int fillOffPhoVec(std::vector< OffPho > &offPhos)
double hltPhoTrkIsolRSpan_
TrigBitSet getCode(const char *descript) const
edm::EDGetTokenT< CaloTowerCollection > caloTowersToken
void setLooseCutCode(int code)
bool hltPhoTrkIsolCountTrks_
void fillClusShapeData(const reco::GsfElectron &ele, OffEle::ClusShapeData &clusShapeData)
edm::Handle< reco::PhotonCollection > recoPhos_
int getCutCode(const OffEle &ele, int cutMask=~0x0) const
int setTrigInfo(const edm::Event &edmEvent, egHLT::OffEvt &offEvent, const TrigCodes &trigCodes)
std::vector< std::pair< std::string, std::string > > l1PreAndSeedFilters_
double hltEMIsolOuterCone_
std::vector< Track > TrackCollection
collection of Tracks
float e1x5() const
Shower shape variables.
edm::EDGetTokenT< HBHERecHitCollection > hbheHitsToken
unsigned int triggerIndex(std::string_view name) const
float dr03HcalTowerSumEt(int depth=0) const
std::vector< std::string > l1PreScaledPaths_
EgammaHLTTrackIsolation * hltPhoTrkIsolAlgo_
std::vector< Vertex > VertexCollection
collection of Vertex objects
double hltEleTrkIsolOuterCone_
math::XYZPoint Point
point in the space
void fillIsolData(const reco::GsfElectron &ele, OffEle::IsolData &isolData)
int photonTrackCount(const reco::RecoCandidate *const recocand, const reco::TrackCollection *isoTracks, bool useVertex)
void fillHLTData(const reco::GsfElectron &ele, OffEle::HLTData &hltData)
float trkSumPtHollowConeDR03() const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
edm::EDGetTokenT< reco::TrackCollection > isolTrkToken
double hltEMIsolInnerConeEE_
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
void setEvtTrigBits(TrigCodes::TrigBitSet bits)
edm::EDGetTokenT< reco::GsfElectronCollection > electronsToken
std::vector< edm::ParameterSet > trigCutParams_
double hltEleTrkIsolInnerCone_
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
edm::Handle< HBHERecHitCollection > hbheHits_
double hltPhoTrkIsolPtMin_
std::vector< std::pair< std::string, int > > hltFiltersUsedWithNrCandsCut_
double hltEleTrkIsolZSpan_
GsfTrackRef gsfTrack() const override
reference to a GsfTrack
edm::EDGetTokenT< trigger::TriggerEvent > triggerSummaryToken
void fillHLTDataPho(const reco::Photon &pho, OffPho::HLTData &hltData)
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
float sigmaIetaIeta() const
double hltHadIsolInnerCone_
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
float electronPtSum(const reco::Track *const tr, const reco::TrackCollection *isoTracks)
Get Pt sum of tracks inside an isolation cone for electrons.
void setup(const edm::ParameterSet &)
double hltPhoTrkIsolZSpan_
edm::EDGetTokenT< EcalRecHitCollection > ecalRecHitsEEToken
double hltEleTrkIsolRSpan_
float sigmaIetaIeta() const
double hltHadIsolOuterCone_
edm::EDGetTokenT< reco::PhotonCollection > photonsToken
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
float dr03TkSumPt() const
static bool getHandle(const edm::Event &event, const edm::EDGetTokenT< T > &token, edm::Handle< T > &handle)
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken
edm::Handle< HFRecHitCollection > hfHits_
void setLooseCutCode(int code)
edm::Handle< std::vector< reco::CaloJet > > recoJets_
float sigmaEtaEta() const
double hltEleTrkIsolPtMin_
int nTrkHollowConeDR03() const
void setCutCode(int code)
edm::ESHandle< MagneticField > magField_
edm::Handle< trigger::TriggerEvent > trigEvt_
edm::ESHandle< CaloGeometry > caloGeom_
const std::vector< OffPho > & phos() const
double hltPhoTrkIsolInnerCone_
void setCutCode(int code)
double hltEMIsolEtaSliceEE_
double hltEMIsolInnerConeEB_
edm::Handle< reco::GsfElectronCollection > recoEles_
edm::EDGetTokenT< edm::TriggerResults > trigResultsToken
T const * product() const
edm::EDGetTokenT< HFRecHitCollection > hfHitsToken
edm::Handle< edm::TriggerResults > trigResults_
edm::ESHandle< CaloTopology > caloTopology_
XYZPointD XYZPoint
point in space with cartesian internal representation
int makeOffEvt(const edm::Event &edmEvent, const edm::EventSetup &setup, egHLT::OffEvt &offEvent, const TrigCodes &trigCodes)
std::vector< Photon > PhotonCollection
collectin of Photon objects
T const * product() const
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::CaloJetCollection > caloJetsToken
std::vector< std::string > l1PreScaledFilters_
std::vector< std::pair< TrigCodes::TrigBitSet, OffEgSel > > trigCuts_
void setJets(edm::Handle< std::vector< reco::CaloJet > > jets)
float dr03EcalRecHitSumEt() const
edm::EDGetTokenT< EcalRecHitCollection > ecalRecHitsEBToken
edm::Handle< EcalRecHitCollection > eeRecHits_
const std::vector< OffEle > & eles() const
void setTrigCutsCutCodes(const std::vector< std::pair< TrigCodes::TrigBitSet, int > > &trigCutsCutCodes)
int getHandles(const edm::Event &event, const edm::EventSetup &setup)
void setup(const edm::ParameterSet &conf, edm::ConsumesCollector &&iC)
double hltPhoTrkIsolOuterCone_
float ecalRecHitSumEtConeDR03() const
Isolation variables in cone dR=0.3.
edm::Handle< CaloTowerCollection > caloTowers_
edm::Handle< EcalRecHitCollection > ebRecHits_
std::vector< std::string > hltFiltersUsed_
edm::Handle< reco::VertexCollection > recoVertices_
edm::ESHandle< EcalSeverityLevelAlgo > ecalSeverityLevel_
void setupTriggers(const HLTConfigProvider &config, const std::vector< std::string > &hltFiltersUsed, const TrigCodes &trigCodes)
EgammaHLTTrackIsolation * hltEleTrkIsolAlgo_
float hcalTowerSumEtConeDR03(int depth=0) const
Hcal isolation sum for each depth excluding the region containing the rechits used for hcalOverEcal()...
edm::Handle< reco::BeamSpot > beamSpot_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
std::bitset< maxNrBits_ > TrigBitSet
edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd > ecalSeverityToken_
tuple size
Write out results.
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken_
SuperClusterRef superCluster() const override
reference to a SuperCluster
float photonPtSum(const reco::RecoCandidate *const recocand, const reco::TrackCollection *isoTracks, bool useVertex)
std::vector< CaloJet > CaloJetCollection
collection of CaloJet objects
float sigmaEtaEta() const
edm::EDGetTokenT< reco::VertexCollection > vertexToken
int fillOffEleVec(std::vector< OffEle > &offEles)