CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/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     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 # SEEDING LAYERS
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 # SEEDS
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 # SEEDING LAYERS
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 # SEEDS
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 # QUALITY CUTS DURING TRACK BUILDING
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 # Propagator taking into account momentum uncertainty in multiple scattering calculation.
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 # TRACK BUILDING
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 # MAKING OF TRACK CANDIDATES
00170 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
00171 mixedTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
00172     src = cms.InputTag('mixedTripletStepSeeds'),
00173     ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
00174     numHitsForSeedCleaner = cms.int32(50),
00175     #onlyPixelHitsForSeedCleaner = cms.bool(True),
00176 
00177     TrajectoryBuilder = 'mixedTripletStepTrajectoryBuilder',
00178     doSeedingRegionRebuilding = True,
00179     useHitsSplitting = True
00180 )
00181 # TRACK FITTING
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 # TRACK SELECTION AND QUALITY FLAG SETTING.
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         ) #end of vpset
00271     ) #end of clone
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)