CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DisplacedMuonSeededStep_cff.py
Go to the documentation of this file.
2 
3 ###### Muon reconstruction module #####
4 from RecoMuon.MuonIdentification.earlyMuons_cfi import earlyDisplacedMuons
6 
7 ###### SEEDER MODELS ######
8 #for displaced global muons
9 muonSeededSeedsOutInDisplaced = RecoTracker.SpecialSeedGenerators.outInSeedsFromStandaloneMuons_cfi.outInSeedsFromStandaloneMuons.clone(
10  src = "earlyDisplacedMuons",
11 )
12 muonSeededSeedsOutInDisplaced.fromVertex = cms.bool(False)
13 ###------------- MeasurementEstimator, defining the searcgh window for pattern recongnition ----------------
14 #for displaced global muons
15 muonSeededMeasurementEstimatorForOutInDisplaced = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
16  ComponentName = cms.string('muonSeededMeasurementEstimatorForOutInDisplaced'),
17  MaxChi2 = cms.double(30.0), ## was 30 ## TO BE TUNED
18  nSigma = cms.double(3.), ## was 3 ## TO BE TUNED
19 )
20 
21 ###------------- TrajectoryFilter, defining selections on the trajectories while building them ----------------
22 #for displaced global muons
23 muonSeededTrajectoryFilterForOutInDisplaced = muonSeededTrajectoryFilterForInOut.clone()
24 muonSeededTrajectoryFilterForOutInDisplaced.constantValueForLostHitsFractionFilter = 10 ## allow more lost hits
25 muonSeededTrajectoryFilterForOutInDisplaced.minimumNumberOfHits = 5 ## allow more lost hits
26 ###------------- TrajectoryBuilders ----------------
27 #for displaced global muons
28 muonSeededTrajectoryBuilderForOutInDisplaced = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
29  foundHitBonus = cms.double(1000.0),
30  lostHitPenalty = cms.double(1.0),
31  maxCand = cms.int32(3),
32  estimator = cms.string('muonSeededMeasurementEstimatorForOutInDisplaced'),
33  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('muonSeededTrajectoryFilterForOutInDisplaced')),
34  inOutTrajectoryFilter = cms.PSet(refToPSet_ = cms.string('muonSeededTrajectoryFilterForOutInDisplaced')), # not sure if it is used
35  minNrOfHitsForRebuild = cms.int32(5),
36  requireSeedHitsInRebuild = cms.bool(True),
37  keepOriginalIfRebuildFails = cms.bool(False),
38 )
39 ######## TRACK CANDIDATE MAKERS
40 #for displaced global muons
41 muonSeededTrackCandidatesOutInDisplaced = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
42  src = cms.InputTag("muonSeededSeedsOutInDisplaced"),
43  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string("muonSeededTrajectoryBuilderForOutInDisplaced")),
44  TrajectoryCleaner = cms.string('muonSeededTrajectoryCleanerBySharedHits'),
45  numHitsForSeedCleaner = cms.int32(50),
46  onlyPixelHitsForSeedCleaner = cms.bool(False),
47 )
48 
49 ######## TRACK PRODUCERS
50 #for displaced global muon
51 muonSeededTracksOutInDisplaced = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
52  src = cms.InputTag("muonSeededTrackCandidatesOutInDisplaced"),
53  AlgorithmName = cms.string('muonSeededStepOutIn'),
54  Fitter = cms.string("muonSeededFittingSmootherWithOutliersRejectionAndRK"),
55 )
56 
57 #for displaced global muons
58 muonSeededTracksOutInDisplacedSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
59  src='muonSeededTracksOutInDisplaced',
60  trackSelectors= cms.VPSet(
61  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
62  name = 'muonSeededTracksOutInDisplacedLoose',
63  applyAdaptedPVCuts = cms.bool(False),
64  chi2n_par = 10.0,
65  minNumberLayers = 3,
66  min_nhits = 5,
67  maxNumberLostLayers = 4,
68  minNumber3DLayers = 0,
69  minHitsToBypassChecks = 7
70  ),
71  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
72  name = 'muonSeededTracksOutInDisplacedTight',
73  preFilterName = 'muonSeededTracksOutInDisplacedLoose',
74  applyAdaptedPVCuts = cms.bool(False),
75  chi2n_par = 1.0,
76  minNumberLayers = 5,
77  min_nhits = 6,
78  maxNumberLostLayers = 3,
79  minNumber3DLayers = 2,
80  minHitsToBypassChecks = 10
81  ),
82  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
83  name = 'muonSeededTracksOutInDisplacedHighPurity',
84  preFilterName = 'muonSeededTracksOutInDisplacedTight',
85  applyAdaptedPVCuts = cms.bool(False),
86  chi2n_par = 0.4,
87  minNumberLayers = 5,
88  min_nhits = 7,
89  maxNumberLostLayers = 2,
90  minNumber3DLayers = 2,
91  minHitsToBypassChecks = 20
92  ),
93  ) #end of vpset
94  ) #end of clone
95 
96 #for displaced global muons
97 muonSeededStepCoreDisplaced = cms.Sequence(
98  muonSeededSeedsInOut + muonSeededTrackCandidatesInOut + muonSeededTracksInOut +
99  muonSeededSeedsOutInDisplaced + muonSeededTrackCandidatesOutInDisplaced + muonSeededTracksOutInDisplaced
100 )
101 
102 #for displaced global muons
103 muonSeededStepExtraDisplaced = cms.Sequence(
104  muonSeededTracksInOutSelector +
105  muonSeededTracksOutInDisplacedSelector
106 )
107 #for displaced global muons
108 muonSeededStepDisplaced = cms.Sequence(
109  earlyDisplacedMuons +
110  muonSeededStepCoreDisplaced +
111  muonSeededStepExtraDisplaced
112 )
113 
114 ##### MODULES FOR DEBUGGING ###############3
115 #for displaced global muons
116 muonSeededSeedsOutInDisplacedAsTracks = cms.EDProducer("FakeTrackProducerFromSeed", src = cms.InputTag("muonSeededSeedsOutInDisplaced"))
117 #for displaced global muons
118 muonSeededTrackCandidatesOutInDisplacedAsTracks = cms.EDProducer("FakeTrackProducerFromCandidate", src = cms.InputTag("muonSeededTrackCandidatesOutInDisplaced"))
119 #for displaced global muons
120 muonSeededStepDebugDisplaced = cms.Sequence(
121  muonSeededSeedsOutInDisplacedAsTracks + muonSeededTrackCandidatesOutInDisplacedAsTracks +
122  muonSeededSeedsInOutAsTracks + muonSeededTrackCandidatesInOutAsTracks
123 )