CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
FirstStep_cff.py
Go to the documentation of this file.
1 ####################################################################
2 # Does two tracking iterations and then merges them. #
3 # Step 0 uses pixel-triplet seeding. #
4 # Step 1 uses mixed-pair seeding. #
5 ####################################################################
6 
7 ### STEP 0 ###
8 
9 # hit building
12 
13 # These 3 are not used anywhere. Can they be removed ?
17 
18 # seeding
20 from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import RegionPsetFomBeamSpotBlock
21 newSeedFromTriplets = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone(
22  RegionFactoryPSet = RegionPsetFomBeamSpotBlock.clone(
23  ComponentName = cms.string('GlobalRegionProducerFromBeamSpot'),
24  RegionPSet = RegionPsetFomBeamSpotBlock.RegionPSet.clone(
25  ptMin = 0.8
26  )
27  )
28  )
30 newSeedFromTriplets.SeedComparitorPSet.ComponentName = 'LowPtClusterShapeSeedComparitor'
31 
32 # building
33 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
34 newTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
35  ComponentName = 'newTrajectoryFilter',
36  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
37  minimumNumberOfHits = 3,
38  minPt = 0.6
39  )
40  )
41 
43 newTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
44  ComponentName = 'newTrajectoryBuilder',
45  trajectoryFilterName = 'newTrajectoryFilter'
46  )
47 
49 newTrackCandidateMaker = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
50  src = cms.InputTag('newSeedFromTriplets'),
51  TrajectoryBuilder = 'newTrajectoryBuilder'
52  )
53 
54 # fitting
56 preFilterZeroStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
57  src = 'newTrackCandidateMaker',
58  AlgorithmName = 'iter0'
59  )
60 
61 ### STEP 1 ###
62 
63 # Lock hits from step0 tracks
64 zeroStepFilter = cms.EDProducer("QualityFilter",
65  TrackQuality = cms.string('highPurity'),
66  recTracks = cms.InputTag("zeroStepTracksWithQuality:")
67 )
68 
69 # new hit collection
70 newClusters = cms.EDProducer("TrackClusterRemover",
71  trajectories = cms.InputTag("zeroStepFilter"),
72  pixelClusters = cms.InputTag("siPixelClusters"),
73  stripClusters = cms.InputTag("siStripClusters"),
74  Common = cms.PSet(
75  maxChi2 = cms.double(30.0)
76  )
77 )
78 
79 # make corresponding rechits
82 newPixelRecHits = RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi.siPixelRecHits.clone(
83  src = cms.InputTag("newClusters")
84  )
85 newStripRecHits = RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi.siStripMatchedRecHits.clone(
86  ClusterProducer = 'newClusters'
87  )
88 
89 
90 # seeding
91 newMixedLayerPairs = RecoTracker.TkSeedingLayers.MixedLayerPairs_cfi.mixedlayerpairs.clone(
92  ComponentName = 'newMixedLayerPairs'
93  )
94 newMixedLayerPairs.BPix.HitProducer = 'newPixelRecHits'
95 newMixedLayerPairs.FPix.HitProducer = 'newPixelRecHits'
96 newMixedLayerPairs.TEC.matchedRecHits = cms.InputTag("newStripRecHits","matchedRecHit")
97 
99 newSeedFromPairs = RecoTracker.TkSeedGenerator.GlobalSeedsFromPairsWithVertices_cff.globalSeedsFromPairsWithVertices.clone()
100 newSeedFromPairs.RegionFactoryPSet.RegionPSet.ptMin = 0.6
101 newSeedFromPairs.RegionFactoryPSet.RegionPSet.originRadius = 0.05
102 newSeedFromPairs.OrderedHitsFactoryPSet.SeedingLayers = cms.string('newMixedLayerPairs')
103 newSeedFromPairs.ClusterCheckPSet.PixelClusterCollectionLabel = 'newClusters'
104 newSeedFromPairs.ClusterCheckPSet.ClusterCollectionLabel = 'newClusters'
105 
106 
107 
108 # building
110 newMeasurementTracker = RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi.MeasurementTracker.clone(
111  ComponentName = 'newMeasurementTracker',
112  pixelClusterProducer = 'newClusters',
113  stripClusterProducer = 'newClusters'
114  )
115 
116 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
117 stepOneTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
118  ComponentName = 'stepOneTrajectoryFilter',
119  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
120  minimumNumberOfHits = 3,
121  minPt = 0.4
122  )
123  )
124 
125 stepOneCkfTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
126  ComponentName = 'stepOneCkfTrajectoryBuilder',
127  MeasurementTrackerName = 'newMeasurementTracker',
128  trajectoryFilterName = 'stepOneTrajectoryFilter'
129  )
130 
131 stepOneTrackCandidateMaker = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
132  src = cms.InputTag('newSeedFromPairs'),
133  TrajectoryBuilder = 'stepOneCkfTrajectoryBuilder'
134  )
135 
136 
137 # fitting
138 preFilterStepOneTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
139  AlgorithmName = 'iter1',
140  src = 'stepOneTrackCandidateMaker',
141  clusterRemovalInfo = 'newClusters'
142  )
143 
144 ### BOTH STEPS TOGETHER ###
145 
146 # Set track quality flags for both steps
148 
149 # Merge step 0 and step 1
151 
152 # Final sequence
153 firstStep = cms.Sequence(newSeedFromTriplets*newTrackCandidateMaker*preFilterZeroStepTracks*tracksWithQualityZeroStep*
154  zeroStepFilter*newClusters*newPixelRecHits*newStripRecHits*
155  newSeedFromPairs*stepOneTrackCandidateMaker*preFilterStepOneTracks*tracksWithQualityStepOne*
156  firstStepTracksWithQuality)
157 
158 
159 
160 
161 
162 
BOTH STEPS TOGETHER ###.