26 using namespace egHLT;
107 const std::vector<std::string>& hltFiltersUsed,
113 for (
size_t filterNr = 0; filterNr <
hltFiltersUsed_.size(); filterNr++) {
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;
259 trigCutsCutCodes.reserve(
trigCuts_.size());
261 trigCutsCutCodes.push_back(std::make_pair(trigCut.first, trigCut.second.getCutCode(ele)));
297 isolData.
hltHad = hcalIsolAlgo.getTowerESum(&ele);
331 const DetId seedDetId =
344 clusShapeData.
r9 = -1.;
356 clusShapeData.
r9 = -1.;
369 hltData.
dEtaIn = fabs(scPosWRTVtx.eta() - ctfTrack->eta());
372 float deltaPhi = fabs(ctfTrack->outerPosition().phi() - scClus->phi());
380 if (ele.
ecalEnergy() != 0 && ctfTrack->p() != 0)
411 egHLTOffPhos.clear();
423 egHLTOffPhos.emplace_back(phoIter, clusShapeData, isolData, hltData);
424 OffPho& pho = egHLTOffPhos.back();
428 std::vector<std::pair<TrigCodes::TrigBitSet, int> > trigCutsCutCodes;
429 trigCutsCutCodes.reserve(
trigCuts_.size());
431 trigCutsCutCodes.push_back(std::make_pair(trigCut.first, trigCut.second.getCutCode(pho)));
467 isolData.
hltHad = hcalIsolAlgo.getTowerESum(&pho);
495 clusShapeData.
r9 = pho.
r9();
501 const DetId seedDetId =
bool accept() const
Has at least one path accepted the event?
void setTrigCutsCutCodes(const std::vector< std::pair< TrigCodes::TrigBitSet, int > > &trigCutsCutCodes)
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
double hltEMIsolEtaSliceEB_
edm::ESGetToken< CaloTopology, CaloTopologyRecord > caloTopoToken_
edm::Handle< reco::TrackCollection > isolTrks_
T getParameter(std::string const &) const
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
float sigmaEtaEta() const
float hcalTowerSumEtConeDR03(int depth=0) const
Hcal isolation sum for each depth excluding the region containing the rechits used for hcalOverEcal()...
The single EDProduct to be saved for each event (AOD case)
int fillOffPhoVec(std::vector< OffPho > &offPhos)
double hltPhoTrkIsolRSpan_
edm::EDGetTokenT< CaloTowerCollection > caloTowersToken
const Point & position() const
position
void setLooseCutCode(int code)
bool hltPhoTrkIsolCountTrks_
void fillClusShapeData(const reco::GsfElectron &ele, OffEle::ClusShapeData &clusShapeData)
edm::Handle< reco::PhotonCollection > recoPhos_
int setTrigInfo(const edm::Event &edmEvent, egHLT::OffEvt &offEvent, const TrigCodes &trigCodes)
std::vector< std::pair< std::string, std::string > > l1PreAndSeedFilters_
float sigmaIetaIeta() const
double hltEMIsolOuterCone_
T const * product() const
std::vector< Track > TrackCollection
collection of Tracks
edm::EDGetTokenT< HBHERecHitCollection > hbheHitsToken
std::vector< std::string > l1PreScaledPaths_
bool isNonnull() const
Checks for non-null.
EgammaHLTTrackIsolation * hltPhoTrkIsolAlgo_
const std::vector< OffEle > & eles() const
std::vector< Vertex > VertexCollection
collection of Vertex objects
float e1x5() const
Shower shape variables.
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)
const std::vector< OffPho > & phos() const
void fillHLTData(const reco::GsfElectron &ele, OffEle::HLTData &hltData)
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
edm::EDGetTokenT< reco::TrackCollection > isolTrkToken
int nTrkHollowConeDR03() const
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::Handle< HBHERecHitCollection > hbheHits_
double hltPhoTrkIsolPtMin_
std::vector< std::pair< std::string, int > > hltFiltersUsedWithNrCandsCut_
double hltEleTrkIsolZSpan_
float dr03TkSumPt() const
GsfTrackRef gsfTrack() const override
reference to a GsfTrack
edm::EDGetTokenT< trigger::TriggerEvent > triggerSummaryToken
const EcalPFRecHitThresholds * thresholds
void fillHLTDataPho(const reco::Photon &pho, OffPho::HLTData &hltData)
T const * product() 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.
float sigmaIetaIeta() const
void setup(const edm::ParameterSet &)
double hltPhoTrkIsolZSpan_
edm::EDGetTokenT< EcalRecHitCollection > ecalRecHitsEEToken
double hltEleTrkIsolRSpan_
double hltHadIsolOuterCone_
edm::EDGetTokenT< reco::PhotonCollection > photonsToken
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_
double hltEleTrkIsolPtMin_
float ecalRecHitSumEtConeDR03() const
Isolation variables in cone dR=0.3.
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
float trkSumPtHollowConeDR03() const
void setCutCode(int code)
edm::ESHandle< MagneticField > magField_
edm::Handle< trigger::TriggerEvent > trigEvt_
edm::ESHandle< CaloGeometry > caloGeom_
double hltPhoTrkIsolInnerCone_
float sigmaEtaEta() const
void setCutCode(int code)
double hltEMIsolEtaSliceEE_
double hltEMIsolInnerConeEB_
edm::Handle< reco::GsfElectronCollection > recoEles_
edm::EDGetTokenT< edm::TriggerResults > trigResultsToken
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
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)
edm::EDGetTokenT< EcalRecHitCollection > ecalRecHitsEBToken
edm::Handle< EcalRecHitCollection > eeRecHits_
void setTrigCutsCutCodes(const std::vector< std::pair< TrigCodes::TrigBitSet, int > > &trigCutsCutCodes)
virtual TrackRef closestCtfTrackRef() const
int getHandles(const edm::Event &event, const edm::EventSetup &setup)
void setup(const edm::ParameterSet &conf, edm::ConsumesCollector &&iC)
double hltPhoTrkIsolOuterCone_
TrigBitSet getCode(const char *descript) const
edm::Handle< CaloTowerCollection > caloTowers_
edm::Handle< EcalRecHitCollection > ebRecHits_
std::vector< std::string > hltFiltersUsed_
edm::Handle< reco::VertexCollection > recoVertices_
float dr03EcalRecHitSumEt() const
edm::ESHandle< EcalSeverityLevelAlgo > ecalSeverityLevel_
void setupTriggers(const HLTConfigProvider &config, const std::vector< std::string > &hltFiltersUsed, const TrigCodes &trigCodes)
EgammaHLTTrackIsolation * hltEleTrkIsolAlgo_
edm::Handle< reco::BeamSpot > beamSpot_
int getCutCode(const OffEle &ele, int cutMask=~0x0) const
float dr03HcalTowerSumEt(int depth=0) const
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
std::bitset< maxNrBits_ > TrigBitSet
edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd > ecalSeverityToken_
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
edm::EDGetTokenT< reco::VertexCollection > vertexToken
int fillOffEleVec(std::vector< OffEle > &offEles)