Skip to content

Commit a619921

Browse files
committed
add support for DQM of scouting pf rechits
1 parent 043863c commit a619921

File tree

2 files changed

+54
-3
lines changed

2 files changed

+54
-3
lines changed

DQM/HLTEvF/plugins/ScoutingCollectionMonitor.cc

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ It is based on the preexisting work of the scouting group and can be found at gi
3535
#include "DataFormats/Scouting/interface/Run3ScoutingPhoton.h"
3636
#include "DataFormats/Scouting/interface/Run3ScoutingTrack.h"
3737
#include "DataFormats/Scouting/interface/Run3ScoutingVertex.h"
38+
#include "DataFormats/Scouting/interface/Run3ScoutingEBRecHit.h"
39+
#include "DataFormats/Scouting/interface/Run3ScoutingEERecHit.h"
40+
#include "DataFormats/Scouting/interface/Run3ScoutingHBHERecHit.h"
3841
#include "FWCore/Common/interface/TriggerNames.h"
3942
#include "FWCore/Framework/interface/Event.h"
4043
#include "FWCore/Framework/interface/Frameworkfwd.h"
@@ -62,6 +65,14 @@ class ScoutingCollectionMonitor : public DQMEDAnalyzer {
6265
void analyze(const edm::Event&, const edm::EventSetup&) override;
6366
void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
6467

68+
template <typename T>
69+
void setToken(edm::EDGetTokenT<T>& token, const edm::ParameterSet& iConfig, std::string name) {
70+
const auto inputTag = iConfig.getParameter<edm::InputTag>(name);
71+
if (!inputTag.encode().empty()) {
72+
token = consumes(inputTag);
73+
}
74+
}
75+
6576
template <typename T>
6677
bool getValidHandle(const edm::Event& iEvent,
6778
const edm::EDGetTokenT<T>& token,
@@ -105,6 +116,11 @@ class ScoutingCollectionMonitor : public DQMEDAnalyzer {
105116
const edm::EDGetTokenT<OnlineLuminosityRecord> onlineMetaDataDigisToken_;
106117
const std::string topfoldername_;
107118

119+
// calo rechits (only 2025 V1.3 onwards, see )
120+
edm::EDGetTokenT<std::vector<Run3ScoutingEBRecHitCollection>> ebRecHitsToken_;
121+
edm::EDGetTokenT<std::vector<Run3ScoutingEERecHitCollection>> eeRecHitsToken_;
122+
edm::EDGetTokenT<std::vector<Run3ScoutingHBHERecHitCollection>> hbheRecHitsToken_;
123+
108124
// pv vs PU and rho vs PU plots
109125
int primaryVertex_counter = 0;
110126
float avgPileUp;
@@ -384,6 +400,11 @@ class ScoutingCollectionMonitor : public DQMEDAnalyzer {
384400
dqm::reco::MonitorElement* tk_chi2_prob_hist;
385401
dqm::reco::MonitorElement* tk_PV_dxy_hist;
386402
dqm::reco::MonitorElement* tk_PV_dz_hist;
403+
404+
// calo rechits histrograms
405+
dqm::reco::MonitorElement* ebRecHitsNumber;
406+
dqm::reco::MonitorElement* eeRecHitsNumber;
407+
dqm::reco::MonitorElement* hbheRecHitsNumber;
387408
};
388409

389410
//
@@ -408,7 +429,11 @@ ScoutingCollectionMonitor::ScoutingCollectionMonitor(const edm::ParameterSet& iC
408429
pfjetsToken_(consumes<std::vector<Run3ScoutingPFJet>>(iConfig.getParameter<edm::InputTag>("pfjets"))),
409430
tracksToken_(consumes<std::vector<Run3ScoutingTrack>>(iConfig.getParameter<edm::InputTag>("tracks"))),
410431
onlineMetaDataDigisToken_(consumes(iConfig.getParameter<edm::InputTag>("onlineMetaDataDigis"))),
411-
topfoldername_(iConfig.getParameter<std::string>("topfoldername")) {}
432+
topfoldername_(iConfig.getParameter<std::string>("topfoldername")) {
433+
setToken(ebRecHitsToken_, iConfig, "pfRecHitsEB");
434+
setToken(eeRecHitsToken_, iConfig, "pfRecHitsEE");
435+
setToken(hbheRecHitsToken_, iConfig, "pfRecHitsHBHE");
436+
}
412437

413438
//
414439
// member functions
@@ -797,6 +822,21 @@ void ScoutingCollectionMonitor::analyze(const edm::Event& iEvent, const edm::Eve
797822
tk_PV_dxy_hist->Fill(best_offset.first);
798823
tk_PV_dz_hist->Fill(best_offset.second);
799824
}
825+
826+
if (!ebRecHitsToken_.isUninitialized()) {
827+
auto const& ebRecHits = iEvent.get(ebRecHitsToken_);
828+
ebRecHitsNumber->Fill(ebRecHits.size());
829+
}
830+
831+
if (!eeRecHitsToken_.isUninitialized()) {
832+
auto const& eeRecHits = iEvent.get(eeRecHitsToken_);
833+
eeRecHitsNumber->Fill(eeRecHits.size());
834+
}
835+
836+
if (!hbheRecHitsToken_.isUninitialized()) {
837+
auto const& hbheRecHits = iEvent.get(hbheRecHitsToken_);
838+
hbheRecHitsNumber->Fill(hbheRecHits.size());
839+
}
800840
}
801841

802842
// ------------ method called once each job just before starting event loop ------------
@@ -1203,6 +1243,12 @@ void ScoutingCollectionMonitor::bookHistograms(DQMStore::IBooker& ibook,
12031243
tk_chi2_prob_hist = ibook.book1DD("tk_chi2_prob_hist", "p(#chi^{2}, NDOF); p(#chi^{2}, NDOF); Entries", 100, 0, 1);
12041244
tk_PV_dz_hist = ibook.book1DD("tk_PV_dz", "Track dz w.r.t. PV; Track dz w.r.t. PV; Entries", 100, -0.35, 0.35);
12051245
tk_PV_dxy_hist = ibook.book1DD("tk_PV_dxy", "Track dxy w.r.t. PV; Track dxy w.r.t. PV; Entries", 100, -0.15, 0.15);
1246+
1247+
ibook.setCurrentFolder(topfoldername_ + "/CaloRecHits");
1248+
ebRecHitsNumber = ibook.book1D("ebRechitsN", "number of eb RecHits; number of EB recHits; events", 100, 0.0, 1000.0);
1249+
eeRecHitsNumber = ibook.book1D("eeRechitsN", "number of ee RecHits; number of EE recHits; events", 100, 0.0, 1000.0);
1250+
hbheRecHitsNumber =
1251+
ibook.book1D("hbheRechitsN", "number of hbhe RecHits; number of HBHE recHits; events", 100, 0.0, 1000.0);
12061252
}
12071253
// ------------ method fills 'descriptions' with the allowed parameters for the module ------------
12081254

@@ -1223,6 +1269,9 @@ void ScoutingCollectionMonitor::fillDescriptions(edm::ConfigurationDescriptions&
12231269
desc.add<edm::InputTag>("pfMetPhi", edm::InputTag("hltScoutingPFPacker", "pfMetPhi"));
12241270
desc.add<edm::InputTag>("rho", edm::InputTag("hltScoutingPFPacker", "rho"));
12251271
desc.add<edm::InputTag>("onlineMetaDataDigis", edm::InputTag("onlineMetaDataDigis"));
1272+
desc.add<edm::InputTag>("pfRecHitsEB", edm::InputTag(""));
1273+
desc.add<edm::InputTag>("pfRecHitsEE", edm::InputTag(""));
1274+
desc.add<edm::InputTag>("pfRecHitsHBHE", edm::InputTag(""));
12261275
desc.add<std::string>("topfoldername", "HLT/ScoutingOffline/Miscellaneous");
12271276
descriptions.addWithDefaultLabel(desc);
12281277
}

DQM/HLTEvF/python/ScoutingCollectionMonitor_cfi.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
pfMetPt = cms.InputTag("hltScoutingPFPacker","pfMetPt"),
1818
pfMetPhi = cms.InputTag("hltScoutingPFPacker","pfMetPhi"),
1919
rho = cms.InputTag("hltScoutingPFPacker","rho"),
20-
topfoldername = cms.string("HLT/ScoutingOffline/Miscellaneous")
21-
)
20+
topfoldername = cms.string("HLT/ScoutingOffline/Miscellaneous"),
21+
pfRecHitsEB = cms.InputTag(""),
22+
pfRecHitsEE = cms.InputTag(""),
23+
pfRecHitsHBHE = cms.InputTag(""))
2224

0 commit comments

Comments
 (0)