diff --git a/HLTrigger/Egamma/plugins/BuildFile.xml b/HLTrigger/Egamma/plugins/BuildFile.xml
index dd7398eaed809..ecf72b45c80c8 100644
--- a/HLTrigger/Egamma/plugins/BuildFile.xml
+++ b/HLTrigger/Egamma/plugins/BuildFile.xml
@@ -12,6 +12,7 @@
+
diff --git a/HLTrigger/Egamma/plugins/HLTDisplacedEgammaFilter.cc b/HLTrigger/Egamma/plugins/HLTDisplacedEgammaFilter.cc
index c68819dd294e7..9c637465d46c8 100644
--- a/HLTrigger/Egamma/plugins/HLTDisplacedEgammaFilter.cc
+++ b/HLTrigger/Egamma/plugins/HLTDisplacedEgammaFilter.cc
@@ -4,18 +4,16 @@
* \author Monica Vazquez Acosta (CERN)
*
*/
+#include
#include "HLTDisplacedEgammaFilter.h"
#include "DataFormats/Common/interface/Handle.h"
+#include "DataFormats/Math/interface/deltaR.h"
+#include "DataFormats/RecoCandidate/interface/RecoEcalCandidate.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
-#include "DataFormats/RecoCandidate/interface/RecoEcalCandidate.h"
#include "RecoEcal/EgammaCoreTools/interface/EcalClusterTools.h"
-#include "DataFormats/Math/interface/LorentzVector.h"
-//
-// constructors and destructor
-//
HLTDisplacedEgammaFilter::HLTDisplacedEgammaFilter(const edm::ParameterSet& iConfig) : HLTFilter(iConfig) {
inputTag_ = iConfig.getParameter("inputTag");
ncandcut_ = iConfig.getParameter("ncandcut");
@@ -23,7 +21,11 @@ HLTDisplacedEgammaFilter::HLTDisplacedEgammaFilter(const edm::ParameterSet& iCon
inputTrk = iConfig.getParameter("inputTrack");
trkPtCut = iConfig.getParameter("trackPtCut");
- trkdRCut = iConfig.getParameter("trackdRCut");
+
+ // track dR^2 threshold with sign
+ auto const trkDrCut = iConfig.getParameter("trackdRCut");
+ trkDr2Cut = trkDrCut * std::abs(trkDrCut);
+
maxTrkCut = iConfig.getParameter("maxTrackCut");
rechitsEB = iConfig.getParameter("RecHitsEB");
@@ -41,13 +43,12 @@ HLTDisplacedEgammaFilter::HLTDisplacedEgammaFilter(const edm::ParameterSet& iCon
inputToken_ = consumes(inputTag_);
rechitsEBToken_ = consumes(rechitsEB);
rechitsEEToken_ = consumes(rechitsEE);
+
if (useTrackVeto) {
inputTrkToken_ = consumes(inputTrk);
}
}
-HLTDisplacedEgammaFilter::~HLTDisplacedEgammaFilter() = default;
-
void HLTDisplacedEgammaFilter::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
edm::ParameterSetDescription desc;
makeHLTFilterDescription(desc);
@@ -139,9 +140,8 @@ bool HLTDisplacedEgammaFilter::hltFilter(edm::Event& iEvent,
for (auto const& it : *tracks) {
if (it.pt() < trkPtCut)
continue;
- LorentzVector trkP4(it.px(), it.py(), it.pz(), it.p());
- double dR = ROOT::Math::VectorUtil::DeltaR(trkP4, ref->p4());
- if (dR < trkdRCut)
+ auto const dR2 = reco::deltaR2(it.eta(), it.phi(), ref->eta(), ref->phi());
+ if (dR2 < trkDr2Cut)
nTrk++;
if (nTrk > maxTrkCut)
break;
@@ -156,9 +156,7 @@ bool HLTDisplacedEgammaFilter::hltFilter(edm::Event& iEvent,
}
// filter decision
- bool accept(n >= ncandcut_);
-
- return accept;
+ return (n >= ncandcut_);
}
// declare this class as a framework plugin
diff --git a/HLTrigger/Egamma/plugins/HLTDisplacedEgammaFilter.h b/HLTrigger/Egamma/plugins/HLTDisplacedEgammaFilter.h
index d12f90d1a0eb7..661d9f4cf7023 100644
--- a/HLTrigger/Egamma/plugins/HLTDisplacedEgammaFilter.h
+++ b/HLTrigger/Egamma/plugins/HLTDisplacedEgammaFilter.h
@@ -1,5 +1,5 @@
-#ifndef HLTDisplacedEgammaFilter_h
-#define HLTDisplacedEgammaFilter_h
+#ifndef HLTrigger_Egamma_HLTDisplacedEgammaFilter_h
+#define HLTrigger_Egamma_HLTDisplacedEgammaFilter_h
/** \class HLTDisplacedEgammaFilter
*
@@ -7,24 +7,19 @@
*
*/
-#include "HLTrigger/HLTcore/interface/HLTFilter.h"
-
#include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h"
#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
#include "DataFormats/TrackReco/interface/Track.h"
#include "DataFormats/TrackReco/interface/TrackFwd.h"
-
-//
-// class decleration
-//
-typedef math::XYZTLorentzVector LorentzVector;
-#include