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]
155 from Configuration.ProcessModifiers.pp_on_AA_cff
import pp_on_AA
156 pp_on_AA.toModify(muonSeededTracksOutInClassifier.mva,
158 d0err = cms.vdouble(0.003, 0.003, 0.003),
159 d0err_par = cms.vdouble(0.001, 0.001, 0.001),
160 dr_exp = cms.vint32(4, 4, 4),
161 dr_par1 = cms.vdouble(0.4, 0.4, 0.4),
162 dr_par2 = cms.vdouble(0.3, 0.3, 0.3)
165 dz_exp = cms.vint32(4, 4, 4),
166 dz_par1 = cms.vdouble(0.4, 0.4, 0.4),
167 dz_par2 = cms.vdouble(0.35, 0.35, 0.35)
169 maxDr = [9999.,9999.,0.5],
170 maxDz = [9999.,9999.,0.5],
172 minPixelHits = [0,0,1],
174 pp_on_AA.toModify(muonSeededTracksInOutClassifier.mva,
176 d0err = cms.vdouble(0.003, 0.003, 0.003),
177 d0err_par = cms.vdouble(0.001, 0.001, 0.001),
178 dr_exp = cms.vint32(4, 4, 4),
179 dr_par1 = cms.vdouble(0.4, 0.4, 0.4),
180 dr_par2 = cms.vdouble(0.3, 0.3, 0.3)
183 dz_exp = cms.vint32(4, 4, 4),
184 dz_par1 = cms.vdouble(0.4, 0.4, 0.4),
185 dz_par2 = cms.vdouble(0.35, 0.35, 0.35)
187 maxDr = [9999.,9999.,0.5],
188 maxDz = [9999.,9999.,0.5],
190 minPixelHits = [0,0,1],
194 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
195 muonSeededTracksInOutSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
196 src=
'muonSeededTracksInOut',
197 trackSelectors= cms.VPSet(
198 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
199 name =
'muonSeededTracksInOutLoose',
200 applyAdaptedPVCuts =
False,
204 maxNumberLostLayers = 4,
205 minNumber3DLayers = 0,
206 minHitsToBypassChecks = 7
208 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
209 name =
'muonSeededTracksInOutTight',
210 preFilterName =
'muonSeededTracksInOutLoose',
211 applyAdaptedPVCuts =
False,
215 maxNumberLostLayers = 3,
216 minNumber3DLayers = 2,
217 minHitsToBypassChecks = 10
219 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
220 name =
'muonSeededTracksInOutHighPurity',
221 preFilterName =
'muonSeededTracksInOutTight',
222 applyAdaptedPVCuts =
False,
226 maxNumberLostLayers = 2,
227 minNumber3DLayers = 2,
228 minHitsToBypassChecks = 20
232 muonSeededTracksOutInSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
233 src=
'muonSeededTracksOutIn',
234 trackSelectors= cms.VPSet(
235 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
236 name =
'muonSeededTracksOutInLoose',
237 applyAdaptedPVCuts =
False,
241 maxNumberLostLayers = 4,
242 minNumber3DLayers = 0,
243 minHitsToBypassChecks = 7
245 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
246 name =
'muonSeededTracksOutInTight',
247 preFilterName =
'muonSeededTracksOutInLoose',
248 applyAdaptedPVCuts =
False,
252 maxNumberLostLayers = 3,
253 minNumber3DLayers = 2,
254 minHitsToBypassChecks = 10
256 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
257 name =
'muonSeededTracksOutInHighPurity',
258 preFilterName =
'muonSeededTracksOutInTight',
259 applyAdaptedPVCuts =
False,
263 maxNumberLostLayers = 2,
264 minNumber3DLayers = 2,
265 minHitsToBypassChecks = 20
272 muonSeededStepCoreInOutTask = cms.Task(
273 muonSeededSeedsInOut , muonSeededTrackCandidatesInOut , muonSeededTracksInOut
275 muonSeededStepCoreInOut = cms.Sequence(muonSeededStepCoreInOutTask)
277 muonSeededStepCoreOutInTask = cms.Task(
278 muonSeededSeedsOutIn , muonSeededTrackCandidatesOutIn , muonSeededTracksOutIn
280 muonSeededStepCoreOutIn = cms.Sequence(muonSeededStepCoreOutInTask)
282 muonSeededStepCoreTask = cms.Task(
283 muonSeededStepCoreInOutTask ,
284 muonSeededStepCoreOutInTask
286 muonSeededStepCore = cms.Sequence(muonSeededStepCoreTask)
290 from Configuration.Eras.Modifier_phase2_timing_layer_cff
import phase2_timing_layer
291 phase2_timing_layer.toModify(muonSeededTracksInOut, TrajectoryInEvent =
True)
292 phase2_timing_layer.toModify(muonSeededTracksOutIn, TrajectoryInEvent =
True)
294 muonSeededStepExtraInOutTask = cms.Task(
295 muonSeededTracksInOutClassifier
297 muonSeededStepExtraInOut = cms.Sequence(muonSeededStepExtraInOutTask)
299 trackingPhase2PU140.toReplaceWith(muonSeededStepExtraInOutTask, cms.Task(
300 muonSeededTracksInOutSelector
303 muonSeededStepExtraTask = cms.Task(
304 muonSeededStepExtraInOutTask ,
305 muonSeededTracksOutInClassifier
308 muonSeededStepExtra = cms.Sequence(muonSeededStepExtraTask)
309 trackingPhase2PU140.toReplaceWith(muonSeededStepExtraTask, cms.Task(
310 muonSeededStepExtraInOutTask ,
311 muonSeededTracksOutInSelector
314 muonSeededStepTask = cms.Task(
316 muonSeededStepCoreTask,
317 muonSeededStepExtraTask
319 muonSeededStep = cms.Sequence(muonSeededStepTask)
323 muonSeededSeedsInOutAsTracks = cms.EDProducer(
'FakeTrackProducerFromSeed', src = cms.InputTag(
'muonSeededSeedsInOut'))
324 muonSeededSeedsOutInAsTracks = cms.EDProducer(
'FakeTrackProducerFromSeed', src = cms.InputTag(
'muonSeededSeedsOutIn'))
325 muonSeededTrackCandidatesInOutAsTracks = cms.EDProducer(
'FakeTrackProducerFromCandidate', src = cms.InputTag(
'muonSeededTrackCandidatesInOut'))
326 muonSeededTrackCandidatesOutInAsTracks = cms.EDProducer(
'FakeTrackProducerFromCandidate', src = cms.InputTag(
'muonSeededTrackCandidatesOutIn'))
327 muonSeededStepDebugInOutTask = cms.Task(
328 muonSeededSeedsInOutAsTracks , muonSeededTrackCandidatesInOutAsTracks
330 muonSeededStepDebugInOut = cms.Sequence(muonSeededStepDebugInOutTask)
331 muonSeededStepDebugTask = cms.Task(
332 muonSeededSeedsOutInAsTracks , muonSeededTrackCandidatesOutInAsTracks ,
333 muonSeededStepDebugInOutTask
335 muonSeededStepDebug = cms.Sequence(muonSeededStepDebugTask)