CMS 3D CMS Logo

RecoMuonPPonly_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 # Seed generator
5 # Stand alone muon track producer
7 
8 # refitted stand-alone muons.
9 refittedStandAloneMuons = standAloneMuons.clone()
10 refittedStandAloneMuons.STATrajBuilderParameters.DoRefit = True
11 
12 # Displaced SA muons
14 displacedMuonSeeds = CosmicMuonSeed.clone()
15 displacedMuonSeeds.ForcePointDown = False
16 
17 displacedStandAloneMuons = standAloneMuons.clone()
18 displacedStandAloneMuons.InputObjects = cms.InputTag("displacedMuonSeeds")
19 displacedStandAloneMuons.MuonTrajectoryBuilder = cms.string("StandAloneMuonTrajectoryBuilder")
20 displacedStandAloneMuons.TrackLoaderParameters.VertexConstraint = cms.bool(False)
21 
22 # Global muon track producer
25 displacedGlobalMuons = globalMuons.clone()
26 displacedGlobalMuons.MuonCollectionLabel = cms.InputTag("displacedStandAloneMuons","")
27 displacedGlobalMuons.TrackerCollectionLabel = cms.InputTag("displacedTracks")
28 
29 # TeV refinement
31 
32 # SET Muon tracking
34 
35 # Muon Id producer
37 muons1stStep.fillGlobalTrackQuality = True
38 
39 #Muon Id isGood flag ValueMap producer sequence
41 
42 # Muon Isolation sequence
44 
45 # ---------------------------------------------------- #
46 ################## Make the sequences ##################
47 # ---------------------------------------------------- #
48 from Configuration.Eras.Modifier_fastSim_cff import fastSim
49 
50 # Muon Tracking sequence
51 standalonemuontrackingTask = cms.Task(standAloneMuons,refittedStandAloneMuons,displacedMuonSeeds,displacedStandAloneMuons,standAloneMuonSeedsTask)
52 standalonemuontracking = cms.Sequence(standalonemuontrackingTask)
53 # not commisoned and not relevant in FastSim (?):
54 fastSim.toReplaceWith(standalonemuontrackingTask,standalonemuontrackingTask.copyAndExclude([displacedMuonSeeds,displacedStandAloneMuons]))
55 displacedGlobalMuonTrackingTask = cms.Task(iterDisplcedTrackingTask,displacedGlobalMuons)
56 displacedGlobalMuonTracking = cms.Sequence(displacedGlobalMuonTrackingTask)
57 
58 globalmuontrackingTask = cms.Task(globalMuons,tevMuons,displacedGlobalMuonTrackingTask)
59 globalmuontracking = cms.Sequence(globalmuontrackingTask)
60 # not commisoned and not relevant in FastSim (?):
61 fastSim.toReplaceWith(globalmuontrackingTask,globalmuontrackingTask.copyAndExclude([displacedGlobalMuonTrackingTask]))
62 muontrackingTask = cms.Task(standalonemuontrackingTask,globalmuontrackingTask)
63 muontracking = cms.Sequence(muontrackingTask)
64 # Muon Reconstruction
65 muonrecoTask = cms.Task(muontrackingTask,muonIdProducerTask)
66 muonreco = cms.Sequence(muonrecoTask)
67 # Muon Reconstruction plus Isolation
68 muonreco_plus_isolationTask = cms.Task(muonrecoTask,muIsolationTask)
69 muonreco_plus_isolation = cms.Sequence(muonreco_plus_isolationTask)
70 
71 muonrecoComplete = cms.Sequence(muonreco_plus_isolationTask,muonSelectionTypeTask)
72 
73 
74 # _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- #
75 # -_-_-_- Special Sequences for Iterative tracking -_-_-_- #
76 # -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ #
77 
78 # We need to split the muon sequence above in two, to be able to run the MuonSeeding in the tracker. So muonrecoComplete will
79 # be run no longer...
80 
81 #from RecoMuon.MuonIdentification.earlyMuons_cfi import earlyMuons
82 
83 muonGlobalRecoTask = cms.Task(globalmuontrackingTask,muonIdProducerTask,muonSelectionTypeTask,muIsolationTask)
84 muonGlobalReco = cms.Sequence(muonGlobalRecoTask)
85 
86 # ... instead, the sequences will be run in the following order:
87 # 1st - standalonemuontracking
88 # 2nd - iterative tracking (def in RecoTracker config)
89 # 3rd - MuonIDProducer with 1&2 as input, with special replacements; the earlyMuons above.
90 # 4th - MuonSeeded tracks, inside-out and outside-in
91 # 5th - Merging of the new TK tracks into the generalTracks collection
92 # 6th - Run the remnant part of the muon sequence (muonGlobalReco)
93 
94 ########################################################
95 # not commisoned and not relevant in FastSim (?):
96 fastSim.toReplaceWith(muonGlobalRecoTask, muonGlobalRecoTask.copyAndExclude([muonreco_with_SET_Task,muonSelectionTypeTask]))