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