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
6 changes: 6 additions & 0 deletions Configuration/EventContent/python/EventContent_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -670,6 +670,12 @@ def SwapKeepAndDrop(l):
FEVTDEBUGHLTEventContent.outputCommands.append('keep *_*_StripDigiSimLink_*')
FEVTDEBUGHLTEventContent.outputCommands.append('keep *_*_PixelDigiSimLink_*')

from Configuration.ProcessModifiers.hltClusterSplitting_cff import hltClusterSplitting
hltClusterSplitting.toModify(FEVTDEBUGHLTEventContent,
outputCommands = FEVTDEBUGHLTEventContent.outputCommands+[
'keep *_hltPixelVertices_*_*'
])

approxSiStripClusters.toModify(FEVTDEBUGHLTEventContent,
outputCommands = FEVTDEBUGHLTEventContent.outputCommands+[
'keep *_hltSiStripClusters2ApproxClusters_*_*',
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import FWCore.ParameterSet.Config as cms

# This modifier enables
# - saving pixel vertices at HLT;
# - using those vertices in input for the cluster splitting and ak4CaloJets;

hltClusterSplitting = cms.Modifier()

Original file line number Diff line number Diff line change
Expand Up @@ -2552,6 +2552,72 @@ def condition(self, fragment, stepList, key, hasHarvest):
offset = 0.19002,
)

class UpgradeWorkflow_SplittingFromHLT(UpgradeWorkflow):
def setup_(self, step, stepName, stepDict, k, properties):
stepDict[stepName][k] = merge([{'--procModifiers': 'hltClusterSplitting'}, stepDict[step][k]])
def condition(self, fragment, stepList, key, hasHarvest):
return '2025' in key and fragment=="TTbar_14TeV"

upgradeWFs['SplittingFromHLT'] = UpgradeWorkflow_SplittingFromHLT(
steps = [
'DigiTrigger',
'Digi',
'HLTOnly',
'RecoLocal',
'Reco',
'RecoFakeHLT',
'RecoGlobal',
],
PU = [
'DigiTrigger',
'Digi',
'HLTOnly',
'RecoLocal',
'Reco',
'RecoFakeHLT',
'RecoGlobal',
],
suffix = '_SplittingFromHLT',
offset = 0.19003,
)

class UpgradeWorkflow_SplittingProdLike(UpgradeWorkflow_ProdLike):
def __init__(self, suffix, offset,steps, PU):
super(UpgradeWorkflow_SplittingProdLike, self).__init__(steps, PU, suffix, offset)

def setup_(self, step, stepName, stepDict, k, properties):
# copy steps, then apply specializations
stepDict[stepName][k] = merge([{'--procModifiers': 'hltClusterSplitting'}, stepDict[step][k]])

def condition(self, fragment, stepList, key, hasHarvest):
return '2025' in key and fragment=="TTbar_14TeV"

upgradeWFs['SplittingFromHLTProdLike'] = UpgradeWorkflow_SplittingProdLike(
steps = [
],
PU = [
'GenSimHLBeamSpot14',
'Digi',
'DigiTrigger',
'HLTOnly',
'Reco',
'RecoFakeHLT',
'RecoGlobal',
'RecoNano',
'RecoNanoFakeHLT',
'HARVEST',
'HARVESTFakeHLT',
'HARVESTGlobal',
'HARVESTNano',
'HARVESTNanoFakeHLT',
'MiniAOD',
'ALCA',
'Nano',
],
suffix = '_SplittingFromHLTProdLike',
offset = 0.1900321,
)

#
# Simulates Bias Rail in Phase-2 OT PS modules and X% random bad Strips
# in PS-s and SS sensors
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,12 @@
src = 'caloTowerForTrkPreSplitting',
srcPVs = 'firstStepPrimaryVerticesPreSplitting'
)

from Configuration.ProcessModifiers.hltClusterSplitting_cff import hltClusterSplitting
hltClusterSplitting.toModify(ak4CaloJetsForTrkPreSplitting,
srcPVs = 'hltPixelVertices'
)

jetsForCoreTrackingPreSplitting = jetsForCoreTracking.clone(
src = 'ak4CaloJetsForTrkPreSplitting'
)
Expand All @@ -233,6 +239,8 @@
cores = 'jetsForCoreTrackingPreSplitting'
)



# Final sequence
from RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi import siPixelRecHits
from RecoTracker.MeasurementDet.MeasurementTrackerEventProducer_cfi import MeasurementTrackerEvent
Expand All @@ -254,6 +262,21 @@
siPixelRecHits,
MeasurementTrackerEvent,
siPixelClusterShapeCache)

hltClusterSplitting.toModify(siPixelClusters,
vertices = cms.InputTag("hltPixelVertices")
)

InitialStepPreSplittingFromHLTTask = cms.Task(
caloTowerForTrkPreSplitting,
ak4CaloJetsForTrkPreSplitting,
jetsForCoreTrackingPreSplitting,
siPixelClusters,
siPixelRecHits,
MeasurementTrackerEvent,
siPixelClusterShapeCache)
hltClusterSplitting.toReplaceWith(InitialStepPreSplittingTask, InitialStepPreSplittingFromHLTTask)

InitialStepPreSplitting = cms.Sequence(InitialStepPreSplittingTask)
_InitialStepPreSplittingTask_trackingPhase1 = InitialStepPreSplittingTask.copy()
_InitialStepPreSplittingTask_trackingPhase1.replace(initialStepHitTripletsPreSplitting, cms.Task(initialStepHitTripletsPreSplitting,initialStepHitQuadrupletsPreSplitting))
Expand Down
14 changes: 13 additions & 1 deletion Validation/RecoTrack/python/TrackValidation_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import RecoTracker.IterativeTracking.iterativeTkConfig as _cfg
import RecoTracker.IterativeTracking.iterativeTkUtils as _utils
from Configuration.Eras.Modifier_fastSim_cff import fastSim
from Configuration.ProcessModifiers.hltClusterSplitting_cff import hltClusterSplitting

### First define the stuff for the standard validation sequence
## Track selectors
Expand Down Expand Up @@ -47,15 +48,16 @@
"displacedRegionalStepSeeds",
"muonSeededSeedsInOut",
"muonSeededSeedsOutIn"]

_seedProducers_fastSim = [ x for x in _seedProducers if x not in _removeForFastSimSeedProducers]
_seedProducers_hltSplit = [ x for x in _seedProducers if x not in ["initialStepSeedsPreSplitting"]]

_removeForFastTrackProducers = ["initialStepTracksPreSplitting",
"jetCoreRegionalStepTracks",
"displacedRegionalStepTracks",
"muonSeededTracksInOut",
"muonSeededTracksOutIn"]
_trackProducers_fastSim = [ x for x in _trackProducers if x not in _removeForFastTrackProducers]
_trackProducers_hltSplit = [ x for x in _trackProducers if x not in ["initialStepTracksPreSplitting"]]

def _algoToSelector(algo):
sel = ""
Expand Down Expand Up @@ -813,6 +815,10 @@ def _uniqueFirstLayers(layerList):
trackValidatorGsfTracks,
]))

hltClusterSplitting.toReplaceWith(tracksValidation, tracksValidation.copyAndExclude([
trackValidatorBuildingPreSplitting,
]))

### Then define stuff for standalone mode (i.e. MTV with RECO+DIGI input)

# Select by originalAlgo and algoMask
Expand Down Expand Up @@ -1016,6 +1022,12 @@ def _uniqueFirstLayers(layerList):
trackValidatorConversionTrackingOnly,
trackValidatorBHadronTrackingOnly
]))

hltClusterSplitting.toReplaceWith(trackValidatorsTrackingOnly, trackValidatorsTrackingOnly.copyAndExclude([
trackValidatorBuildingPreSplitting,
trackValidatorSeedingPreSplittingTrackingOnly,
]))

tracksValidationTrackingOnly = cms.Sequence(
trackValidatorsTrackingOnly,
tracksPreValidationTrackingOnly,
Expand Down