CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/RecoTracker/IterativeTracking/python/MixedTripletStep_cff.py

Go to the documentation of this file.
00001 import FWCore.ParameterSet.Config as cms
00002 
00003 ###############################################################
00004 # Large impact parameter Tracking using mixed-triplet seeding #
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 # SEEDING LAYERS
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 # SEEDS
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 # SEEDING LAYERS
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 # SEEDS
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 # QUALITY CUTS DURING TRACK BUILDING
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 # Propagator taking into account momentum uncertainty in multiple scattering calculation.
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 # TRACK BUILDING
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 # MAKING OF TRACK CANDIDATES
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 # TRACK FITTING
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 # TRACK SELECTION AND QUALITY FLAG SETTING.
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         ) #end of vpset
00263     ) #end of clone
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)