00001 import FWCore.ParameterSet.Config as cms
00002
00003
00004
00005
00006
00007 mixedTripletStepClusters = cms.EDProducer("TrackClusterRemover",
00008 clusterLessSolution = cms.bool(True),
00009 oldClusterRemovalInfo = cms.InputTag("detachedTripletStepClusters"),
00010 trajectories = cms.InputTag("detachedTripletStepTracks"),
00011 overrideTrkQuals = cms.InputTag('detachedTripletStep'),
00012 TrackQuality = cms.string('highPurity'),
00013 pixelClusters = cms.InputTag("siPixelClusters"),
00014 stripClusters = cms.InputTag("siStripClusters"),
00015 Common = cms.PSet(
00016 maxChi2 = cms.double(9.0)
00017 )
00018 )
00019
00020
00021 mixedTripletStepSeedLayersA = cms.ESProducer("SeedingLayersESProducer",
00022 ComponentName = cms.string('mixedTripletStepSeedLayersA'),
00023 layerList = cms.vstring('BPix1+BPix2+BPix3',
00024 'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
00025 'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg',
00026 'BPix2+FPix1_pos+FPix2_pos', 'BPix2+FPix1_neg+FPix2_neg',
00027 'FPix1_pos+FPix2_pos+TEC1_pos', 'FPix1_neg+FPix2_neg+TEC1_neg',
00028 'FPix2_pos+TEC2_pos+TEC3_pos', 'FPix2_neg+TEC2_neg+TEC3_neg'),
00029 BPix = cms.PSet(
00030 useErrorsFromParam = cms.bool(True),
00031 hitErrorRZ = cms.double(0.006),
00032 hitErrorRPhi = cms.double(0.0027),
00033 TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'),
00034 HitProducer = cms.string('siPixelRecHits'),
00035 skipClusters = cms.InputTag('mixedTripletStepClusters')
00036 ),
00037 FPix = cms.PSet(
00038 useErrorsFromParam = cms.bool(True),
00039 hitErrorRPhi = cms.double(0.0051),
00040 hitErrorRZ = cms.double(0.0036),
00041 TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'),
00042 HitProducer = cms.string('siPixelRecHits'),
00043 skipClusters = cms.InputTag('mixedTripletStepClusters')
00044 ),
00045 TEC = cms.PSet(
00046 matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
00047 useRingSlector = cms.bool(True),
00048 TTRHBuilder = cms.string('WithTrackAngle'),
00049 minRing = cms.int32(1),
00050 maxRing = cms.int32(1),
00051 skipClusters = cms.InputTag('mixedTripletStepClusters')
00052 )
00053 )
00054
00055
00056 from RecoPixelVertexing.PixelTriplets.PixelTripletLargeTipGenerator_cfi import *
00057 PixelTripletLargeTipGenerator.extraHitRZtolerance = 0.0
00058 PixelTripletLargeTipGenerator.extraHitRPhitolerance = 0.0
00059 import RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff
00060 mixedTripletStepSeedsA = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone()
00061 mixedTripletStepSeedsA.OrderedHitsFactoryPSet.SeedingLayers = 'mixedTripletStepSeedLayersA'
00062 mixedTripletStepSeedsA.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
00063 mixedTripletStepSeedsA.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
00064 mixedTripletStepSeedsA.RegionFactoryPSet.RegionPSet.ptMin = 0.4
00065 mixedTripletStepSeedsA.RegionFactoryPSet.RegionPSet.originHalfLength = 10.0
00066 mixedTripletStepSeedsA.RegionFactoryPSet.RegionPSet.originRadius = 1.5
00067
00068 mixedTripletStepSeedsA.SeedComparitorPSet = cms.PSet(
00069 ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
00070 FilterAtHelixStage = cms.bool(False),
00071 FilterPixelHits = cms.bool(True),
00072 FilterStripHits = cms.bool(True),
00073 ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter')
00074 )
00075
00076
00077 mixedTripletStepSeedLayersB = cms.ESProducer("SeedingLayersESProducer",
00078 ComponentName = cms.string('mixedTripletStepSeedLayersB'),
00079 layerList = cms.vstring('BPix2+BPix3+TIB1', 'BPix2+BPix3+TIB2'),
00080 BPix = cms.PSet(
00081 useErrorsFromParam = cms.bool(True),
00082 hitErrorRPhi = cms.double(0.0027),
00083 hitErrorRZ = cms.double(0.006),
00084 TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'),
00085 HitProducer = cms.string('siPixelRecHits'),
00086 skipClusters = cms.InputTag('mixedTripletStepClusters')
00087 ),
00088 TIB = cms.PSet(
00089 matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
00090 TTRHBuilder = cms.string('WithTrackAngle'),
00091 skipClusters = cms.InputTag('mixedTripletStepClusters')
00092 )
00093 )
00094
00095
00096 from RecoPixelVertexing.PixelTriplets.PixelTripletLargeTipGenerator_cfi import *
00097 PixelTripletLargeTipGenerator.extraHitRZtolerance = 0.0
00098 PixelTripletLargeTipGenerator.extraHitRPhitolerance = 0.0
00099 import RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff
00100 mixedTripletStepSeedsB = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone()
00101 mixedTripletStepSeedsB.OrderedHitsFactoryPSet.SeedingLayers = 'mixedTripletStepSeedLayersB'
00102 mixedTripletStepSeedsB.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
00103 mixedTripletStepSeedsB.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
00104 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.ptMin = 0.6
00105 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.originHalfLength = 10.0
00106 mixedTripletStepSeedsB.RegionFactoryPSet.RegionPSet.originRadius = 1.5
00107
00108 mixedTripletStepSeedsB.SeedComparitorPSet = cms.PSet(
00109 ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
00110 FilterAtHelixStage = cms.bool(False),
00111 FilterPixelHits = cms.bool(True),
00112 FilterStripHits = cms.bool(True),
00113 ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter')
00114 )
00115
00116 import RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi
00117 mixedTripletStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone()
00118 mixedTripletStepSeeds.seedCollections = cms.VInputTag(
00119 cms.InputTag('mixedTripletStepSeedsA'),
00120 cms.InputTag('mixedTripletStepSeedsB'),
00121 )
00122
00123
00124 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
00125 mixedTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
00126 ComponentName = 'mixedTripletStepTrajectoryFilter',
00127 filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
00128 maxLostHits = 0,
00129 minimumNumberOfHits = 3,
00130 minPt = 0.1
00131 )
00132 )
00133
00134
00135 import TrackingTools.MaterialEffects.MaterialPropagator_cfi
00136 mixedTripletStepPropagator = TrackingTools.MaterialEffects.MaterialPropagator_cfi.MaterialPropagator.clone(
00137 ComponentName = 'mixedTripletStepPropagator',
00138 ptMin = 0.1
00139 )
00140 import TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi
00141 mixedTripletStepPropagatorOpposite = TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi.OppositeMaterialPropagator.clone(
00142 ComponentName = 'mixedTripletStepPropagatorOpposite',
00143 ptMin = 0.1
00144 )
00145
00146 import TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi
00147 mixedTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
00148 ComponentName = cms.string('mixedTripletStepChi2Est'),
00149 nSigma = cms.double(3.0),
00150 MaxChi2 = cms.double(16.0)
00151 )
00152
00153
00154 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi
00155 mixedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
00156 ComponentName = 'mixedTripletStepTrajectoryBuilder',
00157 MeasurementTrackerName = '',
00158 trajectoryFilterName = 'mixedTripletStepTrajectoryFilter',
00159 propagatorAlong = cms.string('mixedTripletStepPropagator'),
00160 propagatorOpposite = cms.string('mixedTripletStepPropagatorOpposite'),
00161 clustersToSkip = cms.InputTag('mixedTripletStepClusters'),
00162 maxCand = 2,
00163 estimator = cms.string('mixedTripletStepChi2Est')
00164 )
00165
00166
00167 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
00168 mixedTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
00169 src = cms.InputTag('mixedTripletStepSeeds'),
00170 TrajectoryBuilder = 'mixedTripletStepTrajectoryBuilder',
00171 doSeedingRegionRebuilding = True,
00172 useHitsSplitting = True
00173 )
00174
00175 import RecoTracker.TrackProducer.TrackProducer_cfi
00176 mixedTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
00177 AlgorithmName = cms.string('iter4'),
00178 src = 'mixedTripletStepTrackCandidates'
00179 )
00180
00181
00182 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
00183 mixedTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
00184 src='mixedTripletStepTracks',
00185 trackSelectors= cms.VPSet(
00186 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
00187 name = 'mixedTripletStepVtxLoose',
00188 chi2n_par = 1.2,
00189 res_par = ( 0.003, 0.001 ),
00190 minNumberLayers = 3,
00191 maxNumberLostLayers = 1,
00192 minNumber3DLayers = 2,
00193 d0_par1 = ( 1.2, 3.0 ),
00194 dz_par1 = ( 1.2, 3.0 ),
00195 d0_par2 = ( 1.3, 3.0 ),
00196 dz_par2 = ( 1.3, 3.0 )
00197 ),
00198 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
00199 name = 'mixedTripletStepTrkLoose',
00200 chi2n_par = 0.6,
00201 res_par = ( 0.003, 0.001 ),
00202 minNumberLayers = 4,
00203 maxNumberLostLayers = 1,
00204 minNumber3DLayers = 3,
00205 d0_par1 = ( 1.2, 4.0 ),
00206 dz_par1 = ( 1.2, 4.0 ),
00207 d0_par2 = ( 1.2, 4.0 ),
00208 dz_par2 = ( 1.2, 4.0 )
00209 ),
00210 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
00211 name = 'mixedTripletStepVtxTight',
00212 preFilterName = 'mixedTripletStepVtxLoose',
00213 chi2n_par = 0.6,
00214 res_par = ( 0.003, 0.001 ),
00215 minNumberLayers = 3,
00216 maxNumberLostLayers = 1,
00217 minNumber3DLayers = 3,
00218 d0_par1 = ( 1.1, 3.0 ),
00219 dz_par1 = ( 1.1, 3.0 ),
00220 d0_par2 = ( 1.2, 3.0 ),
00221 dz_par2 = ( 1.2, 3.0 )
00222 ),
00223 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
00224 name = 'mixedTripletStepTrkTight',
00225 preFilterName = 'mixedTripletStepTrkLoose',
00226 chi2n_par = 0.4,
00227 res_par = ( 0.003, 0.001 ),
00228 minNumberLayers = 5,
00229 maxNumberLostLayers = 1,
00230 minNumber3DLayers = 4,
00231 d0_par1 = ( 1.1, 4.0 ),
00232 dz_par1 = ( 1.1, 4.0 ),
00233 d0_par2 = ( 1.1, 4.0 ),
00234 dz_par2 = ( 1.1, 4.0 )
00235 ),
00236 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
00237 name = 'mixedTripletStepVtx',
00238 preFilterName = 'mixedTripletStepVtxTight',
00239 chi2n_par = 0.4,
00240 res_par = ( 0.003, 0.001 ),
00241 minNumberLayers = 3,
00242 maxNumberLostLayers = 1,
00243 minNumber3DLayers = 3,
00244 d0_par1 = ( 1.1, 3.0 ),
00245 dz_par1 = ( 1.1, 3.0 ),
00246 d0_par2 = ( 1.2, 3.0 ),
00247 dz_par2 = ( 1.2, 3.0 )
00248 ),
00249 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
00250 name = 'mixedTripletStepTrk',
00251 preFilterName = 'mixedTripletStepTrkTight',
00252 chi2n_par = 0.3,
00253 res_par = ( 0.003, 0.001 ),
00254 minNumberLayers = 5,
00255 maxNumberLostLayers = 0,
00256 minNumber3DLayers = 4,
00257 d0_par1 = ( 0.9, 4.0 ),
00258 dz_par1 = ( 0.9, 4.0 ),
00259 d0_par2 = ( 0.9, 4.0 ),
00260 dz_par2 = ( 0.9, 4.0 )
00261 )
00262 )
00263 )
00264
00265 import RecoTracker.FinalTrackSelectors.trackListMerger_cfi
00266 mixedTripletStep = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
00267 TrackProducers = cms.VInputTag(cms.InputTag('mixedTripletStepTracks'),
00268 cms.InputTag('mixedTripletStepTracks')),
00269 hasSelector=cms.vint32(1,1),
00270 selectedTrackQuals = cms.VInputTag(cms.InputTag("mixedTripletStepSelector","mixedTripletStepVtx"),
00271 cms.InputTag("mixedTripletStepSelector","mixedTripletStepTrk")),
00272 setsToMerge = cms.VPSet( cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(True) )),
00273 writeOnlyTrkQuals=cms.bool(True)
00274 )
00275
00276
00277 MixedTripletStep = cms.Sequence(mixedTripletStepClusters*
00278 mixedTripletStepSeedsA*
00279 mixedTripletStepSeedsB*
00280 mixedTripletStepSeeds*
00281 mixedTripletStepTrackCandidates*
00282 mixedTripletStepTracks*
00283 mixedTripletStepSelector*
00284 mixedTripletStep)