From 5ff70cca346cd40a2a73e6291e01bf0f66669666 Mon Sep 17 00:00:00 2001 From: Jan-Frederik Date: Fri, 11 Nov 2016 19:18:10 +0100 Subject: [PATCH 1/9] add customization function to switch the pixelTracks for the iterative tracking for PF at HLT to use quadruplets created by the Cellular Automaton --- .../customizeHLTForPFTrackingPhaseI2017.py | 298 ++++++++++++++++++ 1 file changed, 298 insertions(+) create mode 100755 HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py diff --git a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py b/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py new file mode 100755 index 0000000000000..fd26b9d327500 --- /dev/null +++ b/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py @@ -0,0 +1,298 @@ +import FWCore.ParameterSet.Config as cms + + +def producers_by_type(process, *types): + return (module for module in process._Process__producers.values() if module._TypedParameterizable__type in types) + +def customizeHLTForPFTrackingPhaseI2017(process): + + + process.hltPixelLayerTriplets.layerList = cms.vstring( + 'BPix1+BPix2+BPix3', + 'BPix2+BPix3+BPix4', + 'BPix1+BPix3+BPix4', + 'BPix1+BPix2+BPix4', + 'BPix2+BPix3+FPix1_pos', + 'BPix2+BPix3+FPix1_neg', + 'BPix1+BPix2+FPix1_pos', + 'BPix1+BPix2+FPix1_neg', + 'BPix2+FPix1_pos+FPix2_pos', + 'BPix2+FPix1_neg+FPix2_neg', + 'BPix1+FPix1_pos+FPix2_pos', + 'BPix1+FPix1_neg+FPix2_neg', + 'FPix1_pos+FPix2_pos+FPix3_pos', + 'FPix1_neg+FPix2_neg+FPix3_neg' + ) + + process.hltPixelLayerQuadruplets = cms.EDProducer("SeedingLayersEDProducer", + BPix = cms.PSet( + useErrorsFromParam = cms.bool( True ), + hitErrorRPhi = cms.double( 0.0027 ), + TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ), + HitProducer = cms.string( "hltSiPixelRecHits" ), + hitErrorRZ = cms.double( 0.006 ) + ), + FPix = cms.PSet( + useErrorsFromParam = cms.bool( True ), + hitErrorRPhi = cms.double( 0.0051 ), + TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ), + HitProducer = cms.string( "hltSiPixelRecHits" ), + hitErrorRZ = cms.double( 0.0036 ) + ), + MTEC = cms.PSet( ), + MTIB = cms.PSet( ), + MTID = cms.PSet( ), + MTOB = cms.PSet( ), + TEC = cms.PSet( ), + TIB = cms.PSet( ), + TID = cms.PSet( ), + TOB = cms.PSet( ), + layerList = cms.vstring( + 'BPix1+BPix2+BPix3+BPix4', + 'BPix1+BPix2+BPix3+FPix1_pos', + 'BPix1+BPix2+BPix3+FPix1_neg', + 'BPix1+BPix2+FPix1_pos+FPix2_pos', + 'BPix1+BPix2+FPix1_neg+FPix2_neg', + 'BPix1+FPix1_pos+FPix2_pos+FPix3_pos', + 'BPix1+FPix1_neg+FPix2_neg+FPix3_neg' + ) + ) + + process.hltPixelTracks.OrderedHitsFactoryPSet = cms.PSet( + ComponentName = cms.string('CombinedHitQuadrupletGenerator'), + GeneratorPSet = cms.PSet( + extraHitRPhitolerance = cms.double(0.032), + extraHitRZtolerance = cms.double(0.037), + extraPhiTolerance = cms.PSet( + enabled = cms.bool(True), + pt1 = cms.double(0.6), + pt2 = cms.double(1), + value1 = cms.double(0.15), + value2 = cms.double(0.1) + ), + fitFastCircle = cms.bool(True), + fitFastCircleChi2Cut = cms.bool(True), + maxChi2 = cms.PSet( + enabled = cms.bool(True), + pt1 = cms.double(0.8), + pt2 = cms.double(2), + value1 = cms.double(200), + value2 = cms.double(100) + ), + useBendingCorrection = cms.bool(True), + SeedComparitorPSet = cms.PSet( + ComponentName = cms.string( "LowPtClusterShapeSeedComparitor" ), + clusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCache" ) + ), + ComponentName = cms.string('PixelQuadrupletGenerator'), + ), + SeedingLayers = cms.InputTag( "hltPixelLayerQuadruplets" ), + TripletGeneratorPSet = cms.PSet( + ComponentName = cms.string('PixelTripletHLTGenerator'), + SeedComparitorPSet = cms.PSet( + ComponentName = cms.string('LowPtClusterShapeSeedComparitor'), + clusterShapeCacheSrc = cms.InputTag("hltSiPixelClustersCache") + ), + extraHitRPhitolerance = cms.double(0.032), + extraHitRZtolerance = cms.double(0.037), + maxElement = cms.uint32(1000000), + phiPreFiltering = cms.double(0.3), + useBending = cms.bool(True), + useFixedPreFiltering = cms.bool(False), + useMultScattering = cms.bool(True) + ) + ) + process.hltPixelTracks.RegionFactoryPSet.RegionPSet = cms.PSet( + precise = cms.bool( True ), + beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), + originRadius = cms.double(0.02), + ptMin = cms.double(0.9), + nSigmaZ = cms.double(4.0), + ) + + + process.HLTDoRecoPixelTracksSequence = cms.Sequence( process.hltPixelLayerQuadruplets + process.hltPixelTracks ) + + process.HLTIter0PSetTrajectoryFilterIT.minimumNumberOfHits = cms.int32( 4 ) + process.HLTIter0PSetTrajectoryFilterIT.minHitsMinPt = cms.int32( 4 ) + process.hltIter0PFlowTrackCutClassifier.mva.minLayers = cms.vint32( 3, 3, 4 ) + process.hltIter0PFlowTrackCutClassifier.mva.min3DLayers = cms.vint32( 0, 3, 4 ) + process.hltIter0PFlowTrackCutClassifier.mva.minPixelHits = cms.vint32( 0, 3, 4 ) + + + + + process.hltIter1PixelLayerTriplets = cms.EDProducer( "SeedingLayersEDProducer", + layerList = cms.vstring( + 'BPix1+BPix2+BPix3', + 'BPix1+BPix2+FPix1_pos', + 'BPix1+BPix2+FPix1_neg', + 'BPix1+FPix1_pos+FPix2_pos', + 'BPix1+FPix1_neg+FPix2_neg' + ), + MTOB = cms.PSet( ), + TEC = cms.PSet( ), + MTID = cms.PSet( ), + FPix = cms.PSet( + HitProducer = cms.string( "hltSiPixelRecHits" ), + hitErrorRZ = cms.double( 0.0036 ), + useErrorsFromParam = cms.bool( True ), + TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ), + skipClusters = cms.InputTag( "hltIter1ClustersRefRemoval" ), + hitErrorRPhi = cms.double( 0.0051 ) + ), + MTEC = cms.PSet( ), + MTIB = cms.PSet( ), + TID = cms.PSet( ), + TOB = cms.PSet( ), + BPix = cms.PSet( + HitProducer = cms.string( "hltSiPixelRecHits" ), + hitErrorRZ = cms.double( 0.006 ), + useErrorsFromParam = cms.bool( True ), + TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ), + skipClusters = cms.InputTag( "hltIter1ClustersRefRemoval" ), + hitErrorRPhi = cms.double( 0.0027 ) + ), + TIB = cms.PSet( ) + ) + + process.HLTIter1PSetTrajectoryFilterIT = cms.PSet( + ComponentType = cms.string('CkfBaseTrajectoryFilter'), + chargeSignificance = cms.double(-1.0), + constantValueForLostHitsFractionFilter = cms.double(2.0), + extraNumberOfHitsBeforeTheFirstLoop = cms.int32(4), + maxCCCLostHits = cms.int32(0), # offline (2), + maxConsecLostHits = cms.int32(1), + maxLostHits = cms.int32(1), # offline (999), + maxLostHitsFraction = cms.double(0.1), + maxNumberOfHits = cms.int32(100), + minGoodStripCharge = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + minHitsMinPt = cms.int32(3), + minNumberOfHitsForLoopers = cms.int32(13), + minNumberOfHitsPerLoop = cms.int32(4), + minPt = cms.double(0.2), + minimumNumberOfHits = cms.int32(4), # 3 online + nSigmaMinPt = cms.double(5.0), + pixelSeedExtension = cms.bool(True), + seedExtension = cms.int32(1), + seedPairPenalty = cms.int32(0), + strictSeedExtension = cms.bool(True) + ) + + process.HLTIter1PSetTrajectoryFilterInOutIT = cms.PSet( + ComponentType = cms.string('CkfBaseTrajectoryFilter'), + chargeSignificance = cms.double(-1.0), + constantValueForLostHitsFractionFilter = cms.double(2.0), + extraNumberOfHitsBeforeTheFirstLoop = cms.int32(4), + maxCCCLostHits = cms.int32(0), # offline (2), + maxConsecLostHits = cms.int32(1), + maxLostHits = cms.int32(1), # offline (999), + maxLostHitsFraction = cms.double(0.1), + maxNumberOfHits = cms.int32(100), + minGoodStripCharge = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ), + minHitsMinPt = cms.int32(3), + minNumberOfHitsForLoopers = cms.int32(13), + minNumberOfHitsPerLoop = cms.int32(4), + minPt = cms.double(0.2), + minimumNumberOfHits = cms.int32(4), # 3 online + nSigmaMinPt = cms.double(5.0), + pixelSeedExtension = cms.bool(True), + seedExtension = cms.int32(1), + seedPairPenalty = cms.int32(0), + strictSeedExtension = cms.bool(True) + ) + + process.HLTIter1PSetTrajectoryBuilderIT = cms.PSet( + inOutTrajectoryFilter = cms.PSet( refToPSet_ = cms.string('HLTIter1PSetTrajectoryFilterInOutIT') ), + propagatorAlong = cms.string( "PropagatorWithMaterialParabolicMf" ), + trajectoryFilter = cms.PSet( refToPSet_ = cms.string( "HLTIter1PSetTrajectoryFilterIT" ) ), + maxCand = cms.int32( 2 ), + ComponentType = cms.string( "CkfTrajectoryBuilder" ), + propagatorOpposite = cms.string( "PropagatorWithMaterialParabolicMfOpposite" ), + MeasurementTrackerName = cms.string( "hltIter1ESPMeasurementTracker" ), + estimator = cms.string( "hltESPChi2ChargeMeasurementEstimator16" ), + TTRHBuilder = cms.string( "hltESPTTRHBWithTrackAngle" ), + updator = cms.string( "hltESPKFUpdator" ), + alwaysUseInvalidHits = cms.bool( False ), + intermediateCleaning = cms.bool( True ), + lostHitPenalty = cms.double( 30.0 ), + useSameTrajFilter = cms.bool(False) # new ! other iteration should have it set to True + ) + + process.HLTIterativeTrackingIteration1 = cms.Sequence( process.hltIter1ClustersRefRemoval + process.hltIter1MaskedMeasurementTrackerEvent + process.hltIter1PixelLayerTriplets + process.hltIter1PFlowPixelSeeds + process.hltIter1PFlowCkfTrackCandidates + process.hltIter1PFlowCtfWithMaterialTracks + process.hltIter1PFlowTrackCutClassifierPrompt + process.hltIter1PFlowTrackCutClassifierDetached + process.hltIter1PFlowTrackCutClassifierMerged + process.hltIter1PFlowTrackSelectionHighPurity ) + + + process.hltIter2PixelLayerTriplets = cms.EDProducer( "SeedingLayersEDProducer", + layerList = cms.vstring( + 'BPix1+BPix2+BPix3', + 'BPix1+BPix2+FPix1_pos', + 'BPix1+BPix2+FPix1_neg', + 'BPix1+FPix1_pos+FPix2_pos', + 'BPix1+FPix1_neg+FPix2_neg' + ), + MTOB = cms.PSet( ), + TEC = cms.PSet( ), + MTID = cms.PSet( ), + FPix = cms.PSet( + HitProducer = cms.string( "hltSiPixelRecHits" ), + hitErrorRZ = cms.double( 0.0036 ), + useErrorsFromParam = cms.bool( True ), + TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ), + skipClusters = cms.InputTag( "hltIter2ClustersRefRemoval" ), + hitErrorRPhi = cms.double( 0.0051 ) + ), + MTEC = cms.PSet( ), + MTIB = cms.PSet( ), + TID = cms.PSet( ), + TOB = cms.PSet( ), + BPix = cms.PSet( + HitProducer = cms.string( "hltSiPixelRecHits" ), + hitErrorRZ = cms.double( 0.006 ), + useErrorsFromParam = cms.bool( True ), + TTRHBuilder = cms.string( "hltESPTTRHBuilderPixelOnly" ), + skipClusters = cms.InputTag( "hltIter2ClustersRefRemoval" ), + hitErrorRPhi = cms.double( 0.0027 ) + ), + TIB = cms.PSet( ) + ) + process.hltIter2PFlowPixelSeeds.OrderedHitsFactoryPSet = cms.PSet( + maxElement = cms.uint32( 0 ), + ComponentName = cms.string( "StandardHitTripletGenerator" ), + GeneratorPSet = cms.PSet( + useBending = cms.bool( True ), + useFixedPreFiltering = cms.bool( False ), + maxElement = cms.uint32( 100000 ), + phiPreFiltering = cms.double( 0.3 ), + extraHitRPhitolerance = cms.double( 0.032 ), + useMultScattering = cms.bool( True ), + ComponentName = cms.string( "PixelTripletHLTGenerator" ), + extraHitRZtolerance = cms.double( 0.037 ), + SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "none" ) ) + ), + SeedingLayers = cms.InputTag( "hltIter2PixelLayerTriplets" ) + ) + process.hltIter2PFlowPixelSeeds.SeedCreatorPSet = cms.PSet( refToPSet_ = cms.string( "HLTSeedFromConsecutiveHitsTripletOnlyCreator" ) ) + + process.HLTIterativeTrackingIteration2 = cms.Sequence( process.hltIter2ClustersRefRemoval + process.hltIter2MaskedMeasurementTrackerEvent + process.hltIter2PixelLayerTriplets + process.hltIter2PFlowPixelSeeds + process.hltIter2PFlowCkfTrackCandidates + process.hltIter2PFlowCtfWithMaterialTracks + process.hltIter2PFlowTrackCutClassifier + process.hltIter2PFlowTrackSelectionHighPurity ) + + if hasattr(process,"HLTRecoPixelVertexingForPhotonsSequence"): + process.HLTRecoPixelVertexingForPhotonsSequence = cms.Sequence(process.hltPixelLayerQuadruplets+process.hltPixelTracks+process.hltPixelVerticesForPhotons) + if hasattr(process,"HLTRecopixelvertexingSequence"): + process.HLTRecopixelvertexingSequence = cms.Sequence(process.hltPixelLayerQuadruplets+process.hltPixelTracks+process.hltPixelVertices+process.hltTrimmedPixelVertices) + if hasattr(process,"HLTTrackerMuonSequence"): + process.HLTTrackerMuonSequence = cms.Sequence(process.HLTDoLocalPixelSequence+process.hltPixelLayerQuadruplets+process.hltPixelTracks+process.HLTDoLocalStripSequence+process.hltMuTrackSeeds+process.hltMuCkfTrackCandidates+process.hltMuCtfTracks+process.HLTL3muonrecoNocandSequence+process.hltDiMuonMerging+process.hltDiMuonLinks+process.hltGlbTrkMuons+process.hltGlbTrkMuonCands) + if hasattr(process,"HLTTrackerMuonSequenceNoVtx"): + process.HLTTrackerMuonSequenceNoVtx = cms.Sequence(process.HLTDoLocalPixelSequence+process.hltPixelTracks+process.hltPixelLayerQuadruplets+process.HLTDoLocalStripSequence+process.hltMuTrackSeeds+process.hltMuCkfTrackCandidates+process.hltMuCtfTracks+process.HLTL3NoFiltersNoVtxmuonrecoNocandSequence+process.hltDiMuonMergingNoVtx+process.hltDiMuonLinksNoVtx+process.hltGlbTrkMuonsNoVtx+process.hltGlbTrkMuonCandsNoVtx) + if hasattr(process,"HLTDiTrackerMuonSequence"): + process.HLTDiTrackerMuonSequence = cms.Sequence(process.HLTDoLocalPixelSequence+process.hltPixelLayerQuadruplets+process.hltPixelTracks+process.HLTDoLocalStripSequence+process.hltMuTrackSeeds+process.hltMuCkfTrackCandidates+process.hltMuCtfTracks+process.hltMuCtfTracksMerged+process.HLTL2muonrecoNocandSequence+process.HLTL3muonrecoNocandSequence+process.hltDiTkMuonMerging+process.hltDiTkMuonLinks+process.hltGlbDiTrkMuons+process.hltGlbDiTrkMuonCands) + if hasattr(process,"HLT_IsoTrackHE_v3"): + process.HLT_IsoTrackHE_v3 = cms.Path(process.HLTBeginSequence+process.hltL1sV0SingleJet60+process.hltPreIsoTrackHE+process.HLTDoLocalPixelSequence+process.hltPixelLayerQuadruplets+process.hltPixelTracks+process.hltPixelVertices+process.hltTrimmedPixelVertices+process.hltIsolPixelTrackProdHE+process.hltIsolPixelTrackL2FilterHE+process.HLTDoFullUnpackingEgammaEcalSequence+process.hltIsolEcalPixelTrackProdHE+process.hltEcalIsolPixelTrackL2FilterHE+process.HLTDoLocalStripSequence+process.hltIter0PFLowPixelSeedsFromPixelTracks+process.hltIter0PFlowCkfTrackCandidates+process.hltIter0PFlowCtfWithMaterialTracks+process.hltHcalITIPTCorrectorHE+process.hltIsolPixelTrackL3FilterHE+process.HLTEndSequence) + if hasattr(process,"HLT_IsoTrackHB_v3"): + process.HLT_IsoTrackHB_v3 = cms.Path(process.HLTBeginSequence+process.hltL1sV0SingleJet60+process.hltPreIsoTrackHB+process.HLTDoLocalPixelSequence+process.hltPixelLayerQuadruplets+process.hltPixelTracks+process.hltPixelVertices+process.hltTrimmedPixelVertices+process.hltIsolPixelTrackProdHB+process.hltIsolPixelTrackL2FilterHB+process.HLTDoFullUnpackingEgammaEcalSequence+process.hltIsolEcalPixelTrackProdHB+process.hltEcalIsolPixelTrackL2FilterHB+process.HLTDoLocalStripSequence+process.hltIter0PFLowPixelSeedsFromPixelTracks+process.hltIter0PFlowCkfTrackCandidates+process.hltIter0PFlowCtfWithMaterialTracks+process.hltHcalITIPTCorrectorHB+process.hltIsolPixelTrackL3FilterHB+process.HLTEndSequence) + + + from RecoTracker.Configuration.customiseForQuadrupletsByCellularAutomaton import customiseForQuadrupletsByCellularAutomaton + process = customiseForQuadrupletsByCellularAutomaton(process) + + + return process From 5a96f1aaef7b7ff9706f426961fe2a4376d0079d Mon Sep 17 00:00:00 2001 From: Jan-Frederik Date: Fri, 11 Nov 2016 22:55:55 +0100 Subject: [PATCH 2/9] Remove hardcoded apdaption of sequence in favor of a dynamic approach --- .../customizeHLTForPFTrackingPhaseI2017.py | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py b/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py index fd26b9d327500..bb8ea40d6ede9 100755 --- a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py +++ b/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py @@ -275,21 +275,20 @@ def customizeHLTForPFTrackingPhaseI2017(process): process.HLTIterativeTrackingIteration2 = cms.Sequence( process.hltIter2ClustersRefRemoval + process.hltIter2MaskedMeasurementTrackerEvent + process.hltIter2PixelLayerTriplets + process.hltIter2PFlowPixelSeeds + process.hltIter2PFlowCkfTrackCandidates + process.hltIter2PFlowCtfWithMaterialTracks + process.hltIter2PFlowTrackCutClassifier + process.hltIter2PFlowTrackSelectionHighPurity ) - if hasattr(process,"HLTRecoPixelVertexingForPhotonsSequence"): - process.HLTRecoPixelVertexingForPhotonsSequence = cms.Sequence(process.hltPixelLayerQuadruplets+process.hltPixelTracks+process.hltPixelVerticesForPhotons) - if hasattr(process,"HLTRecopixelvertexingSequence"): - process.HLTRecopixelvertexingSequence = cms.Sequence(process.hltPixelLayerQuadruplets+process.hltPixelTracks+process.hltPixelVertices+process.hltTrimmedPixelVertices) - if hasattr(process,"HLTTrackerMuonSequence"): - process.HLTTrackerMuonSequence = cms.Sequence(process.HLTDoLocalPixelSequence+process.hltPixelLayerQuadruplets+process.hltPixelTracks+process.HLTDoLocalStripSequence+process.hltMuTrackSeeds+process.hltMuCkfTrackCandidates+process.hltMuCtfTracks+process.HLTL3muonrecoNocandSequence+process.hltDiMuonMerging+process.hltDiMuonLinks+process.hltGlbTrkMuons+process.hltGlbTrkMuonCands) - if hasattr(process,"HLTTrackerMuonSequenceNoVtx"): - process.HLTTrackerMuonSequenceNoVtx = cms.Sequence(process.HLTDoLocalPixelSequence+process.hltPixelTracks+process.hltPixelLayerQuadruplets+process.HLTDoLocalStripSequence+process.hltMuTrackSeeds+process.hltMuCkfTrackCandidates+process.hltMuCtfTracks+process.HLTL3NoFiltersNoVtxmuonrecoNocandSequence+process.hltDiMuonMergingNoVtx+process.hltDiMuonLinksNoVtx+process.hltGlbTrkMuonsNoVtx+process.hltGlbTrkMuonCandsNoVtx) - if hasattr(process,"HLTDiTrackerMuonSequence"): - process.HLTDiTrackerMuonSequence = cms.Sequence(process.HLTDoLocalPixelSequence+process.hltPixelLayerQuadruplets+process.hltPixelTracks+process.HLTDoLocalStripSequence+process.hltMuTrackSeeds+process.hltMuCkfTrackCandidates+process.hltMuCtfTracks+process.hltMuCtfTracksMerged+process.HLTL2muonrecoNocandSequence+process.HLTL3muonrecoNocandSequence+process.hltDiTkMuonMerging+process.hltDiTkMuonLinks+process.hltGlbDiTrkMuons+process.hltGlbDiTrkMuonCands) - if hasattr(process,"HLT_IsoTrackHE_v3"): - process.HLT_IsoTrackHE_v3 = cms.Path(process.HLTBeginSequence+process.hltL1sV0SingleJet60+process.hltPreIsoTrackHE+process.HLTDoLocalPixelSequence+process.hltPixelLayerQuadruplets+process.hltPixelTracks+process.hltPixelVertices+process.hltTrimmedPixelVertices+process.hltIsolPixelTrackProdHE+process.hltIsolPixelTrackL2FilterHE+process.HLTDoFullUnpackingEgammaEcalSequence+process.hltIsolEcalPixelTrackProdHE+process.hltEcalIsolPixelTrackL2FilterHE+process.HLTDoLocalStripSequence+process.hltIter0PFLowPixelSeedsFromPixelTracks+process.hltIter0PFlowCkfTrackCandidates+process.hltIter0PFlowCtfWithMaterialTracks+process.hltHcalITIPTCorrectorHE+process.hltIsolPixelTrackL3FilterHE+process.HLTEndSequence) - if hasattr(process,"HLT_IsoTrackHB_v3"): - process.HLT_IsoTrackHB_v3 = cms.Path(process.HLTBeginSequence+process.hltL1sV0SingleJet60+process.hltPreIsoTrackHB+process.HLTDoLocalPixelSequence+process.hltPixelLayerQuadruplets+process.hltPixelTracks+process.hltPixelVertices+process.hltTrimmedPixelVertices+process.hltIsolPixelTrackProdHB+process.hltIsolPixelTrackL2FilterHB+process.HLTDoFullUnpackingEgammaEcalSequence+process.hltIsolEcalPixelTrackProdHB+process.hltEcalIsolPixelTrackL2FilterHB+process.HLTDoLocalStripSequence+process.hltIter0PFLowPixelSeedsFromPixelTracks+process.hltIter0PFlowCkfTrackCandidates+process.hltIter0PFlowCtfWithMaterialTracks+process.hltHcalITIPTCorrectorHB+process.hltIsolPixelTrackL3FilterHB+process.HLTEndSequence) + for seqName in process.sequences: + seq = getattr(process,seqName) + from FWCore.ParameterSet.SequenceTypes import ModuleNodeVisitor + l = list() + v = ModuleNodeVisitor(l) + seq.visit(v) + if process.hltPixelTracks in l and not process.hltPixelLayerQuadruplets in l: + print seqName + print seq + seq.remove(process.hltPixelLayerTriplets) + index = seq.index(process.hltPixelTracks) + seq.insert(index,process.hltPixelLayerQuadruplets) + print seq from RecoTracker.Configuration.customiseForQuadrupletsByCellularAutomaton import customiseForQuadrupletsByCellularAutomaton process = customiseForQuadrupletsByCellularAutomaton(process) From e8d1b2ad82237e1cf796074a238e75e6db543818 Mon Sep 17 00:00:00 2001 From: Jan-Frederik Date: Fri, 11 Nov 2016 22:58:10 +0100 Subject: [PATCH 3/9] remove leftover print outs --- .../python/customizeHLTForPFTrackingPhaseI2017.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py b/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py index bb8ea40d6ede9..5e80ef1b95d36 100755 --- a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py +++ b/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py @@ -283,12 +283,9 @@ def customizeHLTForPFTrackingPhaseI2017(process): v = ModuleNodeVisitor(l) seq.visit(v) if process.hltPixelTracks in l and not process.hltPixelLayerQuadruplets in l: - print seqName - print seq seq.remove(process.hltPixelLayerTriplets) index = seq.index(process.hltPixelTracks) seq.insert(index,process.hltPixelLayerQuadruplets) - print seq from RecoTracker.Configuration.customiseForQuadrupletsByCellularAutomaton import customiseForQuadrupletsByCellularAutomaton process = customiseForQuadrupletsByCellularAutomaton(process) From e52171022fa65a5491e492c007763582732f61ee Mon Sep 17 00:00:00 2001 From: Jan-Frederik Date: Wed, 16 Nov 2016 16:27:10 +0100 Subject: [PATCH 4/9] use proper CA customization for HLT --- .../python/customizeHLTForPFTrackingPhaseI2017.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py b/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py index 5e80ef1b95d36..1dfed9a76a839 100755 --- a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py +++ b/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py @@ -6,7 +6,6 @@ def producers_by_type(process, *types): def customizeHLTForPFTrackingPhaseI2017(process): - process.hltPixelLayerTriplets.layerList = cms.vstring( 'BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4', @@ -275,7 +274,6 @@ def customizeHLTForPFTrackingPhaseI2017(process): process.HLTIterativeTrackingIteration2 = cms.Sequence( process.hltIter2ClustersRefRemoval + process.hltIter2MaskedMeasurementTrackerEvent + process.hltIter2PixelLayerTriplets + process.hltIter2PFlowPixelSeeds + process.hltIter2PFlowCkfTrackCandidates + process.hltIter2PFlowCtfWithMaterialTracks + process.hltIter2PFlowTrackCutClassifier + process.hltIter2PFlowTrackSelectionHighPurity ) - for seqName in process.sequences: seq = getattr(process,seqName) from FWCore.ParameterSet.SequenceTypes import ModuleNodeVisitor @@ -286,9 +284,6 @@ def customizeHLTForPFTrackingPhaseI2017(process): seq.remove(process.hltPixelLayerTriplets) index = seq.index(process.hltPixelTracks) seq.insert(index,process.hltPixelLayerQuadruplets) - - from RecoTracker.Configuration.customiseForQuadrupletsByCellularAutomaton import customiseForQuadrupletsByCellularAutomaton - process = customiseForQuadrupletsByCellularAutomaton(process) - - + from RecoTracker.Configuration.customiseForQuadrupletsHLTPixelTracksByCellularAutomaton import customiseForQuadrupletsHLTPixelTracksByCellularAutomaton + process = customiseForQuadrupletsHLTPixelTracksByCellularAutomaton(process) return process From efb9ef9105e98239aef1e246b15cbd7226d272a9 Mon Sep 17 00:00:00 2001 From: Jan-Frederik Date: Thu, 24 Nov 2016 17:17:03 +0100 Subject: [PATCH 5/9] make sure to only change the hltPixelTracks --- .../customizeHLTForPFTrackingPhaseI2017.py | 69 ++++++++----------- 1 file changed, 27 insertions(+), 42 deletions(-) diff --git a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py b/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py index 1dfed9a76a839..ede58493a1ee8 100755 --- a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py +++ b/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py @@ -57,50 +57,35 @@ def customizeHLTForPFTrackingPhaseI2017(process): ) ) - process.hltPixelTracks.OrderedHitsFactoryPSet = cms.PSet( - ComponentName = cms.string('CombinedHitQuadrupletGenerator'), - GeneratorPSet = cms.PSet( - extraHitRPhitolerance = cms.double(0.032), - extraHitRZtolerance = cms.double(0.037), - extraPhiTolerance = cms.PSet( - enabled = cms.bool(True), - pt1 = cms.double(0.6), - pt2 = cms.double(1), - value1 = cms.double(0.15), - value2 = cms.double(0.1) - ), - fitFastCircle = cms.bool(True), - fitFastCircleChi2Cut = cms.bool(True), - maxChi2 = cms.PSet( - enabled = cms.bool(True), - pt1 = cms.double(0.8), - pt2 = cms.double(2), - value1 = cms.double(200), - value2 = cms.double(100) - ), - useBendingCorrection = cms.bool(True), - SeedComparitorPSet = cms.PSet( + + + + + # Configure seed generator / pixel track producer + from RecoPixelVertexing.PixelTriplets.CAHitQuadrupletGenerator_cfi import CAHitQuadrupletGenerator as _CAHitQuadrupletGenerator + + process.hltPixelTracks.OrderedHitsFactoryPSet = _CAHitQuadrupletGenerator.clone( + ComponentName = cms.string("CAHitQuadrupletGenerator"), + extraHitRPhitolerance = cms.double(0.032), + maxChi2 = dict( + pt1 = 0.7, pt2 = 2, + value1 = 200, value2 = 50, + enabled = True, + ), + useBendingCorrection = True, + fitFastCircle = True, + fitFastCircleChi2Cut = True, + SeedingLayers = cms.InputTag("hltPixelLayerQuadruplets"), + CAThetaCut = cms.double(0.0012), + CAPhiCut = cms.double(0.2), + CAHardPtCut = cms.double(0), + SeedComparitorPSet = cms.PSet( ComponentName = cms.string( "LowPtClusterShapeSeedComparitor" ), clusterShapeCacheSrc = cms.InputTag( "hltSiPixelClustersCache" ) - ), - ComponentName = cms.string('PixelQuadrupletGenerator'), - ), - SeedingLayers = cms.InputTag( "hltPixelLayerQuadruplets" ), - TripletGeneratorPSet = cms.PSet( - ComponentName = cms.string('PixelTripletHLTGenerator'), - SeedComparitorPSet = cms.PSet( - ComponentName = cms.string('LowPtClusterShapeSeedComparitor'), - clusterShapeCacheSrc = cms.InputTag("hltSiPixelClustersCache") - ), - extraHitRPhitolerance = cms.double(0.032), - extraHitRZtolerance = cms.double(0.037), - maxElement = cms.uint32(1000000), - phiPreFiltering = cms.double(0.3), - useBending = cms.bool(True), - useFixedPreFiltering = cms.bool(False), - useMultScattering = cms.bool(True) - ) - ) + ), + + ) + process.hltPixelTracks.RegionFactoryPSet.RegionPSet = cms.PSet( precise = cms.bool( True ), beamSpot = cms.InputTag( "hltOnlineBeamSpot" ), From 8e2e521360bbd42d272c5c4e06624edd38aefa67 Mon Sep 17 00:00:00 2001 From: Jan-Frederik Date: Thu, 24 Nov 2016 17:24:02 +0100 Subject: [PATCH 6/9] make sure to only change the hltPixelTracks, fixed --- .../Configuration/python/customizeHLTForPFTrackingPhaseI2017.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py b/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py index ede58493a1ee8..d503a349e7669 100755 --- a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py +++ b/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py @@ -269,6 +269,4 @@ def customizeHLTForPFTrackingPhaseI2017(process): seq.remove(process.hltPixelLayerTriplets) index = seq.index(process.hltPixelTracks) seq.insert(index,process.hltPixelLayerQuadruplets) - from RecoTracker.Configuration.customiseForQuadrupletsHLTPixelTracksByCellularAutomaton import customiseForQuadrupletsHLTPixelTracksByCellularAutomaton - process = customiseForQuadrupletsHLTPixelTracksByCellularAutomaton(process) return process From 60fbbd92696089dfeb5d34fa25c4ce9ce303b994 Mon Sep 17 00:00:00 2001 From: Jan-Frederik Date: Sun, 27 Nov 2016 04:06:49 +0100 Subject: [PATCH 7/9] add missing switch of hltSiPixelDigis to use Phase1 --- .../python/customizeHLTForPFTrackingPhaseI2017.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py b/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py index d503a349e7669..c3e708af01b10 100755 --- a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py +++ b/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py @@ -6,6 +6,9 @@ def producers_by_type(process, *types): def customizeHLTForPFTrackingPhaseI2017(process): + + process.hltSiPixelDigis.UsePhase1 = cms.bool( True ) + process.hltPixelLayerTriplets.layerList = cms.vstring( 'BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4', From ce64d342831474138b6222141103428b3d570efe Mon Sep 17 00:00:00 2001 From: Jan-Frederik Date: Mon, 28 Nov 2016 13:19:11 +0100 Subject: [PATCH 8/9] add customization to run 2016 HLT menu on PhaseI samples --- .../python/customizeHLTForPFTrackingPhaseI2017.py | 4 ++++ .../python/customizeHLTPhaseIPixelGeom.py | 12 ++++++++++++ 2 files changed, 16 insertions(+) create mode 100755 HLTrigger/Configuration/python/customizeHLTPhaseIPixelGeom.py diff --git a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py b/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py index c3e708af01b10..326a221fcefa4 100755 --- a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py +++ b/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py @@ -7,7 +7,11 @@ def producers_by_type(process, *types): def customizeHLTForPFTrackingPhaseI2017(process): + process.ClusterShapeHitFilterESProducer.PixelShapeFile = 'RecoPixelVertexing/PixelLowPtUtilities/data/pixelShape_Phase1TkNewFPix.par' process.hltSiPixelDigis.UsePhase1 = cms.bool( True ) + process.hltSiPixelDigisRegForBTag.UsePhase1 = cms.bool( True ) + process.hltSiPixelDigisReg.UsePhase1 = cms.bool( True ) + process.hltPixelLayerTriplets.layerList = cms.vstring( 'BPix1+BPix2+BPix3', diff --git a/HLTrigger/Configuration/python/customizeHLTPhaseIPixelGeom.py b/HLTrigger/Configuration/python/customizeHLTPhaseIPixelGeom.py new file mode 100755 index 0000000000000..3b33f72ba47ba --- /dev/null +++ b/HLTrigger/Configuration/python/customizeHLTPhaseIPixelGeom.py @@ -0,0 +1,12 @@ +import FWCore.ParameterSet.Config as cms + + +def customizeHLTPhaseIPixelGeom(process): + + process.ClusterShapeHitFilterESProducer.PixelShapeFile = 'RecoPixelVertexing/PixelLowPtUtilities/data/pixelShape_Phase1TkNewFPix.par' + process.hltSiPixelDigis.UsePhase1 = cms.bool( True ) + process.hltSiPixelDigisRegForBTag.UsePhase1 = cms.bool( True ) + process.hltSiPixelDigisReg.UsePhase1 = cms.bool( True ) + + + return process From 5a4746fd65779d0dfd2e6e1f966f79fc0adce656 Mon Sep 17 00:00:00 2001 From: Jan-Frederik Schulte Date: Mon, 28 Nov 2016 09:08:24 -0500 Subject: [PATCH 9/9] make adaption of ClusterShapeHitFilterESProducer and SiPixelRawToDigi dynamic and move everythin into a single file --- .../python/customizeHLTPhaseIPixelGeom.py | 12 ------------ ...py => customizeHLTTrackingForPhaseI2017.py} | 18 +++++++++++------- 2 files changed, 11 insertions(+), 19 deletions(-) delete mode 100755 HLTrigger/Configuration/python/customizeHLTPhaseIPixelGeom.py rename HLTrigger/Configuration/python/{customizeHLTForPFTrackingPhaseI2017.py => customizeHLTTrackingForPhaseI2017.py} (95%) diff --git a/HLTrigger/Configuration/python/customizeHLTPhaseIPixelGeom.py b/HLTrigger/Configuration/python/customizeHLTPhaseIPixelGeom.py deleted file mode 100755 index 3b33f72ba47ba..0000000000000 --- a/HLTrigger/Configuration/python/customizeHLTPhaseIPixelGeom.py +++ /dev/null @@ -1,12 +0,0 @@ -import FWCore.ParameterSet.Config as cms - - -def customizeHLTPhaseIPixelGeom(process): - - process.ClusterShapeHitFilterESProducer.PixelShapeFile = 'RecoPixelVertexing/PixelLowPtUtilities/data/pixelShape_Phase1TkNewFPix.par' - process.hltSiPixelDigis.UsePhase1 = cms.bool( True ) - process.hltSiPixelDigisRegForBTag.UsePhase1 = cms.bool( True ) - process.hltSiPixelDigisReg.UsePhase1 = cms.bool( True ) - - - return process diff --git a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py b/HLTrigger/Configuration/python/customizeHLTTrackingForPhaseI2017.py similarity index 95% rename from HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py rename to HLTrigger/Configuration/python/customizeHLTTrackingForPhaseI2017.py index 326a221fcefa4..e32c02f92cc54 100755 --- a/HLTrigger/Configuration/python/customizeHLTForPFTrackingPhaseI2017.py +++ b/HLTrigger/Configuration/python/customizeHLTTrackingForPhaseI2017.py @@ -3,16 +3,20 @@ def producers_by_type(process, *types): return (module for module in process._Process__producers.values() if module._TypedParameterizable__type in types) - -def customizeHLTForPFTrackingPhaseI2017(process): - +def esproducers_by_type(process, *types): + return (module for module in process._Process__esproducers.values() if module._TypedParameterizable__type in types) - process.ClusterShapeHitFilterESProducer.PixelShapeFile = 'RecoPixelVertexing/PixelLowPtUtilities/data/pixelShape_Phase1TkNewFPix.par' - process.hltSiPixelDigis.UsePhase1 = cms.bool( True ) - process.hltSiPixelDigisRegForBTag.UsePhase1 = cms.bool( True ) - process.hltSiPixelDigisReg.UsePhase1 = cms.bool( True ) +def customizeHLTPhaseIPixelGeom(process): + for esproducer in esproducers_by_type(process,"ClusterShapeHitFilterESProducer"): + esproducer.PixelShapeFile = 'RecoPixelVertexing/PixelLowPtUtilities/data/pixelShape_Phase1TkNewFPix.par' + for producer in producers_by_type(process,"SiPixelRawToDigi"): + if "hlt" in producer.label(): + producer.UsePhase1 = cms.bool( True ) + return process + +def customizeHLTForPFTrackingPhaseI2017(process): process.hltPixelLayerTriplets.layerList = cms.vstring( 'BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4',