Skip to content
Open
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import FWCore.ParameterSet.Config as cms

# This modifier performs the host/device validation for the Phase 2 HLT
alpakaValidationHLT = cms.Modifier()
1 change: 1 addition & 0 deletions Configuration/PyReleaseValidation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ The offsets currently in use are:
* 0.75: HLT phase-2 timing menu
* 0.7501: HLT phase-2 tracking-only menu
* 0.7502: HLT phase-2 menu, with tracking ntuple
* 0.7503: HLT phase-2 menu, CPU vs. GPU validation
* 0.751: HLT phase-2 timing menu Alpaka variant
* 0.752: HLT phase-2 timing menu ticl_v5 variant
* 0.7521: HLT phase-2 timing menu ticl_v5, ticlv5TrackLinkingGNN variant
Expand Down
1 change: 1 addition & 0 deletions Configuration/PyReleaseValidation/python/relval_Run4.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
# Phase-2 HLT tests
numWFIB.extend([prefixDet+34.7501]) # HLTTrackingOnly75e33
numWFIB.extend([prefixDet+34.7502]) # HLTTrackingNtuple75e33
numWFIB.extend([prefixDet+34.7503]) # HLTHeterogeneousValid
numWFIB.extend([prefixDet+34.751]) # HLTTiming75e33, alpaka
numWFIB.extend([prefixDet+34.752]) # HLTTiming75e33, ticl_v5
numWFIB.extend([prefixDet+34.7521]) # HLTTiming75e33, ticl_v5, ticlv5TrackLinkingGNN
Expand Down
2 changes: 2 additions & 0 deletions Configuration/PyReleaseValidation/python/relval_gpu.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,12 +83,14 @@
prefixDet+34.612,
prefixDet+61.402,
prefixDet+34.712, prefixDet+34.713,
prefixDet+34.7503,
prefixDet+34.751,
prefixDet+61.751,

# Run4, Alpaka-based PU
prefixDet+234.402, prefixDet+234.4021, prefixDet+234.403, prefixDet+234.404,
prefixDet+234.712, prefixDet+234.713,
prefixDet+234.7503,
prefixDet+234.751,
]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1998,6 +1998,18 @@ def condition(self, fragment, stepList, key, hasHarvest):
'--customise' : 'Validation/RecoTrack/customiseTrackingNtuple.customiseTrackingNtupleHLT,Validation/RecoTrack/customiseTrackingNtuple.extendedContent'
}

upgradeWFs['HLTHeterogeneousValid'] = deepcopy(upgradeWFs['HLTTiming75e33'])
upgradeWFs['HLTHeterogeneousValid'].suffix = '_HLTHeterogeneousValid'
upgradeWFs['HLTHeterogeneousValid'].offset = 0.7503
upgradeWFs['HLTHeterogeneousValid'].step2['-s'] = upgradeWFs['HLTHeterogeneousValid'].step2['-s'].replace(
'HLT:75e33_timing', 'HLT:75e33'
)
upgradeWFs['HLTHeterogeneousValid'].step2['--procModifiers'] = 'alpakaValidationHLT'
upgradeWFs['HLTHeterogeneousValid'].step3['-s'] = upgradeWFs['HLTHeterogeneousValid'].step3['-s'].replace(
'HARVESTING:@hltValidation', 'HARVESTING:@hltValidation+HLTHeterogeneousMonitoringHarvesting'
)
upgradeWFs['HLTHeterogeneousValid'].step3['--procModifiers'] = 'alpakaValidationHLT'

upgradeWFs['HLTTiming75e33Alpaka'] = deepcopy(upgradeWFs['HLTTiming75e33'])
upgradeWFs['HLTTiming75e33Alpaka'].suffix = '_HLT75e33TimingAlpaka'
upgradeWFs['HLTTiming75e33Alpaka'].offset = 0.751
Expand Down
36 changes: 24 additions & 12 deletions DQM/TrackingMonitorSource/plugins/TrackToTrackComparisonHists.cc
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ class TrackToTrackComparisonHists : public DQMEDAnalyzer {
const double dxyCutForPlateau_;
const double dzWRTPvCut_;
const bool requireValidHLTPaths_;
bool ignoreLumiPUPlots_;

bool hltPathsAreValid_ = false;
std::unique_ptr<GenericTriggerEventFlag> genTriggerEventFlag_;
Expand Down Expand Up @@ -174,6 +175,7 @@ TrackToTrackComparisonHists::TrackToTrackComparisonHists(const edm::ParameterSet
dxyCutForPlateau_(iConfig.getParameter<double>("dxyCutForPlateau")),
dzWRTPvCut_(iConfig.getParameter<double>("dzWRTPvCut")),
requireValidHLTPaths_(iConfig.getParameter<bool>("requireValidHLTPaths")),
ignoreLumiPUPlots_(iConfig.getParameter<bool>("ignoreLumiPUPlots")),
genTriggerEventFlag_(new GenericTriggerEventFlag(
iConfig.getParameter<edm::ParameterSet>("genericTriggerEventPSet"), consumesCollector(), *this))

Expand Down Expand Up @@ -234,8 +236,13 @@ void TrackToTrackComparisonHists::analyze(const edm::Event& iEvent, const edm::E
onlinelumi = scalit->instantLumi();
PU = scalit->pileup();
} else {
edm::LogError("TrackToTrackComparisonHists") << "lumiScalersHandle not found or empty, skipping event";
return;
// When ignoring lumi and PU plots, keep their initial values to -1 and continue.
if (ignoreLumiPUPlots_) {
edm::LogInfo("TrackToTrackComparisonHists") << "ignoring lumi and PU plots";
} else {
edm::LogError("TrackToTrackComparisonHists") << "lumiScalersHandle not found or empty, skipping event";
return;
}
}

// lambda function to get the event data products
Expand Down Expand Up @@ -434,6 +441,7 @@ void TrackToTrackComparisonHists::fillDescriptions(edm::ConfigurationDescription
edm::ParameterSetDescription desc;

desc.add<bool>("requireValidHLTPaths", true);
desc.add<bool>("ignoreLumiPUPlots", false);
desc.add<bool>("isCosmics", false);

desc.add<edm::InputTag>("monitoredTrack", edm::InputTag("hltMergedTracks"));
Expand Down Expand Up @@ -547,13 +555,15 @@ void TrackToTrackComparisonHists::book_generic_tracks_histos(DQMStore::IBooker&
// counts of tracks vs lumi
// for this moment, xmin,xmax and binning are hardcoded, maybe in future in a config file!
// have to add (declare) this in the .h file as well
(mes.h_onlinelumi) = ibooker.book1D(label + "_onlinelumi",
"number of tracks vs onlinelumi",
onlinelumi_nbin,
onlinelumi_rangeMin,
onlinelumi_rangeMax);
(mes.h_ls) = ibooker.book1D(label + "_ls", "number of tracks vs ls", ls_nbin, ls_rangeMin, ls_rangeMax);
(mes.h_PU) = ibooker.book1D(label + "_PU", "number of tracks vs PU", PU_nbin, PU_rangeMin, PU_rangeMax);
if (!ignoreLumiPUPlots_) {
(mes.h_onlinelumi) = ibooker.book1D(label + "_onlinelumi",
"number of tracks vs onlinelumi",
onlinelumi_nbin,
onlinelumi_rangeMin,
onlinelumi_rangeMax);
(mes.h_ls) = ibooker.book1D(label + "_ls", "number of tracks vs ls", ls_nbin, ls_rangeMin, ls_rangeMax);
(mes.h_PU) = ibooker.book1D(label + "_PU", "number of tracks vs PU", PU_nbin, PU_rangeMin, PU_rangeMax);
}
}

void TrackToTrackComparisonHists::book_matching_tracks_histos(DQMStore::IBooker& ibooker,
Expand Down Expand Up @@ -643,9 +653,11 @@ void TrackToTrackComparisonHists::fill_generic_tracks_histos(generalME& mes,
(mes.h_dzWRTpv)->Fill(dzWRTpv);
(mes.h_charge)->Fill(charge);
(mes.h_hits)->Fill(nhits);
(mes.h_onlinelumi)->Fill(onlinelumi);
(mes.h_ls)->Fill(ls);
(mes.h_PU)->Fill(PU);
if (!ignoreLumiPUPlots_) {
(mes.h_onlinelumi)->Fill(onlinelumi);
(mes.h_ls)->Fill(ls);
(mes.h_PU)->Fill(PU);
}
}

if (pTOnPlateau || !requirePlateau) {
Expand Down
40 changes: 40 additions & 0 deletions DQMOffline/Trigger/python/HeterogeneousMonitoringClient_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,46 @@
from DQM.SiPixelHeterogeneous.siPixelTrackComparisonHarvester_cfi import *
hltSiPixelTrackComparisonHarvester = siPixelTrackComparisonHarvester.clone(topFolderName = 'HLT/HeterogeneousComparisons/PixelTracks')

from Configuration.ProcessModifiers.alpakaValidationHLT_cff import alpakaValidationHLT
alpakaValidationHLT.toModify(hltSiPixelTrackComparisonHarvester,
topFolderName = 'HLT/HeterogeneousComparisons/pixelTracksSoA'
)

from DQMServices.Core.DQMEDHarvester import DQMEDHarvester
hltTrackToTrackEfficiencies = DQMEDHarvester("DQMGenericClient",
subDirs = cms.untracked.vstring(
"HLT/HeterogeneousComparisons/pixelTracks",
"HLT/HeterogeneousComparisons/initialStepSeedTracks",
),
verbose = cms.untracked.uint32(0),
resolution = cms.vstring(),
efficiency = cms.vstring(
"Eff_pt 'Relative Efficiency vs Pt;#P_T;relative efficiency' ref_matched_pt ref_pt eff",
"Eff_eta 'Relative Efficiency vs Eta;#eta;relative efficiency' ref_matched_eta ref_eta eff",
"Eff_phi 'Relative Efficiency vs Phi;#phi;relative efficiency' ref_matched_phi ref_phi eff",
"Eff_dxy 'Relative Efficiency vs dxy;d_{xy};relative efficiency' ref_matched_dxy ref_dxy eff",
"Eff_dz 'Relative Efficiency vs dz;d_{z};relative efficiency' ref_matched_dz ref_dz eff",
"Eff_dxyWRTpv 'Relative Efficiency vs dxyWRTpv;d_{xy};relative efficiency' ref_matched_dxyWRTpv ref_dxyWRTpv eff",
"Eff_dzWRTpv 'Relative Efficiency vs dzWRTpv;d_{z};relative efficiency' ref_matched_dzWRTpv ref_dzWRTpv eff",
"Eff_charge 'Relative Efficiency vs charge;charge;relative efficiency' ref_matched_charge ref_charge eff",
"Eff_hits 'Relative Efficiency vs hits;number of hits;relative efficiency' ref_matched_hits ref_hits eff",

"FakeRate_pt 'Relative Fake Rate vs Pt;#P_T;relative fake rate' mon_unMatched_pt mon_pt eff",
"FakeRate_eta 'Relative Fake Rate vs Eta;#eta;relative fake rate' mon_unMatched_eta mon_eta eff",
"FakeRate_phi 'Relative Fake Rate vs Phi;#phi;relative fake rate' mon_unMatched_phi mon_phi eff",
"FakeRate_dxy 'Relative Fake Rate vs dxy;d_{xy};relative fake rate' mon_unMatched_dxy mon_dxy eff",
"FakeRate_dz 'Relative Fake Rate vs dz;d_{z};relative fake rate' mon_unMatched_dz mon_dz eff",
"FakeRate_dxyWRTpv 'Relative Fake Rate vs dxyWRTpv;d_{xy};relative fake rate' mon_unMatched_dxyWRTpv mon_dxyWRTpv eff",
"FakeRate_dzWRTpv 'Relative Fake Rate vs dzWRTpv;d_{z};relative fake rate' mon_unMatched_dzWRTpv mon_dzWRTpv eff",
"FakeRate_charge 'Relative Fake Rate vs charge;charge;relative fake rate' mon_unMatched_charge mon_charge eff",
"FakeRate_hits 'Relative Fake Rate vs hits;number of hits;relative fake rate' mon_unMatched_hits mon_hits eff",
),
)

HLTHeterogeneousMonitoringHarvesting = cms.Sequence(
hltSiPixelTrackComparisonHarvester
)

_HLTHeterogeneousMonitoringHarvesting = HLTHeterogeneousMonitoringHarvesting.copy()
_HLTHeterogeneousMonitoringHarvesting += hltTrackToTrackEfficiencies
alpakaValidationHLT.toReplaceWith(HLTHeterogeneousMonitoringHarvesting, _HLTHeterogeneousMonitoringHarvesting)
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
import FWCore.ParameterSet.Config as cms

hltInitialStepSeedsTrackToTrackSerialSync = cms.EDProducer("TrackToTrackComparisonHists",
dRmin = cms.double(0.002),
dxyCutForPlateau = cms.double(2.5),
dzWRTPvCut = cms.double(1000000),
genericTriggerEventPSet = cms.PSet(
ReadPrescalesFromFile = cms.bool(False),
andOr = cms.bool(False),
andOrDcs = cms.bool(False),
andOrHlt = cms.bool(False),
andOrL1 = cms.bool(False),
dbLabel = cms.string(''),
dcsInputTag = cms.InputTag("scalersRawToDigi"),
dcsPartitions = cms.vint32(),
dcsRecordInputTag = cms.InputTag("onlineMetaDataDigis"),
errorReplyDcs = cms.bool(False),
errorReplyHlt = cms.bool(False),
errorReplyL1 = cms.bool(False),
hltDBKey = cms.string(''),
hltInputTag = cms.InputTag(""),
hltPaths = cms.vstring(),
l1Algorithms = cms.vstring(),
l1BeforeMask = cms.bool(False),
l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
stage2 = cms.bool(True),
verbosityLevel = cms.uint32(0)
),
histoPSet = cms.PSet(
Dxy_nbin = cms.uint32(300),
Dxy_rangeMax = cms.double(1),
Dxy_rangeMin = cms.double(-1),
Dz_nbin = cms.uint32(60),
Dz_rangeMax = cms.double(30),
Dz_rangeMin = cms.double(-30),
Eta_nbin = cms.uint32(50),
Eta_rangeMax = cms.double(4.0),
Eta_rangeMin = cms.double(-4.0),
PU_nbin = cms.uint32(200),
PU_rangeMax = cms.double(200.0),
PU_rangeMin = cms.double(0),
Phi_nbin = cms.uint32(36),
Phi_rangeMax = cms.double(3.1416),
Phi_rangeMin = cms.double(-3.1416),
Pt_nbin = cms.uint32(1000),
Pt_rangeMax = cms.double(100),
Pt_rangeMin = cms.double(0.1),
dxyRes_nbin = cms.uint32(500),
dxyRes_rangeMax = cms.double(0.05),
dxyRes_rangeMin = cms.double(-0.05),
dzRes_nbin = cms.uint32(150),
dzRes_rangeMax = cms.double(0.05),
dzRes_rangeMin = cms.double(-0.05),
etaRes_nbin = cms.uint32(300),
etaRes_rangeMax = cms.double(0.01),
etaRes_rangeMin = cms.double(-0.01),
ls_nbin = cms.uint32(300),
ls_rangeMax = cms.uint32(3000),
ls_rangeMin = cms.uint32(0),
onlinelumi_nbin = cms.uint32(375),
onlinelumi_rangeMax = cms.double(25000.0),
onlinelumi_rangeMin = cms.double(200.0),
phiRes_nbin = cms.uint32(300),
phiRes_rangeMax = cms.double(0.01),
phiRes_rangeMin = cms.double(-0.01),
ptRes_nbin = cms.uint32(100),
ptRes_rangeMax = cms.double(0.1),
ptRes_rangeMin = cms.double(-0.1)
),
ignoreLumiPUPlots = cms.bool(True),
isCosmics = cms.bool(False),
mightGet = cms.optional.untracked.vstring,
monitoredBeamSpot = cms.InputTag("hltOnlineBeamSpot"),
monitoredPrimaryVertices = cms.InputTag("hltPhase2PixelVertices"),
monitoredTrack = cms.InputTag("hltInitialStepTrajectorySeedsLSTTracks"),
onlineMetaDataDigis = cms.InputTag("onlineMetaDataDigis"),
pTCutForPlateau = cms.double(0.9),
referenceBeamSpot = cms.InputTag("hltOnlineBeamSpot"),
referencePrimaryVertices = cms.InputTag("hltPhase2PixelVerticesSerialSync"),
referenceTrack = cms.InputTag("hltInitialStepTrajectorySeedsLSTTracksSerialSync"),
requireValidHLTPaths = cms.bool(False),
scalers = cms.InputTag("scalersRawToDigi"),
topDirName = cms.string('HLT/HeterogeneousComparisons/initialStepSeedTracks')
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import FWCore.ParameterSet.Config as cms
from HeterogeneousCore.AlpakaCore.functions import makeSerialClone

hltInitialStepTrajectorySeedsLSTTracks = cms.EDProducer(
"TrackFromSeedProducer",
src = cms.InputTag("hltInitialStepTrajectorySeedsLST"),
beamSpot = cms.InputTag("hltOnlineBeamSpot"),
TTRHBuilder = cms.string("hltESPTTRHBuilderWithoutRefit")
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
import FWCore.ParameterSet.Config as cms

hltPixelTrackToTrackSerialSync = cms.EDProducer("TrackToTrackComparisonHists",
dRmin = cms.double(0.002),
dxyCutForPlateau = cms.double(2.5),
dzWRTPvCut = cms.double(1000000),
genericTriggerEventPSet = cms.PSet(
ReadPrescalesFromFile = cms.bool(False),
andOr = cms.bool(False),
andOrDcs = cms.bool(False),
andOrHlt = cms.bool(False),
andOrL1 = cms.bool(False),
dbLabel = cms.string(''),
dcsInputTag = cms.InputTag("scalersRawToDigi"),
dcsPartitions = cms.vint32(),
dcsRecordInputTag = cms.InputTag("onlineMetaDataDigis"),
errorReplyDcs = cms.bool(False),
errorReplyHlt = cms.bool(False),
errorReplyL1 = cms.bool(False),
hltDBKey = cms.string(''),
hltInputTag = cms.InputTag(""),
hltPaths = cms.vstring(),
l1Algorithms = cms.vstring(),
l1BeforeMask = cms.bool(False),
l1tAlgBlkInputTag = cms.InputTag("gtStage2Digis"),
l1tExtBlkInputTag = cms.InputTag("gtStage2Digis"),
stage2 = cms.bool(True),
verbosityLevel = cms.uint32(0)
),
histoPSet = cms.PSet(
Dxy_nbin = cms.uint32(300),
Dxy_rangeMax = cms.double(1),
Dxy_rangeMin = cms.double(-1),
Dz_nbin = cms.uint32(60),
Dz_rangeMax = cms.double(30),
Dz_rangeMin = cms.double(-30),
Eta_nbin = cms.uint32(50),
Eta_rangeMax = cms.double(4.0),
Eta_rangeMin = cms.double(-4.0),
PU_nbin = cms.uint32(200),
PU_rangeMax = cms.double(200.0),
PU_rangeMin = cms.double(0),
Phi_nbin = cms.uint32(36),
Phi_rangeMax = cms.double(3.1416),
Phi_rangeMin = cms.double(-3.1416),
Pt_nbin = cms.uint32(1000),
Pt_rangeMax = cms.double(100),
Pt_rangeMin = cms.double(0.1),
dxyRes_nbin = cms.uint32(500),
dxyRes_rangeMax = cms.double(0.05),
dxyRes_rangeMin = cms.double(-0.05),
dzRes_nbin = cms.uint32(150),
dzRes_rangeMax = cms.double(0.05),
dzRes_rangeMin = cms.double(-0.05),
etaRes_nbin = cms.uint32(300),
etaRes_rangeMax = cms.double(0.01),
etaRes_rangeMin = cms.double(-0.01),
ls_nbin = cms.uint32(300),
ls_rangeMax = cms.uint32(3000),
ls_rangeMin = cms.uint32(0),
onlinelumi_nbin = cms.uint32(375),
onlinelumi_rangeMax = cms.double(25000.0),
onlinelumi_rangeMin = cms.double(200.0),
phiRes_nbin = cms.uint32(300),
phiRes_rangeMax = cms.double(0.01),
phiRes_rangeMin = cms.double(-0.01),
ptRes_nbin = cms.uint32(100),
ptRes_rangeMax = cms.double(0.1),
ptRes_rangeMin = cms.double(-0.1)
),
ignoreLumiPUPlots = cms.bool(True),
isCosmics = cms.bool(False),
mightGet = cms.optional.untracked.vstring,
monitoredBeamSpot = cms.InputTag("hltOnlineBeamSpot"),
monitoredPrimaryVertices = cms.InputTag("hltPhase2PixelVertices"),
monitoredTrack = cms.InputTag("hltPhase2PixelTracks"),
onlineMetaDataDigis = cms.InputTag("onlineMetaDataDigis"),
pTCutForPlateau = cms.double(0.9),
referenceBeamSpot = cms.InputTag("hltOnlineBeamSpot"),
referencePrimaryVertices = cms.InputTag("hltPhase2PixelVerticesSerialSync"),
referenceTrack = cms.InputTag("hltPhase2PixelTracksSerialSync"),
requireValidHLTPaths = cms.bool(False),
scalers = cms.InputTag("scalersRawToDigi"),
topDirName = cms.string('HLT/HeterogeneousComparisons/pixelTracks')
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import FWCore.ParameterSet.Config as cms

hltPixelTracksSoACompareGPUvsCPU = cms.EDProducer('SiPixelCompareTracksSoA',
pixelTrackReferenceSoA = cms.InputTag('hltPhase2PixelTracksSoASerialSync'),
pixelTrackTargetSoA = cms.InputTag('hltPhase2PixelTracksSoA'),
topFolderName = cms.string('HLT/HeterogeneousComparisons/pixelTracksSoA'),
useQualityCut = cms.bool(True),
minQuality = cms.string('loose'),
deltaR2cut = cms.double(0.0004),
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import FWCore.ParameterSet.Config as cms

hltPixelTracksSoAMonitorCPU = cms.EDProducer('SiPixelMonitorTrackSoA',
pixelTrackSrc = cms.InputTag('hltPhase2PixelTracksSoASerialSync'),
topFolderName = cms.string('HLT/HeterogeneousMonitoring/PixelTracksCPU'),
qualityDefinitions = cms.vstring(
'loose',
'highPurity'
))
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import FWCore.ParameterSet.Config as cms

hltPixelTracksSoAMonitorGPU = cms.EDProducer('SiPixelMonitorTrackSoA',
pixelTrackSrc = cms.InputTag('hltPhase2PixelTracksSoA'),
topFolderName = cms.string('HLT/HeterogeneousMonitoring/PixelTracksGPU'),
qualityDefinitions = cms.vstring(
'loose',
'highPurity'
))
Loading