From 21d4e797879416bfedc949c62edc3feb89489ddd Mon Sep 17 00:00:00 2001 From: Marino Missiroli Date: Fri, 10 Dec 2021 17:57:43 +0100 Subject: [PATCH 1/3] add fillDescriptions to CkfTrackCandidateMaker (and its dependencies) --- .../python/customizeHLTforCMSSW.py | 62 ++++++++++++++- .../HiRegitMuonDetachedTripletStep_cff.py | 3 +- .../python/HiRegitMuonPixelPairStep_cff.py | 1 - .../python/hiDetachedQuadStep_cff.py | 8 +- .../python/hiDetachedTripletStep_cff.py | 4 +- .../python/hiHighPtTripletStep_cff.py | 8 +- .../python/hiJetCoreRegionalStep_cff.py | 1 - .../HiTracking/python/hiLowPtQuadStep_cff.py | 8 +- .../python/hiLowPtTripletStep_cff.py | 7 +- .../HiTracking/python/hiPixelPairStep_cff.py | 7 +- .../python/hiRegitDetachedTripletStep_cff.py | 4 +- .../python/hiRegitInitialStep_cff.py | 4 +- .../python/hiRegitLowPtTripletStep_cff.py | 4 +- .../python/hiRegitMixedTripletStep_cff.py | 4 +- .../python/hiRegitPixelPairStep_cff.py | 4 +- .../interface/MuonCkfTrajectoryBuilder.h | 6 +- RecoMuon/L3TrackFinder/plugins/SealModules.cc | 3 +- .../python/MuonCkfTrajectoryBuilder_cfi.py | 1 - .../src/MuonCkfTrajectoryBuilder.cc | 9 +++ .../interface/ClusterShapeTrajectoryFilter.h | 6 +- .../StripSubClusterShapeTrajectoryFilter.h | 7 ++ .../PixelLowPtUtilities/plugins/modules.cc | 9 ++- .../StripSubClusterShapeSeedFilter_cfi.py | 2 +- .../src/ClusterShapeTrajectoryFilter.cc | 14 ++-- .../StripSubClusterShapeTrajectoryFilter.cc | 25 ++++++- .../interface/BaseCkfTrajectoryBuilder.h | 3 + .../interface/CkfTrackCandidateMakerBase.h | 12 ++- .../interface/CkfTrajectoryBuilder.h | 3 + .../plugins/CkfTrackCandidateMaker.h | 7 ++ .../CkfPattern/plugins/CkfTrajectoryMaker.h | 8 ++ .../plugins/GroupedCkfTrajectoryBuilder.cc | 36 +++++++-- .../plugins/GroupedCkfTrajectoryBuilder.h | 3 + RecoTracker/CkfPattern/plugins/SealModules.cc | 8 +- .../python/CkfTrackCandidates_cfi.py | 37 +-------- .../python/CkfTrajectoryBuilder_cfi.py | 1 - .../GroupedCkfTrajectoryBuilderP5_cff.py | 1 - .../python/GroupedCkfTrajectoryBuilder_cfi.py | 1 - .../src/BaseCkfTrajectoryBuilder.cc | 9 +++ .../src/BaseCkfTrajectoryBuilderFactory.cc | 3 +- .../src/CkfTrackCandidateMakerBase.cc | 75 ++++++++++++------- .../CkfPattern/src/CkfTrajectoryBuilder.cc | 14 ++++ .../python/RecoTrackerTopBottom_cff.py | 8 +- .../python/ConversionStep_cff.py | 6 +- .../python/DetachedQuadStep_cff.py | 7 +- .../python/DetachedTripletStep_cff.py | 1 - .../python/DisplacedGeneralStep_cff.py | 7 +- .../python/HighPtTripletStep_cff.py | 10 +-- .../python/JetCoreRegionalStep_cff.py | 10 +-- .../python/LowPtBarrelTripletStep_cff.py | 5 +- .../python/LowPtForwardTripletStep_cff.py | 5 +- .../python/LowPtQuadStep_cff.py | 11 ++- .../python/LowPtTripletStep_cff.py | 13 ++-- .../python/MixedTripletStep_cff.py | 3 +- .../python/PixelLessStep_cff.py | 13 ++-- .../python/PixelPairStep_cff.py | 16 ++-- .../python/TobTecStep_cff.py | 5 +- .../python/CkfElectronCandidateMaker_cff.py | 2 - .../ChargeSignificanceTrajectoryFilter.h | 3 + .../interface/CkfBaseTrajectoryFilter.h | 29 ++++--- .../interface/CompositeTrajectoryFilter.h | 9 +++ .../interface/LooperTrajectoryFilter.h | 16 ++-- .../LostHitsFractionTrajectoryFilter.h | 7 +- .../MaxCCCLostHitsTrajectoryFilter.h | 6 ++ .../MaxConsecLostHitsTrajectoryFilter.h | 3 + .../interface/MaxHitsTrajectoryFilter.h | 3 + .../interface/MaxLostHitsTrajectoryFilter.h | 3 + .../interface/MinHitsTrajectoryFilter.h | 16 ++-- .../interface/MinPtTrajectoryFilter.h | 8 +- .../interface/SeedExtensionTrajectoryFilter.h | 7 ++ .../interface/ThresholdPtTrajectoryFilter.h | 8 +- .../TrajectoryFiltering/plugins/modules.cc | 25 ++++--- .../src/TrajectoryFilterFactory.cc | 3 +- 72 files changed, 445 insertions(+), 255 deletions(-) diff --git a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py index 642a204369443..80c36e47589d8 100644 --- a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py +++ b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py @@ -143,15 +143,75 @@ def customiseFor2018Input(process): return process +def customiseFor36459(process): + """Update the HLT configuration for the changes in #36459: + add fillDescriptions to CkfTrackCandidateMaker (and its dependencies) + """ + for iMod in producers_by_type(process, 'CkfTrackCandidateMaker'): + for aPar in ['SimpleMagneticField', 'TrajectoryBuilder']: + if hasattr(iMod, aPar): delattr(iMod, aPar) + + if not hasattr(iMod, 'maxSeedsBeforeCleaning'): + iMod.maxSeedsBeforeCleaning = cms.uint32(0) + + # convert onlyPixelHitsForSeedCleaner to tracked bool + if hasattr(iMod, 'onlyPixelHitsForSeedCleaner'): + theMod = getattr(iMod, 'onlyPixelHitsForSeedCleaner') + if not theMod.isTracked(): + setattr(iMod, 'onlyPixelHitsForSeedCleaner', cms.bool(theMod.value())) + + # convert numHitsForSeedCleaner to tracked int32 + if hasattr(iMod, 'numHitsForSeedCleaner'): + theMod = getattr(iMod, 'numHitsForSeedCleaner') + if not theMod.isTracked(): + setattr(iMod, 'numHitsForSeedCleaner', cms.int32(theMod.value())) + + # convert clustersToSkip to tracked InputTag + if hasattr(iMod, 'clustersToSkip'): + theMod = getattr(iMod, 'clustersToSkip') + if not theMod.isTracked(): + setattr(iMod, 'clustersToSkip', cms.InputTag(theMod.value())) + + for iMod in producers_by_type(process, 'CkfTrajectoryMaker'): + for aPar in ['TrajectoryBuilder']: + if hasattr(iMod, aPar): + delattr(iMod, aPar) + + for aPSet in process._Process__psets.values(): + if hasattr(aPSet, 'ComponentType') and aPSet.ComponentType in ['CkfTrajectoryBuilder', 'GroupedCkfTrajectoryBuilder', 'MuonCkfTrajectoryBuilder']: + for aPar in ['MeasurementTrackerName', 'cleanTrajectoryAfterInOut', 'doSeedingRegionRebuilding', 'useHitsSplitting']: + if hasattr(aPSet, aPar): + delattr(aPSet, aPar) + + if aPSet.ComponentType == 'GroupedCkfTrajectoryBuilder' and aPSet.useSameTrajFilter: + if not hasattr(aPSet, 'inOutTrajectoryFilter'): + aPSet.inOutTrajectoryFilter = aPSet.trajectoryFilter.clone() + + if aPSet.ComponentType == 'CkfTrajectoryBuilder' and hasattr(aPSet, 'minNrOfHitsForRebuild'): + delattr(aPSet, 'minNrOfHitsForRebuild') + + if aPSet.ComponentType != 'GroupedCkfTrajectoryBuilder' and hasattr(aPSet, 'useSameTrajFilter'): + delattr(aPSet, 'useSameTrajFilter') + + for iProdName in ['SeedCreatorFromRegionConsecutiveHitsEDProducer', 'SeedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer']: + for iMod in producers_by_type(process, iProdName): + if hasattr(iMod, 'SeedComparitorPSet') and hasattr(iMod.SeedComparitorPSet, 'comparitors'): + for pSetIdx in range(len(iMod.SeedComparitorPSet.comparitors)): + if iMod.SeedComparitorPSet.comparitors[pSetIdx].ComponentName == 'StripSubClusterShapeSeedFilter': + if not hasattr(iMod.SeedComparitorPSet.comparitors[pSetIdx], 'layerMask'): + iMod.SeedComparitorPSet.comparitors[pSetIdx].layerMask = cms.PSet() + + return process # CMSSW version specific customizations def customizeHLTforCMSSW(process, menuType="GRun"): - + # if the gpu modifier is enabled, make the Pixel, ECAL and HCAL reconstruction offloadable to a GPU from HLTrigger.Configuration.customizeHLTforPatatrack import customizeHLTforPatatrack gpu.makeProcessModifier(customizeHLTforPatatrack).apply(process) # add call to action function in proper order: newest last! # process = customiseFor12718(process) + process = customiseFor36459(process) return process diff --git a/RecoHI/HiMuonAlgos/python/HiRegitMuonDetachedTripletStep_cff.py b/RecoHI/HiMuonAlgos/python/HiRegitMuonDetachedTripletStep_cff.py index 49c37083870c0..3f6c7458a7aa4 100644 --- a/RecoHI/HiMuonAlgos/python/HiRegitMuonDetachedTripletStep_cff.py +++ b/RecoHI/HiMuonAlgos/python/HiRegitMuonDetachedTripletStep_cff.py @@ -82,8 +82,7 @@ hiRegitMuDetachedTripletStepTrackCandidates = RecoTracker.IterativeTracking.DetachedTripletStep_cff._detachedTripletStepTrackCandidatesCkf.clone( src = 'hiRegitMuDetachedTripletStepSeeds', - TrajectoryBuilder = 'hiRegitMuDetachedTripletStepTrajectoryBuilder', - clustersToSkip = cms.InputTag("hiRegitMuDetachedTripletStepClusters") + clustersToSkip = 'hiRegitMuDetachedTripletStepClusters' ) # fitting: feed new-names diff --git a/RecoHI/HiMuonAlgos/python/HiRegitMuonPixelPairStep_cff.py b/RecoHI/HiMuonAlgos/python/HiRegitMuonPixelPairStep_cff.py index f4c0e2252bbc1..6751b633f766b 100644 --- a/RecoHI/HiMuonAlgos/python/HiRegitMuonPixelPairStep_cff.py +++ b/RecoHI/HiMuonAlgos/python/HiRegitMuonPixelPairStep_cff.py @@ -79,7 +79,6 @@ # trackign candidate hiRegitMuPixelPairStepTrackCandidates = RecoTracker.IterativeTracking.PixelPairStep_cff._pixelPairStepTrackCandidatesCkf.clone( src = 'hiRegitMuPixelPairStepSeeds', - TrajectoryBuilder = 'hiRegitMuPixelPairStepTrajectoryBuilder', clustersToSkip = "hiRegitMuPixelPairStepClusters", maxNSeeds = 1000000 ) diff --git a/RecoHI/HiTracking/python/hiDetachedQuadStep_cff.py b/RecoHI/HiTracking/python/hiDetachedQuadStep_cff.py index dddf4a366994c..50dd387f5f499 100644 --- a/RecoHI/HiTracking/python/hiDetachedQuadStep_cff.py +++ b/RecoHI/HiTracking/python/hiDetachedQuadStep_cff.py @@ -123,7 +123,6 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi hiDetachedQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', trajectoryFilter = dict(refToPSet_ = 'hiDetachedQuadStepTrajectoryFilter'), maxCand = 4,#4 for pp estimator = 'hiDetachedQuadStepChi2Est', @@ -142,11 +141,10 @@ hiDetachedQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone( src = 'hiDetachedQuadStepSeeds', ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput - numHitsForSeedCleaner = cms.int32(50), - onlyPixelHitsForSeedCleaner = cms.bool(True), + numHitsForSeedCleaner = 50, + onlyPixelHitsForSeedCleaner = True, TrajectoryBuilderPSet = dict(refToPSet_ = 'hiDetachedQuadStepTrajectoryBuilder'), - TrajectoryBuilder = 'hiDetachedQuadStepTrajectoryBuilder', - clustersToSkip = cms.InputTag('hiDetachedQuadStepClusters'), + clustersToSkip = 'hiDetachedQuadStepClusters', doSeedingRegionRebuilding = True, useHitsSplitting = True ) diff --git a/RecoHI/HiTracking/python/hiDetachedTripletStep_cff.py b/RecoHI/HiTracking/python/hiDetachedTripletStep_cff.py index 0109d271b5e12..4159472850b86 100644 --- a/RecoHI/HiTracking/python/hiDetachedTripletStep_cff.py +++ b/RecoHI/HiTracking/python/hiDetachedTripletStep_cff.py @@ -144,7 +144,6 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi hiDetachedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', trajectoryFilter = dict(refToPSet_ = 'hiDetachedTripletStepTrajectoryFilter'), maxCand = 2, estimator = 'hiDetachedTripletStepChi2Est', @@ -161,8 +160,7 @@ numHitsForSeedCleaner = cms.int32(50), onlyPixelHitsForSeedCleaner = cms.bool(True), TrajectoryBuilderPSet = dict(refToPSet_ = 'hiDetachedTripletStepTrajectoryBuilder'), - TrajectoryBuilder = 'hiDetachedTripletStepTrajectoryBuilder', - clustersToSkip = cms.InputTag('hiDetachedTripletStepClusters'), + clustersToSkip = 'hiDetachedTripletStepClusters', doSeedingRegionRebuilding = True, useHitsSplitting = True ) diff --git a/RecoHI/HiTracking/python/hiHighPtTripletStep_cff.py b/RecoHI/HiTracking/python/hiHighPtTripletStep_cff.py index 223114ce43a2e..42ded7d10f785 100644 --- a/RecoHI/HiTracking/python/hiHighPtTripletStep_cff.py +++ b/RecoHI/HiTracking/python/hiHighPtTripletStep_cff.py @@ -122,7 +122,6 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi hiHighPtTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', trajectoryFilter = dict(refToPSet_ = 'hiHighPtTripletStepTrajectoryFilter'), maxCand = 3,#3 for pp estimator = 'hiHighPtTripletStepChi2Est', @@ -141,11 +140,10 @@ hiHighPtTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone( src = 'hiHighPtTripletStepSeeds', ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput - numHitsForSeedCleaner = cms.int32(50), - onlyPixelHitsForSeedCleaner = cms.bool(True), + numHitsForSeedCleaner = 50, + onlyPixelHitsForSeedCleaner = True, TrajectoryBuilderPSet = dict(refToPSet_ = 'hiHighPtTripletStepTrajectoryBuilder'), - TrajectoryBuilder = 'hiHighPtTripletStepTrajectoryBuilder', - clustersToSkip = cms.InputTag('hiHighPtTripletStepClusters'), + clustersToSkip = 'hiHighPtTripletStepClusters', doSeedingRegionRebuilding = True, useHitsSplitting = True ) diff --git a/RecoHI/HiTracking/python/hiJetCoreRegionalStep_cff.py b/RecoHI/HiTracking/python/hiJetCoreRegionalStep_cff.py index 177c7dc34f443..40e8bb81a11a5 100644 --- a/RecoHI/HiTracking/python/hiJetCoreRegionalStep_cff.py +++ b/RecoHI/HiTracking/python/hiJetCoreRegionalStep_cff.py @@ -122,7 +122,6 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi hiJetCoreRegionalStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', trajectoryFilter = dict(refToPSet_ = 'hiJetCoreRegionalStepTrajectoryFilter'), maxCand = 50, estimator = 'hiJetCoreRegionalStepChi2Est', diff --git a/RecoHI/HiTracking/python/hiLowPtQuadStep_cff.py b/RecoHI/HiTracking/python/hiLowPtQuadStep_cff.py index 7498183431447..7b5366624bebc 100644 --- a/RecoHI/HiTracking/python/hiLowPtQuadStep_cff.py +++ b/RecoHI/HiTracking/python/hiLowPtQuadStep_cff.py @@ -126,7 +126,6 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi hiLowPtQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', trajectoryFilter = dict(refToPSet_ = 'hiLowPtQuadStepTrajectoryFilter'), maxCand = 4,#4 for pp estimator = 'hiLowPtQuadStepChi2Est', @@ -145,11 +144,10 @@ hiLowPtQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone( src = 'hiLowPtQuadStepSeeds', ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput - numHitsForSeedCleaner = cms.int32(50), - onlyPixelHitsForSeedCleaner = cms.bool(True), + numHitsForSeedCleaner = 50, + onlyPixelHitsForSeedCleaner = True, TrajectoryBuilderPSet = dict(refToPSet_ = 'hiLowPtQuadStepTrajectoryBuilder'), - TrajectoryBuilder = 'hiLowPtQuadStepTrajectoryBuilder', - clustersToSkip = cms.InputTag('hiLowPtQuadStepClusters'), + clustersToSkip = 'hiLowPtQuadStepClusters', doSeedingRegionRebuilding = True, useHitsSplitting = True ) diff --git a/RecoHI/HiTracking/python/hiLowPtTripletStep_cff.py b/RecoHI/HiTracking/python/hiLowPtTripletStep_cff.py index 1c51e621ace80..2ee5ad07c0e13 100644 --- a/RecoHI/HiTracking/python/hiLowPtTripletStep_cff.py +++ b/RecoHI/HiTracking/python/hiLowPtTripletStep_cff.py @@ -136,7 +136,6 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi hiLowPtTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', trajectoryFilter = dict(refToPSet_ = 'hiLowPtTripletStepTrajectoryFilter'), maxCand = 3, estimator = 'hiLowPtTripletStepChi2Est', @@ -151,10 +150,10 @@ hiLowPtTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone( src = 'hiLowPtTripletStepSeeds', ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput - numHitsForSeedCleaner = cms.int32(50), - onlyPixelHitsForSeedCleaner = cms.bool(True), + numHitsForSeedCleaner = 50, + onlyPixelHitsForSeedCleaner = True, TrajectoryBuilderPSet = dict(refToPSet_ = 'hiLowPtTripletStepTrajectoryBuilder'), - clustersToSkip = cms.InputTag('hiLowPtTripletStepClusters'), + clustersToSkip = 'hiLowPtTripletStepClusters', doSeedingRegionRebuilding = True, useHitsSplitting = True ) diff --git a/RecoHI/HiTracking/python/hiPixelPairStep_cff.py b/RecoHI/HiTracking/python/hiPixelPairStep_cff.py index 10f98f1781995..8894adb50227e 100644 --- a/RecoHI/HiTracking/python/hiPixelPairStep_cff.py +++ b/RecoHI/HiTracking/python/hiPixelPairStep_cff.py @@ -137,7 +137,6 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi hiPixelPairTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', trajectoryFilter = dict(refToPSet_ = 'hiPixelPairTrajectoryFilter'), maxCand = 3, estimator = 'hiPixelPairChi2Est', @@ -149,11 +148,11 @@ import RecoTracker.CkfPattern.CkfTrackCandidates_cfi hiPixelPairTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone( src = 'hiPixelPairSeeds', - clustersToSkip = cms.InputTag('hiPixelPairClusters'), + clustersToSkip = 'hiPixelPairClusters', TrajectoryBuilderPSet = dict(refToPSet_ = 'hiPixelPairTrajectoryBuilder'), ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput - numHitsForSeedCleaner = cms.int32(50), - onlyPixelHitsForSeedCleaner = cms.bool(True), + numHitsForSeedCleaner = 50, + onlyPixelHitsForSeedCleaner = True, ) trackingPhase1.toModify(hiPixelPairTrackCandidates, src = 'hiPixelPairStepSeedsPhase1' diff --git a/RecoHI/HiTracking/python/hiRegitDetachedTripletStep_cff.py b/RecoHI/HiTracking/python/hiRegitDetachedTripletStep_cff.py index 1fae3cd316606..71618a0597bd0 100644 --- a/RecoHI/HiTracking/python/hiRegitDetachedTripletStep_cff.py +++ b/RecoHI/HiTracking/python/hiRegitDetachedTripletStep_cff.py @@ -52,8 +52,8 @@ # building: feed the new-named seeds hiRegitDetachedTripletStepTrajectoryFilter = RecoTracker.IterativeTracking.DetachedTripletStep_cff.detachedTripletStepTrajectoryFilterBase.clone() hiRegitDetachedTripletStepTrajectoryBuilder = RecoTracker.IterativeTracking.DetachedTripletStep_cff.detachedTripletStepTrajectoryBuilder.clone( - trajectoryFilter = cms.PSet(refToPSet_ = cms.string('hiRegitDetachedTripletStepTrajectoryFilter')), - clustersToSkip = cms.InputTag('hiRegitDetachedTripletStepClusters') + trajectoryFilter = dict(refToPSet_ = 'hiRegitDetachedTripletStepTrajectoryFilter'), + clustersToSkip = 'hiRegitDetachedTripletStepClusters' ) hiRegitDetachedTripletStepTrackCandidates = RecoTracker.IterativeTracking.DetachedTripletStep_cff._detachedTripletStepTrackCandidatesCkf.clone( diff --git a/RecoHI/HiTracking/python/hiRegitInitialStep_cff.py b/RecoHI/HiTracking/python/hiRegitInitialStep_cff.py index 6f5dff00888e8..6f6c16ec02445 100644 --- a/RecoHI/HiTracking/python/hiRegitInitialStep_cff.py +++ b/RecoHI/HiTracking/python/hiRegitInitialStep_cff.py @@ -46,8 +46,8 @@ hiRegitInitialStepTrajectoryBuilder = RecoTracker.IterativeTracking.InitialStep_cff.initialStepTrajectoryBuilder.clone( - trajectoryFilter = cms.PSet(refToPSet_ = cms.string('hiRegitInitialStepTrajectoryFilter')), - clustersToSkip = cms.InputTag('hiRegitInitialStepClusters') + trajectoryFilter = dict(refToPSet_ = 'hiRegitInitialStepTrajectoryFilter'), + clustersToSkip = 'hiRegitInitialStepClusters' ) # track candidates diff --git a/RecoHI/HiTracking/python/hiRegitLowPtTripletStep_cff.py b/RecoHI/HiTracking/python/hiRegitLowPtTripletStep_cff.py index 65933a04e7672..b2a54f08579c9 100644 --- a/RecoHI/HiTracking/python/hiRegitLowPtTripletStep_cff.py +++ b/RecoHI/HiTracking/python/hiRegitLowPtTripletStep_cff.py @@ -56,8 +56,8 @@ hiRegitLowPtTripletStepTrajectoryBuilder = RecoTracker.IterativeTracking.LowPtTripletStep_cff.lowPtTripletStepTrajectoryBuilder.clone( - trajectoryFilter = cms.PSet(refToPSet_ = cms.string('hiRegitLowPtTripletStepTrajectoryFilter')), - clustersToSkip = cms.InputTag('hiRegitLowPtTripletStepClusters'), + trajectoryFilter = dict(refToPSet_ = 'hiRegitLowPtTripletStepTrajectoryFilter'), + clustersToSkip = 'hiRegitLowPtTripletStepClusters', ) # track candidates diff --git a/RecoHI/HiTracking/python/hiRegitMixedTripletStep_cff.py b/RecoHI/HiTracking/python/hiRegitMixedTripletStep_cff.py index 9e4fafbc53536..96f685b992d9a 100644 --- a/RecoHI/HiTracking/python/hiRegitMixedTripletStep_cff.py +++ b/RecoHI/HiTracking/python/hiRegitMixedTripletStep_cff.py @@ -74,8 +74,8 @@ hiRegitMixedTripletStepTrajectoryFilter = RecoTracker.IterativeTracking.MixedTripletStep_cff.mixedTripletStepTrajectoryFilter.clone() hiRegitMixedTripletStepTrajectoryBuilder = RecoTracker.IterativeTracking.MixedTripletStep_cff.mixedTripletStepTrajectoryBuilder.clone( - trajectoryFilter = cms.PSet(refToPSet_ = cms.string('hiRegitMixedTripletStepTrajectoryFilter')), - clustersToSkip = cms.InputTag('hiRegitMixedTripletStepClusters'), + trajectoryFilter = dict(refToPSet_ = 'hiRegitMixedTripletStepTrajectoryFilter'), + clustersToSkip = 'hiRegitMixedTripletStepClusters', ) hiRegitMixedTripletStepTrackCandidates = RecoTracker.IterativeTracking.MixedTripletStep_cff._mixedTripletStepTrackCandidatesCkf.clone( diff --git a/RecoHI/HiTracking/python/hiRegitPixelPairStep_cff.py b/RecoHI/HiTracking/python/hiRegitPixelPairStep_cff.py index b3831ee12a91d..bcd00efb09abd 100644 --- a/RecoHI/HiTracking/python/hiRegitPixelPairStep_cff.py +++ b/RecoHI/HiTracking/python/hiRegitPixelPairStep_cff.py @@ -50,8 +50,8 @@ hiRegitPixelPairStepTrajectoryFilter = RecoTracker.IterativeTracking.PixelPairStep_cff.pixelPairStepTrajectoryFilterBase.clone() hiRegitPixelPairStepTrajectoryBuilder = RecoTracker.IterativeTracking.PixelPairStep_cff.pixelPairStepTrajectoryBuilder.clone( - trajectoryFilter = cms.PSet(refToPSet_ = cms.string('hiRegitPixelPairStepTrajectoryFilter')), - clustersToSkip = cms.InputTag('hiRegitPixelPairStepClusters'), + trajectoryFilter = dict(refToPSet_ = 'hiRegitPixelPairStepTrajectoryFilter'), + clustersToSkip = 'hiRegitPixelPairStepClusters', ) # trackign candidate diff --git a/RecoMuon/L3TrackFinder/interface/MuonCkfTrajectoryBuilder.h b/RecoMuon/L3TrackFinder/interface/MuonCkfTrajectoryBuilder.h index f4b205a6803c2..932d56d73cfc0 100644 --- a/RecoMuon/L3TrackFinder/interface/MuonCkfTrajectoryBuilder.h +++ b/RecoMuon/L3TrackFinder/interface/MuonCkfTrajectoryBuilder.h @@ -1,15 +1,19 @@ #ifndef RecoMuon_L3TrackFinder_MuonCkfTrajectoryBuilder_H #define RecoMuon_L3TrackFinder_MuonCkfTrajectoryBuilder_H -#include "RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h" #include "FWCore/Framework/interface/ESWatcher.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h" class TrackingComponentsRecord; + class MuonCkfTrajectoryBuilder : public CkfTrajectoryBuilder { public: MuonCkfTrajectoryBuilder(const edm::ParameterSet& conf, edm::ConsumesCollector& iC); ~MuonCkfTrajectoryBuilder() override; + static void fillPSetDescription(edm::ParameterSetDescription& iDesc); + protected: void setEvent_(const edm::Event& iEvent, const edm::EventSetup& iSetup) override; diff --git a/RecoMuon/L3TrackFinder/plugins/SealModules.cc b/RecoMuon/L3TrackFinder/plugins/SealModules.cc index 289c2c32339e5..66528331f148f 100644 --- a/RecoMuon/L3TrackFinder/plugins/SealModules.cc +++ b/RecoMuon/L3TrackFinder/plugins/SealModules.cc @@ -1,8 +1,9 @@ #include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/ParameterSet/interface/ValidatedPluginMacros.h" #include "RecoMuon/L3TrackFinder/interface/MuonCkfTrajectoryBuilder.h" #include "RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilderFactory.h" #include "RecoMuon/L3TrackFinder/interface/HLTMuonL2SelectorForL3IO.h" -DEFINE_EDM_PLUGIN(BaseCkfTrajectoryBuilderFactory, MuonCkfTrajectoryBuilder, "MuonCkfTrajectoryBuilder"); +DEFINE_EDM_VALIDATED_PLUGIN(BaseCkfTrajectoryBuilderFactory, MuonCkfTrajectoryBuilder, "MuonCkfTrajectoryBuilder"); DEFINE_FWK_MODULE(HLTMuonL2SelectorForL3IO); diff --git a/RecoMuon/L3TrackFinder/python/MuonCkfTrajectoryBuilder_cfi.py b/RecoMuon/L3TrackFinder/python/MuonCkfTrajectoryBuilder_cfi.py index a7b7270458c60..42fce0618221a 100644 --- a/RecoMuon/L3TrackFinder/python/MuonCkfTrajectoryBuilder_cfi.py +++ b/RecoMuon/L3TrackFinder/python/MuonCkfTrajectoryBuilder_cfi.py @@ -8,7 +8,6 @@ intermediateCleaning = cms.bool(False), #would skip the first layer to search for measurement if bare TrajectorySeed useSeedLayer = cms.bool(False), - MeasurementTrackerName = cms.string(''), estimator = cms.string('Chi2'), TTRHBuilder = cms.string('WithTrackAngle'), #propagator used only if useSeedLayer=true diff --git a/RecoMuon/L3TrackFinder/src/MuonCkfTrajectoryBuilder.cc b/RecoMuon/L3TrackFinder/src/MuonCkfTrajectoryBuilder.cc index 74d68df5ac7d5..b95c59f37f79b 100644 --- a/RecoMuon/L3TrackFinder/src/MuonCkfTrajectoryBuilder.cc +++ b/RecoMuon/L3TrackFinder/src/MuonCkfTrajectoryBuilder.cc @@ -30,6 +30,15 @@ MuonCkfTrajectoryBuilder::MuonCkfTrajectoryBuilder(const edm::ParameterSet& conf MuonCkfTrajectoryBuilder::~MuonCkfTrajectoryBuilder() {} +void MuonCkfTrajectoryBuilder::fillPSetDescription(edm::ParameterSetDescription& iDesc) { + CkfTrajectoryBuilder::fillPSetDescription(iDesc); + iDesc.add("deltaEta", .1); + iDesc.add("deltaPhi", .1); + iDesc.add("propagatorProximity", "SteppingHelixPropagatorAny"); + iDesc.add("useSeedLayer", false); + iDesc.add("rescaleErrorIfFail", 1.); +} + void MuonCkfTrajectoryBuilder::setEvent_(const edm::Event& iEvent, const edm::EventSetup& iSetup) { CkfTrajectoryBuilder::setEvent_(iEvent, iSetup); diff --git a/RecoPixelVertexing/PixelLowPtUtilities/interface/ClusterShapeTrajectoryFilter.h b/RecoPixelVertexing/PixelLowPtUtilities/interface/ClusterShapeTrajectoryFilter.h index 154d8ddd314d0..0305758e7675b 100644 --- a/RecoPixelVertexing/PixelLowPtUtilities/interface/ClusterShapeTrajectoryFilter.h +++ b/RecoPixelVertexing/PixelLowPtUtilities/interface/ClusterShapeTrajectoryFilter.h @@ -1,8 +1,9 @@ #ifndef _ClusterShapeTrajectoryFilter_h_ #define _ClusterShapeTrajectoryFilter_h_ -#include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Utilities/interface/EDGetToken.h" +#include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" namespace edm { class ParameterSet; @@ -21,9 +22,10 @@ class SiPixelClusterShapeCache; class ClusterShapeTrajectoryFilter : public TrajectoryFilter { public: ClusterShapeTrajectoryFilter(const edm::ParameterSet& iConfig, edm::ConsumesCollector& iC); - ~ClusterShapeTrajectoryFilter() override; + static void fillPSetDescription(edm::ParameterSetDescription& iDesc); + void setEvent(const edm::Event& iEvent, const edm::EventSetup& iSetup) override; bool qualityFilter(const TempTrajectory&) const override; diff --git a/RecoPixelVertexing/PixelLowPtUtilities/interface/StripSubClusterShapeTrajectoryFilter.h b/RecoPixelVertexing/PixelLowPtUtilities/interface/StripSubClusterShapeTrajectoryFilter.h index fcd1e71e14970..d8d69b9c17bc0 100644 --- a/RecoPixelVertexing/PixelLowPtUtilities/interface/StripSubClusterShapeTrajectoryFilter.h +++ b/RecoPixelVertexing/PixelLowPtUtilities/interface/StripSubClusterShapeTrajectoryFilter.h @@ -7,6 +7,7 @@ #include "RecoTracker/MeasurementDet/interface/MeasurementTrackerEvent.h" #include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "RecoTracker/TkSeedingLayers/interface/SeedComparitor.h" #include "CondFormats/SiStripObjects/interface/SiStripNoises.h" @@ -33,6 +34,8 @@ class StripSubClusterShapeFilterBase { StripSubClusterShapeFilterBase(const edm::ParameterSet &iConfig, edm::ConsumesCollector &iC); virtual ~StripSubClusterShapeFilterBase(); + static void fillPSetDescription(edm::ParameterSetDescription &iDesc); + protected: void setEventBase(const edm::Event &, const edm::EventSetup &); @@ -86,6 +89,10 @@ class StripSubClusterShapeTrajectoryFilter : public StripSubClusterShapeFilterBa ~StripSubClusterShapeTrajectoryFilter() override {} + static void fillPSetDescription(edm::ParameterSetDescription &iDesc) { + StripSubClusterShapeFilterBase::fillPSetDescription(iDesc); + } + bool qualityFilter(const TempTrajectory &) const override; bool qualityFilter(const Trajectory &) const override; diff --git a/RecoPixelVertexing/PixelLowPtUtilities/plugins/modules.cc b/RecoPixelVertexing/PixelLowPtUtilities/plugins/modules.cc index 9bbc4e84c7414..a98f4ab787056 100644 --- a/RecoPixelVertexing/PixelLowPtUtilities/plugins/modules.cc +++ b/RecoPixelVertexing/PixelLowPtUtilities/plugins/modules.cc @@ -30,10 +30,11 @@ DEFINE_EDM_PLUGIN(HitTripletGeneratorFromPairAndLayersFactory, // TrajectoryFilter #include "FWCore/Utilities/interface/typelookup.h" +#include "FWCore/ParameterSet/interface/ValidatedPluginMacros.h" #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilterFactory.h" #include "RecoPixelVertexing/PixelLowPtUtilities/interface/ClusterShapeTrajectoryFilter.h" -DEFINE_EDM_PLUGIN(TrajectoryFilterFactory, ClusterShapeTrajectoryFilter, "ClusterShapeTrajectoryFilter"); +DEFINE_EDM_VALIDATED_PLUGIN(TrajectoryFilterFactory, ClusterShapeTrajectoryFilter, "ClusterShapeTrajectoryFilter"); // the seed comparitor to remove seeds on incompatible angle/cluster compatibility #include "RecoPixelVertexing/PixelLowPtUtilities/interface/LowPtClusterShapeSeedComparitor.h" @@ -41,7 +42,7 @@ DEFINE_EDM_PLUGIN(TrajectoryFilterFactory, ClusterShapeTrajectoryFilter, "Cluste DEFINE_EDM_PLUGIN(SeedComparitorFactory, LowPtClusterShapeSeedComparitor, "LowPtClusterShapeSeedComparitor"); #include "RecoPixelVertexing/PixelLowPtUtilities/interface/StripSubClusterShapeTrajectoryFilter.h" -DEFINE_EDM_PLUGIN(TrajectoryFilterFactory, - StripSubClusterShapeTrajectoryFilter, - "StripSubClusterShapeTrajectoryFilter"); +DEFINE_EDM_VALIDATED_PLUGIN(TrajectoryFilterFactory, + StripSubClusterShapeTrajectoryFilter, + "StripSubClusterShapeTrajectoryFilter"); DEFINE_EDM_PLUGIN(SeedComparitorFactory, StripSubClusterShapeSeedFilter, "StripSubClusterShapeSeedFilter"); diff --git a/RecoPixelVertexing/PixelLowPtUtilities/python/StripSubClusterShapeSeedFilter_cfi.py b/RecoPixelVertexing/PixelLowPtUtilities/python/StripSubClusterShapeSeedFilter_cfi.py index dfae66e724f76..f825b300d2e2d 100644 --- a/RecoPixelVertexing/PixelLowPtUtilities/python/StripSubClusterShapeSeedFilter_cfi.py +++ b/RecoPixelVertexing/PixelLowPtUtilities/python/StripSubClusterShapeSeedFilter_cfi.py @@ -6,5 +6,5 @@ ComponentName = cms.string('StripSubClusterShapeSeedFilter'), FilterAtHelixStage = cms.bool(False), label = cms.untracked.string("Seeds"), + layerMask = cms.PSet() ) - diff --git a/RecoPixelVertexing/PixelLowPtUtilities/src/ClusterShapeTrajectoryFilter.cc b/RecoPixelVertexing/PixelLowPtUtilities/src/ClusterShapeTrajectoryFilter.cc index 6ff70589ce341..a7265dd47c8dc 100644 --- a/RecoPixelVertexing/PixelLowPtUtilities/src/ClusterShapeTrajectoryFilter.cc +++ b/RecoPixelVertexing/PixelLowPtUtilities/src/ClusterShapeTrajectoryFilter.cc @@ -30,9 +30,7 @@ #include "RecoTracker/Record/interface/CkfComponentsRecord.h" #include -using namespace std; -/*****************************************************************************/ ClusterShapeTrajectoryFilter::ClusterShapeTrajectoryFilter(const edm::ParameterSet& iConfig, edm::ConsumesCollector& iC) : theCacheToken(iC.consumes(iConfig.getParameter("cacheSrc"))), theFilterToken(iC.esConsumes(edm::ESInputTag("", "ClusterShapeHitFilter"))), @@ -40,17 +38,20 @@ ClusterShapeTrajectoryFilter::ClusterShapeTrajectoryFilter(const edm::ParameterS ClusterShapeTrajectoryFilter::~ClusterShapeTrajectoryFilter() {} +void ClusterShapeTrajectoryFilter::fillPSetDescription(edm::ParameterSetDescription& iDesc) { + iDesc.add("cacheSrc", edm::InputTag("siPixelClusterShapeCache")); +} + void ClusterShapeTrajectoryFilter::setEvent(const edm::Event& iEvent, const edm::EventSetup& iSetup) { theFilter = &iSetup.getData(theFilterToken); theCache = &iEvent.get(theCacheToken); } -/*****************************************************************************/ bool ClusterShapeTrajectoryFilter::toBeContinued(Trajectory& trajectory) const { assert(theCache); - vector tms = trajectory.measurements(); + std::vector tms = trajectory.measurements(); - for (vector::const_iterator tm = tms.begin(); tm != tms.end(); tm++) { + for (std::vector::const_iterator tm = tms.begin(); tm != tms.end(); tm++) { const TrackingRecHit* ttRecHit = &(*((*tm).recHit())); if (ttRecHit->isValid()) { @@ -97,7 +98,6 @@ bool ClusterShapeTrajectoryFilter::toBeContinued(Trajectory& trajectory) const { return true; } -/*****************************************************************************/ bool ClusterShapeTrajectoryFilter::toBeContinued(TempTrajectory& trajectory) const { assert(theCache); const TempTrajectory::DataContainer& tms = trajectory.measurements(); @@ -165,10 +165,8 @@ bool ClusterShapeTrajectoryFilter::toBeContinued(TempTrajectory& trajectory) con return true; } -/*****************************************************************************/ bool ClusterShapeTrajectoryFilter::qualityFilter(const Trajectory& trajectory) const { return true; } -/*****************************************************************************/ bool ClusterShapeTrajectoryFilter::qualityFilter(const TempTrajectory& trajectory) const { TempTrajectory t = trajectory; diff --git a/RecoPixelVertexing/PixelLowPtUtilities/src/StripSubClusterShapeTrajectoryFilter.cc b/RecoPixelVertexing/PixelLowPtUtilities/src/StripSubClusterShapeTrajectoryFilter.cc index 6c7a71f66c831..7172daaaf35ce 100644 --- a/RecoPixelVertexing/PixelLowPtUtilities/src/StripSubClusterShapeTrajectoryFilter.cc +++ b/RecoPixelVertexing/PixelLowPtUtilities/src/StripSubClusterShapeTrajectoryFilter.cc @@ -130,7 +130,6 @@ namespace { } // namespace -/*****************************************************************************/ StripSubClusterShapeFilterBase::StripSubClusterShapeFilterBase(const edm::ParameterSet &iCfg, edm::ConsumesCollector &iC) : topoToken_(iC.esConsumes()), @@ -161,8 +160,8 @@ StripSubClusterShapeFilterBase::StripSubClusterShapeFilterBase(const edm::Parame failTooNarrow_(0) #endif { - if (iCfg.exists("layerMask")) { - const edm::ParameterSet &iLM = iCfg.getParameter("layerMask"); + const edm::ParameterSet &iLM = iCfg.getParameter("layerMask"); + if (not iLM.empty()) { const char *ndets[4] = {"TIB", "TID", "TOB", "TEC"}; const int idets[4] = {3, 4, 5, 6}; for (unsigned int i = 0; i < 4; ++i) { @@ -183,7 +182,6 @@ StripSubClusterShapeFilterBase::StripSubClusterShapeFilterBase(const edm::Parame } } -/*****************************************************************************/ StripSubClusterShapeFilterBase::~StripSubClusterShapeFilterBase() { #if 0 std::cout << "StripSubClusterShapeFilterBase " << label_ <<": called " << called_ << std::endl; @@ -196,6 +194,25 @@ StripSubClusterShapeFilterBase::~StripSubClusterShapeFilterBase() { #endif } +void StripSubClusterShapeFilterBase::fillPSetDescription(edm::ParameterSetDescription &iDesc) { + iDesc.addUntracked("label", ""); + iDesc.add("maxNSat", 3); + iDesc.add("trimMaxADC", 30.); + iDesc.add("trimMaxFracTotal", .15); + iDesc.add("trimMaxFracNeigh", .25); + iDesc.add("maxTrimmedSizeDiffPos", .7); + iDesc.add("maxTrimmedSizeDiffNeg", 1.); + iDesc.add("subclusterWindow", .7); + iDesc.add("seedCutMIPs", .35); + iDesc.add("seedCutSN", 7.); + iDesc.add("subclusterCutMIPs", .45); + iDesc.add("subclusterCutSN", 12.); + + edm::ParameterSetDescription psdLM; + psdLM.setAllowAnything(); + iDesc.add("layerMask", psdLM); +} + bool StripSubClusterShapeFilterBase::testLastHit(const TrackingRecHit *hit, const TrajectoryStateOnSurface &tsos, bool mustProject) const { diff --git a/RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilder.h b/RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilder.h index 11b8c738f65e7..e6e03cb8f4fea 100644 --- a/RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilder.h +++ b/RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilder.h @@ -6,6 +6,7 @@ #include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Utilities/interface/ESGetToken.h" #include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h" @@ -75,6 +76,8 @@ class BaseCkfTrajectoryBuilder : public TrajectoryBuilder { BaseCkfTrajectoryBuilder& operator=(const BaseCkfTrajectoryBuilder&) = delete; ~BaseCkfTrajectoryBuilder() override; + static void fillPSetDescription(edm::ParameterSetDescription& iDesc); + // new interface returning the start Trajectory... virtual TempTrajectory buildTrajectories(const TrajectorySeed& seed, TrajectoryContainer& ret, diff --git a/RecoTracker/CkfPattern/interface/CkfTrackCandidateMakerBase.h b/RecoTracker/CkfPattern/interface/CkfTrackCandidateMakerBase.h index 1117a159ff93b..1b3f8a37c107a 100644 --- a/RecoTracker/CkfPattern/interface/CkfTrackCandidateMakerBase.h +++ b/RecoTracker/CkfPattern/interface/CkfTrackCandidateMakerBase.h @@ -6,6 +6,8 @@ #include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "TrackingTools/PatternTools/interface/TrajectoryBuilder.h" #include "RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilder.h" @@ -42,6 +44,8 @@ namespace cms { virtual void produceBase(edm::Event& e, const edm::EventSetup& es); + static void fillPSetDescription(edm::ParameterSetDescription& desc); + protected: bool theTrackCandidateOutput; bool theTrajectoryOutput; @@ -73,8 +77,12 @@ namespace cms { edm::EDGetTokenT > theSeedLabel; edm::EDGetTokenT theMTELabel; - bool skipClusters_; - bool phase2skipClusters_; + edm::InputTag const clustersToSkipTag_; + bool const skipClusters_; + + edm::InputTag const phase2ClustersToSkipTag_; + bool const skipPhase2Clusters_; + typedef edm::ContainerMask > PixelClusterMask; typedef edm::ContainerMask > StripClusterMask; typedef edm::ContainerMask > Phase2OTClusterMask; diff --git a/RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h b/RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h index b1bf2caf60150..020a0727d450c 100644 --- a/RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h +++ b/RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h @@ -11,6 +11,7 @@ class TrajectoryStateOnSurface; class TrajectoryFilter; #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/Event.h" @@ -41,6 +42,8 @@ class CkfTrajectoryBuilder : public BaseCkfTrajectoryBuilder { ~CkfTrajectoryBuilder() override {} + static void fillPSetDescription(edm::ParameterSetDescription& iDesc); + /// trajectories building starting from a seed TrajectoryContainer trajectories(const TrajectorySeed& seed) const override; /// trajectories building starting from a seed diff --git a/RecoTracker/CkfPattern/plugins/CkfTrackCandidateMaker.h b/RecoTracker/CkfPattern/plugins/CkfTrackCandidateMaker.h index df04d6c825322..a6f5807b94f31 100644 --- a/RecoTracker/CkfPattern/plugins/CkfTrackCandidateMaker.h +++ b/RecoTracker/CkfPattern/plugins/CkfTrackCandidateMaker.h @@ -31,6 +31,13 @@ namespace cms { ~CkfTrackCandidateMaker() override { ; } + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.setComment("Make Ckf track candidates"); + CkfTrackCandidateMakerBase::fillPSetDescription(desc); + descriptions.addWithDefaultLabel(desc); + } + void beginRun(edm::Run const& r, edm::EventSetup const& es) override { beginRunBase(r, es); } void produce(edm::Event& e, const edm::EventSetup& es) override { produceBase(e, es); } diff --git a/RecoTracker/CkfPattern/plugins/CkfTrajectoryMaker.h b/RecoTracker/CkfPattern/plugins/CkfTrajectoryMaker.h index 56f069af97330..334404c637e2d 100644 --- a/RecoTracker/CkfPattern/plugins/CkfTrajectoryMaker.h +++ b/RecoTracker/CkfPattern/plugins/CkfTrajectoryMaker.h @@ -36,6 +36,14 @@ namespace cms { ~CkfTrajectoryMaker() override { ; } + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.setComment("Make CKF trajectories"); + desc.add("trackCandidateAlso", false); + CkfTrackCandidateMakerBase::fillPSetDescription(desc); + descriptions.addWithDefaultLabel(desc); + } + void beginRun(edm::Run const& run, edm::EventSetup const& es) override { beginRunBase(run, es); } void produce(edm::Event& e, const edm::EventSetup& es) override { produceBase(e, es); } diff --git a/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.cc b/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.cc index bad4d1ec39059..e0141eb8a2670 100644 --- a/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.cc +++ b/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.cc @@ -12,6 +12,7 @@ #include "TrackingTools/TrackFitters/interface/KFTrajectoryFitter.h" #include "GroupedTrajCandLess.h" #include "TrackingTools/TrajectoryFiltering/interface/RegionalTrajectoryFilter.h" +#include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilterFactory.h" #include "TrackingTools/PatternTools/interface/TempTrajectory.h" #include "RecoTracker/MeasurementDet/interface/MeasurementTracker.h" #include "RecoTracker/MeasurementDet/interface/MeasurementTrackerEvent.h" @@ -29,6 +30,7 @@ #include "TrackingTools/PatternTools/interface/TrajMeasLessEstim.h" #include "TrackingTools/TrajectoryState/interface/BasicSingleTrajectoryState.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/PluginDescription.h" #include "FWCore/Utilities/interface/thread_safety_macros.h" #include "TrackingTools/PatternTools/interface/TransverseImpactPointExtrapolator.h" @@ -132,13 +134,9 @@ GroupedCkfTrajectoryBuilder::GroupedCkfTrajectoryBuilder(const edm::ParameterSet theRequireSeedHitsInRebuild = conf.getParameter("requireSeedHitsInRebuild"); theKeepOriginalIfRebuildFails = conf.getParameter("keepOriginalIfRebuildFails"); theMinNrOfHitsForRebuild = max(0, conf.getParameter("minNrOfHitsForRebuild")); - maxPt2ForLooperReconstruction = conf.existsAs("maxPtForLooperReconstruction") - ? conf.getParameter("maxPtForLooperReconstruction") - : 0; + maxPt2ForLooperReconstruction = conf.getParameter("maxPtForLooperReconstruction"); maxPt2ForLooperReconstruction *= maxPt2ForLooperReconstruction; - maxDPhiForLooperReconstruction = conf.existsAs("maxDPhiForLooperReconstruction") - ? conf.getParameter("maxDPhiForLooperReconstruction") - : 2.0; + maxDPhiForLooperReconstruction = conf.getParameter("maxDPhiForLooperReconstruction"); /* ======= B.M. to be ported layer =========== bool setOK = thePropagator->setMaxDirectionChange(1.6); @@ -152,6 +150,32 @@ GroupedCkfTrajectoryBuilder::GroupedCkfTrajectoryBuilder(const edm::ParameterSet ===================================== */ } +void GroupedCkfTrajectoryBuilder::fillPSetDescription(edm::ParameterSetDescription& iDesc) { + BaseCkfTrajectoryBuilder::fillPSetDescription(iDesc); + + iDesc.add("useSameTrajFilter", true); + iDesc.add("maxCand", 5); + iDesc.add("lostHitPenalty", 30.); + iDesc.add("foundHitBonus", 10.); + iDesc.add("intermediateCleaning", true); + iDesc.add("alwaysUseInvalidHits", true); + iDesc.add("lockHits", true); + iDesc.add("bestHitOnly", true); + iDesc.add("requireSeedHitsInRebuild", true); + iDesc.add("keepOriginalIfRebuildFails", false); + iDesc.add("minNrOfHitsForRebuild", 5); + iDesc.add("maxPtForLooperReconstruction", 0.); + iDesc.add("maxDPhiForLooperReconstruction", 2.0); + + edm::ParameterSetDescription psdTJ1; + psdTJ1.addNode(edm::PluginDescription("ComponentType", true)); + iDesc.add("trajectoryFilter", psdTJ1); + + edm::ParameterSetDescription psdTJ2; + psdTJ2.addNode(edm::PluginDescription("ComponentType", true)); + iDesc.add("inOutTrajectoryFilter", psdTJ2); +} + /* void GroupedCkfTrajectoryBuilder::setEvent(const edm::Event& event) const { diff --git a/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.h b/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.h index aa98aec3a37d9..44a1cfb16b22f 100644 --- a/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.h +++ b/RecoTracker/CkfPattern/plugins/GroupedCkfTrajectoryBuilder.h @@ -2,6 +2,7 @@ #define GroupedCkfTrajectoryBuilder_H #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Framework/interface/EventSetup.h" #include "RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilder.h" @@ -26,6 +27,8 @@ class dso_internal GroupedCkfTrajectoryBuilder final : public BaseCkfTrajectoryB /// destructor ~GroupedCkfTrajectoryBuilder() override {} + static void fillPSetDescription(edm::ParameterSetDescription& iDesc); + /// set Event for the internal MeasurementTracker data member // virtual void setEvent(const edm::Event& event) const; diff --git a/RecoTracker/CkfPattern/plugins/SealModules.cc b/RecoTracker/CkfPattern/plugins/SealModules.cc index 57b0c28c77734..b20c0db3e72e3 100644 --- a/RecoTracker/CkfPattern/plugins/SealModules.cc +++ b/RecoTracker/CkfPattern/plugins/SealModules.cc @@ -1,5 +1,4 @@ #include "FWCore/PluginManager/interface/ModuleDef.h" - #include "FWCore/Framework/interface/MakerMacros.h" #include "CkfTrackCandidateMaker.h" @@ -14,9 +13,12 @@ using cms::CkfTrajectoryMaker; DEFINE_FWK_MODULE(CkfTrackCandidateMaker); DEFINE_FWK_MODULE(CkfTrajectoryMaker); +#include "FWCore/ParameterSet/interface/ValidatedPluginMacros.h" #include "RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilderFactory.h" #include "RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h" #include "GroupedCkfTrajectoryBuilder.h" -DEFINE_EDM_PLUGIN(BaseCkfTrajectoryBuilderFactory, CkfTrajectoryBuilder, "CkfTrajectoryBuilder"); -DEFINE_EDM_PLUGIN(BaseCkfTrajectoryBuilderFactory, GroupedCkfTrajectoryBuilder, "GroupedCkfTrajectoryBuilder"); +DEFINE_EDM_VALIDATED_PLUGIN(BaseCkfTrajectoryBuilderFactory, CkfTrajectoryBuilder, "CkfTrajectoryBuilder"); +DEFINE_EDM_VALIDATED_PLUGIN(BaseCkfTrajectoryBuilderFactory, + GroupedCkfTrajectoryBuilder, + "GroupedCkfTrajectoryBuilder"); diff --git a/RecoTracker/CkfPattern/python/CkfTrackCandidates_cfi.py b/RecoTracker/CkfPattern/python/CkfTrackCandidates_cfi.py index 2a6792a560ee1..848b339f02f84 100644 --- a/RecoTracker/CkfPattern/python/CkfTrackCandidates_cfi.py +++ b/RecoTracker/CkfPattern/python/CkfTrackCandidates_cfi.py @@ -1,36 +1,7 @@ import FWCore.ParameterSet.Config as cms -ckfTrackCandidates = cms.EDProducer("CkfTrackCandidateMaker", -# During tracking, eliminate seeds used by an already found track - RedundantSeedCleaner = cms.string('CachingSeedCleanerBySharedInput'), -# Decide how to eliminate tracks sharing hits at end of tracking phase - TrajectoryCleaner = cms.string('TrajectoryCleanerBySharedHits'), -# Run cleaning after in-out tracking in addition to at end of tracking ? - cleanTrajectoryAfterInOut = cms.bool(True), - reverseTrajectories =cms.bool(False), -# Split matched strip tracker hits into mono/stereo components. - useHitsSplitting = cms.bool(True), -# After in-out tracking, do out-in tracking through the seeding -# region and then further in. - doSeedingRegionRebuilding = cms.bool(True), -# SeedProducer = cms.string('globalMixedSeeds'), -# SeedLabel = cms.string(''), - maxNSeeds = cms.uint32(500000), - maxSeedsBeforeCleaning = cms.uint32(5000), -# SeedProducer:SeedLabel descoped to src - src = cms.InputTag('globalMixedSeeds'), - SimpleMagneticField = cms.string(''), -# SimpleMagneticField = cms.string('ParabolicMf'), # parabolic magnetic field - NavigationSchool = cms.string('SimpleNavigationSchool'), - TrajectoryBuilder = cms.string('GroupedCkfTrajectoryBuilder'), - TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('GroupedCkfTrajectoryBuilder')), - TransientInitialStateEstimatorParameters = cms.PSet( - propagatorAlongTISE = cms.string('PropagatorWithMaterial'), - propagatorOppositeTISE = cms.string('PropagatorWithMaterialOpposite'), -# propagatorAlongTISE = cms.string('PropagatorWithMaterialParabolicMf'), # parabolic magnetic field -# propagatorOppositeTISE = cms.string('PropagatorWithMaterialParabolicMfOpposite'), # parabolic magnetic field - numberMeasurementsForFit = cms.int32(4) - ), - MeasurementTrackerEvent = cms.InputTag("MeasurementTrackerEvent"), +import RecoTracker.CkfPattern.ckfTrackCandidateMaker_cfi as _mod +ckfTrackCandidates = _mod.ckfTrackCandidateMaker.clone( + TrajectoryBuilderPSet = dict(refToPSet_ = cms.string('GroupedCkfTrajectoryBuilder')), + maxSeedsBeforeCleaning = 5000, ) - diff --git a/RecoTracker/CkfPattern/python/CkfTrajectoryBuilder_cfi.py b/RecoTracker/CkfPattern/python/CkfTrajectoryBuilder_cfi.py index f23afaa8c28c7..b8a808a3ab598 100644 --- a/RecoTracker/CkfPattern/python/CkfTrajectoryBuilder_cfi.py +++ b/RecoTracker/CkfPattern/python/CkfTrajectoryBuilder_cfi.py @@ -10,7 +10,6 @@ trajectoryFilter = cms.PSet(refToPSet_ = cms.string('CkfBaseTrajectoryFilter_block')), maxCand = cms.int32(5), intermediateCleaning = cms.bool(True), - MeasurementTrackerName = cms.string(''), estimator = cms.string('Chi2'), TTRHBuilder = cms.string('WithTrackAngle'), updator = cms.string('KFUpdator'), diff --git a/RecoTracker/CkfPattern/python/GroupedCkfTrajectoryBuilderP5_cff.py b/RecoTracker/CkfPattern/python/GroupedCkfTrajectoryBuilderP5_cff.py index 19582ea13a5f6..c74147d4ff333 100644 --- a/RecoTracker/CkfPattern/python/GroupedCkfTrajectoryBuilderP5_cff.py +++ b/RecoTracker/CkfPattern/python/GroupedCkfTrajectoryBuilderP5_cff.py @@ -45,7 +45,6 @@ #replace ckfBaseTrajectoryFilterP5.minimumNumberOfHits = 4 # ##CTF_P5_MeasurementTracker.ComponentName = 'CTF_P5' # useless duplication of MeasurementTracker -##GroupedCkfTrajectoryBuilderP5.MeasurementTrackerName = 'CTF_P5' # useless duplication of MeasurementTracker GroupedCkfTrajectoryBuilderP5 = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( trajectoryFilter = dict(refToPSet_ = 'ckfBaseTrajectoryFilterP5'), maxCand = 1, diff --git a/RecoTracker/CkfPattern/python/GroupedCkfTrajectoryBuilder_cfi.py b/RecoTracker/CkfPattern/python/GroupedCkfTrajectoryBuilder_cfi.py index 47bb7a4e4b4b5..16d00372b270e 100644 --- a/RecoTracker/CkfPattern/python/GroupedCkfTrajectoryBuilder_cfi.py +++ b/RecoTracker/CkfPattern/python/GroupedCkfTrajectoryBuilder_cfi.py @@ -23,7 +23,6 @@ # Chi2 added to track candidate if no hit found in layer lostHitPenalty = cms.double(30.0), foundHitBonus = cms.double(10.0), - MeasurementTrackerName = cms.string(''), lockHits = cms.bool(True), TTRHBuilder = cms.string('WithTrackAngle'), updator = cms.string('KFUpdator'), diff --git a/RecoTracker/CkfPattern/src/BaseCkfTrajectoryBuilder.cc b/RecoTracker/CkfPattern/src/BaseCkfTrajectoryBuilder.cc index 84aebfa9a1f90..edefc24f79106 100644 --- a/RecoTracker/CkfPattern/src/BaseCkfTrajectoryBuilder.cc +++ b/RecoTracker/CkfPattern/src/BaseCkfTrajectoryBuilder.cc @@ -43,6 +43,15 @@ BaseCkfTrajectoryBuilder::BaseCkfTrajectoryBuilder(const edm::ParameterSet& conf BaseCkfTrajectoryBuilder::~BaseCkfTrajectoryBuilder() {} +void BaseCkfTrajectoryBuilder::fillPSetDescription(edm::ParameterSetDescription& iDesc) { + iDesc.add("seedAs5DHit", false); + iDesc.add("updator", "KFUpdator"); + iDesc.add("propagatorAlong", "PropagatorWithMaterial"); + iDesc.add("propagatorOpposite", "PropagatorWithMaterialOpposite"); + iDesc.add("estimator", "Chi2"); + iDesc.add("TTRHBuilder", "WithTrackAngle"); +} + std::unique_ptr BaseCkfTrajectoryBuilder::createTrajectoryFilter(const edm::ParameterSet& pset, edm::ConsumesCollector& iC) { return TrajectoryFilterFactory::get()->create(pset.getParameter("ComponentType"), pset, iC); diff --git a/RecoTracker/CkfPattern/src/BaseCkfTrajectoryBuilderFactory.cc b/RecoTracker/CkfPattern/src/BaseCkfTrajectoryBuilderFactory.cc index d27a732e532ab..960c9438c5ce9 100644 --- a/RecoTracker/CkfPattern/src/BaseCkfTrajectoryBuilderFactory.cc +++ b/RecoTracker/CkfPattern/src/BaseCkfTrajectoryBuilderFactory.cc @@ -1,3 +1,4 @@ #include "RecoTracker/CkfPattern/interface/BaseCkfTrajectoryBuilderFactory.h" +#include "FWCore/ParameterSet/interface/ValidatedPluginFactoryMacros.h" -EDM_REGISTER_PLUGINFACTORY(BaseCkfTrajectoryBuilderFactory, "BaseCkfTrajectoryBuilderFactory"); +EDM_REGISTER_VALIDATED_PLUGINFACTORY(BaseCkfTrajectoryBuilderFactory, "BaseCkfTrajectoryBuilderFactory"); diff --git a/RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc b/RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc index 7de1aec82550d..c6b5e1f243a24 100644 --- a/RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc +++ b/RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc @@ -1,8 +1,9 @@ #include "DataFormats/Common/interface/Handle.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/PluginDescription.h" #include "FWCore/Utilities/interface/isFinite.h" -#include +#include "FWCore/Utilities/interface/ESInputTag.h" #include "DataFormats/Common/interface/OwnVector.h" #include "DataFormats/TrackCandidate/interface/TrackCandidateCollection.h" @@ -62,8 +63,7 @@ namespace cms { useSplitting(conf.getParameter("useHitsSplitting")), doSeedingRegionRebuilding(conf.getParameter("doSeedingRegionRebuilding")), cleanTrajectoryAfterInOut(conf.getParameter("cleanTrajectoryAfterInOut")), - reverseTrajectories(conf.existsAs("reverseTrajectories") && - conf.getParameter("reverseTrajectories")), + reverseTrajectories(conf.getParameter("reverseTrajectories")), theMaxNSeeds(conf.getParameter("maxNSeeds")), theTrajectoryBuilder( createBaseCkfTrajectoryBuilder(conf.getParameter("TrajectoryBuilderPSet"), iC)), @@ -76,34 +76,28 @@ namespace cms { iC.esConsumes(edm::ESInputTag("", conf.getParameter("NavigationSchool")))), theNavigationSchool(nullptr), thePropagatorToken(iC.esConsumes(edm::ESInputTag("", "AnyDirectionAnalyticalPropagator"))), - maxSeedsBeforeCleaning_(0), + maxSeedsBeforeCleaning_(conf.getParameter("maxSeedsBeforeCleaning")), theMTELabel(iC.consumes(conf.getParameter("MeasurementTrackerEvent"))), - skipClusters_(false), - phase2skipClusters_(false) { + clustersToSkipTag_(conf.getParameter("clustersToSkip")), + skipClusters_(!clustersToSkipTag_.label().empty()), + phase2ClustersToSkipTag_(conf.getParameter("phase2clustersToSkip")), + skipPhase2Clusters_(!phase2ClustersToSkipTag_.label().empty()) { theSeedLabel = iC.consumes>(conf.getParameter("src")); -#ifndef VI_REPRODUCIBLE - if (conf.exists("maxSeedsBeforeCleaning")) - maxSeedsBeforeCleaning_ = conf.getParameter("maxSeedsBeforeCleaning"); -#endif - if (conf.existsAs("clustersToSkip")) { - skipClusters_ = true; - maskPixels_ = iC.consumes(conf.getParameter("clustersToSkip")); - maskStrips_ = iC.consumes(conf.getParameter("clustersToSkip")); + + if (skipClusters_) { + maskPixels_ = iC.consumes(clustersToSkipTag_); + maskStrips_ = iC.consumes(clustersToSkipTag_); } //FIXME:: just temporary solution for phase2! - if (conf.existsAs("phase2clustersToSkip")) { - phase2skipClusters_ = true; - maskPixels_ = iC.consumes(conf.getParameter("phase2clustersToSkip")); - maskPhase2OTs_ = iC.consumes(conf.getParameter("phase2clustersToSkip")); + if (skipPhase2Clusters_) { + maskPixels_ = iC.consumes(phase2ClustersToSkipTag_); + maskPhase2OTs_ = iC.consumes(phase2ClustersToSkipTag_); } #ifndef VI_REPRODUCIBLE std::string cleaner = conf.getParameter("RedundantSeedCleaner"); if (cleaner == "CachingSeedCleanerBySharedInput") { - int numHitsForSeedCleaner = - conf.existsAs("numHitsForSeedCleaner") ? conf.getParameter("numHitsForSeedCleaner") : 4; - int onlyPixelHits = conf.existsAs("onlyPixelHitsForSeedCleaner") - ? conf.getParameter("onlyPixelHitsForSeedCleaner") - : false; + int numHitsForSeedCleaner = conf.getParameter("numHitsForSeedCleaner"); + bool onlyPixelHits = conf.getParameter("onlyPixelHitsForSeedCleaner"); theSeedCleaner = std::make_unique(numHitsForSeedCleaner, onlyPixelHits); } else if (cleaner != "none") { throw cms::Exception("RedundantSeedCleaner not found, please use CachingSeedCleanerBySharedInput ro none", @@ -165,7 +159,7 @@ namespace cms { dataWithMasks = std::make_unique(*data, *stripMask, *pixelMask); //std::cout << "Trajectory builder " << conf_.getParameter("@module_label") << " created with masks " << std::endl; theTrajectoryBuilder->setEvent(e, es, &*dataWithMasks); - } else if (phase2skipClusters_) { + } else if (skipPhase2Clusters_) { //FIXME:just temporary solution for phase2! edm::Handle pixelMask; e.getByToken(maskPixels_, pixelMask); @@ -249,8 +243,8 @@ namespace cms { auto const & hit = static_cast(*h); val[i] = hit.firstClusterRef().key(); if (++h != seeds[i].recHits().second) { - auto const & hit = static_cast(*h); - val[i] |= (unsigned long long)(hit.firstClusterRef().key())<<32; + auto const & hit = static_cast(*h); + val[i] |= (unsigned long long)(hit.firstClusterRef().key())<<32; } } */ @@ -540,4 +534,33 @@ namespace cms { e.put(std::move(outputSeedStopInfos)); } + void CkfTrackCandidateMakerBase::fillPSetDescription(edm::ParameterSetDescription& desc) { + desc.add("cleanTrajectoryAfterInOut", true); + desc.add("doSeedingRegionRebuilding", true); + desc.add("onlyPixelHitsForSeedCleaner", false); + desc.add("reverseTrajectories", false); + desc.add("useHitsSplitting", true); + desc.add("MeasurementTrackerEvent", edm::InputTag("MeasurementTrackerEvent")); + desc.add("src", edm::InputTag("globalMixedSeeds")); + + desc.add("clustersToSkip", edm::InputTag("")); + desc.add("phase2clustersToSkip", edm::InputTag("")); + + edm::ParameterSetDescription psdTB; + psdTB.addNode(edm::PluginDescription("ComponentType", true)); + desc.add("TrajectoryBuilderPSet", psdTB); + + edm::ParameterSetDescription psd1; + psd1.add("propagatorAlongTISE", "PropagatorWithMaterial"); + psd1.add("propagatorOppositeTISE", "PropagatorWithMaterialOpposite"); + psd1.add("numberMeasurementsForFit", 4); + desc.add("TransientInitialStateEstimatorParameters", psd1); + + desc.add("numHitsForSeedCleaner", 4); + desc.add("NavigationSchool", "SimpleNavigationSchool"); + desc.add("RedundantSeedCleaner", "CachingSeedCleanerBySharedInput"); + desc.add("TrajectoryCleaner", "TrajectoryCleanerBySharedHits"); + desc.add("maxNSeeds", 500000); + desc.add("maxSeedsBeforeCleaning", 0); + } } // namespace cms diff --git a/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc b/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc index 79d888103a1c5..bd16b2dfe3879 100644 --- a/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc +++ b/RecoTracker/CkfPattern/src/CkfTrajectoryBuilder.cc @@ -1,6 +1,7 @@ #include "RecoTracker/CkfPattern/interface/CkfTrajectoryBuilder.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/PluginDescription.h" #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" @@ -23,6 +24,7 @@ #include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" #include "TrackingTools/PatternTools/interface/TransverseImpactPointExtrapolator.h" #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" +#include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilterFactory.h" using namespace std; @@ -49,6 +51,18 @@ CkfTrajectoryBuilder::CkfTrajectoryBuilder(const edm::ParameterSet& conf, */ } +void CkfTrajectoryBuilder::fillPSetDescription(edm::ParameterSetDescription& iDesc) { + BaseCkfTrajectoryBuilder::fillPSetDescription(iDesc); + iDesc.add("maxCand", 5); + iDesc.add("lostHitPenalty", 30.); + iDesc.add("intermediateCleaning", true); + iDesc.add("alwaysUseInvalidHits", true); + + edm::ParameterSetDescription psdTF; + psdTF.addNode(edm::PluginDescription("ComponentType", true)); + iDesc.add("trajectoryFilter", psdTF); +} + /* void CkfTrajectoryBuilder::setEvent(const edm::Event& event) const { diff --git a/RecoTracker/Configuration/python/RecoTrackerTopBottom_cff.py b/RecoTracker/Configuration/python/RecoTrackerTopBottom_cff.py index f0ffa9f85d812..99f27e143fd47 100644 --- a/RecoTracker/Configuration/python/RecoTrackerTopBottom_cff.py +++ b/RecoTracker/Configuration/python/RecoTrackerTopBottom_cff.py @@ -120,9 +120,7 @@ ComponentName = 'MeasurementTrackerTop' ) -GroupedCkfTrajectoryBuilderP5Top = GroupedCkfTrajectoryBuilderP5.clone( - MeasurementTrackerName = 'MeasurementTrackerTop' -) +GroupedCkfTrajectoryBuilderP5Top = GroupedCkfTrajectoryBuilderP5.clone() ckfTrackCandidatesP5Top = ckfTrackCandidatesP5.clone( TrajectoryBuilderPSet = dict(refToPSet_ = 'GroupedCkfTrajectoryBuilderP5Top'), @@ -220,9 +218,7 @@ ComponentName = 'MeasurementTrackerBottom' ) -GroupedCkfTrajectoryBuilderP5Bottom = GroupedCkfTrajectoryBuilderP5.clone( - MeasurementTrackerName = 'MeasurementTrackerBottom' -) +GroupedCkfTrajectoryBuilderP5Bottom = GroupedCkfTrajectoryBuilderP5.clone() ckfTrackCandidatesP5Bottom = ckfTrackCandidatesP5.clone( TrajectoryBuilderPSet = dict(refToPSet_ = 'GroupedCkfTrajectoryBuilderP5Bottom'), diff --git a/RecoTracker/ConversionSeedGenerators/python/ConversionStep_cff.py b/RecoTracker/ConversionSeedGenerators/python/ConversionStep_cff.py index 39f5602566bdd..256432c1180c8 100644 --- a/RecoTracker/ConversionSeedGenerators/python/ConversionStep_cff.py +++ b/RecoTracker/ConversionSeedGenerators/python/ConversionStep_cff.py @@ -302,13 +302,13 @@ import RecoTracker.CkfPattern.CkfTrackCandidates_cfi convTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone( src = 'photonConvTrajSeedFromSingleLeg:convSeedCandidates', - clustersToSkip = cms.InputTag('convClusters'), + clustersToSkip = 'convClusters', TrajectoryBuilderPSet = dict(refToPSet_ = 'convCkfTrajectoryBuilder') ) trackingPhase2PU140.toModify(convTrackCandidates, - clustersToSkip = None, - phase2clustersToSkip = cms.InputTag('convClusters') + clustersToSkip = '', + phase2clustersToSkip = 'convClusters' ) import TrackingTools.TrackFitters.RungeKuttaFitters_cff diff --git a/RecoTracker/IterativeTracking/python/DetachedQuadStep_cff.py b/RecoTracker/IterativeTracking/python/DetachedQuadStep_cff.py index bf2ec7681eb7b..a45073cfbf55b 100644 --- a/RecoTracker/IterativeTracking/python/DetachedQuadStep_cff.py +++ b/RecoTracker/IterativeTracking/python/DetachedQuadStep_cff.py @@ -151,7 +151,6 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi detachedQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', trajectoryFilter = dict(refToPSet_ = 'detachedQuadStepTrajectoryFilter'), maxCand = 3, alwaysUseInvalidHits = True, @@ -177,7 +176,7 @@ import RecoTracker.CkfPattern.CkfTrackCandidates_cfi detachedQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone( src = 'detachedQuadStepSeeds', - clustersToSkip = cms.InputTag('detachedQuadStepClusters'), + clustersToSkip = 'detachedQuadStepClusters', ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput numHitsForSeedCleaner = cms.int32(50), onlyPixelHitsForSeedCleaner = cms.bool(True), @@ -187,8 +186,8 @@ useHitsSplitting = True ) trackingPhase2PU140.toModify(detachedQuadStepTrackCandidates, - clustersToSkip = None, - phase2clustersToSkip = cms.InputTag('detachedQuadStepClusters') + clustersToSkip = '', + phase2clustersToSkip = 'detachedQuadStepClusters' ) from Configuration.ProcessModifiers.trackingMkFitDetachedQuadStep_cff import trackingMkFitDetachedQuadStep diff --git a/RecoTracker/IterativeTracking/python/DetachedTripletStep_cff.py b/RecoTracker/IterativeTracking/python/DetachedTripletStep_cff.py index 944a6d1d49ae9..6ea7031e454e2 100644 --- a/RecoTracker/IterativeTracking/python/DetachedTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/DetachedTripletStep_cff.py @@ -182,7 +182,6 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi detachedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', trajectoryFilter = cms.PSet(refToPSet_ = cms.string('detachedTripletStepTrajectoryFilter')), maxCand = 3, alwaysUseInvalidHits = True, diff --git a/RecoTracker/IterativeTracking/python/DisplacedGeneralStep_cff.py b/RecoTracker/IterativeTracking/python/DisplacedGeneralStep_cff.py index 2c36c5bdca0ea..7c675181ea37b 100644 --- a/RecoTracker/IterativeTracking/python/DisplacedGeneralStep_cff.py +++ b/RecoTracker/IterativeTracking/python/DisplacedGeneralStep_cff.py @@ -101,14 +101,13 @@ #----------------------------------------- TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi displacedGeneralStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', - trajectoryFilter = cms.PSet(refToPSet_ = cms.string('displacedGeneralStepTrajectoryFilter')), - inOutTrajectoryFilter = cms.PSet(refToPSet_ = cms.string('displacedGeneralStepTrajectoryFilterInOut')), + trajectoryFilter = dict(refToPSet_ = 'displacedGeneralStepTrajectoryFilter'), + inOutTrajectoryFilter = dict(refToPSet_ = 'displacedGeneralStepTrajectoryFilterInOut'), useSameTrajFilter = False, minNrOfHitsForRebuild = 4, maxCand = 2, estimator = 'displacedGeneralStepChi2Est' - ) +) diff --git a/RecoTracker/IterativeTracking/python/HighPtTripletStep_cff.py b/RecoTracker/IterativeTracking/python/HighPtTripletStep_cff.py index 37f001189972f..a0f62ccf849b2 100644 --- a/RecoTracker/IterativeTracking/python/HighPtTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/HighPtTripletStep_cff.py @@ -211,10 +211,10 @@ import RecoTracker.CkfPattern.CkfTrackCandidates_cfi as _CkfTrackCandidates_cfi highPtTripletStepTrackCandidates = _CkfTrackCandidates_cfi.ckfTrackCandidates.clone( src = 'highPtTripletStepSeeds', - clustersToSkip = cms.InputTag('highPtTripletStepClusters'), + clustersToSkip = 'highPtTripletStepClusters', ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput - numHitsForSeedCleaner = cms.int32(50), - onlyPixelHitsForSeedCleaner = cms.bool(True), + numHitsForSeedCleaner = 50, + onlyPixelHitsForSeedCleaner = True, TrajectoryBuilderPSet = dict(refToPSet_ = 'highPtTripletStepTrajectoryBuilder'), doSeedingRegionRebuilding = True, useHitsSplitting = True @@ -252,8 +252,8 @@ ) trackingPhase2PU140.toModify(highPtTripletStepTrackCandidates, TrajectoryCleaner = 'highPtTripletStepTrajectoryCleanerBySharedHits', - clustersToSkip = None, - phase2clustersToSkip = cms.InputTag('highPtTripletStepClusters') + clustersToSkip = '', + phase2clustersToSkip = 'highPtTripletStepClusters' ) #For FastSim phase1 tracking diff --git a/RecoTracker/IterativeTracking/python/JetCoreRegionalStep_cff.py b/RecoTracker/IterativeTracking/python/JetCoreRegionalStep_cff.py index dac342e768220..617142579c233 100644 --- a/RecoTracker/IterativeTracking/python/JetCoreRegionalStep_cff.py +++ b/RecoTracker/IterativeTracking/python/JetCoreRegionalStep_cff.py @@ -148,9 +148,8 @@ #need to also load the refToPSet_ used by GroupedCkfTrajectoryBuilder CkfBaseTrajectoryFilter_block = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.CkfBaseTrajectoryFilter_block jetCoreRegionalStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', - trajectoryFilter = cms.PSet(refToPSet_ = cms.string('jetCoreRegionalStepTrajectoryFilter')), - #clustersToSkip = cms.InputTag('jetCoreRegionalStepClusters'), + trajectoryFilter = dict(refToPSet_ = 'jetCoreRegionalStepTrajectoryFilter'), + #clustersToSkip = 'jetCoreRegionalStepClusters', maxCand = 50, estimator = 'jetCoreRegionalStepChi2Est', maxDPhiForLooperReconstruction = cms.double(2.0), @@ -159,9 +158,8 @@ trackingNoLoopers.toModify(jetCoreRegionalStepTrajectoryBuilder, maxPtForLooperReconstruction = 0.0) jetCoreRegionalStepBarrelTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', - trajectoryFilter = cms.PSet(refToPSet_ = cms.string('jetCoreRegionalStepBarrelTrajectoryFilter')), - #clustersToSkip = cms.InputTag('jetCoreRegionalStepClusters'), + trajectoryFilter = dict(refToPSet_ = 'jetCoreRegionalStepBarrelTrajectoryFilter'), + #clustersToSkip = 'jetCoreRegionalStepClusters', maxCand = 50, estimator = 'jetCoreRegionalStepChi2Est', keepOriginalIfRebuildFails = True, diff --git a/RecoTracker/IterativeTracking/python/LowPtBarrelTripletStep_cff.py b/RecoTracker/IterativeTracking/python/LowPtBarrelTripletStep_cff.py index e2d6cb1665154..53734d57e47ff 100644 --- a/RecoTracker/IterativeTracking/python/LowPtBarrelTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LowPtBarrelTripletStep_cff.py @@ -60,9 +60,8 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi lowPtBarrelTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', - trajectoryFilter = cms.PSet(refToPSet_ = cms.string('lowPtBarrelTripletStepTrajectoryFilter')), - clustersToSkip = cms.InputTag('lowPtBarrelTripletStepClusters'), + trajectoryFilter = dict(refToPSet_ = 'lowPtBarrelTripletStepTrajectoryFilter'), + clustersToSkip = 'lowPtBarrelTripletStepClusters', maxCand = 3, #lostHitPenalty = cms.double(10.0), estimator = 'lowPtBarrelTripletStepChi2Est', diff --git a/RecoTracker/IterativeTracking/python/LowPtForwardTripletStep_cff.py b/RecoTracker/IterativeTracking/python/LowPtForwardTripletStep_cff.py index 067cb54f754b5..a8814079f057e 100644 --- a/RecoTracker/IterativeTracking/python/LowPtForwardTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LowPtForwardTripletStep_cff.py @@ -60,9 +60,8 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi lowPtForwardTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', - trajectoryFilter = cms.PSet(refToPSet_ = cms.string('lowPtForwardTripletStepTrajectoryFilter')), - clustersToSkip = cms.InputTag('lowPtForwardTripletStepClusters'), + trajectoryFilter = dict(refToPSet_ = 'lowPtForwardTripletStepTrajectoryFilter'), + clustersToSkip = 'lowPtForwardTripletStepClusters', maxCand = 3, estimator = 'lowPtForwardTripletStepChi2Est' ) diff --git a/RecoTracker/IterativeTracking/python/LowPtQuadStep_cff.py b/RecoTracker/IterativeTracking/python/LowPtQuadStep_cff.py index 5f050e6b0a08b..36496282eec9f 100644 --- a/RecoTracker/IterativeTracking/python/LowPtQuadStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LowPtQuadStep_cff.py @@ -138,7 +138,6 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi lowPtQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', trajectoryFilter = dict(refToPSet_ = 'lowPtQuadStepTrajectoryFilter'), maxCand = 4, estimator = 'lowPtQuadStepChi2Est', @@ -168,17 +167,17 @@ lowPtQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone( src = 'lowPtQuadStepSeeds', ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput - numHitsForSeedCleaner = cms.int32(50), - onlyPixelHitsForSeedCleaner = cms.bool(True), + numHitsForSeedCleaner = 50, + onlyPixelHitsForSeedCleaner = True, TrajectoryBuilderPSet = dict(refToPSet_ = 'lowPtQuadStepTrajectoryBuilder'), TrajectoryCleaner = 'lowPtQuadStepTrajectoryCleanerBySharedHits', - clustersToSkip = cms.InputTag('lowPtQuadStepClusters'), + clustersToSkip = 'lowPtQuadStepClusters', doSeedingRegionRebuilding = True, useHitsSplitting = True ) trackingPhase2PU140.toModify(lowPtQuadStepTrackCandidates, - clustersToSkip = None, - phase2clustersToSkip = cms.InputTag('lowPtQuadStepClusters') + clustersToSkip = '', + phase2clustersToSkip = 'lowPtQuadStepClusters' ) from Configuration.ProcessModifiers.trackingMkFitLowPtQuadStep_cff import trackingMkFitLowPtQuadStep diff --git a/RecoTracker/IterativeTracking/python/LowPtTripletStep_cff.py b/RecoTracker/IterativeTracking/python/LowPtTripletStep_cff.py index 18dd521874356..115b2337b6dab 100644 --- a/RecoTracker/IterativeTracking/python/LowPtTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/LowPtTripletStep_cff.py @@ -210,8 +210,7 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi lowPtTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', - trajectoryFilter = cms.PSet(refToPSet_ = cms.string('lowPtTripletStepTrajectoryFilter')), + trajectoryFilter = dict(refToPSet_ = 'lowPtTripletStepTrajectoryFilter'), maxCand = 4, estimator = 'lowPtTripletStepChi2Est', maxDPhiForLooperReconstruction = cms.double(2.0), @@ -234,10 +233,10 @@ _lowPtTripletStepTrackCandidatesCkf = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone( src = 'lowPtTripletStepSeeds', ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput - numHitsForSeedCleaner = cms.int32(50), - onlyPixelHitsForSeedCleaner = cms.bool(True), + numHitsForSeedCleaner = 50, + onlyPixelHitsForSeedCleaner = True, TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('lowPtTripletStepTrajectoryBuilder')), - clustersToSkip = cms.InputTag('lowPtTripletStepClusters'), + clustersToSkip = 'lowPtTripletStepClusters', doSeedingRegionRebuilding = True, useHitsSplitting = True, TrajectoryCleaner = 'lowPtTripletStepTrajectoryCleanerBySharedHits' @@ -245,8 +244,8 @@ lowPtTripletStepTrackCandidates = _lowPtTripletStepTrackCandidatesCkf.clone() trackingPhase2PU140.toModify(lowPtTripletStepTrackCandidates, - clustersToSkip = None, - phase2clustersToSkip = cms.InputTag('lowPtTripletStepClusters') + clustersToSkip = '', + phase2clustersToSkip = 'lowPtTripletStepClusters' ) from Configuration.ProcessModifiers.trackingMkFitLowPtTripletStep_cff import trackingMkFitLowPtTripletStep diff --git a/RecoTracker/IterativeTracking/python/MixedTripletStep_cff.py b/RecoTracker/IterativeTracking/python/MixedTripletStep_cff.py index 1a775962f22d1..83e87819f8533 100644 --- a/RecoTracker/IterativeTracking/python/MixedTripletStep_cff.py +++ b/RecoTracker/IterativeTracking/python/MixedTripletStep_cff.py @@ -270,8 +270,7 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi mixedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', - trajectoryFilter = cms.PSet(refToPSet_ = cms.string('mixedTripletStepTrajectoryFilter')), + trajectoryFilter = dict(refToPSet_ = 'mixedTripletStepTrajectoryFilter'), propagatorAlong = 'mixedTripletStepPropagator', propagatorOpposite = 'mixedTripletStepPropagatorOpposite', maxCand = 2, diff --git a/RecoTracker/IterativeTracking/python/PixelLessStep_cff.py b/RecoTracker/IterativeTracking/python/PixelLessStep_cff.py index 58230478eb6d9..0c965f4cd66a3 100644 --- a/RecoTracker/IterativeTracking/python/PixelLessStep_cff.py +++ b/RecoTracker/IterativeTracking/python/PixelLessStep_cff.py @@ -275,8 +275,7 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi pixelLessStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', - trajectoryFilter = cms.PSet(refToPSet_ = cms.string('pixelLessStepTrajectoryFilter')), + trajectoryFilter = dict(refToPSet_ = 'pixelLessStepTrajectoryFilter'), minNrOfHitsForRebuild = 4, maxCand = 2, alwaysUseInvalidHits = False, @@ -292,10 +291,10 @@ # Give handle for CKF for HI _pixelLessStepTrackCandidatesCkf = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone( src = 'pixelLessStepSeeds', - clustersToSkip = cms.InputTag('pixelLessStepClusters'), + clustersToSkip = 'pixelLessStepClusters', ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput - numHitsForSeedCleaner = cms.int32(50), - #onlyPixelHitsForSeedCleaner = cms.bool(True), + numHitsForSeedCleaner = 50, + #onlyPixelHitsForSeedCleaner = True, TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('pixelLessStepTrajectoryBuilder')), TrajectoryCleaner = 'pixelLessStepTrajectoryCleanerBySharedHits' ) @@ -334,8 +333,8 @@ ) vectorHits.toModify(pixelLessStepTrackCandidates, - phase2clustersToSkip = cms.InputTag('pixelLessStepClusters'), - clustersToSkip = None + phase2clustersToSkip = 'pixelLessStepClusters', + clustersToSkip = '' ) from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits diff --git a/RecoTracker/IterativeTracking/python/PixelPairStep_cff.py b/RecoTracker/IterativeTracking/python/PixelPairStep_cff.py index 22eacbce09e6b..0b3bd69eccecf 100644 --- a/RecoTracker/IterativeTracking/python/PixelPairStep_cff.py +++ b/RecoTracker/IterativeTracking/python/PixelPairStep_cff.py @@ -275,8 +275,7 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi pixelPairStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', - trajectoryFilter = cms.PSet(refToPSet_ = cms.string('pixelPairStepTrajectoryFilter')), + trajectoryFilter = dict(refToPSet_ = 'pixelPairStepTrajectoryFilter'), maxCand = 3, estimator = 'pixelPairStepChi2Est', maxDPhiForLooperReconstruction = cms.double(2.0), @@ -300,12 +299,11 @@ # Give handle for CKF for HI _pixelPairStepTrackCandidatesCkf = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone( src = 'pixelPairStepSeeds', - clustersToSkip = cms.InputTag('pixelPairStepClusters'), + clustersToSkip = 'pixelPairStepClusters', TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('pixelPairStepTrajectoryBuilder')), ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput - numHitsForSeedCleaner = cms.int32(50), - onlyPixelHitsForSeedCleaner = cms.bool(True), - + numHitsForSeedCleaner = 50, + onlyPixelHitsForSeedCleaner = True ) pixelPairStepTrackCandidates = _pixelPairStepTrackCandidatesCkf.clone() @@ -333,9 +331,9 @@ )) trackingPhase2PU140.toModify(pixelPairStepTrackCandidates, - clustersToSkip = None, - phase2clustersToSkip = cms.InputTag('pixelPairStepClusters'), - TrajectoryCleaner = 'pixelPairStepTrajectoryCleanerBySharedHits' + clustersToSkip = '', + phase2clustersToSkip = 'pixelPairStepClusters', + TrajectoryCleaner = 'pixelPairStepTrajectoryCleanerBySharedHits' ) import FastSimulation.Tracking.TrackCandidateProducer_cfi fastSim.toReplaceWith(pixelPairStepTrackCandidates, diff --git a/RecoTracker/IterativeTracking/python/TobTecStep_cff.py b/RecoTracker/IterativeTracking/python/TobTecStep_cff.py index c78b443d0a1c9..2e4329dc4c0c2 100644 --- a/RecoTracker/IterativeTracking/python/TobTecStep_cff.py +++ b/RecoTracker/IterativeTracking/python/TobTecStep_cff.py @@ -242,9 +242,8 @@ # TRACK BUILDING import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi tobTecStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone( - MeasurementTrackerName = '', - trajectoryFilter = cms.PSet(refToPSet_ = cms.string('tobTecStepTrajectoryFilter')), - inOutTrajectoryFilter = cms.PSet(refToPSet_ = cms.string('tobTecStepInOutTrajectoryFilter')), + trajectoryFilter = dict(refToPSet_ = 'tobTecStepTrajectoryFilter'), + inOutTrajectoryFilter = dict(refToPSet_ = 'tobTecStepInOutTrajectoryFilter'), useSameTrajFilter = False, minNrOfHitsForRebuild = 4, alwaysUseInvalidHits = False, diff --git a/TrackingTools/GsfTracking/python/CkfElectronCandidateMaker_cff.py b/TrackingTools/GsfTracking/python/CkfElectronCandidateMaker_cff.py index 6597c68b1dee1..b95598513ccb6 100644 --- a/TrackingTools/GsfTracking/python/CkfElectronCandidateMaker_cff.py +++ b/TrackingTools/GsfTracking/python/CkfElectronCandidateMaker_cff.py @@ -44,7 +44,6 @@ propagatorAlong = 'fwdGsfElectronPropagator', propagatorOpposite = 'bwdGsfElectronPropagator', estimator = 'ElectronChi2', - MeasurementTrackerName = '', lostHitPenalty = 90., alwaysUseInvalidHits = True, TTRHBuilder = 'WithTrackAngle', @@ -72,7 +71,6 @@ ValidHitBonus = 1000.0, MissingHitPenalty = 0.0 ) - # "backward" propagator for electrons from TrackingTools.GsfTracking.bwdGsfElectronPropagator_cff import * diff --git a/TrackingTools/TrajectoryFiltering/interface/ChargeSignificanceTrajectoryFilter.h b/TrackingTools/TrajectoryFiltering/interface/ChargeSignificanceTrajectoryFilter.h index 3892db67cb4f9..f42950840a1ce 100644 --- a/TrackingTools/TrajectoryFiltering/interface/ChargeSignificanceTrajectoryFilter.h +++ b/TrackingTools/TrajectoryFiltering/interface/ChargeSignificanceTrajectoryFilter.h @@ -1,6 +1,7 @@ #ifndef ChargeSignificanceTrajectoryFilter_H #define ChargeSignificanceTrajectoryFilter_H +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" #include "TrackingTools/PatternTools/interface/Trajectory.h" #include "TrackingTools/PatternTools/interface/TempTrajectory.h" @@ -18,6 +19,8 @@ class ChargeSignificanceTrajectoryFilter final : public TrajectoryFilter { explicit ChargeSignificanceTrajectoryFilter(const edm::ParameterSet& pset, edm::ConsumesCollector& iC) : theChargeSignificance(pset.getParameter("chargeSignificance")) {} + static void fillPSetDescription(edm::ParameterSetDescription& iDesc) { iDesc.add("chargeSignificance", -1.); } + bool qualityFilter(const Trajectory& traj) const override { return traj.isValid(); } bool qualityFilter(const TempTrajectory& traj) const override { return traj.isValid(); } diff --git a/TrackingTools/TrajectoryFiltering/interface/CkfBaseTrajectoryFilter.h b/TrackingTools/TrajectoryFiltering/interface/CkfBaseTrajectoryFilter.h index a691dad636377..c10e44c0b5fb1 100644 --- a/TrackingTools/TrajectoryFiltering/interface/CkfBaseTrajectoryFilter.h +++ b/TrackingTools/TrajectoryFiltering/interface/CkfBaseTrajectoryFilter.h @@ -1,8 +1,8 @@ #ifndef CkfBaseTrajectoryFilter_H #define CkfBaseTrajectoryFilter_H +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" - #include "TrackingTools/TrajectoryFiltering/interface/ChargeSignificanceTrajectoryFilter.h" #include "TrackingTools/TrajectoryFiltering/interface/MaxConsecLostHitsTrajectoryFilter.h" #include "TrackingTools/TrajectoryFiltering/interface/MaxHitsTrajectoryFilter.h" @@ -13,7 +13,6 @@ #include "TrackingTools/TrajectoryFiltering/interface/LooperTrajectoryFilter.h" #include "TrackingTools/TrajectoryFiltering/interface/SeedExtensionTrajectoryFilter.h" #include "TrackingTools/TrajectoryFiltering/interface/MaxCCCLostHitsTrajectoryFilter.h" -#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" class CkfBaseTrajectoryFilter : public TrajectoryFilter { public: @@ -30,6 +29,19 @@ class CkfBaseTrajectoryFilter : public TrajectoryFilter { theSeedExtensionTrajectoryFilter(new SeedExtensionTrajectoryFilter(pset, iC)), theMaxCCCLostHitsTrajectoryFilter(new MaxCCCLostHitsTrajectoryFilter(pset, iC)) {} + static void fillPSetDescription(edm::ParameterSetDescription& iDesc) { + ChargeSignificanceTrajectoryFilter::fillPSetDescription(iDesc); + MaxConsecLostHitsTrajectoryFilter::fillPSetDescription(iDesc); + MaxHitsTrajectoryFilter::fillPSetDescription(iDesc); + MaxLostHitsTrajectoryFilter::fillPSetDescription(iDesc); + LostHitsFractionTrajectoryFilter::fillPSetDescription(iDesc); + MinHitsTrajectoryFilter::fillPSetDescription(iDesc); + MinPtTrajectoryFilter::fillPSetDescription(iDesc); + LooperTrajectoryFilter::fillPSetDescription(iDesc); + SeedExtensionTrajectoryFilter::fillPSetDescription(iDesc); + MaxCCCLostHitsTrajectoryFilter::fillPSetDescription(iDesc); + } + void setEvent(const edm::Event& iEvent, const edm::EventSetup& iSetup) override { theChargeSignificanceTrajectoryFilter->setEvent(iEvent, iSetup); theMaxLostHitsTrajectoryFilter->setEvent(iEvent, iSetup); @@ -50,19 +62,6 @@ class CkfBaseTrajectoryFilter : public TrajectoryFilter { std::string name() const override { return "CkfBaseTrajectoryFilter"; } - inline edm::ParameterSetDescription getFilledConfigurationDescription() { - edm::ParameterSetDescription descLooper = theLooperTrajectoryFilter->getFilledConfigurationDescription(); - edm::ParameterSetDescription descLostHitsFraction = - theLostHitsFractionTrajectoryFilter->getFilledConfigurationDescription(); - edm::ParameterSetDescription descMinHits = theMinHitsTrajectoryFilter->getFilledConfigurationDescription(); - - edm::ParameterSetDescription desc; - desc.add("looperTrajectoryFilter", descLooper); - desc.add("lostHitsFractionTrajectoryFilter", descLostHitsFraction); - desc.add("minHitsTrajectoryFilter", descMinHits); - return desc; - } - protected: template bool QF(const T& traj) const { diff --git a/TrackingTools/TrajectoryFiltering/interface/CompositeTrajectoryFilter.h b/TrackingTools/TrajectoryFiltering/interface/CompositeTrajectoryFilter.h index 19b10b44ba884..7b1cc6e19f450 100644 --- a/TrackingTools/TrajectoryFiltering/interface/CompositeTrajectoryFilter.h +++ b/TrackingTools/TrajectoryFiltering/interface/CompositeTrajectoryFilter.h @@ -1,6 +1,8 @@ #ifndef CompositeTrajectoryFilter_H #define CompositeTrajectoryFilter_H +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/ParameterSet/interface/PluginDescription.h" #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilterFactory.h" #include "TrackingTools/PatternTools/interface/Trajectory.h" @@ -26,6 +28,13 @@ class CompositeTrajectoryFilter : public TrajectoryFilter { ~CompositeTrajectoryFilter() override {} + static void fillPSetDescription(edm::ParameterSetDescription& iDesc) { + edm::ParameterSetDescription psdTF; + psdTF.addNode(edm::PluginDescription("ComponentType", true)); + std::vector vPSetFilters; + iDesc.addVPSet("filters", psdTF, vPSetFilters); + } + void setEvent(const edm::Event& iEvent, const edm::EventSetup& iSetup) override { for (auto& f : filters) { f->setEvent(iEvent, iSetup); diff --git a/TrackingTools/TrajectoryFiltering/interface/LooperTrajectoryFilter.h b/TrackingTools/TrajectoryFiltering/interface/LooperTrajectoryFilter.h index 5391a6f0ad7fa..7bd314dbd4628 100644 --- a/TrackingTools/TrajectoryFiltering/interface/LooperTrajectoryFilter.h +++ b/TrackingTools/TrajectoryFiltering/interface/LooperTrajectoryFilter.h @@ -1,8 +1,8 @@ #ifndef LooperTrajectoryFilter_H #define LooperTrajectoryFilter_H -#include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" class LooperTrajectoryFilter final : public TrajectoryFilter { public: @@ -19,6 +19,12 @@ class LooperTrajectoryFilter final : public TrajectoryFilter { theExtraNumberOfHitsBeforeTheFirstLoop = pset.getParameter("extraNumberOfHitsBeforeTheFirstLoop"); } + static void fillPSetDescription(edm::ParameterSetDescription& iDesc) { + iDesc.add("minNumberOfHitsForLoopers", 13); + iDesc.add("minNumberOfHitsPerLoop", 4); + iDesc.add("extraNumberOfHitsBeforeTheFirstLoop", 4); + } + bool qualityFilter(const Trajectory& traj) const override { return QF(traj); } bool qualityFilter(const TempTrajectory& traj) const override { return QF(traj); } @@ -27,14 +33,6 @@ class LooperTrajectoryFilter final : public TrajectoryFilter { std::string name() const override { return "LooperTrajectoryFilter"; } - inline edm::ParameterSetDescription getFilledConfigurationDescription() { - edm::ParameterSetDescription desc; - desc.add("minNumberOfHitsForLoopers", 13); - desc.add("minNumberOfHitsPerLoop", 4); - desc.add("extraNumberOfHitsBeforeTheFirstLoop", 4); - return desc; - } - protected: template bool QF(const T& traj) const { diff --git a/TrackingTools/TrajectoryFiltering/interface/LostHitsFractionTrajectoryFilter.h b/TrackingTools/TrajectoryFiltering/interface/LostHitsFractionTrajectoryFilter.h index 86923983286da..040ef2932357f 100644 --- a/TrackingTools/TrajectoryFiltering/interface/LostHitsFractionTrajectoryFilter.h +++ b/TrackingTools/TrajectoryFiltering/interface/LostHitsFractionTrajectoryFilter.h @@ -1,8 +1,8 @@ #ifndef LostHitsFractionTrajectoryFilter_H #define LostHitsFractionTrajectoryFilter_H -#include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" class LostHitsFractionTrajectoryFilter final : public TrajectoryFilter { public: @@ -14,6 +14,11 @@ class LostHitsFractionTrajectoryFilter final : public TrajectoryFilter { theConstantValue = pset.getParameter("constantValueForLostHitsFractionFilter"); } + static void fillPSetDescription(edm::ParameterSetDescription& iDesc) { + iDesc.add("maxLostHitsFraction", .1); + iDesc.add("constantValueForLostHitsFractionFilter", 2.); + } + bool qualityFilter(const Trajectory& traj) const override { return TrajectoryFilter::qualityFilterIfNotContributing; } bool qualityFilter(const TempTrajectory& traj) const override { return TrajectoryFilter::qualityFilterIfNotContributing; diff --git a/TrackingTools/TrajectoryFiltering/interface/MaxCCCLostHitsTrajectoryFilter.h b/TrackingTools/TrajectoryFiltering/interface/MaxCCCLostHitsTrajectoryFilter.h index 300fb7af6bc02..e130744a8407b 100644 --- a/TrackingTools/TrajectoryFiltering/interface/MaxCCCLostHitsTrajectoryFilter.h +++ b/TrackingTools/TrajectoryFiltering/interface/MaxCCCLostHitsTrajectoryFilter.h @@ -1,6 +1,7 @@ #ifndef MaxCCCLostHitsTrajectoryFilter_H #define MaxCCCLostHitsTrajectoryFilter_H +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" #include "RecoLocalTracker/SiStripClusterizer/interface/ClusterChargeCut.h" @@ -14,6 +15,11 @@ class MaxCCCLostHitsTrajectoryFilter final : public TrajectoryFilter { : theMaxCCCLostHits_(pset.getParameter("maxCCCLostHits")), minGoodStripCharge_(clusterChargeCut(pset, "minGoodStripCharge")) {} + static void fillPSetDescription(edm::ParameterSetDescription& iDesc) { + iDesc.add("maxCCCLostHits", 9999); + iDesc.add("minGoodStripCharge", getFilledConfigurationDescription4CCC()); + } + bool qualityFilter(const Trajectory& traj) const override { return TrajectoryFilter::qualityFilterIfNotContributing; } bool qualityFilter(const TempTrajectory& traj) const override { return TrajectoryFilter::qualityFilterIfNotContributing; diff --git a/TrackingTools/TrajectoryFiltering/interface/MaxConsecLostHitsTrajectoryFilter.h b/TrackingTools/TrajectoryFiltering/interface/MaxConsecLostHitsTrajectoryFilter.h index e35f766156b49..f5ac74fa7843f 100644 --- a/TrackingTools/TrajectoryFiltering/interface/MaxConsecLostHitsTrajectoryFilter.h +++ b/TrackingTools/TrajectoryFiltering/interface/MaxConsecLostHitsTrajectoryFilter.h @@ -1,6 +1,7 @@ #ifndef MaxConsecLostHitsTrajectoryFilter_H #define MaxConsecLostHitsTrajectoryFilter_H +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" class MaxConsecLostHitsTrajectoryFilter final : public TrajectoryFilter { @@ -10,6 +11,8 @@ class MaxConsecLostHitsTrajectoryFilter final : public TrajectoryFilter { explicit MaxConsecLostHitsTrajectoryFilter(const edm::ParameterSet& pset, edm::ConsumesCollector& iC) : theMaxConsecLostHits(pset.getParameter("maxConsecLostHits")) {} + static void fillPSetDescription(edm::ParameterSetDescription& iDesc) { iDesc.add("maxConsecLostHits", 1); } + bool qualityFilter(const Trajectory& traj) const override { return TrajectoryFilter::qualityFilterIfNotContributing; } bool qualityFilter(const TempTrajectory& traj) const override { return TrajectoryFilter::qualityFilterIfNotContributing; diff --git a/TrackingTools/TrajectoryFiltering/interface/MaxHitsTrajectoryFilter.h b/TrackingTools/TrajectoryFiltering/interface/MaxHitsTrajectoryFilter.h index e9daa22b9589e..0a4ed406e93ac 100644 --- a/TrackingTools/TrajectoryFiltering/interface/MaxHitsTrajectoryFilter.h +++ b/TrackingTools/TrajectoryFiltering/interface/MaxHitsTrajectoryFilter.h @@ -1,6 +1,7 @@ #ifndef MaxHitsTrajectoryFilter_H #define MaxHitsTrajectoryFilter_H +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" class MaxHitsTrajectoryFilter final : public TrajectoryFilter { @@ -13,6 +14,8 @@ class MaxHitsTrajectoryFilter final : public TrajectoryFilter { theMaxHits = 10000; } + static void fillPSetDescription(edm::ParameterSetDescription& iDesc) { iDesc.add("maxNumberOfHits", 100); } + bool qualityFilter(const Trajectory& traj) const override { return TrajectoryFilter::qualityFilterIfNotContributing; } bool qualityFilter(const TempTrajectory& traj) const override { return TrajectoryFilter::qualityFilterIfNotContributing; diff --git a/TrackingTools/TrajectoryFiltering/interface/MaxLostHitsTrajectoryFilter.h b/TrackingTools/TrajectoryFiltering/interface/MaxLostHitsTrajectoryFilter.h index 1c0b147889344..dc6cdc0cf8cbe 100644 --- a/TrackingTools/TrajectoryFiltering/interface/MaxLostHitsTrajectoryFilter.h +++ b/TrackingTools/TrajectoryFiltering/interface/MaxLostHitsTrajectoryFilter.h @@ -1,6 +1,7 @@ #ifndef MaxLostHitsTrajectoryFilter_H #define MaxLostHitsTrajectoryFilter_H +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" class MaxLostHitsTrajectoryFilter final : public TrajectoryFilter { @@ -10,6 +11,8 @@ class MaxLostHitsTrajectoryFilter final : public TrajectoryFilter { explicit MaxLostHitsTrajectoryFilter(const edm::ParameterSet& pset, edm::ConsumesCollector& iC) : theMaxLostHits(pset.getParameter("maxLostHits")) {} + static void fillPSetDescription(edm::ParameterSetDescription& iDesc) { iDesc.add("maxLostHits", 999); } + bool qualityFilter(const Trajectory& traj) const override { return TrajectoryFilter::qualityFilterIfNotContributing; } bool qualityFilter(const TempTrajectory& traj) const override { return TrajectoryFilter::qualityFilterIfNotContributing; diff --git a/TrackingTools/TrajectoryFiltering/interface/MinHitsTrajectoryFilter.h b/TrackingTools/TrajectoryFiltering/interface/MinHitsTrajectoryFilter.h index cb992b064e1b3..c99a361ebf290 100644 --- a/TrackingTools/TrajectoryFiltering/interface/MinHitsTrajectoryFilter.h +++ b/TrackingTools/TrajectoryFiltering/interface/MinHitsTrajectoryFilter.h @@ -27,6 +27,13 @@ class MinHitsTrajectoryFilter final : public TrajectoryFilter { theMinHitsAtHighEta(pset.getParameter("minHitsAtHighEta")), theSeedPairPenalty(pset.getParameter("seedPairPenalty")) {} + static void fillPSetDescription(edm::ParameterSetDescription& iDesc) { + iDesc.add("minimumNumberOfHits", 5); + iDesc.add("highEtaSwitch", 5.0); + iDesc.add("minHitsAtHighEta", 5); + iDesc.add("seedPairPenalty", 0); + } + bool qualityFilter(const Trajectory& traj) const override { return QF(traj); } bool qualityFilter(const TempTrajectory& traj) const override { return QF(traj); } @@ -35,15 +42,6 @@ class MinHitsTrajectoryFilter final : public TrajectoryFilter { std::string name() const override { return "MinHitsTrajectoryFilter"; } - inline edm::ParameterSetDescription getFilledConfigurationDescription() { - edm::ParameterSetDescription desc; - desc.add("minimumNumberOfHits", 5); - desc.add("highEtaSwitch", 5.0); - desc.add("minHitsAtHighEta", 5); - desc.add("seedPairPenalty", 0); - return desc; - } - protected: template bool QF(const T& traj) const { diff --git a/TrackingTools/TrajectoryFiltering/interface/MinPtTrajectoryFilter.h b/TrackingTools/TrajectoryFiltering/interface/MinPtTrajectoryFilter.h index e9f63c19d778c..368bdeac90b68 100644 --- a/TrackingTools/TrajectoryFiltering/interface/MinPtTrajectoryFilter.h +++ b/TrackingTools/TrajectoryFiltering/interface/MinPtTrajectoryFilter.h @@ -1,10 +1,10 @@ #ifndef MinPtTrajectoryFilter_H #define MinPtTrajectoryFilter_H +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" #include "TrackingTools/PatternTools/interface/Trajectory.h" #include "TrackingTools/PatternTools/interface/TempTrajectory.h" - #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h" #include "TrackingTools/TrajectoryParametrization/interface/CurvilinearTrajectoryError.h" #include "TrackingTools/TrajectoryState/interface/TrajectoryStateAccessor.h" @@ -28,6 +28,12 @@ class MinPtTrajectoryFilter final : public TrajectoryFilter { thePtMin2 *= thePtMin2; } + static void fillPSetDescription(edm::ParameterSetDescription& iDesc) { + iDesc.add("minPt", 0.9); + iDesc.add("nSigmaMinPt", 5.0); + iDesc.add("minHitsMinPt", 3); + } + bool qualityFilter(const Trajectory& traj) const override { return test(traj.lastMeasurement(), traj.foundHits()); } bool qualityFilter(const TempTrajectory& traj) const override { return test(traj.lastMeasurement(), traj.foundHits()); diff --git a/TrackingTools/TrajectoryFiltering/interface/SeedExtensionTrajectoryFilter.h b/TrackingTools/TrajectoryFiltering/interface/SeedExtensionTrajectoryFilter.h index 2f701f7e03ef4..8eef2e92c46c8 100644 --- a/TrackingTools/TrajectoryFiltering/interface/SeedExtensionTrajectoryFilter.h +++ b/TrackingTools/TrajectoryFiltering/interface/SeedExtensionTrajectoryFilter.h @@ -1,6 +1,7 @@ #ifndef SeedExtensionTrajectoryFilter_H #define SeedExtensionTrajectoryFilter_H +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" class SeedExtensionTrajectoryFilter final : public TrajectoryFilter { @@ -12,6 +13,12 @@ class SeedExtensionTrajectoryFilter final : public TrajectoryFilter { thePixel(pset.getParameter("pixelSeedExtension")), theExtension(pset.getParameter("seedExtension")) {} + static void fillPSetDescription(edm::ParameterSetDescription& iDesc) { + iDesc.add("strictSeedExtension", false); + iDesc.add("pixelSeedExtension", false); + iDesc.add("seedExtension", 0); + } + bool qualityFilter(const Trajectory& traj) const override { return QF(traj); } bool qualityFilter(const TempTrajectory& traj) const override { return QF(traj); } diff --git a/TrackingTools/TrajectoryFiltering/interface/ThresholdPtTrajectoryFilter.h b/TrackingTools/TrajectoryFiltering/interface/ThresholdPtTrajectoryFilter.h index 0417d0080b462..58615cbf36845 100644 --- a/TrackingTools/TrajectoryFiltering/interface/ThresholdPtTrajectoryFilter.h +++ b/TrackingTools/TrajectoryFiltering/interface/ThresholdPtTrajectoryFilter.h @@ -1,10 +1,10 @@ #ifndef ThresholdPtTrajectoryFilter_H #define ThresholdPtTrajectoryFilter_H +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilter.h" #include "TrackingTools/PatternTools/interface/Trajectory.h" #include "TrackingTools/PatternTools/interface/TempTrajectory.h" - #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h" #include "TrackingTools/TrajectoryParametrization/interface/CurvilinearTrajectoryError.h" #include "TrackingTools/TrajectoryState/interface/TrajectoryStateAccessor.h" @@ -25,6 +25,12 @@ class ThresholdPtTrajectoryFilter : public TrajectoryFilter { theNSigma(pset.getParameter("nSigmaThresholdPt")), theMinHits(pset.getParameter("minHitsThresholdPt")) {} + static void fillPSetDescription(edm::ParameterSetDescription& iDesc) { + iDesc.add("thresholdPt", 10.); + iDesc.add("nSigmaThresholdPt", 5.); + iDesc.add("minHitsThresholdPt", 3); + } + bool qualityFilter(const Trajectory& traj) const override { return !test(traj.lastMeasurement(), traj.foundHits()); } bool qualityFilter(const TempTrajectory& traj) const override { return !test(traj.lastMeasurement(), traj.foundHits()); diff --git a/TrackingTools/TrajectoryFiltering/plugins/modules.cc b/TrackingTools/TrajectoryFiltering/plugins/modules.cc index 6ec015fd87022..0375d16cf9c95 100644 --- a/TrackingTools/TrajectoryFiltering/plugins/modules.cc +++ b/TrackingTools/TrajectoryFiltering/plugins/modules.cc @@ -1,6 +1,7 @@ #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/Framework/interface/ModuleFactory.h" #include "FWCore/Framework/interface/ESProducer.h" +#include "FWCore/ParameterSet/interface/ValidatedPluginMacros.h" #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilterFactory.h" @@ -15,13 +16,17 @@ #include "TrackingTools/TrajectoryFiltering/interface/CkfBaseTrajectoryFilter.h" #include "TrackingTools/TrajectoryFiltering/interface/ChargeSignificanceTrajectoryFilter.h" -DEFINE_EDM_PLUGIN(TrajectoryFilterFactory, MaxHitsTrajectoryFilter, "MaxHitsTrajectoryFilter"); -DEFINE_EDM_PLUGIN(TrajectoryFilterFactory, MinHitsTrajectoryFilter, "MinHitsTrajectoryFilter"); -DEFINE_EDM_PLUGIN(TrajectoryFilterFactory, MaxLostHitsTrajectoryFilter, "MaxLostHitsTrajectoryFilter"); -DEFINE_EDM_PLUGIN(TrajectoryFilterFactory, MaxConsecLostHitsTrajectoryFilter, "MaxConsecLostHitsTrajectoryFilter"); -DEFINE_EDM_PLUGIN(TrajectoryFilterFactory, MaxCCCLostHitsTrajectoryFilter, "MaxCCCLostHitsTrajectoryFilter"); -DEFINE_EDM_PLUGIN(TrajectoryFilterFactory, MinPtTrajectoryFilter, "MinPtTrajectoryFilter"); -DEFINE_EDM_PLUGIN(TrajectoryFilterFactory, ThresholdPtTrajectoryFilter, "ThresholdPtTrajectoryFilter"); -DEFINE_EDM_PLUGIN(TrajectoryFilterFactory, CompositeTrajectoryFilter, "CompositeTrajectoryFilter"); -DEFINE_EDM_PLUGIN(TrajectoryFilterFactory, CkfBaseTrajectoryFilter, "CkfBaseTrajectoryFilter"); -DEFINE_EDM_PLUGIN(TrajectoryFilterFactory, ChargeSignificanceTrajectoryFilter, "ChargeSignificanceTrajectoryFilter"); +DEFINE_EDM_VALIDATED_PLUGIN(TrajectoryFilterFactory, MaxHitsTrajectoryFilter, "MaxHitsTrajectoryFilter"); +DEFINE_EDM_VALIDATED_PLUGIN(TrajectoryFilterFactory, MinHitsTrajectoryFilter, "MinHitsTrajectoryFilter"); +DEFINE_EDM_VALIDATED_PLUGIN(TrajectoryFilterFactory, MaxLostHitsTrajectoryFilter, "MaxLostHitsTrajectoryFilter"); +DEFINE_EDM_VALIDATED_PLUGIN(TrajectoryFilterFactory, + MaxConsecLostHitsTrajectoryFilter, + "MaxConsecLostHitsTrajectoryFilter"); +DEFINE_EDM_VALIDATED_PLUGIN(TrajectoryFilterFactory, MaxCCCLostHitsTrajectoryFilter, "MaxCCCLostHitsTrajectoryFilter"); +DEFINE_EDM_VALIDATED_PLUGIN(TrajectoryFilterFactory, MinPtTrajectoryFilter, "MinPtTrajectoryFilter"); +DEFINE_EDM_VALIDATED_PLUGIN(TrajectoryFilterFactory, ThresholdPtTrajectoryFilter, "ThresholdPtTrajectoryFilter"); +DEFINE_EDM_VALIDATED_PLUGIN(TrajectoryFilterFactory, CompositeTrajectoryFilter, "CompositeTrajectoryFilter"); +DEFINE_EDM_VALIDATED_PLUGIN(TrajectoryFilterFactory, CkfBaseTrajectoryFilter, "CkfBaseTrajectoryFilter"); +DEFINE_EDM_VALIDATED_PLUGIN(TrajectoryFilterFactory, + ChargeSignificanceTrajectoryFilter, + "ChargeSignificanceTrajectoryFilter"); diff --git a/TrackingTools/TrajectoryFiltering/src/TrajectoryFilterFactory.cc b/TrackingTools/TrajectoryFiltering/src/TrajectoryFilterFactory.cc index bb16493655601..b9d4ba7064fed 100644 --- a/TrackingTools/TrajectoryFiltering/src/TrajectoryFilterFactory.cc +++ b/TrackingTools/TrajectoryFiltering/src/TrajectoryFilterFactory.cc @@ -1,3 +1,4 @@ #include "TrackingTools/TrajectoryFiltering/interface/TrajectoryFilterFactory.h" +#include "FWCore/ParameterSet/interface/ValidatedPluginFactoryMacros.h" -EDM_REGISTER_PLUGINFACTORY(TrajectoryFilterFactory, "TrajectoryFilterFactory"); +EDM_REGISTER_VALIDATED_PLUGINFACTORY(TrajectoryFilterFactory, "TrajectoryFilterFactory"); From e46d33cc2684185b99d37183b9b259af87379fff Mon Sep 17 00:00:00 2001 From: Marino Missiroli Date: Wed, 5 Jan 2022 13:17:36 +0100 Subject: [PATCH 2/3] removed 1 unnecessary check in customiseFor36459 for HLT --- HLTrigger/Configuration/python/customizeHLTforCMSSW.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py index 80c36e47589d8..a05857e3221b4 100644 --- a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py +++ b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py @@ -151,9 +151,6 @@ def customiseFor36459(process): for aPar in ['SimpleMagneticField', 'TrajectoryBuilder']: if hasattr(iMod, aPar): delattr(iMod, aPar) - if not hasattr(iMod, 'maxSeedsBeforeCleaning'): - iMod.maxSeedsBeforeCleaning = cms.uint32(0) - # convert onlyPixelHitsForSeedCleaner to tracked bool if hasattr(iMod, 'onlyPixelHitsForSeedCleaner'): theMod = getattr(iMod, 'onlyPixelHitsForSeedCleaner') From ea770131a889a4fe605cc6c001ba7708038e3d55 Mon Sep 17 00:00:00 2001 From: Marino Missiroli Date: Wed, 5 Jan 2022 13:18:26 +0100 Subject: [PATCH 3/3] restored correct impl for -DVI_REPRODUCIBLE in CkfTrackCandidateMakerBase --- RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc b/RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc index c6b5e1f243a24..1a3f6ec645dde 100644 --- a/RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc +++ b/RecoTracker/CkfPattern/src/CkfTrackCandidateMakerBase.cc @@ -76,7 +76,11 @@ namespace cms { iC.esConsumes(edm::ESInputTag("", conf.getParameter("NavigationSchool")))), theNavigationSchool(nullptr), thePropagatorToken(iC.esConsumes(edm::ESInputTag("", "AnyDirectionAnalyticalPropagator"))), +#ifdef VI_REPRODUCIBLE + maxSeedsBeforeCleaning_(0), +#else maxSeedsBeforeCleaning_(conf.getParameter("maxSeedsBeforeCleaning")), +#endif theMTELabel(iC.consumes(conf.getParameter("MeasurementTrackerEvent"))), clustersToSkipTag_(conf.getParameter("clustersToSkip")), skipClusters_(!clustersToSkipTag_.label().empty()),