CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
hiLowPtTripletStep_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 
4 # NEW CLUSTERS (remove previously used clusters)
5 hiLowPtTripletStepClusters = cms.EDProducer("HITrackClusterRemover",
6  clusterLessSolution= cms.bool(True),
7  oldClusterRemovalInfo = cms.InputTag("hiDetachedTripletStepClusters"),
8  trajectories = cms.InputTag("hiDetachedTripletStepTracks"),
9  overrideTrkQuals = cms.InputTag("hiDetachedTripletStepSelector","hiDetachedTripletStep"),
10  TrackQuality = cms.string('highPurity'),
11  minNumberOfLayersWithMeasBeforeFiltering = cms.int32(0),
12  pixelClusters = cms.InputTag("siPixelClusters"),
13  stripClusters = cms.InputTag("siStripClusters"),
14  Common = cms.PSet(
15  maxChi2 = cms.double(9.0)
16  ),
17  Strip = cms.PSet(
18  #Yen-Jie's mod to preserve merged clusters
19  maxSize = cms.uint32(2),
20  maxChi2 = cms.double(9.0)
21  )
22  )
23 
24 
25 # SEEDING LAYERS
27 hiLowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone()
28 hiLowPtTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('hiLowPtTripletStepClusters')
29 hiLowPtTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('hiLowPtTripletStepClusters')
30 
31 # SEEDS
36 hiLowPtTripletStepPixelTracks = cms.EDProducer("PixelTrackProducer",
37 
38  passLabel = cms.string('Pixel primary tracks with vertex constraint'),
39 
40  # Region
41  RegionFactoryPSet = cms.PSet(
42  ComponentName = cms.string("GlobalTrackingRegionWithVerticesProducer"),
43  RegionPSet = cms.PSet(
44  precise = cms.bool(True),
45  useMultipleScattering = cms.bool(False),
46  useFakeVertices = cms.bool(False),
47  beamSpot = cms.InputTag("offlineBeamSpot"),
48  useFixedError = cms.bool(False),
49  nSigmaZ = cms.double(4.0),
50  sigmaZVertex = cms.double(4.0),
51  fixedError = cms.double(0.2),
52  VertexCollection = cms.InputTag("hiSelectedVertex"),
53  ptMin = cms.double(0.4),
54  useFoundVertices = cms.bool(True),
55  originRadius = cms.double(0.02)
56  )
57  ),
58 
59  # Ordered Hits
60  OrderedHitsFactoryPSet = cms.PSet(
61  ComponentName = cms.string( "StandardHitTripletGenerator" ),
62  SeedingLayers = cms.InputTag( "PixelLayerTriplets" ),
63  GeneratorPSet = cms.PSet(
64  PixelTripletHLTGenerator
65  )
66  ),
67 
68  # Fitter
69  FitterPSet = cms.PSet(
70  ComponentName = cms.string('PixelFitterByHelixProjections'),
71  TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelTriplets')
72  ),
73 
74  # Filter
75  useFilterWithES = cms.bool( True ),
76  FilterPSet = cms.PSet(
77  nSigmaLipMaxTolerance = cms.double(4.0),
78  chi2 = cms.double(1000.0),
79  ComponentName = cms.string('HIPixelTrackFilter'),
80  nSigmaTipMaxTolerance = cms.double(4.0),
81  clusterShapeCacheSrc = cms.InputTag("siPixelClusterShapeCache"),
82  VertexCollection = cms.InputTag("hiSelectedVertex"),
83  useClusterShape = cms.bool(False),
84  lipMax = cms.double(0),
85  tipMax = cms.double(0),
86  ptMin = cms.double(0.4)
87  ),
88 
89  # Cleaner
90  CleanerPSet = cms.PSet(
91  ComponentName = cms.string( "TrackCleaner" )
92  )
93 )
94 
95 hiLowPtTripletStepPixelTracks.OrderedHitsFactoryPSet.GeneratorPSet.maxElement = cms.uint32(5000000)
96 hiLowPtTripletStepPixelTracks.OrderedHitsFactoryPSet.SeedingLayers = cms.InputTag('hiLowPtTripletStepSeedLayers')
97 
98 hiLowPtTripletStepPixelTracks.OrderedHitsFactoryPSet.GeneratorPSet.SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor
99 
100 
101 
102 import RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi
103 hiLowPtTripletStepSeeds = RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi.pixelTrackSeeds.clone(
104  InputCollection = 'hiLowPtTripletStepPixelTracks'
105  )
106 
107 
108 # QUALITY CUTS DURING TRACK BUILDING
110 hiLowPtTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
111  maxLostHits = 1,
112  minimumNumberOfHits = 6,
113  minPt = 0.4
114  )
115 
117 hiLowPtTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
118  ComponentName = cms.string('hiLowPtTripletStepChi2Est'),
119  nSigma = cms.double(3.0),
120  MaxChi2 = cms.double(9.0)
121  )
122 
123 # TRACK BUILDING
125 hiLowPtTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
126  MeasurementTrackerName = '',
127  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('hiLowPtTripletStepTrajectoryFilter')),
128  maxCand = 3,
129  estimator = cms.string('hiLowPtTripletStepChi2Est'),
130  maxDPhiForLooperReconstruction = cms.double(2.0),
131  # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
132  # of the outermost Tracker barrel layer (with B=3.8T)
133  maxPtForLooperReconstruction = cms.double(0.7)
134  )
135 
136 # MAKING OF TRACK CANDIDATES
138 hiLowPtTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
139  src = cms.InputTag('hiLowPtTripletStepSeeds'),
140  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
141  numHitsForSeedCleaner = cms.int32(50),
142  onlyPixelHitsForSeedCleaner = cms.bool(True),
143  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('hiLowPtTripletStepTrajectoryBuilder')),
144  clustersToSkip = cms.InputTag('hiLowPtTripletStepClusters'),
145  doSeedingRegionRebuilding = True,
146  useHitsSplitting = True
147  )
148 
149 # TRACK FITTING
151 hiLowPtTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
152  src = 'hiLowPtTripletStepTrackCandidates',
153  AlgorithmName = cms.string('lowPtTripletStep'),
154  Fitter=cms.string('FlexibleKFFittingSmoother')
155  )
156 
157 
158 
159 # Final selection
161 hiLowPtTripletStepSelector = RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiMultiTrackSelector.clone(
162  src='hiLowPtTripletStepTracks',
163  useAnyMVA = cms.bool(True),
164  GBRForestLabel = cms.string('HIMVASelectorIter5'),
165  GBRForestVars = cms.vstring(['chi2perdofperlayer', 'dxyperdxyerror', 'dzperdzerror', 'relpterr', 'nhits', 'nlayers', 'eta']),
166  trackSelectors= cms.VPSet(
167  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
168  name = 'hiLowPtTripletStepLoose',
169  useMVA = cms.bool(False)
170  ), #end of pset
171  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
172  name = 'hiLowPtTripletStepTight',
173  preFilterName = 'hiLowPtTripletStepLoose',
174  useMVA = cms.bool(True),
175  minMVA = cms.double(-0.58)
176  ),
177  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
178  name = 'hiLowPtTripletStep',
179  preFilterName = 'hiLowPtTripletStepTight',
180  useMVA = cms.bool(True),
181  minMVA = cms.double(0.35)
182  ),
183  ) #end of vpset
184  ) #end of clone
185 
186 
188 hiLowPtTripletStepQual = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
189  TrackProducers = cms.VInputTag(cms.InputTag('hiLowPtTripletStepTracks')),
190  hasSelector=cms.vint32(1),
191  selectedTrackQuals = cms.VInputTag(cms.InputTag("hiLowPtTripletStepSelector","hiLowPtTripletStep")),
192  copyExtras = True,
193  makeReKeyedSeeds = cms.untracked.bool(False),
194  #writeOnlyTrkQuals = True
195  )
196 
197 # Final sequence
198 
199 hiLowPtTripletStep = cms.Sequence(hiLowPtTripletStepClusters*
200  hiLowPtTripletStepSeedLayers*
201  hiLowPtTripletStepPixelTracks*hiLowPtTripletStepSeeds*
202  hiLowPtTripletStepTrackCandidates*
203  hiLowPtTripletStepTracks*
204  hiLowPtTripletStepSelector*
205  hiLowPtTripletStepQual
206  )
pp iterative tracking modified for hiOffline reco (the vertex is the one reconstructed in HI) 3rd ste...