Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
6aef925
Remove redundant tracking modules
VourMa Apr 3, 2026
8618173
Remove hltInitialStepSeedTracksLST
VourMa Apr 4, 2026
05dc54b
Implement removeOTRechits and sorting+filtering of hits when useProto…
VourMa Apr 4, 2026
64bf303
Improvements for the LST output
VourMa Apr 5, 2026
591812c
Code updates to use FastSim events as PileUp with FullSim Signal even…
May 5, 2025
9a0beda
code related feedback from release managers implemented
May 6, 2025
37afc4c
reverting to std::set again in Muon/Calo Digitizers, removal/replacem…
May 8, 2025
3c093b3
Added new parameter skipProductCheck in MixingModule. skipProductChec…
May 15, 2025
0495b4c
add hybrid pileup workflows
kpedro88 May 15, 2025
58d3d9b
include modifier in all subsequent steps
kpedro88 May 20, 2025
c06e81a
Separate HcalTestNumbering flag for signal and PU which enables signa…
Jun 30, 2025
d459d6a
Code checks
Jun 30, 2025
32b38d2
Change back testnumbering in AddCaloSamplesAnalyzer.py
Jul 3, 2025
a36d037
handle multiple input tags in mixing for SimVertex and SimTrack
kpedro88 Oct 1, 2025
49e53cb
dummy comment
Dec 12, 2025
db05dee
code format change
Dec 12, 2025
c3eb443
Bug fix in Ecal/Hcal digitizers; removed std::set which stored InputT…
Dec 12, 2025
4843866
Sync changes from FASTPU_X branch
smuzaffar May 5, 2026
6653004
Apply code format changes
smuzaffar May 5, 2026
7be8e1b
fix compilation warning and debug build error
smuzaffar May 5, 2026
fabe766
Check for HGCal cluster weight being NaN
Dr15Jones May 12, 2026
2e4c8ee
Merge pull request #50920 from Dr15Jones/nanHGCalTry2
cmsbuild May 13, 2026
a8ffdd8
Merge pull request #50886 from smuzaffar/sync-fastpu-changes
cmsbuild May 13, 2026
c7e5696
Merge pull request #50819 from SegmentLinking/simplifyLSTInputOutput
cmsbuild May 13, 2026
b62f81f
Merge CMSSW_17_0_X into CMSSW_17_0_EVOLUTION_X.
Dr15Jones May 13, 2026
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: 3 additions & 0 deletions Configuration/ProcessModifiers/python/fastSimPU_cff.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import FWCore.ParameterSet.Config as cms

fastSimPU = cms.Modifier()
2 changes: 2 additions & 0 deletions Configuration/PyReleaseValidation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,8 @@ The offsets currently in use are:
* 0.634: ECAL phase2 Trigger Primitive + component-method based digis
* 0.635: ECAL phase2 Trigger Primitive + component-method based finely-sampled waveforms
* 0.91: Track DNN modifier
* 0.95: Hybrid PU (FullSim signal + FastSim PU) stage2
* 0.96: Hybrid PU (FullSim signal + FastSim PU) stage1+stage2
* 0.97: Premixing stage1
* 0.98: Premixing stage2
* 0.99: Premixing stage1+stage2
Expand Down
8 changes: 5 additions & 3 deletions Configuration/PyReleaseValidation/python/WorkFlowRunner.py
Original file line number Diff line number Diff line change
Expand Up @@ -232,8 +232,9 @@ def closeCmd(i,ID):
if self.noRun:
cmd +=' --no_exec'
# in case previous step used DAS query (either filelist of das:)
# not to be applied for premixing stage1 to allow combiend stage1+stage2 workflow
if inFile and not 'premix_stage1' in cmd:
# not to be applied for premixing stage1 to allow combined stage1+stage2 workflow
# & similar for HybridPU combined workflow
if inFile and not 'premix_stage1' in cmd and not 'FASTSIM' in cmd:
cmd += ' --filein '+inFile
inFile=None
if lumiRangeFile: #DAS query can also restrict lumi range
Expand All @@ -246,12 +247,13 @@ def closeCmd(i,ID):
else:
# Disable input for premix stage1 to allow combined stage1+stage2 workflow
# Disable input for premix stage2 in FastSim to allow combined stage1+stage2 workflow (in FS, stage2 does also GEN)
# & similar for HybridPU combined workflow
# Ugly hack but works
extension = '.root'
if '--rntuple_out' in cmd:
extension = '.rntpl'
outputExtensionForStep[istep] = extension
if istep!=1 and not '--filein' in cmd and not 'premix_stage1' in cmd and not ("--fast" in cmd and "premix_stage2" in cmd):
if istep!=1 and not '--filein' in cmd and not 'premix_stage1' in cmd and not ("--fast" in cmd and "premix_stage2" in cmd) and not 'FASTSIM' in cmd:
steps = cmd.split("-s ")[1].split(" ")[0] ## relying on the syntax: cmsDriver -s STEPS --otherFlags
if "ALCA" not in steps:
cmd+=' --filein file:step%s%s '%(istep-1,outputExtensionForStep[istep-1])
Expand Down
8 changes: 8 additions & 0 deletions Configuration/PyReleaseValidation/python/relval_steps.py
Original file line number Diff line number Diff line change
Expand Up @@ -5237,6 +5237,14 @@ def gen2024HiMix(fragment,howMuch):
# else: #For FastSim to recycle GEN
# steps[k+'INPUT']={'INPUT':InputInfo(dataSet='/RelVal'+info.dataset+'/%s/GEN'%(baseDataSetReleaseBetter[s],),location='STD')}
# end COMMENT: reads old format file
# this condition is checked here to avoid skipping the creation of default steps for other fragments
if 'HybridPU' in step:
# minbias fastsim for PU mixing
if not 'MinBias_14TeV' in frag:
continue
stepKey = 'HYBRID_'+key+'_'+step
howMuch = Kby(100,100)
steps[stepKey]=merge([ {'--evt_type':frag},howMuch,upgradeStepDict[step][key]])
else:
for key in [key for year in upgradeKeys for key in upgradeKeys[year]]:
k=step+'_'+key
Expand Down
8 changes: 8 additions & 0 deletions Configuration/PyReleaseValidation/python/relval_upgrade.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,14 @@ def notForGenOnly(key,specialType):
if 'S2' in specialType: stepList[specialType].append(stepMade)
# replace for s1
else: stepList[specialType][-1] = stepMade
# similar hack for fastpu
if 'HybridPU' in specialType:
if 'GenSim' in step:
s = step.replace('GenSim','GenSimFS')+'PU' # later processing requires to have PU here
if step in specialWF.PU:
stepMade = stepMaker(key,'HYBRID',s,specialWF.suffix)
# append for combined
if 'S2' in specialType: stepList[specialType].append(stepMade)
else:
stepList[specialType].append(stepMaker(key,frag[:-4],step,''))
for specialType,specialWF in upgradeWFs.items():
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3171,6 +3171,82 @@ def condition(self, fragment, stepList, key, hasHarvest):
offset = 0.9921,
)

class UpgradeWorkflowHybridPU(UpgradeWorkflow):
def setup_(self, step, stepName, stepDict, k, properties):
# just copy steps
stepDict[stepName][k] = merge([stepDict[step][k]])
def setupPU_(self, step, stepName, stepDict, k, properties):
# make new step for S1
# this gets inserted in relval_upgrade.py
if "GenSim" in stepName:
# go back to non-PU step version
d = merge([stepDict[self.getStepName(step)][k]])
stepNameS1 = stepName.replace('GenSim','GenSimFS')
if not stepNameS1 in stepDict: stepDict[stepNameS1] = {}
stepDict[stepNameS1][k] = merge([{
'--fast': '',
'--era': stepDict[stepName][k]['--era']+'_FastSim',
'--eventcontent': 'FASTPU',
'--processName': 'FASTSIM',
}, d])
else:
# include modifier in all subsequent steps in case any of them use PU replay
if "--procModifiers" in stepDict[stepName][k]:
stepDict[stepName][k]["--procModifiers"] += ",fastSimPU"
else:
stepDict[stepName][k]["--procModifiers"] = "fastSimPU"

if "Digi" in stepName:
stepDict[stepName][k] = merge([digiPremixLocalPileup, stepDict[stepName][k]])
elif 'S1S2' in self.suffix:
# increment inputs for subsequent steps in combined case
# also reset pileup input
digiPremixLocalPileupTmp = deepcopy(digiPremixLocalPileup)
filein = stepDict[stepName][k].get("--filein","")
m = re.search("step(?P<ind>\\d+)", filein)
if m:
digiPremixLocalPileupTmp['--filein'] = filein.replace(m.group(), "step%d"%(int(m.group("ind"))+1))
else:
digiPremixLocalPileupTmp.pop('--filein')
stepDict[stepName][k] = merge([digiPremixLocalPileupTmp, stepDict[stepName][k]])
def condition(self, fragment, stepList, key, hasHarvest):
return (fragment=='TTbar_14TeV' and 'PU' in key and key.startswith('202') and not 'FS' in key)
# stage1 is just FastSim MinBias, no separate workflow needed
# HybridPU stage2
upgradeWFs['HybridPUS2'] = UpgradeWorkflowHybridPU(
steps = [],
PU = [
'Digi',
'DigiTrigger',
],
suffix = '_HybridPUS2',
offset = 0.95,
)
# HybridPU combined stage1+stage2
upgradeWFs['HybridPUS1S2'] = UpgradeWorkflowHybridPU(
steps = [],
PU = [
'GenSim',
'GenSimHLBeamSpot',
'GenSimHLBeamSpot14',
'Digi',
'DigiTrigger',
'RecoLocal',
'Reco',
'RecoFakeHLT',
'RecoGlobal',
'RecoGlobalFakeHLT',
'RecoNano',
'RecoNanoFakeHLT',
'Nano',
'HARVESTNano',
'HARVESTNanoFakeHLT',
'ALCA',
],
suffix = '_HybridPUS1S2',
offset = 0.96,
)

class UpgradeWorkflow_Run3FStrackingOnly(UpgradeWorkflow):
def setup_(self, step, stepName, stepDict, k, properties):
if 'HARVESTFastRun3' in step:
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,16 @@
SeedCreatorPSet = cms.PSet(
refToPSet_ = cms.string('seedFromProtoTracks')
),
TTRHBuilder = cms.string('WithTrackAngle'),
originHalfLength = cms.double(0.3),
originRadius = cms.double(0.1),
useProtoTrackKinematics = cms.bool(False),
sortAndFilterProtoTracks = cms.bool(False),
useEventsWithNoVertex = cms.bool(True),
TTRHBuilder = cms.string('WithTrackAngle'),
usePV = cms.bool(False),
useProtoTrackKinematics = cms.bool(False),
includeFourthHit = cms.bool(True),
removeOTRechits = cms.bool(True)
removeOTRechits = cms.bool(True),
produceComplement = cms.bool(False)
)

from Configuration.ProcessModifiers.hltPhase2LegacyTracking_cff import hltPhase2LegacyTracking
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@
lstPixelSeeds = cms.InputTag('hltInputLST'),
includeT5s = cms.bool(True),
includeNonpLSTSs = cms.bool(False),
produceSeeds = cms.bool(False),
produceTrackCandidates = cms.bool(True),
propagatorAlong = cms.ESInputTag('', 'PropagatorWithMaterial'),
propagatorOpposite = cms.ESInputTag('', 'PropagatorWithMaterialOpposite'),
SeedCreatorPSet = cms.PSet(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
lstPixelSeeds = cms.InputTag('hltInputLST'),
includeT5s = cms.bool(True),
includeNonpLSTSs = cms.bool(True),
produceSeeds = cms.bool(True),
produceTrackCandidates = cms.bool(False),
propagatorAlong = cms.ESInputTag('', 'PropagatorWithMaterial'),
propagatorOpposite = cms.ESInputTag('', 'PropagatorWithMaterialOpposite'),
SeedCreatorPSet = cms.PSet(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
ptCut = cms.double(0.8),
phase2OTRecHits = cms.InputTag('hltSiPhase2RecHits'),
beamSpot = cms.InputTag('hltOnlineBeamSpot'),
seedTracks = cms.VInputTag('hltInitialStepSeedTracksLST'),
pixelSeeds = cms.VInputTag('hltInitialStepSeeds'),
alpaka = cms.untracked.PSet(
backend = cms.untracked.string('')
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@
SeedCreatorPSet = cms.PSet(
refToPSet_ = cms.string('hltPhase2SeedFromProtoTracks')
),
TTRHBuilder = cms.string('WithTrackAngle'),
originHalfLength = cms.double(0.3),
originRadius = cms.double(0.1),
useProtoTrackKinematics = cms.bool(False),
sortAndFilterProtoTracks = cms.bool(False),
useEventsWithNoVertex = cms.bool(True),
TTRHBuilder = cms.string('WithTrackAngle'),
usePV = cms.bool(False),
useProtoTrackKinematics = cms.bool(False)
includeFourthHit = cms.bool(False),
removeOTRechits = cms.bool(False),
produceComplement = cms.bool(False)
)
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@
SeedCreatorPSet = cms.PSet(
refToPSet_ = cms.string('hltPhase2L3MuonSeedFromProtoTracks')
),
TTRHBuilder = cms.string('WithTrackAngle'),
originHalfLength = cms.double(0.3),
originRadius = cms.double(0.1),
useProtoTrackKinematics = cms.bool(False),
sortAndFilterProtoTracks = cms.bool(False),
useEventsWithNoVertex = cms.bool(True),
TTRHBuilder = cms.string('WithTrackAngle'),
usePV = cms.bool(True),
useProtoTrackKinematics = cms.bool(False)
includeFourthHit = cms.bool(False),
removeOTRechits = cms.bool(False),
produceComplement = cms.bool(False)
)
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
from ..modules.hltHgcalSoARecHitsLayerClustersProducer_cfi import hltHgcalSoARecHitsLayerClustersProducer
from ..modules.hltHgcalSoARecHitsProducer_cfi import hltHgcalSoARecHitsProducer
from ..modules.hltInputLST_cfi import hltInputLST
from ..modules.hltInitialStepSeedTracksLST_cfi import hltInitialStepSeedTracksLST
from ..modules.hltInitialStepSeeds_cfi import hltInitialStepSeeds
from ..modules.hltInitialStepTrajectorySeedsLST_cfi import hltInitialStepTrajectorySeedsLST
from ..modules.hltL1GTAcceptFilter_cfi import hltL1GTAcceptFilter
Expand Down Expand Up @@ -54,7 +53,6 @@

HLTLSTSequence = cms.Sequence(
hltInitialStepSeeds
+ hltInitialStepSeedTracksLST
+ hltInputLST
+ hltLST
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
HLTDoLocalPixelSequence = cms.Sequence(
hltPhase2SiPixelClustersSoA
+hltSiPixelClusters
+hltSiPixelClusterShapeCache # should we disable this? Still needed by tracker muons
+hltSiPixelClusterShapeCache # Currently needed by tracker muons
+hltPhase2SiPixelRecHitsSoA
+hltSiPixelRecHits
)
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

from ..modules.hltInputLST_cfi import *
from ..modules.hltInitialStepMkFitSeeds_cfi import *
from ..modules.hltInitialStepSeedTracksLST_cfi import *
from ..modules.hltInitialStepSeeds_cfi import *
from ..modules.hltInitialStepTrackCandidates_cfi import *
from ..modules.hltInitialStepTrackCandidatesMkFit_cfi import *
Expand All @@ -13,13 +12,10 @@
from ..modules.hltInitialStepTrajectorySeedsLST_cfi import *
from ..modules.hltInitialStepTrajectorySeedsLSTTracks_cfi import *
from ..modules.hltLST_cfi import *
from ..modules.hltSiPhase2RecHits_cfi import *
from ..sequences.HLTMkFitInputSequence_cfi import *

HLTInitialStepSequence = cms.Sequence(
hltInitialStepSeeds
+hltInitialStepSeedTracksLST
+hltSiPhase2RecHits
+hltInputLST
+hltLST
+hltInitialStepTrajectorySeedsLST
Expand All @@ -39,9 +35,6 @@
hltInitialStepSeedsSerialSync = hltInitialStepSeeds.clone(
InputCollection = "hltPhase2PixelTracksSerialSync"
)
hltInitialStepSeedTracksLSTSerialSync = hltInitialStepSeedTracksLST.clone(
src = "hltInitialStepSeedsSerialSync"
)
hltInputLSTSerialSync = makeSerialClone(hltInputLST)
hltLSTSerialSync = makeSerialClone(hltLST,
lstInput = "hltInputLSTSerialSync"
Expand All @@ -60,8 +53,6 @@
from Configuration.ProcessModifiers.alpakaValidationHLT_cff import alpakaValidationHLT
alpakaValidationHLT.toReplaceWith(HLTInitialStepSequenceSerialSync, cms.Sequence(
hltInitialStepSeedsSerialSync
+hltInitialStepSeedTracksLSTSerialSync
+hltSiPhase2RecHits
+hltInputLSTSerialSync
+hltLSTSerialSync
+hltInitialStepTrajectorySeedsLSTSerialSync
Expand All @@ -77,8 +68,6 @@
from Configuration.ProcessModifiers.hltPhase2LegacyTracking_cff import hltPhase2LegacyTracking
hltPhase2LegacyTracking.toReplaceWith(HLTInitialStepSequence,
HLTInitialStepSequence.copyAndExclude([
hltInitialStepSeedTracksLST,
hltSiPhase2RecHits,
hltInputLST,
hltLST,
hltInitialStepTrajectorySeedsLST,
Expand All @@ -91,8 +80,6 @@

_HLTInitialStepSequenceLST = cms.Sequence(
hltInitialStepSeeds
+hltInitialStepSeedTracksLST
+hltSiPhase2RecHits # Probably need to move elsewhere in the final setup
+hltInputLST
+hltLST
+hltInitialStepTrackCandidates
Expand All @@ -108,8 +95,6 @@
from ..modules.hltInitialStepTracksT4T5TCLST_cfi import *
_HLTInitialStepSequenceNGTScouting = cms.Sequence(
hltInitialStepSeeds
+hltInitialStepSeedTracksLST
+hltSiPhase2RecHits
+hltInputLST
+hltLST
+hltInitialStepTrackCandidates
Expand All @@ -123,8 +108,6 @@
from ..modules.hltInitialStepTrackCandidatesMkFitFit_cfi import *
_HLTInitialStepSequenceMkFitFit = cms.Sequence(
hltInitialStepSeeds
+hltInitialStepSeedTracksLST
+hltSiPhase2RecHits
+hltInputLST
+hltLST
+hltInitialStepTrajectorySeedsLST
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,8 @@

HLTPhase2PixelTracksAndVerticesSequence = cms.Sequence(
HLTBeamSpotSequence
+hltPhase2PixelTracksAndHighPtStepTrackingRegions # needed by highPtTripletStep iteration
+hltPhase2PixelFitterByHelixProjections # needed by tracker muons
+hltPhase2PixelTrackFilterByKinematics # needed by tracker muons
+hltPhase2PixelFitterByHelixProjections # Currently needed by tracker muons
+hltPhase2PixelTrackFilterByKinematics # Currently needed by tracker muons
+hltPhase2OtRecHitsSoA
+hltPhase2PixelRecHitsExtendedSoA
+hltPhase2PixelTracksSoA
Expand Down Expand Up @@ -70,7 +69,6 @@
from ..modules.hltPhase2TrimmedPixelVertices_cfi import hltPhase2TrimmedPixelVertices
_HLTPhase2PixelTracksAndVerticesSequenceTrimming = cms.Sequence(
HLTBeamSpotSequence
+hltPhase2PixelTracksAndHighPtStepTrackingRegions
+hltPhase2PixelFitterByHelixProjections
+hltPhase2PixelTrackFilterByKinematics
+hltPhase2OtRecHitsSoA
Expand Down
Loading