CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RunI_DetachedTripletStep_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 ###############################################
4 # Low pT and detached tracks from pixel triplets
5 ###############################################
6 
7 # REMOVE HITS ASSIGNED TO GOOD TRACKS FROM PREVIOUS ITERATIONS
9 detachedTripletStepClusters = trackClusterRemover.clone(
10  maxChi2 = cms.double(9.0),
11  trajectories = cms.InputTag("pixelPairStepTracks"),
12  pixelClusters = cms.InputTag("siPixelClusters"),
13  stripClusters = cms.InputTag("siStripClusters"),
14  oldClusterRemovalInfo = cms.InputTag("pixelPairStepClusters"),
15  overrideTrkQuals = cms.InputTag('pixelPairStepSelector','QualityMasks'),
16  TrackQuality = cms.string('highPurity'),
17  minNumberOfLayersWithMeasBeforeFiltering = cms.int32(0),
18 )
19 
20 # SEEDING LAYERS
22 detachedTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone()
23 detachedTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('detachedTripletStepClusters')
24 detachedTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('detachedTripletStepClusters')
25 
26 # SEEDS
28 PixelTripletLargeTipGenerator.extraHitRZtolerance = 0.0
29 PixelTripletLargeTipGenerator.extraHitRPhitolerance = 0.0
31 detachedTripletStepSeeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone()
32 detachedTripletStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = 'detachedTripletStepSeedLayers'
33 detachedTripletStepSeeds.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
34 detachedTripletStepSeeds.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
35 detachedTripletStepSeeds.RegionFactoryPSet.RegionPSet.ptMin = 0.3
36 detachedTripletStepSeeds.RegionFactoryPSet.RegionPSet.originHalfLength = 15.0
37 detachedTripletStepSeeds.RegionFactoryPSet.RegionPSet.originRadius = 1.5
38 
39 detachedTripletStepSeeds.SeedComparitorPSet = cms.PSet(
40  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
41  FilterAtHelixStage = cms.bool(False),
42  FilterPixelHits = cms.bool(True),
43  FilterStripHits = cms.bool(False),
44  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
45  ClusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCache')
46  )
47 
48 # QUALITY CUTS DURING TRACK BUILDING
50 detachedTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
51  maxLostHitsFraction = cms.double(1./10.),
52  constantValueForLostHitsFractionFilter = cms.double(0.701),
53  minimumNumberOfHits = 3,
54  minPt = 0.075
55  )
56 
58 detachedTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
59  ComponentName = cms.string('detachedTripletStepChi2Est'),
60  nSigma = cms.double(3.0),
61  MaxChi2 = cms.double(9.0),
62  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutNone')),
63 )
64 
65 # TRACK BUILDING
67 detachedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
68  MeasurementTrackerName = '',
69  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('detachedTripletStepTrajectoryFilter')),
70  maxCand = 2,
71  alwaysUseInvalidHits = False,
72  estimator = cms.string('detachedTripletStepChi2Est'),
73  maxDPhiForLooperReconstruction = cms.double(2.0),
74  maxPtForLooperReconstruction = cms.double(0.7)
75  )
76 
77 # MAKING OF TRACK CANDIDATES
79 detachedTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
80  src = cms.InputTag('detachedTripletStepSeeds'),
81  clustersToSkip = cms.InputTag('detachedTripletStepClusters'),
82  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
83  numHitsForSeedCleaner = cms.int32(50),
84  onlyPixelHitsForSeedCleaner = cms.bool(True),
85  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('detachedTripletStepTrajectoryBuilder')),
86  doSeedingRegionRebuilding = True,
87  useHitsSplitting = True
88  )
89 
90 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
91 detachedTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
92  ComponentName = cms.string('detachedTripletStepTrajectoryCleanerBySharedHits'),
93  fractionShared = cms.double(0.19),
94  allowSharedFirstHit = cms.bool(True)
95  )
96 detachedTripletStepTrackCandidates.TrajectoryCleaner = 'detachedTripletStepTrajectoryCleanerBySharedHits'
97 
98 
99 # TRACK FITTING
101 detachedTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
102  AlgorithmName = cms.string('detachedTripletStep'),
103  src = 'detachedTripletStepTrackCandidates',
104  Fitter = cms.string('FlexibleKFFittingSmoother')
105  )
106 
107 # TRACK SELECTION AND QUALITY FLAG SETTING.
108 
109 # TRACK SELECTION AND QUALITY FLAG SETTING.
110 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
111 detachedTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
112  src='detachedTripletStepTracks',
113  useAnyMVA = cms.bool(False),
114  GBRForestLabel = cms.string('MVASelectorIter3'),
115  trackSelectors= cms.VPSet(
116  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
117  name = 'detachedTripletStepVtxLoose',
118  chi2n_par = 1.6,
119  res_par = ( 0.003, 0.001 ),
120  minNumberLayers = 3,
121  d0_par1 = ( 1.2, 3.0 ),
122  dz_par1 = ( 1.2, 3.0 ),
123  d0_par2 = ( 1.3, 3.0 ),
124  dz_par2 = ( 1.3, 3.0 )
125  ),
126  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
127  name = 'detachedTripletStepTrkLoose',
128  chi2n_par = 0.7,
129  res_par = ( 0.003, 0.001 ),
130  minNumberLayers = 3,
131  d0_par1 = ( 1.6, 4.0 ),
132  dz_par1 = ( 1.6, 4.0 ),
133  d0_par2 = ( 1.6, 4.0 ),
134  dz_par2 = ( 1.6, 4.0 )
135  ),
136  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
137  name = 'detachedTripletStepVtxTight',
138  preFilterName = 'detachedTripletStepVtxLoose',
139  chi2n_par = 0.7,
140  res_par = ( 0.003, 0.001 ),
141  minNumberLayers = 3,
142  maxNumberLostLayers = 1,
143  minNumber3DLayers = 3,
144  d0_par1 = ( 0.95, 3.0 ),
145  dz_par1 = ( 0.9, 3.0 ),
146  d0_par2 = ( 1.0, 3.0 ),
147  dz_par2 = ( 1.0, 3.0 )
148  ),
149  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
150  name = 'detachedTripletStepTrkTight',
151  preFilterName = 'detachedTripletStepTrkLoose',
152  chi2n_par = 0.5,
153  res_par = ( 0.003, 0.001 ),
154  minNumberLayers = 5,
155  maxNumberLostLayers = 1,
156  minNumber3DLayers = 3,
157  d0_par1 = ( 1.1, 4.0 ),
158  dz_par1 = ( 1.1, 4.0 ),
159  d0_par2 = ( 1.1, 4.0 ),
160  dz_par2 = ( 1.1, 4.0 )
161  ),
162  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
163  name = 'detachedTripletStepVtx',
164  preFilterName = 'detachedTripletStepVtxTight',
165  chi2n_par = 0.7,
166  res_par = ( 0.003, 0.001 ),
167  minNumberLayers = 3,
168  maxNumberLostLayers = 1,
169  minNumber3DLayers = 3,
170  d0_par1 = ( 0.85, 3.0 ),
171  dz_par1 = ( 0.8, 3.0 ),
172  d0_par2 = ( 0.9, 3.0 ),
173  dz_par2 = ( 0.9, 3.0 )
174  ),
175  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
176  name = 'detachedTripletStepTrk',
177  preFilterName = 'detachedTripletStepTrkTight',
178  chi2n_par = 0.4,
179  res_par = ( 0.003, 0.001 ),
180  minNumberLayers = 5,
181  maxNumberLostLayers = 1,
182  minNumber3DLayers = 4,
183  d0_par1 = ( 1.0, 4.0 ),
184  dz_par1 = ( 1.0, 4.0 ),
185  d0_par2 = ( 1.0, 4.0 ),
186  dz_par2 = ( 1.0, 4.0 )
187  )
188  ),
189  vertices = cms.InputTag("pixelVertices") #end of vpset
190  ) #end of clone
191 
192 
194 detachedTripletStep = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
195  TrackProducers = cms.VInputTag(cms.InputTag('detachedTripletStepTracks'),
196  cms.InputTag('detachedTripletStepTracks')),
197  hasSelector=cms.vint32(1,1),
198  selectedTrackQuals = cms.VInputTag(cms.InputTag("detachedTripletStepSelector","detachedTripletStepVtx"),
199  cms.InputTag("detachedTripletStepSelector","detachedTripletStepTrk")),
200  setsToMerge = cms.VPSet(cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(True) )),
201  writeOnlyTrkQuals=cms.bool(True)
202 )
203 
204 DetachedTripletStep = cms.Sequence(detachedTripletStepClusters*
205  detachedTripletStepSeedLayers*
206  detachedTripletStepSeeds*
207  detachedTripletStepTrackCandidates*
208  detachedTripletStepTracks*
209  detachedTripletStepSelector*
210  detachedTripletStep)
211