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 from Configuration.Eras.Modifier_fastSim_cff import fastSim
50 
51 # Muon Tracking sequence
52 standalonemuontracking = cms.Sequence(standAloneMuonSeeds*standAloneMuons*refittedStandAloneMuons*displacedMuonSeeds*displacedStandAloneMuons)
53 # not commisoned and not relevant in FastSim (?):
54 fastSim.toReplaceWith(standalonemuontracking,standalonemuontracking.copyAndExclude([displacedMuonSeeds,displacedStandAloneMuons]))
55 displacedGlobalMuonTracking = cms.Sequence(iterDisplcedTracking*displacedGlobalMuons)
56 globalmuontracking = cms.Sequence(globalMuons*tevMuons*displacedGlobalMuonTracking)
57 # not commisoned and not relevant in FastSim (?):
58 fastSim.toReplaceWith(globalmuontracking,globalmuontracking.copyAndExclude([displacedGlobalMuonTracking]))
59 muontracking = cms.Sequence(standalonemuontracking*globalmuontracking)
60 
61 # Muon Reconstruction
62 muonreco = cms.Sequence(muontracking*muonIdProducerSequence)
63 
64 # Muon Reconstruction plus Isolation
65 muonreco_plus_isolation = cms.Sequence(muonreco*muIsolation)
66 
67 muonrecoComplete = cms.Sequence(muonreco_plus_isolation*muonSelectionTypeSequence)
68 
69 
70 # _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_- #
71 # -_-_-_- Special Sequences for Iterative tracking -_-_-_- #
72 # -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ #
73 
74 # We need to split the muon sequence above in two, to be able to run the MuonSeeding in the tracker. So muonrecoComplete will
75 # be run no longer...
76 
77 #from RecoMuon.MuonIdentification.earlyMuons_cfi import earlyMuons
78 
79 muonGlobalReco = cms.Sequence(globalmuontracking*muonIdProducerSequence*muonSelectionTypeSequence*muIsolation)
80 
81 # ... instead, the sequences will be run in the following order:
82 # 1st - standalonemuontracking
83 # 2nd - iterative tracking (def in RecoTracker config)
84 # 3rd - MuonIDProducer with 1&2 as input, with special replacements; the earlyMuons above.
85 # 4th - MuonSeeded tracks, inside-out and outside-in
86 # 5th - Merging of the new TK tracks into the generalTracks collection
87 # 6th - Run the remnant part of the muon sequence (muonGlobalReco)
88 
89 ########################################################
90 
92 _phase2_muonGlobalReco = muonGlobalReco.copy()
93 _phase2_muonGlobalReco += me0MuonReco
94 phase2_muon.toReplaceWith( muonGlobalReco, _phase2_muonGlobalReco )
95 
96 # not commisoned and not relevant in FastSim (?):
97 fastSim.toReplaceWith(muonGlobalReco, muonGlobalReco.copyAndExclude([muonreco_with_SET,muonSelectionTypeSequence]))