CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
hiSecondPixelTripletStep_cff.py
Go to the documentation of this file.
2 
3 # Filter on quality tracks
4 hiFirstStepFilter = cms.EDProducer("QualityFilter",
5  TrackQuality = cms.string('highPurity'),
6  recTracks = cms.InputTag("hiSelectedTracks")
7  )
8 
9 # NEW CLUSTERS (remove previously used clusters)
10 hiSecondPixelTripletClusters = cms.EDProducer("TrackClusterRemover",
11  clusterLessSolution= cms.bool(True),
12  trajectories = cms.InputTag("hiFirstStepFilter"),
13  TrackQuality = cms.string('highPurity'),
14  pixelClusters = cms.InputTag("siPixelClusters"),
15  stripClusters = cms.InputTag("siStripClusters"),
16  Common = cms.PSet(
17  maxChi2 = cms.double(9.0)
18  ),
19  Strip = cms.PSet(
20  #Yen-Jie's mod to preserve merged clusters
21  maxSize = cms.uint32(2),
22  maxChi2 = cms.double(9.0)
23  )
24  )
25 
26 
27 # SEEDING LAYERS
29 hiSecondPixelTripletSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone(
30  ComponentName = 'hiSecondPixelTripletSeedLayers'
31  )
32 hiSecondPixelTripletSeedLayers.BPix.skipClusters = cms.InputTag('hiSecondPixelTripletClusters')
33 hiSecondPixelTripletSeedLayers.FPix.skipClusters = cms.InputTag('hiSecondPixelTripletClusters')
34 
35 # SEEDS
37 from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import RegionPsetFomBeamSpotBlock
38 hiSecondPixelTripletSeeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone(
39  RegionFactoryPSet = RegionPsetFomBeamSpotBlock.clone(
40  ComponentName = cms.string('GlobalTrackingRegionWithVerticesProducer'),
41  RegionPSet = cms.PSet(
42  precise = cms.bool(True),
43  beamSpot = cms.InputTag("offlineBeamSpot"),
44  useFixedError = cms.bool(False), #def value True
45  nSigmaZ = cms.double(4.0),
46  sigmaZVertex = cms.double(4.0), #def value 3
47  fixedError = cms.double(0.2),
48  VertexCollection = cms.InputTag("hiSelectedVertex"),
49  ptMin = cms.double(0.4),
50  useFoundVertices = cms.bool(True),
51  originRadius = cms.double(0.02)
52  )
53  )
54 )
55 
56 hiSecondPixelTripletSeeds.OrderedHitsFactoryPSet.SeedingLayers = 'hiSecondPixelTripletSeedLayers'
57 hiSecondPixelTripletSeeds.OrderedHitsFactoryPSet.GeneratorPSet.maxElement = 5000000
58 hiSecondPixelTripletSeeds.ClusterCheckPSet.MaxNumberOfPixelClusters = 5000000
59 hiSecondPixelTripletSeeds.ClusterCheckPSet.MaxNumberOfCosmicClusters = 50000000
60 
62 hiSecondPixelTripletSeeds.OrderedHitsFactoryPSet.GeneratorPSet.SeedComparitorPSet.ComponentName = 'LowPtClusterShapeSeedComparitor'
63 
64 
65 # QUALITY CUTS DURING TRACK BUILDING
66 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
67 hiSecondPixelTripletTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
68  ComponentName = 'hiSecondPixelTripletTrajectoryFilter',
69  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
70  maxLostHits = 1,
71  minimumNumberOfHits = 6,
72  # minPt = 1.0
73  minPt = 0.4
74  )
75  )
76 
78 hiSecondPixelTripletChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
79  ComponentName = cms.string('hiSecondPixelTripletChi2Est'),
80  nSigma = cms.double(3.0),
81  MaxChi2 = cms.double(9.0)
82  )
83 
84 
85 # TRACK BUILDING
86 # import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi
87 # hiSecondPixelTripletTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
88  # ComponentName = 'hiSecondPixelTripletTrajectoryBuilder',
89  # MeasurementTrackerName = '',
90  # trajectoryFilterName = 'hiSecondPixelTripletTrajectoryFilter',
91  # clustersToSkip = cms.InputTag('hiSecondPixelTripletClusters'),
92  # maxCand = 3, #check with 2 and 4
93  # estimator = cms.string('hiSecondPixelTripletChi2Est')
94  # )
95 
96 
97 # TRACK BUILDING
99 hiSecondPixelTripletTrajectoryBuilder = RecoTracker.CkfPattern.CkfTrajectoryBuilderESProducer_cfi.CkfTrajectoryBuilder.clone(
100  ComponentName = 'hiSecondPixelTripletTrajectoryBuilder',
101  MeasurementTrackerName = '',
102  trajectoryFilterName = 'hiSecondPixelTripletTrajectoryFilter',
103  clustersToSkip = cms.InputTag('hiSecondPixelTripletClusters'),
104  maxCand = 3,
105  estimator = cms.string('hiSecondPixelTripletChi2Est'),
106  maxDPhiForLooperReconstruction = cms.double(2.0),
107  # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
108  # of the outermost Tracker barrel layer (with B=3.8T)
109  maxPtForLooperReconstruction = cms.double(0.7)
110  )
111 
112 # MAKING OF TRACK CANDIDATES
114 hiSecondPixelTripletTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
115  src = cms.InputTag('hiSecondPixelTripletSeeds'),
116  TrajectoryBuilder = 'hiSecondPixelTripletTrajectoryBuilder',
117  doSeedingRegionRebuilding = True,
118  useHitsSplitting = True
119  )
120 
121 # TRACK FITTING
123 hiSecondPixelTripletGlobalPrimTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
124  src = 'hiSecondPixelTripletTrackCandidates',
125  AlgorithmName = cms.string('iter1'),
126  Fitter=cms.string('FlexibleKFFittingSmoother')
127  )
128 
129 
130 
131 # Final selection
132 import RecoHI.HiTracking.hiMultiTrackSelector_cfi
133 hiSecondPixelTripletStepSelector = RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiMultiTrackSelector.clone(
134  src='hiSecondPixelTripletGlobalPrimTracks',
135  trackSelectors= cms.VPSet(
136  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
137  name = 'hiSecondPixelTripletStepLoose',
138  ), #end of pset
139  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
140  name = 'hiSecondPixelTripletStepTight',
141  preFilterName = 'hiSecondPixelTripletStepLoose',
142  ),
143  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
144  name = 'hiSecondPixelTripletStep',
145  preFilterName = 'hiSecondPixelTripletStepTight',
146  # min_nhits = 14
147  ),
148  ) #end of vpset
149  ) #end of clone
150 
151 
152 import RecoTracker.FinalTrackSelectors.trackListMerger_cfi
153 hiSecondQual = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
154  TrackProducers = cms.VInputTag(cms.InputTag('hiSecondPixelTripletGlobalPrimTracks')),
155  hasSelector=cms.vint32(1),
156  selectedTrackQuals = cms.VInputTag(cms.InputTag("hiSecondPixelTripletStepSelector","hiSecondPixelTripletStep")),
157  copyExtras = True,
158  makeReKeyedSeeds = cms.untracked.bool(False),
159  #writeOnlyTrkQuals = True
160  )
161 
162 # Final sequence
163 
164 hiSecondPixelTripletStep = cms.Sequence(hiFirstStepFilter*
165  hiSecondPixelTripletClusters*
166  hiSecondPixelTripletSeeds*
167  hiSecondPixelTripletTrackCandidates*
168  hiSecondPixelTripletGlobalPrimTracks*
169  hiSecondPixelTripletStepSelector
170  *hiSecondQual
171  )