Skip to content

Commit bb1c227

Browse files
authored
Merge pull request #47833 from lathomas/hltdiegmaxdrfilter
Adding optional deltaR cuts to HLTPMMassFilter
2 parents 9d5f118 + 27ac11d commit bb1c227

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

HLTrigger/Egamma/plugins/HLTPMMassFilter.cc

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ HLTPMMassFilter::HLTPMMassFilter(const edm::ParameterSet& iConfig) : HLTFilter(i
2020

2121
lowerMassCut_ = iConfig.getParameter<double>("lowerMassCut");
2222
upperMassCut_ = iConfig.getParameter<double>("upperMassCut");
23+
lowerdRCut_ = iConfig.getParameter<double>("lowerdRCut");
24+
upperdRCut_ = iConfig.getParameter<double>("upperdRCut");
25+
lowerdR2Cut_ = lowerdRCut_ >= 0 ? lowerdRCut_ * lowerdRCut_ : 0;
26+
upperdR2Cut_ = upperdRCut_ >= 0 ? upperdRCut_ * upperdRCut_ : 99999;
2327
nZcandcut_ = iConfig.getParameter<int>("nZcandcut");
2428
reqOppCharge_ = iConfig.getUntrackedParameter<bool>("reqOppCharge", false);
2529
isElectron1_ = iConfig.getUntrackedParameter<bool>("isElectron1", true);
@@ -38,6 +42,8 @@ void HLTPMMassFilter::fillDescriptions(edm::ConfigurationDescriptions& descripti
3842
desc.add<edm::InputTag>("beamSpot", edm::InputTag("hltOfflineBeamSpot"));
3943
desc.add<double>("lowerMassCut", 8.0);
4044
desc.add<double>("upperMassCut", 11.0);
45+
desc.add<double>("lowerdRCut", 0.0);
46+
desc.add<double>("upperdRCut", 9999.0);
4147
desc.add<int>("nZcandcut", 1);
4248
desc.addUntracked<bool>("reqOppCharge", true);
4349
desc.addUntracked<bool>("isElectron1", false);
@@ -157,7 +163,9 @@ bool HLTPMMassFilter::isGoodPair(TLorentzVector const& v1, TLorentzVector const&
157163
return false;
158164

159165
auto const mass = (v1 + v2).M();
160-
return (mass >= lowerMassCut_ and mass <= upperMassCut_);
166+
auto const dr2 = reco::deltaR2(v1.Eta(), v1.Phi(), v2.Eta(), v2.Phi());
167+
168+
return (mass >= lowerMassCut_ and mass <= upperMassCut_ and dr2 >= lowerdR2Cut_ and dr2 <= upperdR2Cut_);
161169
}
162170

163171
TLorentzVector HLTPMMassFilter::approxMomAtVtx(const MagneticField& magField,

HLTrigger/Egamma/plugins/HLTPMMassFilter.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "DataFormats/EgammaReco/interface/SuperCluster.h"
1616
#include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
1717
#include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h"
18+
#include "DataFormats/Math/interface/deltaR.h"
1819
#include "DataFormats/Math/interface/Point3D.h"
1920
#include "DataFormats/RecoCandidate/interface/RecoEcalCandidate.h"
2021
#include "DataFormats/RecoCandidate/interface/RecoEcalCandidateFwd.h"
@@ -52,6 +53,10 @@ class HLTPMMassFilter : public HLTFilter {
5253
edm::EDGetTokenT<reco::BeamSpot> beamSpotToken_;
5354
double lowerMassCut_;
5455
double upperMassCut_;
56+
double lowerdRCut_;
57+
double upperdRCut_;
58+
double lowerdR2Cut_;
59+
double upperdR2Cut_;
5560
int nZcandcut_; // number of Z candidates required
5661
bool reqOppCharge_;
5762

0 commit comments

Comments
 (0)