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 
6 # Stand alone muon track producer
8 
9 # refitted stand-alone muons.
10 refittedStandAloneMuons = standAloneMuons.clone()
11 refittedStandAloneMuons.STATrajBuilderParameters.DoRefit = True
12 
13 # Displaced SA muons
15 displacedMuonSeeds = CosmicMuonSeed.clone()
16 displacedMuonSeeds.ForcePointDown = False
17 
18 displacedStandAloneMuons = standAloneMuons.clone()
19 displacedStandAloneMuons.InputObjects = cms.InputTag("displacedMuonSeeds")
20 displacedStandAloneMuons.MuonTrajectoryBuilder = cms.string("StandAloneMuonTrajectoryBuilder")
21 displacedStandAloneMuons.TrackLoaderParameters.VertexConstraint = cms.bool(False)
22 
23 # Global muon track producer
26 displacedGlobalMuons = globalMuons.clone()
27 displacedGlobalMuons.MuonCollectionLabel = cms.InputTag("displacedStandAloneMuons","")
28 displacedGlobalMuons.TrackerCollectionLabel = cms.InputTag("displacedTracks")
29 
30 # TeV refinement
32 
33 # SET Muon tracking
35 
36 # Muon Id producer
38 muons1stStep.fillGlobalTrackQuality = True
39 
40 #Muon Id isGood flag ValueMap producer sequence
42 
43 # Muon Isolation sequence
45 
46 # ---------------------------------------------------- #
47 ################## Make the sequences ##################
48 # ---------------------------------------------------- #
49 
50 # Muon Tracking sequence
51 standalonemuontracking = cms.Sequence(standAloneMuonSeeds*standAloneMuons*refittedStandAloneMuons*displacedMuonSeeds*displacedStandAloneMuons)
52 displacedGlobalMuonTracking = cms.Sequence(iterDisplcedTracking*displacedGlobalMuons)
53 globalmuontracking = cms.Sequence(globalMuons*tevMuons*displacedGlobalMuonTracking)
54 muontracking = cms.Sequence(standalonemuontracking*globalmuontracking)
55 
56 # Muon Reconstruction
57 muonreco = cms.Sequence(muontracking*muonIdProducerSequence)
58 
59 # Muon Reconstruction plus Isolation
60 muonreco_plus_isolation = cms.Sequence(muonreco*muIsolation)
61 
62 muonrecoComplete = cms.Sequence(muonreco_plus_isolation*muonSelectionTypeSequence)
63 
64 
65 # _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- #
66 # -_-_-_- Special Sequences for Iterative tracking -_-_-_- #
67 # -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ #
68 
69 # We need to split the muon sequence above in two, to be able to run the MuonSeeding in the tracker. So muonrecoComplete will
70 # be run no longer...
71 
72 #from RecoMuon.MuonIdentification.earlyMuons_cfi import earlyMuons
73 
74 muonGlobalReco = cms.Sequence(globalmuontracking*muonIdProducerSequence*muonSelectionTypeSequence*muIsolation)
75 
76 # ... instead, the sequences will be run in the following order:
77 # 1st - standalonemuontracking
78 # 2nd - iterative tracking (def in RecoTracker config)
79 # 3rd - MuonIDProducer with 1&2 as input, with special replacements; the earlyMuons above.
80 # 4th - MuonSeeded tracks, inside-out and outside-in
81 # 5th - Merging of the new TK tracks into the generalTracks collection
82 # 6th - Run the remnant part of the muon sequence (muonGlobalReco)
83 
84 ########################################################
85 
87 _phase2_muonGlobalReco = muonGlobalReco.copy()
88 _phase2_muonGlobalReco += me0MuonReco
89 phase2_muon.toReplaceWith( muonGlobalReco, _phase2_muonGlobalReco )