CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PixelLessStep_cff.py
Go to the documentation of this file.
2 
3 ##########################################################################
4 # Large impact parameter tracking using TIB/TID/TEC stereo layer seeding #
5 ##########################################################################
6 
7 
8 pixelLessStepClusters = cms.EDProducer("TrackClusterRemover",
9  clusterLessSolution = cms.bool(True),
10  oldClusterRemovalInfo = cms.InputTag("mixedTripletStepClusters"),
11  trajectories = cms.InputTag("mixedTripletStepTracks"),
12  overrideTrkQuals = cms.InputTag('mixedTripletStep'),
13  TrackQuality = cms.string('highPurity'),
14  minNumberOfLayersWithMeasBeforeFiltering = cms.int32(0),
15  pixelClusters = cms.InputTag("siPixelClusters"),
16  stripClusters = cms.InputTag("siStripClusters"),
17  Common = cms.PSet(
18  maxChi2 = cms.double(9.0)
19  )
20 )
21 
22 # SEEDING LAYERS
23 pixelLessStepSeedLayers = cms.ESProducer("SeedingLayersESProducer",
24  ComponentName = cms.string('pixelLessStepSeedLayers'),
25  layerList = cms.vstring('TIB1+TIB2',
26  'TID1_pos+TID2_pos','TID2_pos+TID3_pos',
27  'TEC1_pos+TEC2_pos','TEC2_pos+TEC3_pos','TEC3_pos+TEC4_pos','TEC3_pos+TEC5_pos','TEC4_pos+TEC5_pos',
28  'TID1_neg+TID2_neg','TID2_neg+TID3_neg',
29  'TEC1_neg+TEC2_neg','TEC2_neg+TEC3_neg','TEC3_neg+TEC4_neg','TEC3_neg+TEC5_neg','TEC4_neg+TEC5_neg'),
30  TIB = cms.PSet(
31  TTRHBuilder = cms.string('WithTrackAngle'),
32  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
33  skipClusters = cms.InputTag('pixelLessStepClusters')
34  ),
35  TID = cms.PSet(
36  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
37  skipClusters = cms.InputTag('pixelLessStepClusters'),
38  useRingSlector = cms.bool(True),
39  TTRHBuilder = cms.string('WithTrackAngle'),
40  minRing = cms.int32(1),
41  maxRing = cms.int32(2)
42  ),
43  TEC = cms.PSet(
44  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
45  skipClusters = cms.InputTag('pixelLessStepClusters'),
46  useRingSlector = cms.bool(True),
47  TTRHBuilder = cms.string('WithTrackAngle'),
48  minRing = cms.int32(1),
49  maxRing = cms.int32(2)
50  )
51 )
52 
53 # SEEDS
55 pixelLessStepSeeds = RecoTracker.TkSeedGenerator.GlobalMixedSeeds_cff.globalMixedSeeds.clone()
56 pixelLessStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = 'pixelLessStepSeedLayers'
57 pixelLessStepSeeds.RegionFactoryPSet.RegionPSet.ptMin = 0.7
58 pixelLessStepSeeds.RegionFactoryPSet.RegionPSet.originHalfLength = 15.0
59 pixelLessStepSeeds.RegionFactoryPSet.RegionPSet.originRadius = 2.5
60 pixelLessStepSeeds.SeedCreatorPSet.OriginTransverseErrorMultiplier = 2.0
61 
62 pixelLessStepSeeds.SeedComparitorPSet = cms.PSet(
63  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
64  FilterAtHelixStage = cms.bool(True),
65  FilterPixelHits = cms.bool(False),
66  FilterStripHits = cms.bool(True),
67  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter')
68  )
69 
70 # QUALITY CUTS DURING TRACK BUILDING
71 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
72 pixelLessStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
73  ComponentName = 'pixelLessStepTrajectoryFilter',
74  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
75  maxLostHits = 0,
76  minimumNumberOfHits = 4,
77  minPt = 0.1
78  )
79  )
80 
82 pixelLessStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
83  ComponentName = cms.string('pixelLessStepChi2Est'),
84  nSigma = cms.double(3.0),
85  MaxChi2 = cms.double(9.0)
86 )
87 
88 # TRACK BUILDING
90 pixelLessStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
91  ComponentName = 'pixelLessStepTrajectoryBuilder',
92  MeasurementTrackerName = '',
93  clustersToSkip = cms.InputTag('pixelLessStepClusters'),
94  trajectoryFilterName = 'pixelLessStepTrajectoryFilter',
95  minNrOfHitsForRebuild = 4,
96  maxCand = 2,
97  alwaysUseInvalidHits = False,
98  estimator = cms.string('pixelLessStepChi2Est'),
99  maxDPhiForLooperReconstruction = cms.double(2.0),
100  maxPtForLooperReconstruction = cms.double(0.7)
101  )
102 
103 # MAKING OF TRACK CANDIDATES
105 pixelLessStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
106  src = cms.InputTag('pixelLessStepSeeds'),
107  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
108  numHitsForSeedCleaner = cms.int32(50),
109  #onlyPixelHitsForSeedCleaner = cms.bool(True),
110  TrajectoryBuilder = 'pixelLessStepTrajectoryBuilder'
111 )
112 
113 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
114 pixelLessStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
115  ComponentName = cms.string('pixelLessStepTrajectoryCleanerBySharedHits'),
116  fractionShared = cms.double(0.11),
117  allowSharedFirstHit = cms.bool(True)
118  )
119 pixelLessStepTrackCandidates.TrajectoryCleaner = 'pixelLessStepTrajectoryCleanerBySharedHits'
120 
121 
122 # TRACK FITTING
124 pixelLessStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
125  src = 'pixelLessStepTrackCandidates',
126  AlgorithmName = cms.string('iter5'),
127  Fitter = cms.string('FlexibleKFFittingSmoother')
128  )
129 
130 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
131 pixelLessStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
132  src='pixelLessStepTracks',
133  useAnyMVA = cms.bool(True),
134  GBRForestLabel = cms.string('MVASelectorIter5'),
135  trackSelectors= cms.VPSet(
136  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
137  name = 'pixelLessStepLoose',
138  chi2n_par = 0.4,
139  res_par = ( 0.003, 0.001 ),
140  minNumberLayers = 4,
141  maxNumberLostLayers = 1,
142  minNumber3DLayers = 3,
143  d0_par1 = ( 1.2, 4.0 ),
144  dz_par1 = ( 1.2, 4.0 ),
145  d0_par2 = ( 1.2, 4.0 ),
146  dz_par2 = ( 1.2, 4.0 )
147  ),
148  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
149  name = 'pixelLessStepTight',
150  preFilterName = 'pixelLessStepLoose',
151  chi2n_par = 0.3,
152  res_par = ( 0.003, 0.001 ),
153  minNumberLayers = 4,
154  maxNumberLostLayers = 0,
155  minNumber3DLayers = 3,
156  d0_par1 = ( 0.9, 4.0 ),
157  dz_par1 = ( 0.9, 4.0 ),
158  d0_par2 = ( 0.9, 4.0 ),
159  dz_par2 = ( 0.9, 4.0 )
160  ),
161  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
162  name = 'pixelLessStep',
163  preFilterName = 'pixelLessStepTight',
164  chi2n_par = 0.2,
165  res_par = ( 0.003, 0.001 ),
166  minNumberLayers = 4,
167  maxNumberLostLayers = 0,
168  minNumber3DLayers = 3,
169  max_minMissHitOutOrIn = 2,
170  max_lostHitFraction = 1.0,
171  d0_par1 = ( 0.7, 4.0 ),
172  dz_par1 = ( 0.7, 4.0 ),
173  d0_par2 = ( 0.7, 4.0 ),
174  dz_par2 = ( 0.7, 4.0 )
175  ),
176  ) #end of vpset
177  ) #end of clone
178 
179 
180 PixelLessStep = cms.Sequence(pixelLessStepClusters*
181  pixelLessStepSeeds*
182  pixelLessStepTrackCandidates*
183  pixelLessStepTracks*
184  pixelLessStepSelector)