/
githubmirror
/
cmssw
Обзор
Документация
Войти
/
githubmirror
/
cmssw
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Validation/RecoTrack/python/trackingNtuple_cff.py
116 строк
5 KB
Slava Krutelyov
update tracking ntuple HLT setup to work for Phase-2 (including LST workflows); add alternative algo mapping support in the ntuple; support multiple candidates/tracks per seed
06 сен 2025, 02:32
06 сен 2025, 02:32
a3ddbd8
Код
Авторство
О чём код?
import FWCore.ParameterSet.Config as cms from SimGeneral.TrackingAnalysis.simHitTPAssociation_cfi import * from SimTracker.TrackerHitAssociation.tpClusterProducer_cfi import * from SimTracker.TrackAssociatorProducers.quickTrackAssociatorByHits_cfi import * from RecoTracker.TransientTrackingRecHit.TTRHBuilders_cff import * from RecoLocalTracker.SiPixelRecHits.PixelCPEGeneric_cfi import * from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * from Validation.RecoTrack.trackingNtuple_cfi import * from Validation.RecoTrack.TrackValidation_cff import * from SimGeneral.TrackingAnalysis.trackingParticleNumberOfLayersProducer_cff import * import Validation.RecoTrack.TrackValidation_cff as _TrackValidation_cff _includeHits = True #_includeHits = False _includeSeeds = True #_includeSeeds = False _includeMVA = True #_includeMVA = False _includeTrackingParticles = True #_includeTrackingParticles = False from CommonTools.RecoAlgos.trackingParticleRefSelector_cfi import trackingParticleRefSelector as _trackingParticleRefSelector trackingParticlesIntime = _trackingParticleRefSelector.clone( signalOnly = False, intimeOnly = True, chargedOnly = False, tip = 1e5, lip = 1e5, minRapidity = -10, maxRapidity = 10, ptMin = 0, ) trackingNtuple.trackingParticles = "trackingParticlesIntime" trackingNtuple.trackingParticlesRef = True trackingNtuple.includeAllHits = _includeHits trackingNtuple.includeSeeds = _includeSeeds trackingNtuple.includeMVA = _includeMVA trackingNtuple.includeTrackingParticles = _includeTrackingParticles from Configuration.ProcessModifiers.trackingLST_cff import trackingLST trackingLST.toModify(trackingNtuple, seedUniqueCheck = False) def _filterForNtuple(lst): ret = [] for item in lst: if "PreSplitting" in item: continue if "SeedsA" in item and item.replace("SeedsA", "SeedsB") in lst: ret.append(item.replace("SeedsA", "Seeds")) continue if "SeedsB" in item: continue if "SeedsPair" in item and item.replace("SeedsPair", "SeedsTripl") in lst: ret.append(item.replace("SeedsPair", "Seeds")) continue if "SeedsTripl" in item: continue ret.append(item) return ret _seedProducers = _filterForNtuple(_TrackValidation_cff._seedProducers) _seedProducers_trackingPhase1 = _filterForNtuple(_TrackValidation_cff._seedProducers_trackingPhase1) _seedProducers_trackingPhase2PU140 = _filterForNtuple(_TrackValidation_cff._seedProducers_trackingPhase2PU140) (_seedSelectors, trackingNtupleSeedSelectors) = _TrackValidation_cff._addSeedToTrackProducers(_seedProducers, globals()) (_seedSelectors_trackingPhase1, _trackingNtupleSeedSelectors_trackingPhase1) = _TrackValidation_cff._addSeedToTrackProducers(_seedProducers_trackingPhase1, globals()) (_seedSelectors_trackingPhase2PU140, _trackingNtupleSeedSelectors_trackingPhase2PU140) = _TrackValidation_cff._addSeedToTrackProducers(_seedProducers_trackingPhase2PU140, globals()) from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1 from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140 trackingPhase1.toReplaceWith(trackingNtupleSeedSelectors, _trackingNtupleSeedSelectors_trackingPhase1) trackingPhase2PU140.toReplaceWith(trackingNtupleSeedSelectors, _trackingNtupleSeedSelectors_trackingPhase2PU140) trackingNtuple.seedTracks = _seedSelectors trackingPhase1.toModify(trackingNtuple, seedTracks = _seedSelectors_trackingPhase1) trackingPhase2PU140.toModify(trackingNtuple, seedTracks = _seedSelectors_trackingPhase2PU140) def _seedProdToTrackCands(name): return name.replace("seedTracks", "").replace("Seeds", "TrackCandidates") trackingNtuple.trackCandidates = [_seedProdToTrackCands(i) for i in _seedProducers] trackingPhase1.toModify(trackingNtuple, trackCandidates=[_seedProdToTrackCands(i) for i in _seedProducers_trackingPhase1]) trackingPhase2PU140.toModify(trackingNtuple, trackCandidates=[_seedProdToTrackCands(i) for i in _seedProducers_trackingPhase2PU140]) trackingNtupleTask = cms.Task() # reproduce hits because they're not stored in RECO if _includeHits: from RecoLocalTracker.Configuration.RecoLocalTracker_cff import siPixelRecHits,siStripMatchedRecHits from RecoLocalTracker.Phase2TrackerRecHits.Phase2TrackerRecHits_cfi import siPhase2RecHits trackingNtupleTask.add(siPixelRecHits, siStripMatchedRecHits) _phase2_trackingNtupleTask = trackingNtupleTask.copy() _phase2_trackingNtupleTask.remove(siStripMatchedRecHits) _phase2_trackingNtupleTask.add(siPhase2RecHits) trackingPhase2PU140.toReplaceWith(trackingNtupleTask, _phase2_trackingNtupleTask) if _includeSeeds: trackingNtupleTask.add(trackingNtupleSeedSelectors) trackingNtupleTask.add( # sim information trackingParticlesIntime, simHitTPAssocProducer, tpClusterProducer, quickTrackAssociatorByHits, trackingParticleNumberOfLayersProducer ) # ntuplizer trackingNtupleSequence = cms.Sequence(trackingNtuple, trackingNtupleTask) trackingPhase2PU140.toModify(trackingNtuple, # FIXME pixelDigiSimLink = cms.untracked.InputTag('simSiPixelDigis', "Pixel"), stripDigiSimLink = cms.untracked.InputTag(''), phase2OTSimLink = cms.untracked.InputTag('simSiPixelDigis', "Tracker") )