|
|
Go to the documentation of this file.
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;
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.;
368 hltData.
dEtaIn = fabs(scPosWRTVtx.eta() - ctfTrack->eta());
371 float deltaPhi = fabs(ctfTrack->outerPosition().phi() - scClus->phi());
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 =
edm::Handle< std::vector< reco::CaloJet > > recoJets_
T const * product() const
edm::EDGetTokenT< edm::TriggerResults > trigResultsToken
double hltEleTrkIsolZSpan_
float dr03TkSumPt() const
void setTrigCutsCutCodes(const std::vector< std::pair< TrigCodes::TrigBitSet, int > > &trigCutsCutCodes)
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
GsfTrackRef gsfTrack() const override
reference to a GsfTrack
reco::SuperClusterRef superCluster() const override
Ref to SuperCluster.
edm::EDGetTokenT< EcalRecHitCollection > ecalRecHitsEBToken
double hltEleTrkIsolPtMin_
std::vector< std::pair< TrigCodes::TrigBitSet, OffEgSel > > trigCuts_
T const * product() const
edm::Handle< EcalRecHitCollection > eeRecHits_
edm::Handle< CaloTowerCollection > caloTowers_
float sigmaIetaIeta() const
edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > magFieldToken_
edm::ESHandle< MagneticField > magField_
edm::EDGetTokenT< trigger::TriggerEvent > triggerSummaryToken
void setup(const edm::ParameterSet &conf, edm::ConsumesCollector &&iC)
const std::vector< OffPho > & phos() const
double hltEMIsolEtaSliceEE_
std::vector< Vertex > VertexCollection
collection of Vertex objects
void setupTriggers(const HLTConfigProvider &config, const std::vector< std::string > &hltFiltersUsed, const TrigCodes &trigCodes)
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
EgammaHLTTrackIsolation * hltPhoTrkIsolAlgo_
edm::TriggerNames const & triggerNames(edm::TriggerResults const &triggerResults) const override
edm::ESHandle< CaloGeometry > caloGeom_
double hltEMIsolInnerConeEE_
int nTrkHollowConeDR03() const
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
edm::EDGetTokenT< reco::CaloJetCollection > caloJetsToken
std::vector< edm::ParameterSet > trigCutParams_
double hltPhoTrkIsolInnerCone_
double hltPhoTrkIsolZSpan_
edm::ESHandle< CaloTopology > caloTopology_
std::vector< std::string > l1PreScaledFilters_
edm::Handle< reco::VertexCollection > recoVertices_
float ecalRecHitSumEtConeDR03() const
Isolation variables in cone dR=0.3.
edm::Handle< reco::GsfElectronCollection > recoEles_
edm::EDGetTokenT< reco::VertexCollection > vertexToken
bool hltPhoTrkIsolCountTrks_
int getHandles(const edm::Event &event, const edm::EventSetup &setup)
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken
std::vector< std::string > hltFiltersUsed_
std::bitset< maxNrBits_ > TrigBitSet
void setCutCode(int code)
int photonTrackCount(const reco::RecoCandidate *const recocand, const reco::TrackCollection *isoTracks, bool useVertex)
double hltPhoTrkIsolOuterCone_
void setEvtTrigBits(TrigCodes::TrigBitSet bits)
double hltHadIsolInnerCone_
void setJets(edm::Handle< std::vector< reco::CaloJet > > jets)
const Point & position() const
position
void setTrigCutsCutCodes(const std::vector< std::pair< TrigCodes::TrigBitSet, int > > &trigCutsCutCodes)
float trkSumPtHollowConeDR03() const
edm::ESGetToken< CaloTopology, CaloTopologyRecord > caloTopoToken_
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
float electronPtSum(const reco::Track *const tr, const reco::TrackCollection *isoTracks)
Get Pt sum of tracks inside an isolation cone for electrons.
float sigmaEtaEta() const
edm::ESGetToken< EcalSeverityLevelAlgo, EcalSeverityLevelAlgoRcd > ecalSeverityToken_
void setup(const edm::ParameterSet &)
edm::Handle< reco::TrackCollection > isolTrks_
edm::Handle< reco::PhotonCollection > recoPhos_
double hltEleTrkIsolOuterCone_
edm::Handle< reco::BeamSpot > beamSpot_
TrigBitSet getCode(const char *descript) const
XYZPointD XYZPoint
point in space with cartesian internal representation
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
edm::EDGetTokenT< reco::TrackCollection > isolTrkToken
edm::EDGetTokenT< HBHERecHitCollection > hbheHitsToken
bool isNonnull() const
Checks for non-null.
void fillClusShapeData(const reco::GsfElectron &ele, OffEle::ClusShapeData &clusShapeData)
edm::Handle< edm::TriggerResults > trigResults_
edm::Handle< HBHERecHitCollection > hbheHits_
std::vector< CaloJet > CaloJetCollection
collection of CaloJet objects
edm::ESHandle< EcalSeverityLevelAlgo > ecalSeverityLevel_
edm::Handle< EcalRecHitCollection > ebRecHits_
void fillHLTDataPho(const reco::Photon &pho, OffPho::HLTData &hltData)
virtual TrackRef closestCtfTrackRef() const
The single EDProduct to be saved for each event (AOD case)
edm::Handle< HFRecHitCollection > hfHits_
int fillOffPhoVec(std::vector< OffPho > &offPhos)
int setTrigInfo(const edm::Event &edmEvent, egHLT::OffEvt &offEvent, const TrigCodes &trigCodes)
float sigmaEtaEta() const
float sigmaIetaIeta() const
void fillHLTData(const reco::GsfElectron &ele, OffEle::HLTData &hltData)
int getCutCode(const OffEle &ele, int cutMask=~0x0) const
double hltHadIsolOuterCone_
float hcalTowerSumEtConeDR03(int depth=0) const
Hcal isolation sum for each depth excluding the region containing the rechits used for hcalOverEcal()
double hltEMIsolEtaSliceEB_
double hltPhoTrkIsolRSpan_
float e1x5() const
Shower shape variables.
float photonPtSum(const reco::RecoCandidate *const recocand, const reco::TrackCollection *isoTracks, bool useVertex)
edm::Handle< trigger::TriggerEvent > trigEvt_
std::vector< std::pair< std::string, std::string > > l1PreAndSeedFilters_
T getParameter(std::string const &) const
float dr03HcalTowerSumEt(int depth=0) const
SuperClusterRef superCluster() const override
reference to a SuperCluster
void fillIsolData(const reco::GsfElectron &ele, OffEle::IsolData &isolData)
bool accept() const
Has at least one path accepted the event?
void setLooseCutCode(int code)
EgammaHLTTrackIsolation * hltEleTrkIsolAlgo_
std::vector< Photon > PhotonCollection
collectin of Photon objects
math::XYZPoint Point
point in the space
double hltPhoTrkIsolPtMin_
edm::EDGetTokenT< HFRecHitCollection > hfHitsToken
void setCutCode(int code)
std::vector< std::string > l1PreScaledPaths_
double hltEleTrkIsolInnerCone_
edm::EDGetTokenT< CaloTowerCollection > caloTowersToken
double hltEMIsolOuterCone_
const std::vector< OffEle > & eles() const
edm::EDGetTokenT< EcalRecHitCollection > ecalRecHitsEEToken
std::vector< std::pair< std::string, int > > hltFiltersUsedWithNrCandsCut_
edm::EDGetTokenT< reco::PhotonCollection > photonsToken
static bool getHandle(const edm::Event &event, const edm::EDGetTokenT< T > &token, edm::Handle< T > &handle)
edm::EDGetTokenT< reco::GsfElectronCollection > electronsToken
std::vector< Track > TrackCollection
collection of Tracks
float dr03EcalRecHitSumEt() const
int makeOffEvt(const edm::Event &edmEvent, const edm::EventSetup &setup, egHLT::OffEvt &offEvent, const TrigCodes &trigCodes)
double hltEleTrkIsolRSpan_
double hltEMIsolInnerConeEB_
int fillOffEleVec(std::vector< OffEle > &offEles)
void setLooseCutCode(int code)