Skip to content

Commit d0160a0

Browse files
committed
add the muon candidates dz plot to HLTObjectMonitor
1 parent 38e3ea5 commit d0160a0

File tree

2 files changed

+44
-6
lines changed

2 files changed

+44
-6
lines changed

DQM/HLTEvF/plugins/HLTObjectMonitor.cc

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ class HLTObjectMonitor : public DQMEDAnalyzer {
9191
void dqmBeginRun(edm::Run const&, edm::EventSetup const&) override;
9292
vector<hltPlot*> plotList;
9393
double dxyFinder(double, double, edm::Handle<reco::RecoChargedCandidateCollection>, edm::Handle<reco::BeamSpot>);
94+
double dzFinder(double, double, edm::Handle<reco::RecoChargedCandidateCollection>, edm::Handle<reco::BeamSpot>);
9495
double get_wall_time(void);
9596
// ----------member data ---------------------------
9697

@@ -153,6 +154,7 @@ class HLTObjectMonitor : public DQMEDAnalyzer {
153154
edm::ParameterSet pAL3DoubleMuZMass_pset;
154155
edm::ParameterSet diElecMass_pset;
155156
edm::ParameterSet muonDxy_pset;
157+
edm::ParameterSet muonDz_pset;
156158
edm::ParameterSet wallTime_pset;
157159

158160
string processName_;
@@ -196,6 +198,7 @@ class HLTObjectMonitor : public DQMEDAnalyzer {
196198
hltPlot pAL3DoubleMuZMass_;
197199
hltPlot diElecMass_;
198200
hltPlot muonDxy_;
201+
hltPlot muonDz_;
199202
hltPlot wallTime_;
200203
};
201204

@@ -297,6 +300,8 @@ HLTObjectMonitor::HLTObjectMonitor(const edm::ParameterSet& iConfig)
297300
plotMap[&diElecMass_] = &diElecMass_pset;
298301
muonDxy_pset = iConfig.getParameter<edm::ParameterSet>("muonDxy");
299302
plotMap[&muonDxy_] = &muonDxy_pset;
303+
muonDz_pset = iConfig.getParameter<edm::ParameterSet>("muonDz");
304+
plotMap[&muonDz_] = &muonDz_pset;
300305
jetAK8Pt_pset = iConfig.getParameter<edm::ParameterSet>("jetAK8Pt");
301306
plotMap[&jetAK8Pt_] = &jetAK8Pt_pset;
302307
tauPt_pset = iConfig.getParameter<edm::ParameterSet>("tauPt");
@@ -560,13 +565,19 @@ void HLTObjectMonitor::analyze(const edm::Event& iEvent, const edm::EventSetup&
560565
iEvent.getByToken(chargedCandToken_, recoChargedCands);
561566
edm::Handle<reco::BeamSpot> recoBeamSpot;
562567
iEvent.getByToken(beamSpotToken_, recoBeamSpot);
563-
double muon_dxy;
568+
double muon_dxy, muon_dz;
564569

565570
if (recoChargedCands.isValid() && recoBeamSpot.isValid()) {
566571
for (const auto& key : keys) {
567572
muon_dxy = dxyFinder(objects[key].eta(), objects[key].phi(), recoChargedCands, recoBeamSpot);
568-
if (muon_dxy != -99.)
573+
if (muon_dxy != -99.) {
569574
muonDxy_.ME->Fill(muon_dxy);
575+
}
576+
577+
muon_dz = dzFinder(objects[key].eta(), objects[key].phi(), recoChargedCands, recoBeamSpot);
578+
if (muon_dz != -99.) {
579+
muonDz_.ME->Fill(muon_dz);
580+
}
570581
}
571582
}
572583
}
@@ -826,6 +837,24 @@ double HLTObjectMonitor::dxyFinder(double eta,
826837
return dxy;
827838
}
828839

840+
double HLTObjectMonitor::dzFinder(double eta,
841+
double phi,
842+
edm::Handle<reco::RecoChargedCandidateCollection> recoChargedCands,
843+
edm::Handle<reco::BeamSpot> recoBeamSpot) {
844+
double dz = -99.;
845+
for (reco::RecoChargedCandidateCollection::const_iterator l3Muon = recoChargedCands->begin();
846+
l3Muon != recoChargedCands->end();
847+
l3Muon++) {
848+
if (deltaR(eta, phi, l3Muon->eta(), l3Muon->phi()) < 0.1) {
849+
dz = (l3Muon->vz() - recoBeamSpot->z0()) -
850+
((l3Muon->vx() - recoBeamSpot->x0()) * l3Muon->px() + (l3Muon->vy() - recoBeamSpot->y0()) * l3Muon->py()) /
851+
l3Muon->pt() * (l3Muon->pz() / l3Muon->pt());
852+
break;
853+
}
854+
}
855+
return dz;
856+
}
857+
829858
double HLTObjectMonitor::get_wall_time() {
830859
struct timeval time;
831860
if (gettimeofday(&time, nullptr))

DQM/HLTEvF/python/HLTObjectMonitor_cfi.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -431,9 +431,19 @@
431431
plotLabel = cms.string("Muon_dxy"),
432432
axisLabel = cms.string("muon d_{xy} [mm]"),
433433
mainWorkspace = cms.bool(True),
434-
NbinsX = cms.int32(2000),
435-
Xmin = cms.double(-10),
436-
Xmax = cms.double(10)
434+
NbinsX = cms.int32(200),
435+
Xmin = cms.double(-0.1),
436+
Xmax = cms.double(0.1)
437+
),
438+
muonDz = cms.PSet(
439+
pathName = cms.string("HLT_DoubleMu43NoFiltersNoVtx"),
440+
moduleName = cms.string("hltL3fDimuonL1f0L2NVf16L3NoFiltersNoVtxFiltered43"),
441+
plotLabel = cms.string("Muon_dz"),
442+
axisLabel = cms.string("muon d_{z} [mm]"),
443+
mainWorkspace = cms.bool(True),
444+
NbinsX = cms.int32(200),
445+
Xmin = cms.double(-100),
446+
Xmax = cms.double(100)
437447
),
438448
wallTime = cms.PSet(
439449
pathName = cms.string("wall time per event"),
@@ -445,5 +455,4 @@
445455
Xmin = cms.double(0),
446456
Xmax = cms.double(0.005)
447457
)
448-
449458
)

0 commit comments

Comments
 (0)