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 =
'muonSeededTrajectoryCleanerBySharedHits',
26 ValidHitBonus = 1000.0,
27 MissingHitPenalty = 1.0,
28 ComponentType =
'TrajectoryCleanerBySharedHits',
29 allowSharedFirstHit =
True
35 _muonSeededMeasurementEstimatorForInOutBase = _Chi2MeasurementEstimator.clone(
36 ComponentName =
'muonSeededMeasurementEstimatorForInOut',
40 muonSeededMeasurementEstimatorForInOut = _muonSeededMeasurementEstimatorForInOutBase.clone(
43 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
44 trackingPhase2PU140.toModify(muonSeededMeasurementEstimatorForInOut, MaxChi2 = 400.0, MaxSagitta = 2)
46 _muonSeededMeasurementEstimatorForOutInBase = _Chi2MeasurementEstimator.clone(
47 ComponentName =
'muonSeededMeasurementEstimatorForOutIn',
51 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
as _tracker_apv_vfp30_2016
52 _tracker_apv_vfp30_2016.toModify(_muonSeededMeasurementEstimatorForOutInBase, MinPtForHitRecoveryInGluedDet=1e9)
53 muonSeededMeasurementEstimatorForOutIn = _muonSeededMeasurementEstimatorForOutInBase.clone(
59 muonSeededTrajectoryFilterForInOut = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
60 constantValueForLostHitsFractionFilter = 10,
61 minimumNumberOfHits = 3
63 muonSeededTrajectoryFilterForOutIn = muonSeededTrajectoryFilterForInOut.clone(
64 constantValueForLostHitsFractionFilter = 10,
65 minimumNumberOfHits = 5
69 muonSeededTrajectoryBuilderForInOut = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
70 foundHitBonus = 1000.0,
73 estimator =
'muonSeededMeasurementEstimatorForInOut',
74 trajectoryFilter = dict(refToPSet_ =
'muonSeededTrajectoryFilterForInOut'),
75 inOutTrajectoryFilter = dict(refToPSet_ =
'muonSeededTrajectoryFilterForInOut'),
76 minNrOfHitsForRebuild = 2,
77 requireSeedHitsInRebuild =
True,
78 keepOriginalIfRebuildFails =
True,
80 muonSeededTrajectoryBuilderForOutIn = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
81 foundHitBonus = 1000.0,
84 estimator =
'muonSeededMeasurementEstimatorForOutIn',
85 trajectoryFilter = dict(refToPSet_ =
'muonSeededTrajectoryFilterForOutIn'),
86 inOutTrajectoryFilter = dict(refToPSet_ =
'muonSeededTrajectoryFilterForOutIn'),
87 minNrOfHitsForRebuild = 5,
88 requireSeedHitsInRebuild =
True,
89 keepOriginalIfRebuildFails =
False,
94 muonSeededFittingSmootherWithOutliersRejectionAndRK = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
95 ComponentName =
'muonSeededFittingSmootherWithOutliersRejectionAndRK',
96 BreakTrajWith2ConsecutiveMissing =
False,
102 muonSeededTrackCandidatesInOut = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
103 src =
'muonSeededSeedsInOut',
104 TrajectoryBuilderPSet = dict(refToPSet_ =
'muonSeededTrajectoryBuilderForInOut'),
105 TrajectoryCleaner =
'muonSeededTrajectoryCleanerBySharedHits',
106 RedundantSeedCleaner =
'none',
108 muonSeededTrackCandidatesOutIn = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
109 src =
'muonSeededSeedsOutIn',
110 TrajectoryBuilderPSet = dict(refToPSet_ =
'muonSeededTrajectoryBuilderForOutIn'),
111 TrajectoryCleaner =
'muonSeededTrajectoryCleanerBySharedHits',
112 numHitsForSeedCleaner = 50,
113 onlyPixelHitsForSeedCleaner =
False,
118 muonSeededTracksOutIn = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
119 src =
'muonSeededTrackCandidatesOutIn',
120 AlgorithmName =
'muonSeededStepOutIn',
121 Fitter =
'muonSeededFittingSmootherWithOutliersRejectionAndRK',
123 muonSeededTracksInOut = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
124 src =
'muonSeededTrackCandidatesInOut',
125 AlgorithmName =
'muonSeededStepInOut',
126 Fitter =
'muonSeededFittingSmootherWithOutliersRejectionAndRK',
131 muonSeededTracksInOutClassifier = TrackCutClassifier.clone(
132 src =
'muonSeededTracksInOut',
134 minPixelHits = [0,0,0],
135 maxChi2 = [9999.,9999.,9999.],
136 maxChi2n = [10.0,1.0,0.4],
138 min3DLayers = [1,2,2],
139 maxLostLayers = [4,3,2]
143 muonSeededTracksOutInClassifier = TrackCutClassifier.clone(
144 src =
'muonSeededTracksOutIn',
146 minPixelHits = [0,0,0],
147 maxChi2 = [9999.,9999.,9999.],
148 maxChi2n = [10.0,1.0,0.4],
150 min3DLayers = [1,2,2],
151 maxLostLayers = [4,3,2]
156 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
157 muonSeededTracksInOutSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
158 src=
'muonSeededTracksInOut',
159 trackSelectors= cms.VPSet(
160 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
161 name =
'muonSeededTracksInOutLoose',
162 applyAdaptedPVCuts =
False,
166 maxNumberLostLayers = 4,
167 minNumber3DLayers = 0,
168 minHitsToBypassChecks = 7
170 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
171 name =
'muonSeededTracksInOutTight',
172 preFilterName =
'muonSeededTracksInOutLoose',
173 applyAdaptedPVCuts =
False,
177 maxNumberLostLayers = 3,
178 minNumber3DLayers = 2,
179 minHitsToBypassChecks = 10
181 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
182 name =
'muonSeededTracksInOutHighPurity',
183 preFilterName =
'muonSeededTracksInOutTight',
184 applyAdaptedPVCuts =
False,
188 maxNumberLostLayers = 2,
189 minNumber3DLayers = 2,
190 minHitsToBypassChecks = 20
194 muonSeededTracksOutInSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
195 src=
'muonSeededTracksOutIn',
196 trackSelectors= cms.VPSet(
197 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
198 name =
'muonSeededTracksOutInLoose',
199 applyAdaptedPVCuts =
False,
203 maxNumberLostLayers = 4,
204 minNumber3DLayers = 0,
205 minHitsToBypassChecks = 7
207 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
208 name =
'muonSeededTracksOutInTight',
209 preFilterName =
'muonSeededTracksOutInLoose',
210 applyAdaptedPVCuts =
False,
214 maxNumberLostLayers = 3,
215 minNumber3DLayers = 2,
216 minHitsToBypassChecks = 10
218 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
219 name =
'muonSeededTracksOutInHighPurity',
220 preFilterName =
'muonSeededTracksOutInTight',
221 applyAdaptedPVCuts =
False,
225 maxNumberLostLayers = 2,
226 minNumber3DLayers = 2,
227 minHitsToBypassChecks = 20
234 muonSeededStepCoreInOutTask = cms.Task(
235 muonSeededSeedsInOut , muonSeededTrackCandidatesInOut , muonSeededTracksInOut
237 muonSeededStepCoreInOut = cms.Sequence(muonSeededStepCoreInOutTask)
239 muonSeededStepCoreOutInTask = cms.Task(
240 muonSeededSeedsOutIn , muonSeededTrackCandidatesOutIn , muonSeededTracksOutIn
242 muonSeededStepCoreOutIn = cms.Sequence(muonSeededStepCoreOutInTask)
244 muonSeededStepCoreTask = cms.Task(
245 muonSeededStepCoreInOutTask ,
246 muonSeededStepCoreOutInTask
248 muonSeededStepCore = cms.Sequence(muonSeededStepCoreTask)
252 from Configuration.Eras.Modifier_phase2_timing_layer_cff
import phase2_timing_layer
253 phase2_timing_layer.toModify(muonSeededTracksInOut, TrajectoryInEvent =
True)
254 phase2_timing_layer.toModify(muonSeededTracksOutIn, TrajectoryInEvent =
True)
256 muonSeededStepExtraInOutTask = cms.Task(
257 muonSeededTracksInOutClassifier
259 muonSeededStepExtraInOut = cms.Sequence(muonSeededStepExtraInOutTask)
261 trackingPhase2PU140.toReplaceWith(muonSeededStepExtraInOutTask, cms.Task(
262 muonSeededTracksInOutSelector
265 muonSeededStepExtraTask = cms.Task(
266 muonSeededStepExtraInOutTask ,
267 muonSeededTracksOutInClassifier
270 muonSeededStepExtra = cms.Sequence(muonSeededStepExtraTask)
271 trackingPhase2PU140.toReplaceWith(muonSeededStepExtraTask, cms.Task(
272 muonSeededStepExtraInOutTask ,
273 muonSeededTracksOutInSelector
276 muonSeededStepTask = cms.Task(
278 muonSeededStepCoreTask,
279 muonSeededStepExtraTask
281 muonSeededStep = cms.Sequence(muonSeededStepTask)
285 muonSeededSeedsInOutAsTracks = cms.EDProducer(
'FakeTrackProducerFromSeed', src = cms.InputTag(
'muonSeededSeedsInOut'))
286 muonSeededSeedsOutInAsTracks = cms.EDProducer(
'FakeTrackProducerFromSeed', src = cms.InputTag(
'muonSeededSeedsOutIn'))
287 muonSeededTrackCandidatesInOutAsTracks = cms.EDProducer(
'FakeTrackProducerFromCandidate', src = cms.InputTag(
'muonSeededTrackCandidatesInOut'))
288 muonSeededTrackCandidatesOutInAsTracks = cms.EDProducer(
'FakeTrackProducerFromCandidate', src = cms.InputTag(
'muonSeededTrackCandidatesOutIn'))
289 muonSeededStepDebugInOutTask = cms.Task(
290 muonSeededSeedsInOutAsTracks , muonSeededTrackCandidatesInOutAsTracks
292 muonSeededStepDebugInOut = cms.Sequence(muonSeededStepDebugInOutTask)
293 muonSeededStepDebugTask = cms.Task(
294 muonSeededSeedsOutInAsTracks , muonSeededTrackCandidatesOutInAsTracks ,
295 muonSeededStepDebugInOutTask
297 muonSeededStepDebug = cms.Sequence(muonSeededStepDebugTask)