From d13c1634f69c0614f18f295f713b033ab3b192ee Mon Sep 17 00:00:00 2001 From: mmusich Date: Fri, 27 Oct 2023 18:10:11 +0200 Subject: [PATCH 1/2] customize HLT DQM vs offline validation for Run3 PbPb --- .../EventContent/python/EventContent_cff.py | 14 ++++++++++++++ .../Trigger/python/PrimaryVertexMonitoring_cff.py | 12 ++++++++++++ .../SiPixel_OfflineMonitoring_Cluster_cff.py | 5 +++++ .../SiPixel_OfflineMonitoring_TrackCluster_cff.py | 4 ++++ .../python/SiPixel_OfflineMonitoring_cff.py | 11 ++++++++++- .../python/SiStrip_OfflineMonitoring_cff.py | 14 ++++++++++++++ .../Trigger/python/TrackToTrackMonitoring_cff.py | 11 +++++++++++ .../python/TrackingMonitoring_Client_cff.py | 8 ++++++-- .../Trigger/python/TrackingMonitoring_cff.py | 14 +++++++++++++- 9 files changed, 89 insertions(+), 4 deletions(-) diff --git a/Configuration/EventContent/python/EventContent_cff.py b/Configuration/EventContent/python/EventContent_cff.py index ffa3db8c7d19b..b26061c9cb7d3 100644 --- a/Configuration/EventContent/python/EventContent_cff.py +++ b/Configuration/EventContent/python/EventContent_cff.py @@ -238,6 +238,7 @@ def SwapKeepAndDrop(l): from Configuration.Eras.Modifier_phase2_timing_layer_cff import phase2_timing_layer from Configuration.Eras.Modifier_run2_GEM_2017_cff import run2_GEM_2017 from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM +from Configuration.Eras.Modifier_pp_on_PbPb_run3_cff import pp_on_PbPb_run3 from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA from RecoLocalFastTime.Configuration.RecoLocalFastTime_EventContent_cff import * from RecoMTD.Configuration.RecoMTD_EventContent_cff import * @@ -640,6 +641,19 @@ def SwapKeepAndDrop(l): FEVTDEBUGHLTEventContent.outputCommands.append('keep *_*_MergedTrackTruth_*') FEVTDEBUGHLTEventContent.outputCommands.append('keep *_*_StripDigiSimLink_*') FEVTDEBUGHLTEventContent.outputCommands.append('keep *_*_PixelDigiSimLink_*') + +pp_on_PbPb_run3.toModify(FEVTDEBUGHLTEventContent, + outputCommands = FEVTDEBUGHLTEventContent.outputCommands+[ + 'keep *_hltMergedTracksPPOnAA_*_*', + 'keep *_hltVerticesPFFilterPPOnAA_*_*', + 'keep *_hltDoubletRecoveryPFlowTrackSelectionHighPurityPPOnAA_*_*', + 'keep *_hltPixelTracksPPOnAA_*_*', + 'keep *_hltPixelVerticesPPOnAA_*_*', + 'keep *_hltTrimmedPixelVerticesPPOnAA_*_*', + 'keep *_hltSiPixelClustersAfterSplittingPPOnAA_*_*', + 'keep *_hltHITrackingSiStripRawToClustersFacilityFullZeroSuppression_*_*' + ]) + approxSiStripClusters.toModify(FEVTDEBUGHLTEventContent, outputCommands = FEVTDEBUGHLTEventContent.outputCommands+[ 'keep *_hltSiStripClusters2ApproxClusters_*_*', diff --git a/DQMOffline/Trigger/python/PrimaryVertexMonitoring_cff.py b/DQMOffline/Trigger/python/PrimaryVertexMonitoring_cff.py index a6d008906f177..f6354bad83460 100644 --- a/DQMOffline/Trigger/python/PrimaryVertexMonitoring_cff.py +++ b/DQMOffline/Trigger/python/PrimaryVertexMonitoring_cff.py @@ -18,6 +18,10 @@ useHPforAlignmentPlots = False ) +from Configuration.Eras.Modifier_pp_on_PbPb_run3_cff import pp_on_PbPb_run3 +pp_on_PbPb_run3.toModify(hltPixelVerticesMonitoring, + vertexLabel = "hltPixelVerticesPPOnAA") + phase2_tracker.toModify(hltPixelVerticesMonitoring, vertexLabel = "hltPhase2PixelVertices") @@ -27,11 +31,19 @@ ndof = 1, useHPforAlignmentPlots = False ) + +pp_on_PbPb_run3.toModify(hltTrimmedPixelVerticesMonitoring, + vertexLabel = "hltTrimmedPixelVerticesPPOnAA") + hltVerticesPFFilterMonitoring = hltVerticesMonitoring.clone( TopFolderName = "HLT/Vertexing/hltVerticesPFFilter", vertexLabel = "hltVerticesPFFilter", useHPforAlignmentPlots = False ) + +pp_on_PbPb_run3.toModify(hltVerticesPFFilterMonitoring, + vertexLabel = cms.InputTag("hltVerticesPFFilterPPOnAA")) + hltVerticesL3PFBjetsMonitoring = hltVerticesMonitoring.clone( TopFolderName = "HLT/Vertexing/hltVerticesL3PFBjets", vertexLabel = "hltVerticesL3PFBjets", diff --git a/DQMOffline/Trigger/python/SiPixel_OfflineMonitoring_Cluster_cff.py b/DQMOffline/Trigger/python/SiPixel_OfflineMonitoring_Cluster_cff.py index 5846bf38d33f4..006c01eb02637 100644 --- a/DQMOffline/Trigger/python/SiPixel_OfflineMonitoring_Cluster_cff.py +++ b/DQMOffline/Trigger/python/SiPixel_OfflineMonitoring_Cluster_cff.py @@ -303,6 +303,11 @@ triggerflag = hltSiPixelPhase1ClustersTriggers, ) +from Configuration.Eras.Modifier_pp_on_PbPb_run3_cff import pp_on_PbPb_run3 +pp_on_PbPb_run3.toModify(hltSiPixelPhase1ClustersAnalyzer, + pixelSrc = "hltSiPixelClustersAfterSplittingPPOnAA", + stripSrc = "hltHITrackingSiStripRawToClustersFacilityFullZeroSuppression") + hltSiPixelPhase1ClustersHarvester = DQMEDHarvester("SiPixelPhase1Harvester", histograms = hltSiPixelPhase1ClustersConf, geometry = hltSiPixelPhase1Geometry diff --git a/DQMOffline/Trigger/python/SiPixel_OfflineMonitoring_TrackCluster_cff.py b/DQMOffline/Trigger/python/SiPixel_OfflineMonitoring_TrackCluster_cff.py index 2b49d0a9a5034..57c5d46f19a28 100644 --- a/DQMOffline/Trigger/python/SiPixel_OfflineMonitoring_TrackCluster_cff.py +++ b/DQMOffline/Trigger/python/SiPixel_OfflineMonitoring_TrackCluster_cff.py @@ -433,6 +433,10 @@ geometry = hltSiPixelPhase1Geometry ) +from Configuration.Eras.Modifier_pp_on_PbPb_run3_cff import pp_on_PbPb_run3 +pp_on_PbPb_run3.toModify(hltSiPixelPhase1TrackClustersAnalyzer, + clusters = "hltSiPixelClustersAfterSplittingPPOnAA") + hltSiPixelPhase1TrackClustersHarvester = DQMEDHarvester("SiPixelPhase1Harvester", histograms = hltSiPixelPhase1TrackClustersConf, geometry = hltSiPixelPhase1Geometry diff --git a/DQMOffline/Trigger/python/SiPixel_OfflineMonitoring_cff.py b/DQMOffline/Trigger/python/SiPixel_OfflineMonitoring_cff.py index 709fe6f77318d..ecd04eb15e582 100644 --- a/DQMOffline/Trigger/python/SiPixel_OfflineMonitoring_cff.py +++ b/DQMOffline/Trigger/python/SiPixel_OfflineMonitoring_cff.py @@ -7,12 +7,21 @@ from RecoLocalTracker.SiPixelRecHits.SiPixelTemplateStoreESProducer_cfi import * hltSiPixelClusterShapeCache = siPixelClusterShapeCache.clone(src = 'hltSiPixelClusters') + +from Configuration.Eras.Modifier_pp_on_PbPb_run3_cff import pp_on_PbPb_run3 +pp_on_PbPb_run3.toModify(hltSiPixelClusterShapeCache, + src = "hltSiPixelClustersAfterSplittingPPOnAA") + hltrefittedForPixelDQM = refittedForPixelDQM.clone(src ='hltMergedTracks', TTRHBuilder = 'WithTrackAngle') # no templates at HLT + +pp_on_PbPb_run3.toModify(hltrefittedForPixelDQM, + src ='hltMergedTracksPPOnAA') + sipixelMonitorHLTsequence = cms.Sequence( hltSiPixelClusterShapeCache + hltSiPixelPhase1ClustersAnalyzer + hltrefittedForPixelDQM + hltSiPixelPhase1TrackClustersAnalyzer, cms.Task(SiPixelTemplateStoreESProducer) -) +) diff --git a/DQMOffline/Trigger/python/SiStrip_OfflineMonitoring_cff.py b/DQMOffline/Trigger/python/SiStrip_OfflineMonitoring_cff.py index 35c9ed9776c9f..56e26a6a85787 100644 --- a/DQMOffline/Trigger/python/SiStrip_OfflineMonitoring_cff.py +++ b/DQMOffline/Trigger/python/SiStrip_OfflineMonitoring_cff.py @@ -16,6 +16,12 @@ ClusterHisto = True, Mod_On = False ) + +from Configuration.Eras.Modifier_pp_on_PbPb_run3_cff import pp_on_PbPb_run3 +pp_on_PbPb_run3.toModify(HLTSiStripMonitorCluster, + ClusterProducerStrip = "hltHITrackingSiStripRawToClustersFacilityFullZeroSuppression", + ClusterProducerPix = "hltSiPixelClustersAfterSplittingPPOnAA") + HLTSiStripMonitorCluster.TH1TotalNumberOfClusters.subdetswitchon = cms.bool(True) HLTSiStripMonitorCluster.TProfClustersApvCycle.subdetswitchon = cms.bool(False) HLTSiStripMonitorCluster.TProfTotalNumberOfClusters.subdetswitchon = cms.bool(True) @@ -144,6 +150,10 @@ #TTRHBuilder = 'hltESPTTRHBuilderAngleAndTemplate', TTRHBuilder = 'hltESPTTRHBWithTrackAngle' ) + +pp_on_PbPb_run3.toModify(hltTrackRefitterForSiStripMonitorTrack, + src = 'hltMergedTracksPPOnAA') + import DQM.SiStripMonitorTrack.SiStripMonitorTrack_cfi HLTSiStripMonitorTrack = DQM.SiStripMonitorTrack.SiStripMonitorTrack_cfi.SiStripMonitorTrack.clone( TrackProducer = 'hltTrackRefitterForSiStripMonitorTrack', @@ -154,6 +164,10 @@ TopFolderName = 'HLT/SiStrip', Mod_On = False ) + +pp_on_PbPb_run3.toModify(HLTSiStripMonitorTrack, + Cluster_src = 'hltHITrackingSiStripRawToClustersFacilityFullZeroSuppression') + sistripMonitorHLTsequence = cms.Sequence( HLTSiStripMonitorCluster * hltTrackRefitterForSiStripMonitorTrack diff --git a/DQMOffline/Trigger/python/TrackToTrackMonitoring_cff.py b/DQMOffline/Trigger/python/TrackToTrackMonitoring_cff.py index 19376a3ea0622..d265f2fd193b5 100644 --- a/DQMOffline/Trigger/python/TrackToTrackMonitoring_cff.py +++ b/DQMOffline/Trigger/python/TrackToTrackMonitoring_cff.py @@ -22,6 +22,12 @@ monitoredPrimaryVertices = "hltVerticesPFSelector" ) +from Configuration.Eras.Modifier_pp_on_PbPb_run3_cff import pp_on_PbPb_run3 +pp_on_PbPb_run3.toModify(hltMerged2highPurity, + topDirName = "HLT/Tracking/ValidationWRTOffline/hltMergedPPonAAWrtHighPurity", + monitoredTrack = "hltMergedTracksPPOnAA", + monitoredPrimaryVertices = "hltVerticesPFFilterPPOnAA") + from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker phase2_tracker.toModify(hltMerged2highPurity, monitoredTrack = cms.InputTag("generalTracks","","HLT"), @@ -38,6 +44,11 @@ monitoredPrimaryVertices = "hltVerticesPFSelector" ) +pp_on_PbPb_run3.toModify(hltMerged2highPurityPV, + topDirName = "HLT/Tracking/ValidationWRTOffline/hltMergedPPonAAWrtHighPurityPV", + monitoredTrack = "hltMergedTracksPPOnAA", + monitoredPrimaryVertices = "hltVerticesPFFilterPPOnAA") + from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker phase2_tracker.toModify(hltMerged2highPurityPV, monitoredTrack = cms.InputTag("generalTracks","","HLT"), diff --git a/DQMOffline/Trigger/python/TrackingMonitoring_Client_cff.py b/DQMOffline/Trigger/python/TrackingMonitoring_Client_cff.py index 0ff5d95b4f6e4..a147c37bc7039 100644 --- a/DQMOffline/Trigger/python/TrackingMonitoring_Client_cff.py +++ b/DQMOffline/Trigger/python/TrackingMonitoring_Client_cff.py @@ -27,8 +27,6 @@ trackingForElectronsEffFromHitPatternHLT ) - - TrackToTrackEfficiencies = DQMEDHarvester("DQMGenericClient", subDirs = cms.untracked.vstring( "HLT/Tracking/ValidationWRTOffline/hltMergedWrtHighPurity", @@ -65,6 +63,12 @@ ), ) +from Configuration.Eras.Modifier_pp_on_PbPb_run3_cff import pp_on_PbPb_run3 +pp_on_PbPb_run3.toModify(TrackToTrackEfficiencies, + subDirs = [ + "HLT/Tracking/ValidationWRTOffline/hltMergedPPonAAWrtHighPurity", + "HLT/Tracking/ValidationWRTOffline/hltMergedPPonAAWrtHighPurityPV"]) + trackEfficiencyMonitoringClientHLT = cms.Sequence( TrackToTrackEfficiencies ) diff --git a/DQMOffline/Trigger/python/TrackingMonitoring_cff.py b/DQMOffline/Trigger/python/TrackingMonitoring_cff.py index 8402732219d5e..ba2e7078c6b5e 100644 --- a/DQMOffline/Trigger/python/TrackingMonitoring_cff.py +++ b/DQMOffline/Trigger/python/TrackingMonitoring_cff.py @@ -27,6 +27,11 @@ doEffFromHitPatternVsLUMI = False ) +from Configuration.Eras.Modifier_pp_on_PbPb_run3_cff import pp_on_PbPb_run3 +pp_on_PbPb_run3.toModify(pixelTracksMonitoringHLT, + TrackProducer = 'hltPixelTracksPPOnAA', + allTrackProducer = 'hltPixelTracksPPOnAA') + from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker phase2_tracker.toModify(pixelTracksMonitoringHLT, TrackProducer = 'hltPhase2PixelTracks', @@ -101,7 +106,10 @@ doSIPPlots = cms.bool(True) ) -from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker +pp_on_PbPb_run3.toModify(iterHLTTracksMonitoringHLT, + TrackProducer = 'hltMergedTracksPPOnAA', + allTrackProducer = 'hltMergedTracksPPOnAA') + phase2_tracker.toModify(iterHLTTracksMonitoringHLT, TrackProducer = cms.InputTag("generalTracks","","HLT"), allTrackProducer = cms.InputTag("generalTracks","","HLT")) @@ -148,6 +156,10 @@ doEffFromHitPatternVsLUMI = False ) +pp_on_PbPb_run3.toModify(doubletRecoveryHPTracksMonitoringHLT, + TrackProducer = 'hltDoubletRecoveryPFlowTrackSelectionHighPurityPPOnAA', + allTrackProducer = 'hltDoubletRecoveryPFlowTrackSelectionHighPurityPPOnAA') + ############ #### EGM tracks # GSF: hltEgammaGsfTracks From 4c13db6da0950a0d7c6f53414f25a88e294bf666 Mon Sep 17 00:00:00 2001 From: mmusich Date: Sat, 28 Oct 2023 15:24:26 +0200 Subject: [PATCH 2/2] Introduce wf 142.0 - based on HIRun2023A HIPhysicsRawPrime data - performs re-HLT and HLT offline monitoring --- .../PyReleaseValidation/python/relval_standard.py | 3 +++ .../PyReleaseValidation/python/relval_steps.py | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/Configuration/PyReleaseValidation/python/relval_standard.py b/Configuration/PyReleaseValidation/python/relval_standard.py index 35a3e857fd1fa..2054c7e6e8d89 100644 --- a/Configuration/PyReleaseValidation/python/relval_standard.py +++ b/Configuration/PyReleaseValidation/python/relval_standard.py @@ -568,6 +568,9 @@ workflows[141.008511] = ['Run3-2023_JetMET2023B_RecoECALOnlyCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_ECALOnlyCPU','HARVESTRUN3_ECALOnly']] workflows[141.008521] = ['Run3-2023_JetMET2023B_RecoHCALOnlyCPU',['RunJetMET2023B','HLTDR3_2023','RECODR3_reHLT_HCALOnlyCPU','HARVESTRUN3_HCALOnly']] +### run3-2023 (2023 HI data RawPrime with re-HLT) +workflows[142.0] = ['',['RunHIPhysicsRawPrime2023A','HLTDR3_HI2023ARawprime','RECOHIRUN3_reHLT_2023','HARVESTRUN3_HI2023A']] + ### fastsim ### workflows[5.1] = ['TTbarFS', ['TTbarFS','HARVESTFS']] workflows[5.2] = ['SingleMuPt10FS', ['SingleMuPt10FS','HARVESTFS']] diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index 618af7a40e52e..f837f0dcb013b 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -615,6 +615,9 @@ steps['RunMuonEG2023D']={'INPUT':InputInfo(dataSet='/MuonEG/Run2023D-v1/RAW',label='2023D',events=100000,location='STD', ls=Run2023D)} steps['RunParkingDoubleMuonLowMass2023D']={'INPUT':InputInfo(dataSet='/ParkingDoubleMuonLowMass0/Run2023D-v1/RAW',label='2023D',events=100000,location='STD', ls=Run2023D)} +RunHI2023={375491: [[100, 100]]} +steps['RunHIPhysicsRawPrime2023A']={'INPUT':InputInfo(dataSet='/HIPhysicsRawPrime0/HIRun2023A-v1/RAW',label='HI2023A',events=100000,location='STD', ls=RunHI2023)} + # Highstat HLTPhysics Run2015DHS=selectedLS([258712,258713,258714,258741,258742,258745,258749,258750,259626,259637,259683,259685,259686,259721,259809,259810,259818,259820,259821,259822,259862,259890,259891]) steps['RunHLTPhy2015DHS']={'INPUT':InputInfo(dataSet='/HLTPhysics/Run2015D-v1/RAW',label='2015DHS',events=100000,location='STD', ls=Run2015DHS)} @@ -2075,6 +2078,12 @@ def lhegensim2018ml(fragment,howMuch): steps['HLTDR3_2023B']=merge( [ {'-s':'L1REPACK:Full,HLT:@%s'%hltKey2023,},{'--conditions':'auto:run3_hlt_relval'},{'--era' : 'Run3'},steps['HLTD'] ] ) +steps['HLTDR3_HI2023ARawprime']=merge([{'-s':'L1REPACK:Full,HLT:HIon'}, + {'--conditions':'auto:run3_hlt_HIon'}, + {'--era' : 'Run3_pp_on_PbPb_approxSiStripClusters_2023'}, + {'--customise' : 'HLTrigger/Configuration/CustomConfigs.customiseL1THLTforHIonRepackedRAWPrime'}, + steps['HLTD']]) + # special setting for lumi section boundary crossing in RunEGamma2018Dml steps['HLTDR2_2018ml']=merge( [ {'--customise_commands':'"process.source.skipEvents=cms.untracked.uint32(7000)"'},steps['HLTDR2_2018'] ] ) @@ -2936,6 +2945,8 @@ def gen2023HiMix(fragment,howMuch): steps['RECONANORUN3_ZB_reHLT_2023']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,PAT,NANO,DQM:@rerecoZeroBias+@miniAODDQM+@nanoAODDQM'},steps['RECONANORUN3_reHLT_2023']]) steps['RECOCOSMRUN3_reHLT_2023']=merge([{'--scenario':'cosmics','-s':'RAW2DIGI,L1Reco,RECO,DQM','--datatier':'RECO,DQMIO','--eventcontent':'RECO,DQM'},steps['RECONANORUN3_reHLT_2023']]) +steps['RECOHIRUN3_reHLT_2023']=merge([{'-s':'RAW2DIGI,L1Reco,RECO,PAT,DQM:@standardDQM','--datatier':'RECO,MINIAOD,DQMIO','--eventcontent':'RECO,MINIAOD,DQM','--era':'Run3_pp_on_PbPb_approxSiStripClusters_2023','--conditions':'auto:run3_data_HIon'},steps['RECODR3_reHLT_2023']]) + # patatrack validation in data steps['RecoData_Patatrack_AllGPU_Validation_2023'] = merge([{'-s':'RAW2DIGI:RawToDigi_pixelOnly+RawToDigi_ecalOnly+RawToDigi_hcalOnly,RECO:reconstruction_pixelTrackingOnly+reconstruction_ecalOnly+reconstruction_hcalOnly,DQM:@pixelTrackingOnlyDQM+@ecalOnly+@hcalOnly+@hcal2Only', '--conditions':'auto:run3_data_prompt', @@ -3613,6 +3624,9 @@ def gen2023HiMix(fragment,howMuch): steps['HARVESTRUN3_COS_2022']=merge([{'--data':'', '--scenario':'cosmics', '--era':'Run3', '-s':'HARVESTING:dqmHarvesting'},steps['HARVESTDRUN3']]) steps['HARVESTRUN3_2023']=merge([{'--era':'Run3_2023', '-s':'HARVESTING:@standardDQM+@miniAODDQM+@nanoAODDQM'},steps['HARVESTRUN3_2022']]) steps['HARVESTRUN3_2023B']=merge([{'--era':'Run3', '-s':'HARVESTING:@standardDQM+@miniAODDQM+@nanoAODDQM'},steps['HARVESTRUN3_2022']]) + +steps['HARVESTRUN3_HI2023A']=merge([{'--era':'Run3_pp_on_PbPb_approxSiStripClusters_2023', '-s':'HARVESTING:@standardDQM+@miniAODDQM'},steps['HARVESTRUN3_2022']]) + steps['HARVESTRUN3_ZB_2023B']=merge([{'--era':'Run3', '-s':'HARVESTING:@rerecoZeroBias+@miniAODDQM+@nanoAODDQM'},steps['HARVESTRUN3_2022']]) steps['HARVESTRUN3_ZB_2023']=merge([{'--era':'Run3_2023', '-s':'HARVESTING:@rerecoZeroBias+@miniAODDQM+@nanoAODDQM'},steps['HARVESTRUN3_2022']]) steps['HARVESTRUN3_COS_2023']=merge([{'--scenario':'cosmics', '--era':'Run3_2023', '-s':'HARVESTING:dqmHarvesting'},steps['HARVESTRUN3_2022']])