Skip to content

Commit 305d14c

Browse files
authored
Merge pull request #47663 from mmusich/add_cosmics_hlt_monitoring_follow_up
Follow-up to add HLT tracking monitoring in cosmics
2 parents dd239f4 + 40b7674 commit 305d14c

File tree

9 files changed

+89
-12
lines changed

9 files changed

+89
-12
lines changed

Configuration/PyReleaseValidation/python/relval_steps.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3164,7 +3164,7 @@ def gen2024HiMix(fragment,howMuch):
31643164
steps['RECOCOS_UP21_0T']=merge([{'--magField':'0T','--conditions':'auto:phase1_2022_cosmics_0T'},steps['RECOCOS_UP21']])
31653165
steps['RECOCOSPEAK_UP17']=merge([{'--conditions':'auto:phase1_2017_cosmics_peak','-s':'RAW2DIGI,L1Reco,RECO,ALCA:MuAlGlobalCosmics,DQM','--scenario':'cosmics','--era':'Run2_2017'},step3Up2015Hal])
31663166
steps['RECOCOSPEAK_UP18']=merge([{'--conditions':'auto:phase1_2018_cosmics_peak','-s':'RAW2DIGI,L1Reco,RECO,ALCA:MuAlGlobalCosmics,DQM','--scenario':'cosmics','--era':'Run2_2018'},step3Up2015Hal])
3167-
steps['RECOCOS_UP25']=merge([{'--conditions':'auto:phase1_2025_cosmics','-s':'RAW2DIGI,L1Reco,RECO,ALCA:MuAlGlobalCosmics,DQM','--scenario':'cosmics','--era':'Run3_2025'},step3Up2015Hal])
3167+
steps['RECOCOS_UP25']=merge([{'--conditions':'auto:phase1_2025_cosmics','-s':'RAW2DIGI,L1Reco,RECO,ALCA:MuAlGlobalCosmics,DQM:@HLTMon','--scenario':'cosmics','--era':'Run3_2025'},step3Up2015Hal])
31683168

31693169
steps['RECOCOS_Phase2']=merge([{'--conditions': phase2CosInfo['GT'],
31703170
'-s':'RAW2DIGI,L1Reco,RECO,ALCA:MuAlGlobalCosmics',
@@ -4147,7 +4147,7 @@ def gen2024HiMix(fragment,howMuch):
41474147
'--era' : 'Run3'
41484148
}
41494149

4150-
steps['HARVESTCOS_UP25']={'-s' :'HARVESTING:dqmHarvesting',
4150+
steps['HARVESTCOS_UP25']={'-s' :'HARVESTING:@HLTMon',
41514151
'--conditions':'auto:phase1_2024_cosmics',
41524152
'--mc' :'',
41534153
'--filein' :'file:step3_inDQM.root',

DQM/TrackingMonitorSource/interface/TrackToTrackComparisonHists.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ class TrackToTrackComparisonHists : public DQMEDAnalyzer {
103103

104104
private:
105105
// edm::ParameterSet conf_;
106+
const bool isCosmics_;
106107
std::string topDirName_;
107108
double dRmin_;
108109
double pTCutForPlateau_;

DQM/TrackingMonitorSource/src/TrackToTrackComparisonHists.cc

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
TrackToTrackComparisonHists::TrackToTrackComparisonHists(const edm::ParameterSet& iConfig)
1818
: monitoredTrackInputTag_(iConfig.getParameter<edm::InputTag>("monitoredTrack")),
1919
referenceTrackInputTag_(iConfig.getParameter<edm::InputTag>("referenceTrack")),
20+
isCosmics_(iConfig.getParameter<bool>("isCosmics")),
2021
topDirName_(iConfig.getParameter<std::string>("topDirName")),
2122
dRmin_(iConfig.getParameter<double>("dRmin")),
2223
pTCutForPlateau_(iConfig.getParameter<double>("pTCutForPlateau")),
@@ -119,15 +120,17 @@ void TrackToTrackComparisonHists::analyze(const edm::Event& iEvent, const edm::E
119120

120121
edm::Handle<reco::VertexCollection> referencePVHandle;
121122
iEvent.getByToken(referencePVToken_, referencePVHandle);
122-
if (!referencePVHandle.isValid()) {
123+
if (!referencePVHandle.isValid() && !isCosmics_) {
123124
edm::LogError("TrackToTrackComparisonHists") << "referencePVHandle not found, skipping event";
124125
return;
125126
}
126-
if (referencePVHandle->empty()) {
127+
if (referencePVHandle->empty() && !isCosmics_) {
127128
edm::LogInfo("TrackToTrackComparisonHists") << "referencePVHandle->size is 0 ";
128129
return;
129130
}
130-
reco::Vertex referencePV = referencePVHandle->at(0);
131+
reco::Vertex referencePV = isCosmics_
132+
? reco::Vertex(referenceBS.position(), referenceBS.rotatedCovariance3D(), 0., 0., 0)
133+
: referencePVHandle->at(0);
131134

132135
//
133136
// Get Monitored Track Info
@@ -151,15 +154,18 @@ void TrackToTrackComparisonHists::analyze(const edm::Event& iEvent, const edm::E
151154

152155
edm::Handle<reco::VertexCollection> monitoredPVHandle;
153156
iEvent.getByToken(monitoredPVToken_, monitoredPVHandle);
154-
if (!monitoredPVHandle.isValid()) {
155-
edm::LogError("TrackToTrackComparisonHists") << "monitoredPVHandle not found, skipping event";
157+
if (!monitoredPVHandle.isValid() && !isCosmics_) {
158+
edm::LogError("TrackToTrackComparisonHists")
159+
<< "monitoredPVHandle not found, skipping event isCosmics value:" << isCosmics_;
156160
return;
157161
}
158-
if (monitoredPVHandle->empty()) {
162+
if (monitoredPVHandle->empty() && !isCosmics_) {
159163
edm::LogInfo("TrackToTrackComparisonHists") << "monitoredPVHandle->size is 0 ";
160164
return;
161165
}
162-
reco::Vertex monitoredPV = monitoredPVHandle->at(0);
166+
reco::Vertex monitoredPV = isCosmics_
167+
? reco::Vertex(monitoredBS.position(), monitoredBS.rotatedCovariance3D(), 0., 0., 0)
168+
: monitoredPVHandle->at(0);
163169

164170
edm::LogInfo("TrackToTrackComparisonHists")
165171
<< "analyzing " << monitoredTrackInputTag_.process() << ":" << monitoredTrackInputTag_.label() << ":"
@@ -306,6 +312,7 @@ void TrackToTrackComparisonHists::fillDescriptions(edm::ConfigurationDescription
306312
edm::ParameterSetDescription desc;
307313

308314
desc.add<bool>("requireValidHLTPaths", true);
315+
desc.add<bool>("isCosmics", false);
309316

310317
desc.add<edm::InputTag>("monitoredTrack", edm::InputTag("hltMergedTracks"));
311318
desc.add<edm::InputTag>("monitoredBeamSpot", edm::InputTag("hltOnlineBeamSpot"));

DQMOffline/Configuration/python/DQMOfflineCosmics_SecondStep_cff.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,3 +95,6 @@
9595
DQMOfflineCosmics_SecondStep_FakeHLT = cms.Sequence(DQMOfflineCosmics_SecondStep )
9696
DQMOfflineCosmics_SecondStep_FakeHLT.remove( DQMOfflineCosmics_SecondStepTrigger )
9797

98+
from DQMOffline.Trigger.TrackingMonitoringCosmics_Client_cff import *
99+
100+
HLTMonitoringClient = cms.Sequence(trackingMonitorCosmicsClientHLT * trackEfficiencyMonitoringCosmicsClientHLT )

DQMOffline/Configuration/python/DQMOfflineCosmics_cff.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,4 +112,6 @@
112112
DQMOfflineCosmicsPrePOG *
113113
DQMMessageLogger )
114114

115+
HLTMonitoring = cms.Sequence( OfflineHLTMonitoring )
116+
115117
PostDQMOffline = cms.Sequence()

DQMOffline/Trigger/python/DQMOffline_Trigger_cosmics_cff.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,9 @@
6969

7070
#triggerCosmicOfflineDQMSource = cms.Sequence(onlineHLTSource*offlineHLTSource)
7171
triggerCosmicOfflineDQMSource = cms.Sequence(offlineHLTSource)
72+
73+
# sequences run @tier0 on CosmicHLTMonitor PD
74+
OfflineHLTMonitoring = cms.Sequence(
75+
cosmicTrackingMonitorHLT *
76+
hltToOfflineCosmicsTrackValidatorSequence
77+
)

DQMOffline/Trigger/python/TrackToTrackMonitoringCosmics_cff.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,17 @@
1111
referenceBeamSpot = "offlineBeamSpot",
1212
topDirName = "HLT/Tracking/ValidationWRTOffline/hltCtfWithMaterialTracksP5",
1313
referencePrimaryVertices = "offlinePrimaryVertices",
14-
monitoredPrimaryVertices = "hltVerticesPFSelector"
14+
monitoredPrimaryVertices = "hltPixelVertices",
15+
isCosmics = cms.bool(True),
16+
dxyCutForPlateau = 1e6,
17+
histoPSet = dict(
18+
Dxy_rangeMin = -60,
19+
Dxy_rangeMax = 60,
20+
Dxy_nbin = 120,
21+
Dz_rangeMin = -250,
22+
Dz_rangeMax = 250,
23+
Dz_nbin = 250,
24+
)
1525
)
1626

1727
hltToOfflineCosmicsTrackValidatorSequence = cms.Sequence(hltCtfWithMaterialTracksP5_2_ctfWithMaterialTracksP5)
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import FWCore.ParameterSet.Config as cms
2+
3+
from DQMServices.Core.DQMEDHarvester import DQMEDHarvester
4+
5+
from DQM.TrackingMonitorClient.TrackingEffFromHitPatternClientConfig_cff import trackingEffFromHitPattern
6+
7+
trackingCosmicsEffFromHitPatternHLT = trackingEffFromHitPattern.clone(
8+
subDirs = ["HLT/Tracking/hltCtfWithMaterialTracksP5/HitEffFromHitPattern*"]
9+
)
10+
# Sequence
11+
trackingMonitorCosmicsClientHLT = cms.Sequence(
12+
trackingCosmicsEffFromHitPatternHLT
13+
)
14+
15+
CosmicsTrackToTrackEfficiencies = DQMEDHarvester("DQMGenericClient",
16+
subDirs = cms.untracked.vstring(
17+
"HLT/Tracking/ValidationWRTOffline/hltCtfWithMaterialTracksP5",
18+
),
19+
verbose = cms.untracked.uint32(0),
20+
resolution = cms.vstring(),
21+
efficiency = cms.vstring(
22+
"Eff_pt 'Relative Efficiency vs Pt;#P_T;relative efficiency' ref_matched_pt ref_pt eff",
23+
"Eff_eta 'Relative Efficiency vs Eta;#eta;relative efficiency' ref_matched_eta ref_eta eff",
24+
"Eff_phi 'Relative Efficiency vs Phi;#phi;relative efficiency' ref_matched_phi ref_phi eff",
25+
"Eff_dxy 'Relative Efficiency vs dxy;d_{xy};relative efficiency' ref_matched_dxy ref_dxy eff",
26+
"Eff_dz 'Relative Efficiency vs dz;d_{z};relative efficiency' ref_matched_dz ref_dz eff",
27+
"Eff_dxyWRTpv 'Relative Efficiency vs dxyWRTpv;d_{xy};relative efficiency' ref_matched_dxyWRTpv ref_dxyWRTpv eff",
28+
"Eff_dzWRTpv 'Relative Efficiency vs dzWRTpv;d_{z};relative efficiency' ref_matched_dzWRTpv ref_dzWRTpv eff",
29+
"Eff_charge 'Relative Efficiency vs charge;charge;relative efficiency' ref_matched_charge ref_charge eff",
30+
"Eff_hits 'Relative Efficiency vs hits;number of hits;relative efficiency' ref_matched_hits ref_hits eff",
31+
"Eff_LS 'Relative Efficiency vs LS;LS;relative efficiency' ref_matched_ls ref_ls eff",
32+
33+
"FakeRate_pt 'Relative Fake Rate vs Pt;#P_T;relative fake rate' mon_unMatched_pt mon_pt eff",
34+
"FakeRate_eta 'Relative Fake Rate vs Eta;#eta;relative fake rate' mon_unMatched_eta mon_eta eff",
35+
"FakeRate_phi 'Relative Fake Rate vs Phi;#phi;relative fake rate' mon_unMatched_phi mon_phi eff",
36+
"FakeRate_dxy 'Relative Fake Rate vs dxy;d_{xy};relative fake rate' mon_unMatched_dxy mon_dxy eff",
37+
"FakeRate_dz 'Relative Fake Rate vs dz;d_{z};relative fake rate' mon_unMatched_dz mon_dz eff",
38+
"FakeRate_dxyWRTpv 'Relative Fake Rate vs dxyWRTpv;d_{xy};relative fake rate' mon_unMatched_dxyWRTpv mon_dxyWRTpv eff",
39+
"FakeRate_dzWRTpv 'Relative Fake Rate vs dzWRTpv;d_{z};relative fake rate' mon_unMatched_dzWRTpv mon_dzWRTpv eff",
40+
"FakeRate_charge 'Relative Fake Rate vs charge;charge;relative fake rate' mon_unMatched_charge mon_charge eff",
41+
"FakeRate_hits 'Relative Fake Rate vs hits;number of hits;relative fake rate' mon_unMatched_hits mon_hits eff",
42+
"FakeRate_LS 'Relative Fake Rate vs LS;LS;relative fake rate' mon_unMatched_ls mon_ls eff",
43+
),
44+
)
45+
46+
trackEfficiencyMonitoringCosmicsClientHLT = cms.Sequence(
47+
CosmicsTrackToTrackEfficiencies
48+
)

DQMOffline/Trigger/python/TrackingMonitoringCosmics_cff.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
from DQM.TrackingMonitor.TrackerCosmicsTrackingMonitor_cfi import *
55
TrackMon_cosmicTkHLT = TrackerCosmicTrackMon.clone(
66
TrackProducer = 'hltCtfWithMaterialTracksP5',
7-
AlgoName = 'CKFTk',
8-
FolderName = 'HLT/Tracking/TrackParameters',
7+
AlgoName = 'CtfWithMaterialTracksP5',
8+
FolderName = 'HLT/Tracking/hltCtfWithMaterialTracksP5',
99
doSeedParameterHistos = True
1010
)
1111

0 commit comments

Comments
 (0)