Skip to content
Merged
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
12 changes: 1 addition & 11 deletions Configuration/EventContent/python/EventContent_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -711,22 +711,12 @@ def SwapKeepAndDrop(l):
'keep *_hltL2MuonsFromL1TkMuon_*_*',
'keep *_hltIter2Phase2L3FromL1TkMuonMerged_*_*',
'keep *_hltPhase2L3OIMuonTrackSelectionHighPurity_*_*',
'keep *_hltPhase2L3MuonFilter_*_*',
'keep *_hltPhase2L3MuonMerged_*_*',
'keep *_hltPhase2L3GlbMuon_*_*',
'keep *_hltPhase2L3MuonsNoID_*_*',
'keep *_hltPhase2L3Muons_*_*'])

from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons
(phase2_muon & ~phase2L2AndL3Muons).toModify(FEVTDEBUGHLTEventContent,
outputCommands = FEVTDEBUGHLTEventContent.outputCommands + [
'keep *_hltL2OfflineMuonSeeds_*_*'
])

(phase2_muon & phase2L2AndL3Muons).toModify(FEVTDEBUGHLTEventContent,
outputCommands = FEVTDEBUGHLTEventContent.outputCommands + [
'keep *_hltPhase2L3MuonFilter_*_*'
])

phase2_hgcal.toModify(FEVTDEBUGHLTEventContent,
outputCommands = FEVTDEBUGHLTEventContent.outputCommands + TICL_FEVTHLT.outputCommands)

Expand Down

This file was deleted.

3 changes: 1 addition & 2 deletions Configuration/PyReleaseValidation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,7 @@ The offsets currently in use are:
* 0.759: HLT phase-2 timing menu, with NANO:@Phase2HLT
* 0.77: HLT phase-2 NGT Scouting menu
* 0.771: HLT phase-2 NGT Scouting menu, with NANO:@NGTScouting
* 0.777 New Phase 2 Standalone Muon seeding, streamlined L3 Tracker Muons reconstruction (Inside-Out first), HLT Muon NanoAOD
* 0.778 New Phase 2 Standalone Muon seeding, streamlined L3 Tracker Muons reconstruction (Outside-In first), HLT Muon NanoAOD
* 0.778 L3 Tracker Muons reconstruction Outside-In first, HLT Muon NanoAOD
* 0.78: Complete L1 workflow
* 0.781: Complete L1 workflow, producing FEVT and NANO output L1/P2GT objects
* 0.782: Complete L1 workflow, producing only NANO output L1/P2GT objects
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -965,42 +965,7 @@ def condition(self, fragment, stepList, key, hasHarvest):
upgradeWFs['CPfromPU'].step3 = {'--procModifiers': 'enableCPfromPU'}
upgradeWFs['CPfromPU'].step4 = {'--procModifiers': 'enableCPfromPU'}

# Improved L2 seeding from L1Tk Muons and L3 Tracker Muon Inside-Out reconstruction first (Phase-2 Muon default)
class UpgradeWorkflow_phase2L2AndL3Muons(UpgradeWorkflow):
def setup_(self, step, stepName, stepDict, k, properties):
if ('Digi' in step and 'NoHLT' not in step) or ('HLTOnly' in step):
stepDict[stepName][k] = merge([self.step2, stepDict[step][k]])
if 'RecoGlobal' in step:
stepDict[stepName][k] = merge([self.step3, stepDict[step][k]])
if 'HARVESTGlobal' in step:
stepDict[stepName][k] = merge([self.step4, stepDict[step][k]])
def condition(self, fragment, stepList, key, hasHarvest):
return (fragment=="ZMM_14" or 'SingleMu' in fragment or 'TTbar_14' in fragment) and 'Run4' in key

upgradeWFs['phase2L2AndL3Muons'] = UpgradeWorkflow_phase2L2AndL3Muons(
steps = [
'HLTOnly',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'
],
PU = [
'HLTOnly',
'DigiTrigger',
'RecoGlobal',
'HARVESTGlobal'
],
suffix = '_phase2L2AndL3MuonsIOFirst',
offset = 0.777,
)
upgradeWFs['phase2L2AndL3Muons'].step2 = {'-s':'DIGI:pdigi_valid,L1TrackTrigger,L1,L1P2GT,DIGI2RAW,HLT:@relvalRun4,NANO:@MUHLT',
'--datatier':'GEN-SIM-DIGI-RAW,NANOAODSIM',
'--eventcontent':'FEVTDEBUGHLT,NANOAODSIM',
'--procModifiers':'phase2L2AndL3Muons'}
upgradeWFs['phase2L2AndL3Muons'].step3 = {'--procModifiers':'phase2L2AndL3Muons'}
upgradeWFs['phase2L2AndL3Muons'].step4 = {'--procModifiers':'phase2L2AndL3Muons'}

# Improved L2 seeding from L1Tk Muons and L3 Tracker Muon Outside-In reconstruction first
# L3 Tracker Muon Outside-In reconstruction first
class UpgradeWorkflow_phase2L3MuonsOIFirst(UpgradeWorkflow):
def setup_(self, step, stepName, stepDict, k, properties):
if ('Digi' in step and 'NoHLT' not in step) or ('HLTOnly' in step):
Expand All @@ -1025,15 +990,15 @@ def condition(self, fragment, stepList, key, hasHarvest):
'RecoGlobal',
'HARVESTGlobal'
],
suffix = '_phase2L2AndL3MuonsOIFirst',
suffix = '_phase2L3MuonsOIFirst',
offset = 0.778,
)
upgradeWFs['phase2L3MuonsOIFirst'].step2 = {'-s':'DIGI:pdigi_valid,L1TrackTrigger,L1,L1P2GT,DIGI2RAW,HLT:@relvalRun4,NANO:@MUHLT',
'--datatier':'GEN-SIM-DIGI-RAW,NANOAODSIM',
'--eventcontent':'FEVTDEBUGHLT,NANOAODSIM',
'--procModifiers':'phase2L2AndL3Muons,phase2L3MuonsOIFirst'}
upgradeWFs['phase2L3MuonsOIFirst'].step3 = {'--procModifiers':'phase2L2AndL3Muons,phase2L3MuonsOIFirst'}
upgradeWFs['phase2L3MuonsOIFirst'].step4 = {'--procModifiers':'phase2L2AndL3Muons,phase2L3MuonsOIFirst'}
'--procModifiers':'phase2L3MuonsOIFirst'}
upgradeWFs['phase2L3MuonsOIFirst'].step3 = {'--procModifiers':'phase2L3MuonsOIFirst'}
upgradeWFs['phase2L3MuonsOIFirst'].step4 = {'--procModifiers':'phase2L3MuonsOIFirst'}

# Track DNN workflows
class UpgradeWorkflow_trackdnn(UpgradeWorkflow):
Expand Down
81 changes: 9 additions & 72 deletions DPGAnalysis/MuonTools/python/nano_mu_hlt_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,11 @@
extension = cms.bool(False),
variables = cms.PSet(
pt = Var("startingState().pt()", "float", doc = "p_T (GeV)"),
nHits = Var("nHits()", "int16", doc = ""),
nHits = Var(
"nHits()", "int16", doc = "number of DT/CSC segments propagated to the seed"
),
eta = Var("l1TkMu().phEta()", "float", doc = "associated L1TkMu #eta"),
phi = Var("l1TkMu().phPhi()", "float", doc = "associated L1TkMu #phi"),
localX = Var(
"startingState().parameters().position().x()",
"float",
Expand Down Expand Up @@ -268,25 +272,8 @@
doc = cms.string("L3 Tracker Muons Outside-In filtered (quality cuts and match with L1TkMu)")
)

# The muon trigger producers sequence
# Default Phase 2 HLT muon ntuples producers sequence (Inside-Out first)
hltMuonTriggerProducers = cms.Sequence(
recoMuonValidationHLT_seq
+ hltLocalRecoMuon_seq
+ l1TkMuTable
+ l2SeedTable
+ l2SeedFromL1TkMuonTable
+ l2MuTable
+ l2MuTableVtx
+ l3TkIOTable
+ l3TkOITable
+ l3TkMergedTable
+ l3GlbMuTable
+ l3MuTkNoIdTable
+ l3MuTkIdTable
)

# The Phase-2 IO first muon trigger producers sequence
hltMuonTriggerProducersIOFirst = cms.Sequence(
recoMuonValidationHLT_seq
+ hltLocalRecoMuon_seq
+ l1TkMuTable
Expand All @@ -303,8 +290,8 @@
+ l3MuTkIdTable
)

# The Phase-2 OI first muon trigger producers sequence
hltMuonTriggerProducersOIFirst = cms.Sequence(
# Phase 2 HLT muon ntuples producers sequence (Outside-In first)
_hltMuonTriggerProducersOIFirst = cms.Sequence(
recoMuonValidationHLT_seq
+ hltLocalRecoMuon_seq
+ l1TkMuTable
Expand All @@ -321,56 +308,6 @@
+ l3MuTkIdTable
)

from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons

phase2L2AndL3Muons.toModify(
l2SeedFromL1TkMuonTable,
variables = cms.PSet(
pt = Var("startingState().pt()", "float", doc = "p_T (GeV)"),
nHits = Var(
"nHits()", "int16", doc = "number of DT/CSC segments propagated to the seed"
),
eta = Var("l1TkMu().phEta()", "float", doc = "associated L1TkMu #eta"),
phi = Var("l1TkMu().phPhi()", "float", doc = "associated L1TkMu #phi"),
localX = Var(
"startingState().parameters().position().x()",
"float",
doc = "local x of the seed",
),
localY = Var(
"startingState().parameters().position().y()",
"float",
doc = "local y of the seed",
)
)
)
phase2L2AndL3Muons.toReplaceWith(
hltMuonTriggerProducers, hltMuonTriggerProducersIOFirst
)

from Configuration.ProcessModifiers.phase2L3MuonsOIFirst_cff import phase2L3MuonsOIFirst
phase2L3MuonsOIFirst.toReplaceWith(hltMuonTriggerProducers, _hltMuonTriggerProducersOIFirst)

(phase2L2AndL3Muons & phase2L3MuonsOIFirst).toModify(
l2SeedFromL1TkMuonTable,
variables = cms.PSet(
pt = Var("startingState().pt()", "float", doc = "p_T (GeV)"),
nHits = Var(
"nHits()", "int16", doc = "number of DT/CSC segments propagated to the seed"
),
eta = Var("l1TkMu().phEta()", "float", doc = "associated L1TkMu #eta"),
phi = Var("l1TkMu().phPhi()", "float", doc = "associated L1TkMu #phi"),
localX = Var(
"startingState().parameters().position().x()",
"float",
doc = "local x of the seed",
),
localY = Var(
"startingState().parameters().position().y()",
"float",
doc = "local y of the seed",
)
)
)
(phase2L2AndL3Muons & phase2L3MuonsOIFirst).toReplaceWith(
hltMuonTriggerProducers, hltMuonTriggerProducersOIFirst
)
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,8 @@
src = cms.InputTag("hltIter2Phase2L3FromL1TkMuonPixelSeeds")
)

from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons
from Configuration.ProcessModifiers.phase2L3MuonsOIFirst_cff import phase2L3MuonsOIFirst
(phase2L2AndL3Muons & phase2L3MuonsOIFirst).toModify(
phase2L3MuonsOIFirst.toModify(
hltIter2Phase2L3FromL1TkMuonPixelSeedsFiltered,
L1TkMu = "hltPhase2L3MuonFilter:L1TkMuToReuse"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's just worth checking: shouldn't the L1TkMu in the toModify call be equal to cms.InputTag(...), like in line 4? So the value would have the same type as the original parameter in the module ?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As far as I understand, the convention we have now is not to specify cms types when modifying modules via a procModifier, but only when they are created the first time, so that eventual modifications using the wrong type would result in a runtime error

)
Original file line number Diff line number Diff line change
@@ -1,27 +1,6 @@
import FWCore.ParameterSet.Config as cms

hltL2MuonSeedsFromL1TkMuon = cms.EDProducer("L2MuonSeedGeneratorFromL1TkMu",
EtaMatchingBins = cms.vdouble(0.0, 2.5),
InputObjects = cms.InputTag("l1tTkMuonsGmt"),
L1MaxEta = cms.double(2.5),
L1MinPt = cms.double(0.0),
MatchDR = cms.vdouble(0.3),
MinPL1Tk = cms.double(3.5),
MinPtL1TkBarrel = cms.double(3.5),
OfflineSeedLabel = cms.untracked.InputTag("hltL2OfflineMuonSeeds"),
Propagator = cms.string('SteppingHelixPropagatorAny'),
ServiceParameters = cms.PSet(
Propagators = cms.untracked.vstring('SteppingHelixPropagatorAny'),
RPCLayers = cms.bool(True),
UseMuonNavigation = cms.untracked.bool(True)
),
SetMinPtBarrelTo = cms.double(3.5),
SetMinPtEndcapTo = cms.double(1.0),
UseOfflineSeed = cms.untracked.bool(True),
UseUnassociatedL1 = cms.bool(False)
)

phase2HltL2MuonSeedsFromL1TkMuon = cms.EDProducer('Phase2L2MuonSeedCreator',
hltL2MuonSeedsFromL1TkMuon = cms.EDProducer('Phase2L2MuonSeedCreator',
inputObjects = cms.InputTag('l1tTkMuonsGmt'),
cscRecSegmentLabel = cms.InputTag('hltCscSegments'),
dtRecSegmentLabel = cms.InputTag('hltDt4DSegments'),
Expand All @@ -42,8 +21,3 @@
estimatorMaxChi2 = cms.double(1000.0)
)

from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons
phase2L2AndL3Muons.toReplaceWith(
hltL2MuonSeedsFromL1TkMuon,
phase2HltL2MuonSeedsFromL1TkMuon
)
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,8 @@
)
)

from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons
from Configuration.ProcessModifiers.phase2L3MuonsOIFirst_cff import phase2L3MuonsOIFirst
(phase2L2AndL3Muons & phase2L3MuonsOIFirst).toModify(
phase2L3MuonsOIFirst.toModify(
hltPhase2L3FromL1TkMuonPixelTracksTrackingRegions.RegionPSet,
input = "hltPhase2L3MuonFilter:L1TkMuToReuse"
)
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,8 @@
MaxPtDifference = cms.double(999.0),
)

from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons
from Configuration.ProcessModifiers.phase2L3MuonsOIFirst_cff import phase2L3MuonsOIFirst
(phase2L2AndL3Muons & phase2L3MuonsOIFirst).toModify(
phase2L3MuonsOIFirst.toModify(
hltPhase2L3MuonFilter,
l3Tracks = "hltPhase2L3OIMuonTrackSelectionHighPurity",
IOFirst = False,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
ShareFrac = cms.double(0.19),
TrackProducers = cms.VInputTag(
"hltPhase2L3OIMuonTrackSelectionHighPurity",
"hltIter2Phase2L3FromL1TkMuonMerged",
"hltPhase2L3MuonFilter:L3IOTracksFiltered",
),
allowFirstHitShare = cms.bool(True),
copyExtras = cms.untracked.bool(True),
Expand All @@ -20,28 +20,15 @@
newQuality = cms.string("confirmed"),
selectedTrackQuals = cms.VInputTag(
"hltPhase2L3OIMuonTrackSelectionHighPurity",
"hltIter2Phase2L3FromL1TkMuonMerged",
"hltPhase2L3MuonFilter:L3IOTracksFiltered",
),
setsToMerge = cms.VPSet(cms.PSet(pQual = cms.bool(False), tLists = cms.vint32(0, 1))),
trackAlgoPriorityOrder = cms.string("hltESPTrackAlgoPriorityOrder"),
writeOnlyTrkQuals = cms.bool(False),
)

from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons
phase2L2AndL3Muons.toModify(
hltPhase2L3MuonMerged,
TrackProducers = cms.VInputTag(
"hltPhase2L3OIMuonTrackSelectionHighPurity",
"hltPhase2L3MuonFilter:L3IOTracksFiltered",
),
selectedTrackQuals = cms.VInputTag(
"hltPhase2L3OIMuonTrackSelectionHighPurity",
"hltPhase2L3MuonFilter:L3IOTracksFiltered",
),
)

from Configuration.ProcessModifiers.phase2L3MuonsOIFirst_cff import phase2L3MuonsOIFirst
(phase2L2AndL3Muons & phase2L3MuonsOIFirst).toModify(
phase2L3MuonsOIFirst.toModify(
hltPhase2L3MuonMerged,
TrackProducers = cms.VInputTag(
"hltPhase2L3MuonFilter:L3OITracksFiltered",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,19 +35,13 @@
pT2 = cms.double(30.0),
pT3 = cms.double(70.0),
propagatorName = cms.string('PropagatorWithMaterialParabolicMf'),
src = cms.InputTag("hltL2MuonsFromL1TkMuon","UpdatedAtVtx"),
src = cms.InputTag("hltPhase2L3MuonFilter:L2MuToReuse"),
tsosDiff1 = cms.double(0.2),
tsosDiff2 = cms.double(0.02)
)

from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons
phase2L2AndL3Muons.toModify(
hltPhase2L3OISeedsFromL2Muons,
src = "hltPhase2L3MuonFilter:L2MuToReuse"
)

from Configuration.ProcessModifiers.phase2L3MuonsOIFirst_cff import phase2L3MuonsOIFirst
(phase2L2AndL3Muons & phase2L3MuonsOIFirst).toModify(
phase2L3MuonsOIFirst.toModify(
hltPhase2L3OISeedsFromL2Muons,
src ="hltL2MuonsFromL1TkMuon:UpdatedAtVtx"
)
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,7 @@

HLTL2MuonsFromL1TkSequence = cms.Sequence(
HLTMuonlocalrecoSequence
+ hltL2OfflineMuonSeeds
+ hltL2MuonSeedsFromL1TkMuon
+ hltL2MuonsFromL1TkMuon
)

from Configuration.ProcessModifiers.phase2L2AndL3Muons_cff import phase2L2AndL3Muons

phase2L2AndL3Muons.toReplaceWith(
HLTL2MuonsFromL1TkSequence,
HLTL2MuonsFromL1TkSequence.copyAndExclude([hltL2OfflineMuonSeeds]),
)
Loading