CMS 3D CMS Logo

ElectronSeeds_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
4 initialStepSeedClusterMask = seedClusterRemover.clone(
5  trajectories = cms.InputTag("initialStepSeeds"),
6  oldClusterRemovalInfo = cms.InputTag("pixelLessStepClusters")
7 )
8 
9 from RecoLocalTracker.SubCollectionProducers.seedClusterRemoverPhase2_cfi import seedClusterRemoverPhase2
10 from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140
11 trackingPhase2PU140.toReplaceWith(initialStepSeedClusterMask, seedClusterRemoverPhase2.clone(
12  trajectories = cms.InputTag("initialStepSeeds"),
13  oldClusterRemovalInfo = cms.InputTag("highPtTripletStepClusters")
14  )
15 )
16 
17 highPtTripletStepSeedClusterMask = seedClusterRemover.clone( # for Phase2PU140
18  trajectories = "highPtTripletStepSeeds",
19  oldClusterRemovalInfo = cms.InputTag("initialStepSeedClusterMask")
20 )
21 pixelPairStepSeedClusterMask = seedClusterRemover.clone(
22  trajectories = cms.InputTag("pixelPairStepSeeds"),
23  oldClusterRemovalInfo = cms.InputTag("initialStepSeedClusterMask")
24 )
25 
26 trackingPhase2PU140.toReplaceWith(highPtTripletStepSeedClusterMask, seedClusterRemoverPhase2.clone(
27  trajectories = cms.InputTag("highPtTripletStepSeeds"),
28  oldClusterRemovalInfo = cms.InputTag("initialStepSeedClusterMask")
29  )
30 )
31 trackingPhase2PU140.toReplaceWith(pixelPairStepSeedClusterMask, seedClusterRemoverPhase2.clone(
32  trajectories = cms.InputTag("detachedQuadStepSeeds"),
33  oldClusterRemovalInfo = cms.InputTag("highPtTripletStepSeedClusterMask")
34  )
35 )
36 
37 # This is a pure guess to use detachedTripletStep for phase1 here instead of the pixelPair in Run2 configuration
38 detachedTripletStepSeedClusterMask = seedClusterRemover.clone(
39  trajectories = cms.InputTag("lowPtTripletStepSeeds"),
40  oldClusterRemovalInfo = cms.InputTag("initialStepSeedClusterMask")
41 )
42 mixedTripletStepSeedClusterMask = seedClusterRemover.clone(
43  trajectories = cms.InputTag("mixedTripletStepSeeds"),
44  oldClusterRemovalInfo = cms.InputTag("pixelPairStepSeedClusterMask")
45 )
46 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
47 trackingPhase1.toModify(mixedTripletStepSeedClusterMask,
48  oldClusterRemovalInfo = "detachedTripletStepSeedClusterMask"
49 )
50 pixelLessStepSeedClusterMask = seedClusterRemover.clone(
51  trajectories = cms.InputTag("pixelLessStepSeeds"),
52  oldClusterRemovalInfo = cms.InputTag("mixedTripletStepSeedClusterMask")
53 )
54 
55 tripletElectronSeedLayers = cms.EDProducer("SeedingLayersEDProducer",
56  layerList = cms.vstring('BPix1+BPix2+BPix3',
57  'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
58  'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg'),
59  BPix = cms.PSet(
60  TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelTriplets'),
61  HitProducer = cms.string('siPixelRecHits'),
62  skipClusters = cms.InputTag('pixelLessStepSeedClusterMask')
63  ),
64  FPix = cms.PSet(
65  TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelTriplets'),
66  HitProducer = cms.string('siPixelRecHits'),
67  skipClusters = cms.InputTag('pixelLessStepSeedClusterMask')
68  )
69 )
70 _layerListForPhase1 = [
71  'BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4',
72  'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4',
73  'BPix2+BPix3+FPix1_pos', 'BPix2+BPix3+FPix1_neg',
74  'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
75  'BPix1+BPix3+FPix1_pos', 'BPix1+BPix3+FPix1_neg',
76  'BPix2+FPix1_pos+FPix2_pos', 'BPix2+FPix1_neg+FPix2_neg',
77  'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg',
78  'BPix1+BPix2+FPix2_pos', 'BPix1+BPix2+FPix2_neg',
79  'FPix1_pos+FPix2_pos+FPix3_pos', 'FPix1_neg+FPix2_neg+FPix3_neg',
80  'BPix1+FPix2_pos+FPix3_pos', 'BPix1+FPix2_neg+FPix3_neg',
81  'BPix1+FPix1_pos+FPix3_pos', 'BPix1+FPix1_neg+FPix3_neg'
82 ]
83 trackingPhase1.toModify(tripletElectronSeedLayers, layerList = _layerListForPhase1)
84 trackingPhase2PU140.toModify(tripletElectronSeedLayers,
85  layerList = _layerListForPhase1,
86  BPix = dict(skipClusters = 'pixelPairStepSeedClusterMask'),
87  FPix = dict(skipClusters = 'pixelPairStepSeedClusterMask')
88 )
89 
90 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi import globalTrackingRegionFromBeamSpot as _globalTrackingRegionFromBeamSpot
91 tripletElectronTrackingRegions = _globalTrackingRegionFromBeamSpot.clone(RegionPSet = dict(
92  ptMin = 1.0,
93  originRadius = 0.02,
94  nSigmaZ = 4.0
95 ))
96 
97 from Configuration.Eras.Modifier_pp_on_AA_2018_cff import pp_on_AA_2018
98 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cff import globalTrackingRegionWithVertices as _globalTrackingRegionWithVertices
99 pp_on_AA_2018.toReplaceWith(tripletElectronTrackingRegions,
100  _globalTrackingRegionWithVertices.clone(
101  RegionPSet = dict(
102  fixedError = 0.5,
103  ptMin = 8.0,
104  originRadius = 0.02)))
105 
106 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
107 tripletElectronHitDoublets = _hitPairEDProducer.clone(
108  seedingLayers = "tripletElectronSeedLayers",
109  trackingRegions = "tripletElectronTrackingRegions",
110  maxElement = 50000000,
111  produceIntermediateHitDoublets = True,
112 )
113 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi import pixelTripletHLTEDProducer as _pixelTripletHLTEDProducer
114 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
115 tripletElectronHitTriplets = _pixelTripletHLTEDProducer.clone(
116  doublets = "tripletElectronHitDoublets",
117  maxElement = 1000000,
118  produceSeedingHitSets = True,
119 )
120 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff import seedCreatorFromRegionConsecutiveHitsEDProducer as _seedCreatorFromRegionConsecutiveHitsEDProducer
121 tripletElectronSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
122  seedingHitSets = "tripletElectronHitTriplets",
123 )
124 trackingPhase2PU140.toModify(tripletElectronHitTriplets,
125  maxElement = 0,
126 )
127 
129 tripletElectronClusterMask = seedClusterRemover.clone(
130  trajectories = cms.InputTag("tripletElectronSeeds"),
131  oldClusterRemovalInfo = cms.InputTag("pixelLessStepSeedClusterMask")
132 )
133 trackingPhase2PU140.toReplaceWith(tripletElectronClusterMask, seedClusterRemoverPhase2.clone(
134  trajectories = cms.InputTag("tripletElectronSeeds"),
135  oldClusterRemovalInfo = cms.InputTag("pixelLessStepSeedClusterMask")
136  )
137 )
138 
139 pixelPairElectronSeedLayers = cms.EDProducer("SeedingLayersEDProducer",
140  layerList = cms.vstring('BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3',
141  'BPix1+FPix1_pos', 'BPix1+FPix1_neg',
142  'BPix1+FPix2_pos', 'BPix1+FPix2_neg',
143  'BPix2+FPix1_pos', 'BPix2+FPix1_neg',
144  'FPix1_pos+FPix2_pos', 'FPix1_neg+FPix2_neg'),
145  BPix = cms.PSet(
146  TTRHBuilder = cms.string('WithTrackAngle'),
147  HitProducer = cms.string('siPixelRecHits'),
148  skipClusters = cms.InputTag('tripletElectronClusterMask')
149  ),
150  FPix = cms.PSet(
151  TTRHBuilder = cms.string('WithTrackAngle'),
152  HitProducer = cms.string('siPixelRecHits'),
153  skipClusters = cms.InputTag('tripletElectronClusterMask')
154  )
155 )
156 _layerListForPhase1 = [
157  'BPix1+BPix2', 'BPix1+BPix3', 'BPix1+BPix4',
158  'BPix2+BPix3', 'BPix2+BPix4',
159  'BPix3+BPix4',
160  'BPix1+FPix1_pos', 'BPix1+FPix1_neg',
161  'BPix1+FPix2_pos', 'BPix1+FPix2_neg',
162  'BPix2+FPix1_pos', 'BPix2+FPix1_neg',
163  'FPix1_pos+FPix2_pos', 'FPix1_neg+FPix2_neg',
164  'FPix1_pos+FPix3_pos', 'FPix1_neg+FPix3_neg',
165  'FPix2_pos+FPix3_pos', 'FPix2_neg+FPix3_neg'
166  ]
167 trackingPhase1.toModify(pixelPairElectronSeedLayers, layerList = _layerListForPhase1)
168 
169 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cff import globalTrackingRegionWithVertices as _globalTrackingRegionWithVertices
170 pixelPairElectronTrackingRegions = _globalTrackingRegionWithVertices.clone(RegionPSet = dict(
171  ptMin = 1.0,
172  originRadius = 0.015,
173  fixedError = 0.03,
174 ))
175 pp_on_AA_2018.toModify(pixelPairElectronTrackingRegions, RegionPSet = dict(ptMin = 8.0))
176 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
177 pixelPairElectronHitDoublets = _hitPairEDProducer.clone(
178  seedingLayers = "pixelPairElectronSeedLayers",
179  trackingRegions = "pixelPairElectronTrackingRegions",
180  maxElement = 1000000,
181  produceSeedingHitSets = True,
182  maxElementTotal = 12000000,
183 )
184 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff import seedCreatorFromRegionConsecutiveHitsEDProducer as _seedCreatorFromRegionConsecutiveHitsEDProducer
185 pixelPairElectronSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
186  seedingHitSets = "pixelPairElectronHitDoublets",
187 )
188 
189 stripPairElectronSeedLayers = cms.EDProducer("SeedingLayersEDProducer",
190  layerList = cms.vstring('TIB1+TIB2', 'TIB1+TID1_pos', 'TIB1+TID1_neg', 'TID2_pos+TID3_pos', 'TID2_neg+TID3_neg',
191  'TEC1_pos+TEC2_pos','TEC2_pos+TEC3_pos','TEC3_pos+TEC4_pos','TEC3_pos+TEC5_pos',
192  'TEC1_neg+TEC2_neg','TEC2_neg+TEC3_neg','TEC3_neg+TEC4_neg','TEC3_neg+TEC5_neg'),
193  TIB = cms.PSet(
194  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutNone')),
195  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
196  skipClusters = cms.InputTag('tripletElectronClusterMask')
197  ),
198  TID = cms.PSet(
199  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
200  skipClusters = cms.InputTag('tripletElectronClusterMask'),
201  useRingSlector = cms.bool(True),
202  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutNone')),
203  minRing = cms.int32(1),
204  maxRing = cms.int32(2)
205  ),
206  TEC = cms.PSet(
207  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
208  skipClusters = cms.InputTag('tripletElectronClusterMask'),
209  useRingSlector = cms.bool(True),
210  TTRHBuilder = cms.string('WithTrackAngle'), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutNone')),
211  minRing = cms.int32(1),
212  maxRing = cms.int32(2)
213  )
214 )
215 
216 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi import globalTrackingRegionFromBeamSpotFixedZ as _globalTrackingRegionFromBeamSpotFixedZ
217 stripPairElectronTrackingRegions = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet = dict(
218  ptMin = 1.0,
219  originHalfLength = 12.0,
220  originRadius = 0.4,
221 ))
222 pp_on_AA_2018.toReplaceWith(stripPairElectronTrackingRegions,
223  _globalTrackingRegionWithVertices.clone(
224  RegionPSet = dict(
225  fixedError = 0.5,
226  ptMin = 8.0,
227  originRadius = 0.4)))
228 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
229 stripPairElectronHitDoublets = _hitPairEDProducer.clone(
230  seedingLayers = "stripPairElectronSeedLayers",
231  trackingRegions = "stripPairElectronTrackingRegions",
232  maxElement = 1000000,
233  produceSeedingHitSets = True,
234  maxElementTotal = 12000000,
235 )
236 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff import seedCreatorFromRegionConsecutiveHitsEDProducer as _seedCreatorFromRegionConsecutiveHitsEDProducer
237 stripPairElectronSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
238  seedingHitSets = "stripPairElectronHitDoublets",
239 )
240 
241 
242 ###This seed collection is produced for electron reconstruction
244 newCombinedSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone(
245  seedCollections = cms.VInputTag(
246  cms.InputTag('initialStepSeeds'),
247  cms.InputTag('pixelPairStepSeeds'),
248  cms.InputTag('mixedTripletStepSeeds'),
249  cms.InputTag('pixelLessStepSeeds'),
250  cms.InputTag('tripletElectronSeeds'),
251  cms.InputTag('pixelPairElectronSeeds'),
252  cms.InputTag('stripPairElectronSeeds')
253  )
254 )
255 _seedCollections_Phase1 = [
256  'initialStepSeeds',
257  'highPtTripletStepSeeds',
258  'mixedTripletStepSeeds',
259  'pixelLessStepSeeds',
260  'tripletElectronSeeds',
261  'pixelPairElectronSeeds',
262  'stripPairElectronSeeds',
263  'lowPtTripletStepSeeds',
264  'lowPtQuadStepSeeds',
265  'detachedTripletStepSeeds',
266  'detachedQuadStepSeeds',
267  'pixelPairStepSeeds'
268 ]
269 trackingPhase1.toModify(newCombinedSeeds, seedCollections = _seedCollections_Phase1)
270 trackingPhase2PU140.toModify(newCombinedSeeds, seedCollections = [
271  'initialStepSeeds',
272  'highPtTripletStepSeeds',
273  'tripletElectronSeeds'
274 ])
275 
276 from Configuration.Eras.Modifier_fastSim_cff import fastSim
277 from FastSimulation.Tracking.ElectronSeeds_cff import _newCombinedSeeds
278 fastSim.toReplaceWith(newCombinedSeeds,_newCombinedSeeds.clone())
279 
280 electronSeedsSeqTask = cms.Task( initialStepSeedClusterMask,
281  pixelPairStepSeedClusterMask,
282  mixedTripletStepSeedClusterMask,
283  pixelLessStepSeedClusterMask,
284  tripletElectronSeedLayers,
285  tripletElectronTrackingRegions,
286  tripletElectronHitDoublets,
287  tripletElectronHitTriplets,
288  tripletElectronSeeds,
289  tripletElectronClusterMask,
290  pixelPairElectronSeedLayers,
291  pixelPairElectronTrackingRegions,
292  pixelPairElectronHitDoublets,
293  pixelPairElectronSeeds,
294  stripPairElectronSeedLayers,
295  stripPairElectronTrackingRegions,
296  stripPairElectronHitDoublets,
297  stripPairElectronSeeds,
298  newCombinedSeeds)
299 electronSeedsSeq = cms.Sequence(electronSeedsSeqTask)
300 _electronSeedsSeqTask_Phase1 = electronSeedsSeqTask.copy()
301 _electronSeedsSeqTask_Phase1.replace(pixelPairStepSeedClusterMask, detachedTripletStepSeedClusterMask)
302 trackingPhase1.toReplaceWith(electronSeedsSeqTask, _electronSeedsSeqTask_Phase1 )
303 trackingPhase2PU140.toReplaceWith(electronSeedsSeqTask, cms.Task(
304  initialStepSeedClusterMask,
305  highPtTripletStepSeedClusterMask,
306  pixelPairStepSeedClusterMask,
307  tripletElectronSeedLayers,
308  tripletElectronTrackingRegions,
309  tripletElectronHitDoublets,
310  tripletElectronHitTriplets,
311  tripletElectronSeeds,
312  newCombinedSeeds
313 ))