Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion DQMOffline/HLTScouting/python/HLTScoutingDqmOffline_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@

hltScoutingMuonDqmOffline = cms.Sequence(scoutingMonitoringTagProbeMuonNoVtx
* scoutingMonitoringTagProbeMuonVtx
* scoutingMonitoringTriggerMuon
* scoutingMonitoringTriggerMuon_DoubleMu
* scoutingMonitoringTriggerMuon_SingleMu
)

hltScoutingJetDqmOffline = cms.Sequence(jetMETDQMOfflineSourceScouting)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@

hltScoutingMuonPostProcessing = cms.Sequence(muonEfficiencyNoVtx
* muonEfficiencyVtx
* muonTriggerEfficiency
* muonTriggerEfficiency_DoubleMu
* muonTriggerEfficiency_SingleMu
)

hltScoutingPostProcessing = cms.Sequence(hltScoutingMuonPostProcessing + hltScoutingEGammaPostProcessing)
31 changes: 29 additions & 2 deletions HLTriggerOffline/Scouting/plugins/ScoutingMuonTagProbeAnalyzer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,8 @@ struct kProbeKinematicMuonHistos {
struct kTagProbeMuonHistos {
kProbeKinematicMuonHistos resonanceJ_numerator;
kProbeKinematicMuonHistos resonanceJ_denominator;
kProbeKinematicMuonHistos resonanceZ_numerator;
kProbeKinematicMuonHistos resonanceZ_denominator;
};

class ScoutingMuonTagProbeAnalyzer : public DQMGlobalEDAnalyzer<kTagProbeMuonHistos> {
Expand Down Expand Up @@ -207,6 +209,30 @@ void ScoutingMuonTagProbeAnalyzer::dqmAnalyze(edm::Event const& iEvent,
}
}
}
} else if ((75.0 < invMass && invMass < 107.0)) {
//Boolean added because hltScoutingMuonPackerVtx collection doesn't have vertices for the moment
if (runWithoutVtx_) {
Run3ScoutingVertex vertex;
//If probe passes tag ID, add it to the numerator
if (scoutingMuonID(sct_mu_second)) {
fillHistograms_resonance(histos.resonanceZ_numerator, sct_mu_second, vertex, invMass, -99.);
}
//Add all events to the denominator
fillHistograms_resonance(histos.resonanceZ_denominator, sct_mu_second, vertex, invMass, -99.);
} else {
if (vtxIndx_tag.empty() || vtxIndx_probe.empty())
continue;
for (const auto& commonIdx : vtxIndx_tag) {
if (std::find(vtxIndx_probe.begin(), vtxIndx_probe.end(), commonIdx) != vtxIndx_probe.end()) {
const auto& vertex = (*sctVertex)[commonIdx];
float lxy = sqrt(vertex.x() * vertex.x() + vertex.y() * vertex.y());
if (scoutingMuonID(sct_mu_second)) {
fillHistograms_resonance(histos.resonanceZ_numerator, sct_mu_second, vertex, invMass, lxy);
}
fillHistograms_resonance(histos.resonanceZ_denominator, sct_mu_second, vertex, invMass, lxy);
}
}
}
}
}
foundTag = true;
Expand Down Expand Up @@ -268,7 +294,6 @@ void ScoutingMuonTagProbeAnalyzer::fillHistograms_resonance(const kProbeKinemati
histos.htrk_phiError->Fill(mu.trk_phiError());
histos.htrk_dsz->Fill(mu.trk_dsz());
histos.htrk_dszError->Fill(mu.trk_dszError());
histos.htrk_dsz->Fill(mu.trk_dsz());
histos.htrk_vx->Fill(mu.trk_vx());
histos.htrk_vy->Fill(mu.trk_vy());
histos.htrk_vz->Fill(mu.trk_vz());
Expand Down Expand Up @@ -297,6 +322,8 @@ void ScoutingMuonTagProbeAnalyzer::bookHistograms(DQMStore::IBooker& ibook,
ibook.setCurrentFolder(outputInternalPath_);
bookHistograms_resonance(ibook, run, iSetup, histos.resonanceJ_numerator, "resonanceJ_numerator");
bookHistograms_resonance(ibook, run, iSetup, histos.resonanceJ_denominator, "resonanceJ_denominator");
bookHistograms_resonance(ibook, run, iSetup, histos.resonanceZ_numerator, "resonanceZ_numerator");
bookHistograms_resonance(ibook, run, iSetup, histos.resonanceZ_denominator, "resonanceZ_denominator");
}

// Set axes labels and range
Expand All @@ -311,7 +338,7 @@ void ScoutingMuonTagProbeAnalyzer::bookHistograms_resonance(DQMStore::IBooker& i
histos.hEta = ibook.book1D(name + "_Probe_sctMuon_Eta", name + "_Probe_sctMuon_Eta; Muon eta; Muons", 60, -5.0, 5.0);
histos.hPhi = ibook.book1D(name + "_Probe_sctMuon_Phi", name + "_Probe_sctMuon_Phi; Muon phi; Muons", 60, -3.3, 3.3);
histos.hInvMass = ibook.book1D(
name + "_sctMuon_Invariant_Mass", name + "_sctMuon_Invariant_Mass;Muon Inv mass (GeV); Muons", 100, 0, 5);
name + "_sctMuon_Invariant_Mass", name + "_sctMuon_Invariant_Mass;Muon Inv mass (GeV); Muons", 100, 0, 100);
histos.hNormChisq = ibook.book1D(
name + "_Probe_sctMuon_NormChisq", name + "_Probe_sctMuon_NormChisq; Muon normChi2; Muons", 60, 0, 5.0);
histos.hTrk_dxy =
Expand Down
12 changes: 11 additions & 1 deletion HLTriggerOffline/Scouting/plugins/ScoutingMuonTriggerAnalyzer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ scouting muon triggers (selected in python/ScoutingMuonTriggerAnalyzer_cfi.py)
#include "HLTrigger/HLTcore/interface/TriggerExpressionEvaluator.h"
#include "HLTrigger/HLTcore/interface/TriggerExpressionParser.h"
#include "L1Trigger/L1TGlobal/interface/L1TGlobalUtil.h"
#include "CommonTools/Utils/interface/StringCutObjectSelector.h"

// Classes to be declared
class ScoutingMuonTriggerAnalyzer : public DQMEDAnalyzer {
Expand All @@ -66,6 +67,7 @@ class ScoutingMuonTriggerAnalyzer : public DQMEDAnalyzer {
std::vector<std::string> l1Seeds_;
TString l1Names[100] = {""};
Bool_t l1Result[100] = {false};
StringCutObjectSelector<Run3ScoutingMuon, false> muonsCut_;

// Histogram declaration
// DENOMINATORS:
Expand Down Expand Up @@ -98,7 +100,8 @@ ScoutingMuonTriggerAnalyzer::ScoutingMuonTriggerAnalyzer(const edm::ParameterSet
vtriggerSelection_{iConfig.getParameter<vector<string>>("triggerSelection")},
scoutingMuonCollection_{
consumes<std::vector<Run3ScoutingMuon>>(iConfig.getParameter<edm::InputTag>("ScoutingMuonCollection"))},
algToken_{consumes<BXVector<GlobalAlgBlk>>(iConfig.getParameter<edm::InputTag>("AlgInputTag"))} {
algToken_{consumes<BXVector<GlobalAlgBlk>>(iConfig.getParameter<edm::InputTag>("AlgInputTag"))},
muonsCut_{iConfig.getParameter<std::string>("muonSelection")} {
vtriggerSelector_.reserve(vtriggerSelection_.size());
for (auto const& vt : vtriggerSelection_)
vtriggerSelector_.push_back(triggerExpression::parse(vt));
Expand All @@ -118,6 +121,12 @@ void ScoutingMuonTriggerAnalyzer::analyze(edm::Event const& iEvent, edm::EventSe
edm::LogWarning("ScoutingMonitoring") << "Run3ScoutingMuon collection not found.";
return;
}
//Apply cuts specified in config file
for (const auto& muon : *sctMuons) {
if (!muonsCut_(muon)) {
return;
}
}

// Check whether events pass any of the HLTriggers to add to the denominator
bool passHLTDenominator = false;
Expand Down Expand Up @@ -248,6 +257,7 @@ void ScoutingMuonTriggerAnalyzer::fillDescriptions(edm::ConfigurationDescription
desc.add<edm::InputTag>("l1tExtBlkInputTag", edm::InputTag("gtStage2Digis"));
desc.add<bool>("ReadPrescalesFromFile", false);
edm::ParameterSetDescription triggerConfig;
desc.add<std::string>("muonSelection");
triggerConfig.setAllowAnything();
desc.add<edm::ParameterSetDescription>("triggerConfiguration", triggerConfig);
descriptions.addWithDefaultLabel(desc);
Expand Down
Loading