Skip to content

Commit 6fd4c49

Browse files
committed
Addition of HLT workflows for testing LST on CPU vs. GPU and updates to the offline corresponding workflow
1 parent a810d12 commit 6fd4c49

21 files changed

Lines changed: 180 additions & 25 deletions

Configuration/EventContent/python/EventContent_cff.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,9 @@ def SwapKeepAndDrop(l):
281281
from Configuration.Eras.Modifier_phase2_timing_layer_cff import phase2_timing_layer
282282
from Configuration.Eras.Modifier_run2_GEM_2017_cff import run2_GEM_2017
283283
from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM
284+
from Configuration.ProcessModifiers.alpakaValidationLST_cff import alpakaValidationLST
284285
from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA
286+
from Configuration.ProcessModifiers.trackingLST_cff import trackingLST
285287
from RecoLocalFastTime.Configuration.RecoLocalFastTime_EventContent_cff import *
286288
from RecoMTD.Configuration.RecoMTD_EventContent_cff import *
287289

@@ -718,6 +720,11 @@ def SwapKeepAndDrop(l):
718720
'keep *_hltInitialStepTracksT4T5TCLST_*_*',
719721
'keep *_hltOfflinePrimaryVertices_*_*',
720722
])
723+
(trackingLST & alpakaValidationLST).toModify(FEVTDEBUGHLTEventContent,
724+
outputCommands = FEVTDEBUGHLTEventContent.outputCommands+[
725+
'keep *_hltInitialStepTracks_*_*',
726+
'keep *_hltInitialStepTracksSerialSync_*_*',
727+
])
721728

722729
phase2_common.toModify(FEVTDEBUGHLTEventContent,
723730
outputCommands = FEVTDEBUGHLTEventContent.outputCommands+[
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
import FWCore.ParameterSet.Config as cms
2+
3+
# This modifier performs the host/device validation for the LST algorithm
4+
alpakaValidationLST = cms.Modifier()
5+

Configuration/ProcessModifiers/python/alpakaValidation_cff.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22

33
from Configuration.ProcessModifiers.alpaka_cff import *
44
from Configuration.ProcessModifiers.alpakaValidationEcal_cff import *
5+
from Configuration.ProcessModifiers.alpakaValidationLST_cff import *
56
from Configuration.ProcessModifiers.alpakaValidationPixel_cff import *
67

78
# This modifier chain is for turning on DQM modules used for alpaka device/host validation
89

910
alpakaValidation = cms.ModifierChain(
1011
alpaka,
1112
alpakaValidationEcal,
13+
alpakaValidationLST,
1214
alpakaValidationPixel
1315
)

Configuration/PyReleaseValidation/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,20 +53,23 @@ The offsets currently in use are:
5353
* 0.702: trackingMkFit modifier for Phase-2 (initialStep only)
5454
* 0.703: LST tracking (Phase-2 only), initialStep+HighPtTripletStep only, on CPU
5555
* 0.704: LST tracking (Phase-2 only), initialStep+HighPtTripletStep only, on GPU (if available)
56+
* 0.7041: LST tracking (Phase-2 only), initialStep+HighPtTripletStep only, on GPU (if available), CPU vs. GPU
5657
* 0.75: HLT phase-2 timing menu
5758
* 0.7501: HLT phase-2 tracking-only menu
5859
* 0.751: HLT phase-2 timing menu Alpaka variant
5960
* 0.7511: HLT phase-2 timing menu, with PixelTracks CA Extension
6061
* 0.752: HLT phase-2 timing menu ticl_v5 variant
6162
* 0.753: HLT phase-2 timing menu Alpaka, single tracking iteration variant
6263
* 0.754: HLT phase-2 timing menu Alpaka, single tracking iteration, LST building variant
64+
* 0.7541: HLT phase-2 timing menu single tracking iteration, LST building variant, CPU vs. GPU
6365
* 0.755: HLT phase-2 timing menu Alpaka, LST building variant
6466
* 0.756 HLT phase-2 timing menu trimmed tracking
6567
* 0.7561 HLT phase-2 timing menu Alpaka, trimmed tracking
6668
* 0.7562 HLT phase-2 timing menu Alpaka, trimmed tracking, single tracking iteration variant
6769
* 0.757: HLT phase-2 timing menu Alpaka, single tracking iteration, LST seeding + CKF building variant
6870
* 0.7571: HLT phase-2 timing menu Alpaka, single tracking iteration, Phase2CAExtension+LST seeding + mkFit building variant
6971
* 0.7572: HLT phase-2 timing menu Alpaka, single tracking iteration, Phase2CAExtension+LST seeding + mkFit building and fitting variant
72+
* 0.7573: HLT phase-2 timing menu single tracking iteration, Phase2CAExtension+LST seeding + mkFit building variant, CPU vs. GPU
7073
* 0.758 HLT phase-2 timing menu ticl_barrel variant
7174
* 0.759: HLT phase-2 timing menu, with NANO:@Phase2HLT
7275
* 0.76: HLT phase-2 reduced menu, with DIGI step

Configuration/PyReleaseValidation/python/relval_Run4.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,15 @@
6060
numWFIB.extend([prefixDet+34.7521])# HLTTiming75e33, ticl_v5, ticlv5TrackLinkingGNN
6161
numWFIB.extend([prefixDet+34.753]) # HLTTiming75e33, alpaka,singleIterPatatrack
6262
numWFIB.extend([prefixDet+34.754]) # HLTTiming75e33, alpaka,singleIterPatatrack,trackingLST
63+
numWFIB.extend([prefixDet+34.7541]) # HLTTiming75e33, alpakaValidationLST,singleIterPatatrack,trackingLST
6364
numWFIB.extend([prefixDet+34.755]) # HLTTiming75e33, alpaka,trackingLST
6465
numWFIB.extend([prefixDet+34.756]) # HLTTiming75e33, phase2_hlt_vertexTrimming
6566
numWFIB.extend([prefixDet+34.7561])# HLTTiming75e33, alpaka,phase2_hlt_vertexTrimming
6667
numWFIB.extend([prefixDet+34.7562])# HLTTiming75e33, alpaka,phase2_hlt_vertexTrimming,singleIterPatatrack
6768
numWFIB.extend([prefixDet+34.757]) # HLTTiming75e33, alpaka,singleIterPatatrack,trackingLST,seedingLST
6869
numWFIB.extend([prefixDet+34.7571]) # HLTTiming75e33, alpaka,singleIterPatatrack,Phase2CAExtension,trackingLST,seedingLST,buildingMkFit
6970
numWFIB.extend([prefixDet+34.7572]) # HLTTiming75e33, alpaka,singleIterPatatrack,Phase2CAExtension,trackingLST,seedingLST,buildingMkFit,fittingMkFit
71+
numWFIB.extend([prefixDet+34.7573]) # HLTTiming75e33, alpakaValidationLST,singleIterPatatrack,Phase2CAExtension,trackingLST,seedingLST,buildingMkFit
7072
numWFIB.extend([prefixDet+34.758]) # HLTTiming75e33, ticl_barrel
7173
numWFIB.extend([prefixDet+34.759]) # HLTTiming75e33 + NANO
7274
numWFIB.extend([prefixDet+34.77]) # NGTScouting

Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -560,6 +560,16 @@ def condition(self, fragment, stepList, key, hasHarvest):
560560
'--procModifiers': 'trackingIters01,trackingLST',
561561
}
562562

563+
# LST on GPU (if available), initialStep+highPtTripletStep-only tracking-only, CPU vs. GPU comparison
564+
class UpgradeWorkflow_lstOnGPUIters01TrackingOnlyAlpakaValidationLST(UpgradeWorkflow_lstOnGPUIters01TrackingOnly):
565+
pass
566+
upgradeWFs['lstOnGPUIters01TrackingOnlyAlpakaValidationLST'] = deepcopy(upgradeWFs['lstOnGPUIters01TrackingOnly'])
567+
upgradeWFs['lstOnGPUIters01TrackingOnlyAlpakaValidationLST'].suffix = '_lstOnGPUIters01TrackingOnlyAlpakaValidationLST'
568+
upgradeWFs['lstOnGPUIters01TrackingOnlyAlpakaValidationLST'].offset = 0.7041
569+
upgradeWFs['lstOnGPUIters01TrackingOnlyAlpakaValidationLST'].step3 = upgradeWFs['trackingOnly'].step3 | {
570+
'--procModifiers': 'alpakaValidationLST,trackingIters01,trackingLST',
571+
}
572+
563573
#DeepCore seeding for JetCore iteration workflow
564574
class UpgradeWorkflow_seedingDeepCore(UpgradeWorkflow):
565575
def setup_(self, step, stepName, stepDict, k, properties):
@@ -1996,6 +2006,20 @@ def condition(self, fragment, stepList, key, hasHarvest):
19962006
'-s':'HARVESTING:@hltValidation'
19972007
}
19982008

2009+
upgradeWFs['HLTTiming75e33SingleIterLSTAlpakaValidationLST'] = deepcopy(upgradeWFs['HLTTiming75e33'])
2010+
upgradeWFs['HLTTiming75e33SingleIterLSTAlpakaValidationLST'].suffix = '_HLT75e33TimingSingleIterLSTAlpakaValidationLST'
2011+
upgradeWFs['HLTTiming75e33SingleIterLSTAlpakaValidationLST'].offset = 0.7541
2012+
upgradeWFs['HLTTiming75e33SingleIterLSTAlpakaValidationLST'].step2 = {
2013+
# This workflow is meant to and only works for the tracking validation
2014+
'-s':'DIGI:pdigi_valid,L1TrackTrigger,L1,L1P2GT,DIGI2RAW,HLT:75e33_timing,VALIDATION:hltMultiTrackValidation',
2015+
'--procModifiers': 'alpakaValidationLST,singleIterPatatrack,trackingLST',
2016+
'--datatier':'GEN-SIM-DIGI-RAW,DQMIO',
2017+
'--eventcontent':'FEVTDEBUGHLT,DQMIO'
2018+
}
2019+
upgradeWFs['HLTTiming75e33SingleIterLSTAlpakaValidationLST'].step3 = {
2020+
'-s':'HARVESTING:@hltValidation'
2021+
}
2022+
19992023
upgradeWFs['HLTTiming75e33AlpakaLST'] = deepcopy(upgradeWFs['HLTTiming75e33'])
20002024
upgradeWFs['HLTTiming75e33AlpakaLST'].suffix = '_HLT75e33TimingAlpakaLST'
20012025
upgradeWFs['HLTTiming75e33AlpakaLST'].offset = 0.755
@@ -2078,6 +2102,20 @@ def condition(self, fragment, stepList, key, hasHarvest):
20782102
'-s':'HARVESTING:@hltValidation'
20792103
}
20802104

2105+
upgradeWFs['HLTTiming75e33SingleIterCAExtLSTSeedingMkFitBuildingAlpakaValidationLST'] = deepcopy(upgradeWFs['HLTTiming75e33'])
2106+
upgradeWFs['HLTTiming75e33SingleIterCAExtLSTSeedingMkFitBuildingAlpakaValidationLST'].suffix = '_HLT75e33TimingSingleIterCAExtLSTSeedingMkFitBuildingAlpakaValidationLST'
2107+
upgradeWFs['HLTTiming75e33SingleIterCAExtLSTSeedingMkFitBuildingAlpakaValidationLST'].offset = 0.7573
2108+
upgradeWFs['HLTTiming75e33SingleIterCAExtLSTSeedingMkFitBuildingAlpakaValidationLST'].step2 = {
2109+
# This workflow is meant to and only works for the tracking validation
2110+
'-s':'DIGI:pdigi_valid,L1TrackTrigger,L1,L1P2GT,DIGI2RAW,HLT:75e33_timing,VALIDATION:hltMultiTrackValidation',
2111+
'--procModifiers': 'alpakaValidationLST,singleIterPatatrack,phase2CAExtension,trackingLST,seedingLST,trackingMkFitCommon,hltTrackingMkFitInitialStep',
2112+
'--datatier':'GEN-SIM-DIGI-RAW,DQMIO',
2113+
'--eventcontent':'FEVTDEBUGHLT,DQMIO'
2114+
}
2115+
upgradeWFs['HLTTiming75e33SingleIterCAExtLSTSeedingMkFitBuildingAlpakaValidationLST'].step3 = {
2116+
'-s':'HARVESTING:@hltValidation'
2117+
}
2118+
20812119
upgradeWFs['HLTTiming75e33TiclBarrel'] = deepcopy(upgradeWFs['HLTTiming75e33'])
20822120
upgradeWFs['HLTTiming75e33TiclBarrel'].suffix = '_HLT75e33TimingTiclBarrel'
20832121
upgradeWFs['HLTTiming75e33TiclBarrel'].offset = 0.758

DQM/TrackingMonitorClient/python/TrackingClientConfig_Tier0_cff.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,9 @@
9898
trackToTrackCPUAnalyzer = cms.Sequence()
9999
_trackToTrackCPUAnalyzer_trackingLST = cms.Sequence(highPtTripletStepTrackToTrackSerialSyncAnalyzer)
100100
from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140
101+
from Configuration.ProcessModifiers.alpakaValidationLST_cff import alpakaValidationLST
101102
from Configuration.ProcessModifiers.trackingLST_cff import trackingLST
102-
(trackingPhase2PU140 & trackingLST).toReplaceWith(trackToTrackCPUAnalyzer, _trackToTrackCPUAnalyzer_trackingLST)
103+
(trackingPhase2PU140 & alpakaValidationLST & trackingLST).toReplaceWith(trackToTrackCPUAnalyzer, _trackToTrackCPUAnalyzer_trackingLST)
103104

104105

105106
TrackingOfflineDQMClient = cms.Sequence(trackingQTester*trackingOfflineAnalyser*trackingEffFromHitPattern*voMonitoringClientSequence*primaryVertexResolutionClient*TrackEffClient*foldedMapClientSeq*trackToTrackCPUAnalyzer)

DQM/TrackingMonitorSource/interface/TrackToTrackComparisonHists.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ class TrackToTrackComparisonHists : public DQMEDAnalyzer {
110110
double dxyCutForPlateau_;
111111
double dzWRTPvCut_;
112112
bool requireValidHLTPaths_;
113+
bool ignoreLumiPUPlots_;
113114
bool hltPathsAreValid_ = false;
114115
std::unique_ptr<GenericTriggerEventFlag> genTriggerEventFlag_;
115116

DQM/TrackingMonitorSource/python/trackToTrackCPU_cff.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@
1717
_trackToTrackCPUTask_trackingLST += highPtTripletStepTrackToTrackSerialSync
1818

1919
from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140
20+
from Configuration.ProcessModifiers.alpakaValidationLST_cff import alpakaValidationLST
2021
from Configuration.ProcessModifiers.trackingLST_cff import trackingLST
21-
(trackingPhase2PU140 & trackingLST).toReplaceWith(trackToTrackCPUSequence, _trackToTrackCPUTask_trackingLST)
22+
(trackingPhase2PU140 & alpakaValidationLST & trackingLST).toReplaceWith(trackToTrackCPUSequence, _trackToTrackCPUTask_trackingLST)

DQM/TrackingMonitorSource/src/TrackToTrackComparisonHists.cc

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ TrackToTrackComparisonHists::TrackToTrackComparisonHists(const edm::ParameterSet
2424
dxyCutForPlateau_(iConfig.getParameter<double>("dxyCutForPlateau")),
2525
dzWRTPvCut_(iConfig.getParameter<double>("dzWRTPvCut")),
2626
requireValidHLTPaths_(iConfig.getParameter<bool>("requireValidHLTPaths")),
27+
ignoreLumiPUPlots_(iConfig.getParameter<bool>("ignoreLumiPUPlots")),
2728
genTriggerEventFlag_(new GenericTriggerEventFlag(
2829
iConfig.getParameter<edm::ParameterSet>("genericTriggerEventPSet"), consumesCollector(), *this))
2930

@@ -94,8 +95,13 @@ void TrackToTrackComparisonHists::analyze(const edm::Event& iEvent, const edm::E
9495
onlinelumi = scalit->instantLumi();
9596
PU = scalit->pileup();
9697
} else {
97-
edm::LogError("TrackToTrackComparisonHists") << "lumiScalersHandle not found or empty, skipping event";
98-
return;
98+
// When ignoring lumi and PU plots, keep their initial values to -1 and continue.
99+
if (ignoreLumiPUPlots_) {
100+
edm::LogInfo("TrackToTrackComparisonHists") << "ignoring lumi and PU plots";
101+
} else {
102+
edm::LogError("TrackToTrackComparisonHists") << "lumiScalersHandle not found or empty, skipping event";
103+
return;
104+
}
99105
}
100106

101107
//
@@ -315,6 +321,7 @@ void TrackToTrackComparisonHists::fillDescriptions(edm::ConfigurationDescription
315321
edm::ParameterSetDescription desc;
316322

317323
desc.add<bool>("requireValidHLTPaths", true);
324+
desc.add<bool>("ignoreLumiPUPlots", false);
318325
desc.add<bool>("isCosmics", false);
319326

320327
desc.add<edm::InputTag>("monitoredTrack", edm::InputTag("hltMergedTracks"));
@@ -428,13 +435,15 @@ void TrackToTrackComparisonHists::book_generic_tracks_histos(DQMStore::IBooker&
428435
// counts of tracks vs lumi
429436
// for this moment, xmin,xmax and binning are hardcoded, maybe in future in a config file!
430437
// have to add (declare) this in the .h file as well
431-
(mes.h_onlinelumi) = ibooker.book1D(label + "_onlinelumi",
432-
"number of tracks vs onlinelumi",
433-
onlinelumi_nbin,
434-
onlinelumi_rangeMin,
435-
onlinelumi_rangeMax);
436-
(mes.h_ls) = ibooker.book1D(label + "_ls", "number of tracks vs ls", ls_nbin, ls_rangeMin, ls_rangeMax);
437-
(mes.h_PU) = ibooker.book1D(label + "_PU", "number of tracks vs PU", PU_nbin, PU_rangeMin, PU_rangeMax);
438+
if (!ignoreLumiPUPlots_) {
439+
(mes.h_onlinelumi) = ibooker.book1D(label + "_onlinelumi",
440+
"number of tracks vs onlinelumi",
441+
onlinelumi_nbin,
442+
onlinelumi_rangeMin,
443+
onlinelumi_rangeMax);
444+
(mes.h_ls) = ibooker.book1D(label + "_ls", "number of tracks vs ls", ls_nbin, ls_rangeMin, ls_rangeMax);
445+
(mes.h_PU) = ibooker.book1D(label + "_PU", "number of tracks vs PU", PU_nbin, PU_rangeMin, PU_rangeMax);
446+
}
438447
}
439448

440449
void TrackToTrackComparisonHists::book_matching_tracks_histos(DQMStore::IBooker& ibooker,
@@ -524,9 +533,11 @@ void TrackToTrackComparisonHists::fill_generic_tracks_histos(generalME& mes,
524533
(mes.h_dzWRTpv)->Fill(dzWRTpv);
525534
(mes.h_charge)->Fill(charge);
526535
(mes.h_hits)->Fill(nhits);
527-
(mes.h_onlinelumi)->Fill(onlinelumi);
528-
(mes.h_ls)->Fill(ls);
529-
(mes.h_PU)->Fill(PU);
536+
if (!ignoreLumiPUPlots_) {
537+
(mes.h_onlinelumi)->Fill(onlinelumi);
538+
(mes.h_ls)->Fill(ls);
539+
(mes.h_PU)->Fill(PU);
540+
}
530541
}
531542

532543
if (pTOnPlateau || !requirePlateau) {

0 commit comments

Comments
 (0)