1 import FWCore.ParameterSet.Config
as cms
4 from RecoMuon.MuonIdentification.earlyMuons_cfi
import earlyMuons
7 import RecoTracker.SpecialSeedGenerators.outInSeedsFromStandaloneMuons_cfi
8 import RecoTracker.SpecialSeedGenerators.inOutSeedsFromTrackerMuons_cfi
9 muonSeededSeedsOutIn = RecoTracker.SpecialSeedGenerators.outInSeedsFromStandaloneMuons_cfi.outInSeedsFromStandaloneMuons.clone(
12 muonSeededSeedsInOut = RecoTracker.SpecialSeedGenerators.inOutSeedsFromTrackerMuons_cfi.inOutSeedsFromTrackerMuons.clone(
16 from RecoTracker.SpecialSeedGenerators.outInSeedsFromStandaloneMuons_cfi
import hitCollectorForOutInMuonSeeds
17 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
as _tracker_apv_vfp30_2016
18 _tracker_apv_vfp30_2016.toModify(hitCollectorForOutInMuonSeeds, MinPtForHitRecoveryInGluedDet=1e9)
23 muonSeededTrajectoryCleanerBySharedHits = TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi.trajectoryCleanerBySharedHits.clone(
24 ComponentName = cms.string(
'muonSeededTrajectoryCleanerBySharedHits'),
25 fractionShared = cms.double(0.1),
26 ValidHitBonus = cms.double(1000.0),
27 MissingHitPenalty = cms.double(1.0),
28 ComponentType = cms.string(
'TrajectoryCleanerBySharedHits'),
29 allowSharedFirstHit = cms.bool(
True)
35 _muonSeededMeasurementEstimatorForInOutBase = _Chi2MeasurementEstimator.clone(
36 ComponentName = cms.string(
'muonSeededMeasurementEstimatorForInOut'),
37 MaxChi2 = cms.double(80.0),
38 nSigma = cms.double(4.),
40 muonSeededMeasurementEstimatorForInOut = _muonSeededMeasurementEstimatorForInOutBase.clone(
41 MaxSagitta = cms.double(-1.)
43 from Configuration.Eras.Modifier_trackingPhase1PU70_cff
import trackingPhase1PU70
44 trackingPhase1PU70.toReplaceWith(muonSeededMeasurementEstimatorForInOut, _muonSeededMeasurementEstimatorForInOutBase.clone(
47 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
48 trackingPhase2PU140.toModify(muonSeededMeasurementEstimatorForInOut, MaxChi2 = 400.0, MaxSagitta = 2)
50 _muonSeededMeasurementEstimatorForOutInBase = _Chi2MeasurementEstimator.clone(
51 ComponentName = cms.string(
'muonSeededMeasurementEstimatorForOutIn'),
52 MaxChi2 = cms.double(30.0),
53 nSigma = cms.double(3.),
55 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
as _tracker_apv_vfp30_2016
56 _tracker_apv_vfp30_2016.toModify(_muonSeededMeasurementEstimatorForOutInBase, MinPtForHitRecoveryInGluedDet=1e9)
57 muonSeededMeasurementEstimatorForOutIn = _muonSeededMeasurementEstimatorForOutInBase.clone(
58 MaxSagitta = cms.double(-1.)
60 trackingPhase1PU70.toReplaceWith(muonSeededMeasurementEstimatorForOutIn, _muonSeededMeasurementEstimatorForOutInBase)
64 muonSeededTrajectoryFilterForInOut = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone()
65 muonSeededTrajectoryFilterForInOut.constantValueForLostHitsFractionFilter = 10
66 muonSeededTrajectoryFilterForInOut.minimumNumberOfHits = 3
68 muonSeededTrajectoryFilterForOutIn = muonSeededTrajectoryFilterForInOut.clone()
69 muonSeededTrajectoryFilterForOutIn.constantValueForLostHitsFractionFilter = 10
70 muonSeededTrajectoryFilterForOutIn.minimumNumberOfHits = 5
74 muonSeededTrajectoryBuilderForInOut = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
75 foundHitBonus = cms.double(1000.0),
76 lostHitPenalty = cms.double(1.0),
77 maxCand = cms.int32(5),
78 estimator = cms.string(
'muonSeededMeasurementEstimatorForInOut'),
79 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'muonSeededTrajectoryFilterForInOut')),
80 inOutTrajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'muonSeededTrajectoryFilterForInOut')),
81 minNrOfHitsForRebuild = cms.int32(2),
82 requireSeedHitsInRebuild = cms.bool(
True),
83 keepOriginalIfRebuildFails = cms.bool(
True),
85 muonSeededTrajectoryBuilderForOutIn = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
86 foundHitBonus = cms.double(1000.0),
87 lostHitPenalty = cms.double(1.0),
88 maxCand = cms.int32(3),
89 estimator = cms.string(
'muonSeededMeasurementEstimatorForOutIn'),
90 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'muonSeededTrajectoryFilterForOutIn')),
91 inOutTrajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'muonSeededTrajectoryFilterForOutIn')),
92 minNrOfHitsForRebuild = cms.int32(5),
93 requireSeedHitsInRebuild = cms.bool(
True),
94 keepOriginalIfRebuildFails = cms.bool(
False),
99 muonSeededFittingSmootherWithOutliersRejectionAndRK = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
100 ComponentName = cms.string(
"muonSeededFittingSmootherWithOutliersRejectionAndRK"),
101 BreakTrajWith2ConsecutiveMissing = cms.bool(
False),
102 EstimateCut = cms.double(50.),
107 muonSeededTrackCandidatesInOut = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
108 src = cms.InputTag(
"muonSeededSeedsInOut"),
109 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
"muonSeededTrajectoryBuilderForInOut")),
110 TrajectoryCleaner = cms.string(
'muonSeededTrajectoryCleanerBySharedHits'),
111 RedundantSeedCleaner = cms.string(
"none"),
113 muonSeededTrackCandidatesOutIn = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
114 src = cms.InputTag(
"muonSeededSeedsOutIn"),
115 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
"muonSeededTrajectoryBuilderForOutIn")),
116 TrajectoryCleaner = cms.string(
'muonSeededTrajectoryCleanerBySharedHits'),
117 numHitsForSeedCleaner = cms.int32(50),
118 onlyPixelHitsForSeedCleaner = cms.bool(
False),
123 muonSeededTracksOutIn = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
124 src = cms.InputTag(
"muonSeededTrackCandidatesOutIn"),
125 AlgorithmName = cms.string(
'muonSeededStepOutIn'),
126 Fitter = cms.string(
"muonSeededFittingSmootherWithOutliersRejectionAndRK"),
128 muonSeededTracksInOut = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
129 src = cms.InputTag(
"muonSeededTrackCandidatesInOut"),
130 AlgorithmName = cms.string(
'muonSeededStepInOut'),
131 Fitter = cms.string(
"muonSeededFittingSmootherWithOutliersRejectionAndRK"),
137 muonSeededTracksInOutClassifier = TrackCutClassifier.clone()
138 muonSeededTracksInOutClassifier.src=
'muonSeededTracksInOut' 139 muonSeededTracksInOutClassifier.mva.minPixelHits = [0,0,0]
140 muonSeededTracksInOutClassifier.mva.maxChi2 = [9999.,9999.,9999.]
141 muonSeededTracksInOutClassifier.mva.maxChi2n = [10.0,1.0,0.4]
142 muonSeededTracksInOutClassifier.mva.minLayers = [3,5,5]
143 muonSeededTracksInOutClassifier.mva.min3DLayers = [1,2,2]
144 muonSeededTracksInOutClassifier.mva.maxLostLayers = [4,3,2]
147 muonSeededTracksOutInClassifier = TrackCutClassifier.clone()
148 muonSeededTracksOutInClassifier.src=
'muonSeededTracksOutIn' 149 muonSeededTracksOutInClassifier.mva.minPixelHits = [0,0,0]
150 muonSeededTracksOutInClassifier.mva.maxChi2 = [9999.,9999.,9999.]
151 muonSeededTracksOutInClassifier.mva.maxChi2n = [10.0,1.0,0.4]
152 muonSeededTracksOutInClassifier.mva.minLayers = [3,5,5]
153 muonSeededTracksOutInClassifier.mva.min3DLayers = [1,2,2]
154 muonSeededTracksOutInClassifier.mva.maxLostLayers = [4,3,2]
158 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
159 muonSeededTracksInOutSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
160 src=
'muonSeededTracksInOut',
161 trackSelectors= cms.VPSet(
162 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
163 name =
'muonSeededTracksInOutLoose',
164 applyAdaptedPVCuts = cms.bool(
False),
168 maxNumberLostLayers = 4,
169 minNumber3DLayers = 0,
170 minHitsToBypassChecks = 7
172 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
173 name =
'muonSeededTracksInOutTight',
174 preFilterName =
'muonSeededTracksInOutLoose',
175 applyAdaptedPVCuts = cms.bool(
False),
179 maxNumberLostLayers = 3,
180 minNumber3DLayers = 2,
181 minHitsToBypassChecks = 10
183 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
184 name =
'muonSeededTracksInOutHighPurity',
185 preFilterName =
'muonSeededTracksInOutTight',
186 applyAdaptedPVCuts = cms.bool(
False),
190 maxNumberLostLayers = 2,
191 minNumber3DLayers = 2,
192 minHitsToBypassChecks = 20
196 muonSeededTracksOutInSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
197 src=
'muonSeededTracksOutIn',
198 trackSelectors= cms.VPSet(
199 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
200 name =
'muonSeededTracksOutInLoose',
201 applyAdaptedPVCuts = cms.bool(
False),
205 maxNumberLostLayers = 4,
206 minNumber3DLayers = 0,
207 minHitsToBypassChecks = 7
209 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
210 name =
'muonSeededTracksOutInTight',
211 preFilterName =
'muonSeededTracksOutInLoose',
212 applyAdaptedPVCuts = cms.bool(
False),
216 maxNumberLostLayers = 3,
217 minNumber3DLayers = 2,
218 minHitsToBypassChecks = 10
220 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
221 name =
'muonSeededTracksOutInHighPurity',
222 preFilterName =
'muonSeededTracksOutInTight',
223 applyAdaptedPVCuts = cms.bool(
False),
227 maxNumberLostLayers = 2,
228 minNumber3DLayers = 2,
229 minHitsToBypassChecks = 20
236 muonSeededStepCoreInOut = cms.Sequence(
237 muonSeededSeedsInOut + muonSeededTrackCandidatesInOut + muonSeededTracksInOut
239 muonSeededStepCoreOutIn = cms.Sequence(
240 muonSeededSeedsOutIn + muonSeededTrackCandidatesOutIn + muonSeededTracksOutIn
242 muonSeededStepCore = cms.Sequence(
243 muonSeededStepCoreInOut +
244 muonSeededStepCoreOutIn
248 muonSeededStepExtraInOut = cms.Sequence(
249 muonSeededTracksInOutClassifier
251 trackingPhase1PU70.toReplaceWith(muonSeededStepExtraInOut, cms.Sequence(
252 muonSeededTracksInOutSelector
254 trackingPhase2PU140.toReplaceWith(muonSeededStepExtraInOut, cms.Sequence(
255 muonSeededTracksInOutSelector
257 muonSeededStepExtra = cms.Sequence(
258 muonSeededStepExtraInOut +
259 muonSeededTracksOutInClassifier
261 trackingPhase1PU70.toReplaceWith(muonSeededStepExtra, cms.Sequence(
262 muonSeededStepExtraInOut +
263 muonSeededTracksOutInSelector
265 trackingPhase2PU140.toReplaceWith(muonSeededStepExtra, cms.Sequence(
266 muonSeededStepExtraInOut +
267 muonSeededTracksOutInSelector
270 muonSeededStep = cms.Sequence(
278 muonSeededSeedsInOutAsTracks = cms.EDProducer(
"FakeTrackProducerFromSeed", src = cms.InputTag(
"muonSeededSeedsInOut"))
279 muonSeededSeedsOutInAsTracks = cms.EDProducer(
"FakeTrackProducerFromSeed", src = cms.InputTag(
"muonSeededSeedsOutIn"))
280 muonSeededTrackCandidatesInOutAsTracks = cms.EDProducer(
"FakeTrackProducerFromCandidate", src = cms.InputTag(
"muonSeededTrackCandidatesInOut"))
281 muonSeededTrackCandidatesOutInAsTracks = cms.EDProducer(
"FakeTrackProducerFromCandidate", src = cms.InputTag(
"muonSeededTrackCandidatesOutIn"))
282 muonSeededStepDebugInOut = cms.Sequence(
283 muonSeededSeedsInOutAsTracks + muonSeededTrackCandidatesInOutAsTracks
285 muonSeededStepDebug = cms.Sequence(
286 muonSeededSeedsOutInAsTracks + muonSeededTrackCandidatesOutInAsTracks +
287 muonSeededStepDebugInOut