# Although InitialStepPreSplitting is not really part of LowPU/Run1/Phase1PU70 # tracking, we use it to get siPixelClusters and siPixelRecHits # collections for non-splitted pixel clusters. All modules before # iterTracking sequence use siPixelClustersPreSplitting and # siPixelRecHitsPreSplitting for that purpose. # # If siPixelClusters would be defined in # RecoLocalTracker.Configuration.RecoLocalTracker_cff, we would have a # situation where # - LowPU/Phase1PU70 has siPixelClusters defined in RecoLocalTracker_cff # - everything else has siPixelClusters defined here # and this leads to a mess. The way it is done here we have only # one place (within Reconstruction_cff) where siPixelClusters # module is defined. from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi import siPixelClusters as _siPixelClusters from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU trackingLowPU.toReplaceWith(siPixelClusters, _siPixelClusters) from Configuration.Eras.Modifier_trackingPhase1PU70_cff import trackingPhase1PU70 trackingPhase1PU70.toReplaceWith(siPixelClusters, _siPixelClusters) from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140 trackingPhase2PU140.toReplaceWith(siPixelClusters, _siPixelClusters) _InitialStepPreSplitting_LowPU_Phase1PU70 = cms.Sequence( siPixelClusters + siPixelRecHits + MeasurementTrackerEvent + siPixelClusterShapeCache) trackingLowPU.toReplaceWith(InitialStepPreSplitting, _InitialStepPreSplitting_LowPU_Phase1PU70) trackingPhase1PU70.toReplaceWith(InitialStepPreSplitting, _InitialStepPreSplitting_LowPU_Phase1PU70) trackingPhase2PU140.toReplaceWith(InitialStepPreSplitting, _InitialStepPreSplitting_LowPU_Phase1PU70)
# Although InitialStepPreSplitting is not really part of LowPU/Run1/Phase1PU70 # tracking, we use it to get siPixelClusters and siPixelRecHits # collections for non-splitted pixel clusters. All modules before # iterTracking sequence use siPixelClustersPreSplitting and # siPixelRecHitsPreSplitting for that purpose. # # If siPixelClusters would be defined in # RecoLocalTracker.Configuration.RecoLocalTracker_cff, we would have a # situation where # - LowPU/Phase1PU70 has siPixelClusters defined in RecoLocalTracker_cff # - everything else has siPixelClusters defined here # and this leads to a mess. The way it is done here we have only # one place (within Reconstruction_cff) where siPixelClusters # module is defined. from RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi import siPixelClusters as _siPixelClusters from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU trackingLowPU.toReplaceWith(siPixelClusters, _siPixelClusters) from Configuration.Eras.Modifier_trackingPhase1PU70_cff import trackingPhase1PU70 trackingPhase1PU70.toReplaceWith(siPixelClusters, _siPixelClusters) from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140 trackingPhase2PU140.toReplaceWith(siPixelClusters, _siPixelClusters) _InitialStepPreSplitting_LowPU_Phase1PU70 = cms.Sequence( siPixelClusters + siPixelRecHits + MeasurementTrackerEvent + siPixelClusterShapeCache ) trackingLowPU.toReplaceWith(InitialStepPreSplitting, _InitialStepPreSplitting_LowPU_Phase1PU70) trackingPhase1PU70.toReplaceWith(InitialStepPreSplitting, _InitialStepPreSplitting_LowPU_Phase1PU70) trackingPhase2PU140.toReplaceWith(InitialStepPreSplitting, _InitialStepPreSplitting_LowPU_Phase1PU70)
# temporary... _initialStepHitQuadrupletsMerging.SeedCreatorPSet = cms.PSet( ComponentName=cms.string("SeedFromConsecutiveHitsCreator"), MinOneOverPtError=initialStepSeeds.MinOneOverPtError, OriginTransverseErrorMultiplier=initialStepSeeds. OriginTransverseErrorMultiplier, SeedMomentumForBOFF=initialStepSeeds.SeedMomentumForBOFF, TTRHBuilder=initialStepSeeds.TTRHBuilder, forceKinematicWithRegionDirection=initialStepSeeds. forceKinematicWithRegionDirection, magneticField=initialStepSeeds.magneticField, propagator=initialStepSeeds.propagator, ) _initialStepHitQuadrupletsMerging.SeedComparitorPSet = initialStepSeeds.SeedComparitorPSet trackingPhase1PU70.toReplaceWith(initialStepHitQuadruplets, _initialStepHitQuadrupletsMerging) trackingPhase1PU70.toModify(initialStepSeeds, seedingHitSets="initialStepHitQuadruplets") # building import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff _initialStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone( minimumNumberOfHits=3, minPt=0.2, ) initialStepTrajectoryFilterBase = _initialStepTrajectoryFilterBase.clone( maxCCCLostHits=0, minGoodStripCharge=cms.PSet( refToPSet_=cms.string('SiStripClusterChargeCutLoose'))) from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 _tracker_apv_vfp30_2016.toModify(initialStepTrajectoryFilterBase,
# temporary... _initialStepHitQuadrupletsMerging.SeedCreatorPSet = cms.PSet( ComponentName = cms.string("SeedFromConsecutiveHitsCreator"), MinOneOverPtError = initialStepSeeds.MinOneOverPtError, OriginTransverseErrorMultiplier = initialStepSeeds.OriginTransverseErrorMultiplier, SeedMomentumForBOFF = initialStepSeeds.SeedMomentumForBOFF, TTRHBuilder = initialStepSeeds.TTRHBuilder, forceKinematicWithRegionDirection = initialStepSeeds.forceKinematicWithRegionDirection, magneticField = initialStepSeeds.magneticField, propagator = initialStepSeeds.propagator, ) _initialStepHitQuadrupletsMerging.SeedComparitorPSet = initialStepSeeds.SeedComparitorPSet trackingPhase1PU70.toReplaceWith(initialStepHitQuadruplets, _initialStepHitQuadrupletsMerging) trackingPhase1PU70.toModify(initialStepSeeds, seedingHitSets="initialStepHitQuadruplets") # building import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff _initialStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone( minimumNumberOfHits = 3, minPt = 0.2, ) initialStepTrajectoryFilterBase = _initialStepTrajectoryFilterBase.clone( maxCCCLostHits = 0, minGoodStripCharge = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutLoose')) ) from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 _tracker_apv_vfp30_2016.toModify(initialStepTrajectoryFilterBase, maxCCCLostHits = 2)
# For Phase1PU70 from RecoTracker.FinalTrackSelectors.trackListMerger_cfi import trackListMerger as _trackListMerger from Configuration.Eras.Modifier_trackingPhase1PU70_cff import trackingPhase1PU70 trackingPhase1PU70.toReplaceWith(earlyGeneralTracks, _trackListMerger.clone( TrackProducers = ['initialStepTracks', 'highPtTripletStepTracks', 'lowPtQuadStepTracks', 'lowPtTripletStepTracks', 'detachedQuadStepTracks', 'mixedTripletStepTracks', 'pixelPairStepTracks', 'tobTecStepTracks'], hasSelector = [1,1,1,1,1,1,1,1], indivShareFrac = [1.0,0.16,0.095,0.09,0.095,0.095,0.095,0.08], selectedTrackQuals = [cms.InputTag("initialStepSelector","initialStep"), cms.InputTag("highPtTripletStepSelector","highPtTripletStep"), cms.InputTag("lowPtQuadStepSelector","lowPtQuadStep"), cms.InputTag("lowPtTripletStepSelector","lowPtTripletStep"), cms.InputTag("detachedQuadStep"), cms.InputTag("mixedTripletStep"), cms.InputTag("pixelPairStepSelector","pixelPairStep"), cms.InputTag("tobTecStepSelector","tobTecStep")], setsToMerge = [cms.PSet( tLists=cms.vint32(0,1,2,3,4,5,6,7), pQual=cms.bool(True) ) ], copyExtras = True, makeReKeyedSeeds = cms.untracked.bool(False) )) # For Phase2PU140 from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140 trackingPhase2PU140.toReplaceWith(earlyGeneralTracks, _trackListMerger.clone( TrackProducers =['initialStepTracks',
SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone() ) _SeedComparitorPSet = dict(SeedComparitorPSet = dict(clusterShapeCacheSrc = "siPixelClusterShapeCachePreSplitting")) trackingLowPU.toModify(pixelTracksHitTriplets, **_SeedComparitorPSet) trackingPhase1PU70.toModify(pixelTracksHitTriplets, **_SeedComparitorPSet) trackingPhase2PU140.toModify(pixelTracksHitTriplets, maxElement=0, **_SeedComparitorPSet) pixelTracksHitQuadruplets = _pixelQuadrupletMergerEDProducer.clone( triplets = "pixelTracksHitTriplets", layerList = dict(refToPSet_ = cms.string("PixelSeedMergerQuadruplets")), ) # Pixel tracks pixelTracks = _pixelTracksDefault.clone() _SeedingHitSets = dict(SeedingHitSets = "pixelTracksHitQuadruplets") trackingPhase1PU70.toModify(pixelTracks, **_SeedingHitSets) trackingPhase2PU140.toModify(pixelTracks, **_SeedingHitSets) pixelTracksSequence = cms.Sequence( pixelTracksTrackingRegions + pixelTracksHitDoublets + pixelTracksHitTriplets + pixelFitterByHelixProjections + pixelTrackFilterByKinematics + pixelTracks ) _pixelTracksSequence_quad = pixelTracksSequence.copy() _pixelTracksSequence_quad.replace(pixelTracksHitTriplets, pixelTracksHitTriplets+pixelTracksHitQuadruplets) trackingPhase1PU70.toReplaceWith(pixelTracksSequence, _pixelTracksSequence_quad) trackingPhase2PU140.toReplaceWith(pixelTracksSequence, _pixelTracksSequence_quad)
from Configuration.Eras.Modifier_trackingPhase1PU70_cff import trackingPhase1PU70 trackingPhase1PU70.toReplaceWith( preDuplicateMergingGeneralTracks, _trackListMerger.clone( TrackProducers=[ "earlyGeneralTracks", "muonSeededTracksInOut", "muonSeededTracksOutIn", ], hasSelector=[0, 1, 1], selectedTrackQuals=[ cms.InputTag( "muonSeededTracksInOutSelector", "muonSeededTracksInOutHighPurity"), # not used but needed cms.InputTag("muonSeededTracksInOutSelector", "muonSeededTracksInOutHighPurity"), cms.InputTag("muonSeededTracksOutInSelector", "muonSeededTracksOutInHighPurity"), ], mvaValueTags=cms.VInputTag( cms.InputTag("earlyGeneralTracks", "MVAVals"), cms.InputTag("muonSeededTracksInOutSelector", "MVAVals"), cms.InputTag("muonSeededTracksOutInSelector", "MVAVals"), ), setsToMerge=[ cms.PSet(pQual=cms.bool(True), tLists=cms.vint32(0, 1, 2)) ], FoundHitBonus=100.0, LostHitPenalty=1.0, copyExtras=True, makeReKeyedSeeds=cms.untracked.bool(False)))
) ###------------- MeasurementEstimator, defining the searcgh window for pattern recongnition ---------------- from TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi import Chi2MeasurementEstimator as _Chi2MeasurementEstimator _muonSeededMeasurementEstimatorForInOutBase = _Chi2MeasurementEstimator.clone( ComponentName = cms.string('muonSeededMeasurementEstimatorForInOut'), MaxChi2 = cms.double(80.0), ## was 30 ## TO BE TUNED nSigma = cms.double(4.), ## was 3 ## TO BE TUNED ) muonSeededMeasurementEstimatorForInOut = _muonSeededMeasurementEstimatorForInOutBase.clone( MaxSagitta = cms.double(-1.) ) from Configuration.Eras.Modifier_trackingPhase1PU70_cff import trackingPhase1PU70 trackingPhase1PU70.toReplaceWith(muonSeededMeasurementEstimatorForInOut, _muonSeededMeasurementEstimatorForInOutBase.clone( MaxChi2 = 400 )) from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140 trackingPhase2PU140.toModify(muonSeededMeasurementEstimatorForInOut, MaxChi2 = 400.0, MaxSagitta = 2) _muonSeededMeasurementEstimatorForOutInBase = _Chi2MeasurementEstimator.clone( ComponentName = cms.string('muonSeededMeasurementEstimatorForOutIn'), MaxChi2 = cms.double(30.0), ## was 30 ## TO BE TUNED nSigma = cms.double(3.), ## was 3 ## TO BE TUNED ) from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 as _tracker_apv_vfp30_2016 _tracker_apv_vfp30_2016.toModify(_muonSeededMeasurementEstimatorForOutInBase, MinPtForHitRecoveryInGluedDet=1e9) muonSeededMeasurementEstimatorForOutIn = _muonSeededMeasurementEstimatorForOutInBase.clone( MaxSagitta = cms.double(-1.) ) trackingPhase1PU70.toReplaceWith(muonSeededMeasurementEstimatorForOutIn, _muonSeededMeasurementEstimatorForOutInBase)
from RecoLocalTracker.SubCollectionProducers.trackClusterRemover_cfi import trackClusterRemover as _trackClusterRemover _convClustersBase = _trackClusterRemover.clone( maxChi2 = cms.double(30.0), trajectories = cms.InputTag("tobTecStepTracks"), pixelClusters = cms.InputTag("siPixelClusters"), stripClusters = cms.InputTag("siStripClusters"), oldClusterRemovalInfo = cms.InputTag("tobTecStepClusters"), TrackQuality = cms.string('highPurity'), ) convClusters = _convClustersBase.clone( trackClassifier = cms.InputTag('tobTecStep',"QualityMasks"), ) from Configuration.Eras.Modifier_trackingPhase1PU70_cff import trackingPhase1PU70 trackingPhase1PU70.toReplaceWith(convClusters, _convClustersBase.clone( overrideTrkQuals = "tobTecStepSelector:tobTecStep", )) #Phase2 : configuring the phase2 track Cluster Remover from RecoLocalTracker.SubCollectionProducers.phase2trackClusterRemover_cfi import phase2trackClusterRemover as _phase2trackClusterRemover from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140 trackingPhase2PU140.toReplaceWith(convClusters, _phase2trackClusterRemover.clone( maxChi2 = 30.0, phase2pixelClusters = "siPixelClusters", phase2OTClusters = "siPhase2Clusters", TrackQuality = 'highPurity', minNumberOfLayersWithMeasBeforeFiltering = 0, trajectories = cms.InputTag("detachedQuadStepTracks"), oldClusterRemovalInfo = cms.InputTag("detachedQuadStepClusters"), overrideTrkQuals = cms.InputTag("detachedQuadStepSelector","detachedQuadStepTrk"), )
from RecoTracker.ConversionSeedGenerators.ConversionStep2_cff import * from RecoLocalTracker.SubCollectionProducers.trackClusterRemover_cfi import trackClusterRemover as _trackClusterRemover _convClustersBase = _trackClusterRemover.clone( maxChi2=cms.double(30.0), trajectories=cms.InputTag("tobTecStepTracks"), pixelClusters=cms.InputTag("siPixelClusters"), stripClusters=cms.InputTag("siStripClusters"), oldClusterRemovalInfo=cms.InputTag("tobTecStepClusters"), TrackQuality=cms.string('highPurity'), ) convClusters = _convClustersBase.clone(trackClassifier=cms.InputTag( 'tobTecStep', "QualityMasks"), ) from Configuration.Eras.Modifier_trackingPhase1PU70_cff import trackingPhase1PU70 trackingPhase1PU70.toReplaceWith( convClusters, _convClustersBase.clone( overrideTrkQuals="tobTecStepSelector:tobTecStep", )) #Phase2 : configuring the phase2 track Cluster Remover from RecoLocalTracker.SubCollectionProducers.phase2trackClusterRemover_cfi import phase2trackClusterRemover as _phase2trackClusterRemover from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140 trackingPhase2PU140.toReplaceWith( convClusters, _phase2trackClusterRemover.clone( maxChi2=30.0, phase2pixelClusters="siPixelClusters", phase2OTClusters="siPhase2Clusters", TrackQuality='highPurity', minNumberOfLayersWithMeasBeforeFiltering=0, trajectories=cms.InputTag("detachedQuadStepTracks"), oldClusterRemovalInfo=cms.InputTag("detachedQuadStepClusters"),
# QUALITY CUTS DURING TRACK BUILDING import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff _pixelPairStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone( minimumNumberOfHits = 3, minPt = 0.1, ) pixelPairStepTrajectoryFilterBase = _pixelPairStepTrajectoryFilterBase.clone( seedPairPenalty =0, maxCCCLostHits = 0, minGoodStripCharge = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutLoose')) ) from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 _tracker_apv_vfp30_2016.toModify(pixelPairStepTrajectoryFilterBase, maxCCCLostHits = 2) trackingLowPU.toReplaceWith(pixelPairStepTrajectoryFilterBase, _pixelPairStepTrajectoryFilterBase) trackingPhase1PU70.toReplaceWith(pixelPairStepTrajectoryFilterBase, _pixelPairStepTrajectoryFilterBase.clone( maxLostHitsFraction = 1./10., constantValueForLostHitsFractionFilter = 0.801, )) trackingPhase2PU140.toReplaceWith(pixelPairStepTrajectoryFilterBase, _pixelPairStepTrajectoryFilterBase.clone( maxLostHitsFraction = 1./10., constantValueForLostHitsFractionFilter = 0.701, )) import RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi pixelPairStepTrajectoryFilterShape = RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone() pixelPairStepTrajectoryFilter = cms.PSet( ComponentType = cms.string('CompositeTrajectoryFilter'), filters = cms.VPSet( cms.PSet( refToPSet_ = cms.string('pixelPairStepTrajectoryFilterBase')), # cms.PSet( refToPSet_ = cms.string('pixelPairStepTrajectoryFilterShape')) ), )
import FWCore.ParameterSet.Config as cms from RecoPixelVertexing.PixelTrackFitting.PixelTracks_cff import * # # for STARTUP ONLY use try and use Offline 3D PV from pixelTracks, with adaptive vertex # #from RecoPixelVertexing.PixelVertexFinding.PixelVertexes_cff import * from RecoVertex.PrimaryVertexProducer.OfflinePixel3DPrimaryVertices_cfi import * recopixelvertexing = cms.Sequence(PixelLayerTriplets * pixelTracksSequence * pixelVertices) # For LowPU and Phase1PU70 PixelLayerTripletsPreSplitting = PixelLayerTriplets.clone( BPix=dict(HitProducer="siPixelRecHitsPreSplitting"), FPix=dict(HitProducer="siPixelRecHitsPreSplitting"), ) _recopixelvertexing_LowPU_Phase1PU70 = recopixelvertexing.copy() _recopixelvertexing_LowPU_Phase1PU70.replace(PixelLayerTriplets, PixelLayerTripletsPreSplitting) from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU trackingLowPU.toReplaceWith(recopixelvertexing, _recopixelvertexing_LowPU_Phase1PU70) from Configuration.Eras.Modifier_trackingPhase1PU70_cff import trackingPhase1PU70 trackingPhase1PU70.toReplaceWith(recopixelvertexing, _recopixelvertexing_LowPU_Phase1PU70) from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140 trackingPhase2PU140.toReplaceWith(recopixelvertexing, _recopixelvertexing_LowPU_Phase1PU70)
# Phase1PU70 from Configuration.Eras.Modifier_trackingPhase1PU70_cff import trackingPhase1PU70 trackingPhase1PU70.toModify(tobTecStepTrackingRegionsPair, RegionPSet=dict(ptMin=1.0, originHalfLength=15.0, originRadius=2.0)) trackingPhase1PU70.toModify(tobTecStepHitDoubletsPair, seedingLayers='tobTecStepSeedLayers') trackingPhase1PU70.toReplaceWith( tobTecStepSeeds, tobTecStepSeedsPair.clone( OriginTransverseErrorMultiplier=3.0, SeedComparitorPSet=cms. PSet( # FIXME: is this defined in any cfi that could be imported instead of copy-paste? ComponentName=cms.string('PixelClusterShapeSeedComparitor'), FilterAtHelixStage=cms.bool(True), FilterPixelHits=cms.bool(False), FilterStripHits=cms.bool(True), ClusterShapeHitFilterName=cms.string('ClusterShapeHitFilter'), ClusterShapeCacheSrc=cms.InputTag( "siPixelClusterShapeCache" ) # not really needed here since FilterPixelHits=False ), )) # QUALITY CUTS DURING TRACK BUILDING (for inwardss and outwards track building steps) import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff _tobTecStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone( maxLostHits=0, minimumNumberOfHits=5, minPt=0.1, minHitsMinPt=3) tobTecStepTrajectoryFilter = _tobTecStepTrajectoryFilterBase.clone( seedPairPenalty=1, ) trackingLowPU.toReplaceWith(
seedingHitSets = "tobTecStepHitDoubletsPair", )) # Phase1PU70 from Configuration.Eras.Modifier_trackingPhase1PU70_cff import trackingPhase1PU70 trackingPhase1PU70.toModify(tobTecStepTrackingRegionsPair, RegionPSet = dict( ptMin = 1.0, originHalfLength = 15.0, originRadius = 2.0 )) trackingPhase1PU70.toModify(tobTecStepHitDoubletsPair, seedingLayers = 'tobTecStepSeedLayers') trackingPhase1PU70.toReplaceWith(tobTecStepSeeds, tobTecStepSeedsPair.clone( OriginTransverseErrorMultiplier = 3.0, SeedComparitorPSet = cms.PSet(# FIXME: is this defined in any cfi that could be imported instead of copy-paste? ComponentName = cms.string('PixelClusterShapeSeedComparitor'), FilterAtHelixStage = cms.bool(True), FilterPixelHits = cms.bool(False), FilterStripHits = cms.bool(True), ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'), ClusterShapeCacheSrc = cms.InputTag("siPixelClusterShapeCache") # not really needed here since FilterPixelHits=False ), )) # QUALITY CUTS DURING TRACK BUILDING (for inwardss and outwards track building steps) import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff _tobTecStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone( maxLostHits = 0, minimumNumberOfHits = 5, minPt = 0.1, minHitsMinPt = 3 )
originHalfLength = 30.0, originRadius = 6.0, )) )) # Phase1PU70 from Configuration.Eras.Modifier_trackingPhase1PU70_cff import trackingPhase1PU70 trackingPhase1PU70.toReplaceWith(tobTecStepSeeds, RecoTracker.TkSeedGenerator.GlobalMixedSeeds_cff.globalMixedSeeds.clone( OrderedHitsFactoryPSet = dict(SeedingLayers = 'tobTecStepSeedLayers'), RegionFactoryPSet = dict( RegionPSet = dict( ptMin = 1.0, originHalfLength = 15.0, originRadius = 2.0 ) ), SeedCreatorPSet = dict(OriginTransverseErrorMultiplier = 3.0), SeedComparitorPSet = cms.PSet( ComponentName = cms.string('PixelClusterShapeSeedComparitor'), FilterAtHelixStage = cms.bool(True), FilterPixelHits = cms.bool(False), FilterStripHits = cms.bool(True), ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'), ClusterShapeCacheSrc = cms.InputTag("siPixelClusterShapeCache") # not really needed here since FilterPixelHits=False ), )) # QUALITY CUTS DURING TRACK BUILDING (for inwardss and outwards track building steps) import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff _tobTecStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone( maxLostHits = 0,
########## vertexAnalysisSelection = cms.Sequence( cms.ignore(selectedOfflinePrimaryVertices) + cms.ignore(selectedOfflinePrimaryVerticesWithBS)) ########## vertexAnalysisSequence = cms.Sequence(vertexAnalysisSelection + vertexAnalysis) vertexAnalysisSequenceTrackingOnly = cms.Sequence(vertexAnalysisSelection + vertexAnalysisTrackingOnly) from SimTracker.TrackAssociation.trackingParticleRecoTrackAsssociation_cfi import trackingParticleRecoTrackAsssociation as _trackingParticleRecoTrackAsssociation trackingParticlePixelTrackAsssociation = _trackingParticleRecoTrackAsssociation.clone( label_tr="pixelTracks") _vertexAnalysisSequenceTrackingOnly_trackingLowPU = vertexAnalysisSequenceTrackingOnly.copy( ) _vertexAnalysisSequenceTrackingOnly_trackingLowPU += ( trackingParticlePixelTrackAsssociation + selectedPixelVertices + pixelVertexAnalysisTrackingOnly) trackingLowPU.toReplaceWith(vertexAnalysisSequenceTrackingOnly, _vertexAnalysisSequenceTrackingOnly_trackingLowPU) trackingPhase1PU70.toReplaceWith( vertexAnalysisSequenceTrackingOnly, _vertexAnalysisSequenceTrackingOnly_trackingLowPU) trackingPhase2PU140.toReplaceWith( vertexAnalysisSequenceTrackingOnly, _vertexAnalysisSequenceTrackingOnly_trackingLowPU)
from RecoLocalCalo.Castor.Castor_cff import * from RecoLocalCalo.Configuration.hcalGlobalReco_cff import * globalreco_tracking = cms.Sequence(offlineBeamSpot* MeasurementTrackerEventPreSplitting* # unclear where to put this siPixelClusterShapeCachePreSplitting* # unclear where to put this standalonemuontracking* trackingGlobalReco* hcalGlobalRecoSequence* vertexreco) _globalreco_tracking_LowPU_Phase1PU70 = globalreco_tracking.copy() _globalreco_tracking_LowPU_Phase1PU70.replace(trackingGlobalReco, recopixelvertexing+trackingGlobalReco) from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU trackingLowPU.toReplaceWith(globalreco_tracking, _globalreco_tracking_LowPU_Phase1PU70) from Configuration.Eras.Modifier_trackingPhase1PU70_cff import trackingPhase1PU70 trackingPhase1PU70.toReplaceWith(globalreco_tracking, _globalreco_tracking_LowPU_Phase1PU70) from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140 trackingPhase2PU140.toReplaceWith(globalreco_tracking, _globalreco_tracking_LowPU_Phase1PU70) globalreco = cms.Sequence(globalreco_tracking* particleFlowCluster* ecalClusters* caloTowersRec* egammaGlobalReco* jetGlobalReco* muonGlobalReco* pfTrackingGlobalReco* muoncosmicreco* CastorFullReco) _phase2_globalreco = globalreco.copyAndExclude([CastorFullReco])
import FWCore.ParameterSet.Config as cms from RecoPixelVertexing.PixelTrackFitting.PixelTracks_cff import * # # for STARTUP ONLY use try and use Offline 3D PV from pixelTracks, with adaptive vertex # #from RecoPixelVertexing.PixelVertexFinding.PixelVertexes_cff import * from RecoVertex.PrimaryVertexProducer.OfflinePixel3DPrimaryVertices_cfi import * recopixelvertexing = cms.Sequence(PixelLayerTriplets*pixelTracksSequence*pixelVertices) # For LowPU and Phase1PU70 PixelLayerTripletsPreSplitting = PixelLayerTriplets.clone( BPix = dict(HitProducer = "siPixelRecHitsPreSplitting"), FPix = dict(HitProducer = "siPixelRecHitsPreSplitting"), ) _recopixelvertexing_LowPU_Phase1PU70 = recopixelvertexing.copy() _recopixelvertexing_LowPU_Phase1PU70.replace(PixelLayerTriplets, PixelLayerTripletsPreSplitting) from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU trackingLowPU.toReplaceWith(recopixelvertexing, _recopixelvertexing_LowPU_Phase1PU70) from Configuration.Eras.Modifier_trackingPhase1PU70_cff import trackingPhase1PU70 trackingPhase1PU70.toReplaceWith(recopixelvertexing, _recopixelvertexing_LowPU_Phase1PU70) from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140 trackingPhase2PU140.toReplaceWith(recopixelvertexing, _recopixelvertexing_LowPU_Phase1PU70)
minPt = 0.2, ) initialStepTrajectoryFilterBase = _initialStepTrajectoryFilterBase.clone( maxCCCLostHits = 0, minGoodStripCharge = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutLoose')) ) from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 _tracker_apv_vfp30_2016.toModify(initialStepTrajectoryFilterBase, maxCCCLostHits = 2) initialStepTrajectoryFilterInOut = initialStepTrajectoryFilterBase.clone( minimumNumberOfHits = 4, seedExtension = 1, strictSeedExtension = True, # don't allow inactive pixelSeedExtension = True, ) trackingLowPU.toReplaceWith(initialStepTrajectoryFilterBase, _initialStepTrajectoryFilterBase) trackingPhase1PU70.toReplaceWith(initialStepTrajectoryFilterBase, _initialStepTrajectoryFilterBase) import RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi initialStepTrajectoryFilterShape = RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone() initialStepTrajectoryFilter = cms.PSet( ComponentType = cms.string('CompositeTrajectoryFilter'), filters = cms.VPSet( cms.PSet( refToPSet_ = cms.string('initialStepTrajectoryFilterBase')), # cms.PSet( refToPSet_ = cms.string('initialStepTrajectoryFilterShape')) ), ) trackingPhase2PU140.toReplaceWith(initialStepTrajectoryFilter, TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone( minimumNumberOfHits = 3, minPt = 0.2 )
# For Phase1PU70 from RecoTracker.FinalTrackSelectors.trackListMerger_cfi import trackListMerger as _trackListMerger from Configuration.Eras.Modifier_trackingPhase1PU70_cff import trackingPhase1PU70 trackingPhase1PU70.toReplaceWith(preDuplicateMergingGeneralTracks, _trackListMerger.clone( TrackProducers = [ "earlyGeneralTracks", "muonSeededTracksInOut", "muonSeededTracksOutIn", ], hasSelector = [0,1,1], selectedTrackQuals = [ cms.InputTag("muonSeededTracksInOutSelector","muonSeededTracksInOutHighPurity"), # not used but needed cms.InputTag("muonSeededTracksInOutSelector","muonSeededTracksInOutHighPurity"), cms.InputTag("muonSeededTracksOutInSelector","muonSeededTracksOutInHighPurity"), ], mvaValueTags = cms.VInputTag( cms.InputTag("earlyGeneralTracks","MVAVals"), cms.InputTag("muonSeededTracksInOutSelector","MVAVals"), cms.InputTag("muonSeededTracksOutInSelector","MVAVals"), ), setsToMerge = [cms.PSet(pQual = cms.bool(True), tLists = cms.vint32(0, 1,2))], FoundHitBonus = 100.0, LostHitPenalty = 1.0, copyExtras = True, makeReKeyedSeeds = cms.untracked.bool(False) )) # For Phase2PU140 from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140 trackingPhase2PU140.toReplaceWith(preDuplicateMergingGeneralTracks, _trackListMerger.clone(
trackingPhase1PU70.toModify(pixelTracksHitDoublets, **_seedingLayers) trackingPhase2PU140.toModify(pixelTracksHitDoublets, **_seedingLayers) pixelTracksHitTriplets = _pixelTripletHLTEDProducer.clone( doublets = "pixelTracksHitDoublets", produceSeedingHitSets = True, SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone() ) _SeedComparitorPSet = dict(SeedComparitorPSet = dict(clusterShapeCacheSrc = "siPixelClusterShapeCachePreSplitting")) trackingLowPU.toModify(pixelTracksHitTriplets, **_SeedComparitorPSet) trackingPhase1PU70.toModify(pixelTracksHitTriplets, **_SeedComparitorPSet) trackingPhase2PU140.toModify(pixelTracksHitTriplets, maxElement=0, **_SeedComparitorPSet) pixelTracksHitQuadruplets = _pixelQuadrupletMergerEDProducer.clone( triplets = "pixelTracksHitTriplets", layerList = dict(refToPSet_ = cms.string("PixelSeedMergerQuadruplets")), ) pixelTracksSequence = cms.Sequence( pixelTracksTrackingRegions + pixelTracksHitDoublets + pixelTracksHitTriplets + pixelFitterByHelixProjections + pixelTrackFilterByKinematics + pixelTracks ) _pixelTracksSequence_quad = pixelTracksSequence.copy() _pixelTracksSequence_quad.replace(pixelTracksHitTriplets, pixelTracksHitTriplets+pixelTracksHitQuadruplets) trackingPhase1PU70.toReplaceWith(pixelTracksSequence, _pixelTracksSequence_quad) trackingPhase2PU140.toReplaceWith(pixelTracksSequence, _pixelTracksSequence_quad)
layerList=cms.PSet( refToPSet_=cms.string("PixelSeedMergerQuadruplets")), addRemainingTriplets=cms.bool(False), mergeTriplets=cms.bool(True), ttrhBuilderLabel=cms.string('PixelTTRHBuilderWithoutAngle'))) # QUALITY CUTS DURING TRACK BUILDING import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff as _TrajectoryFilter_cff _lowPtQuadStepTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone( minimumNumberOfHits=3, minPt=0.075, ) lowPtQuadStepTrajectoryFilterBase = _lowPtQuadStepTrajectoryFilterBase.clone( maxCCCLostHits=0, minGoodStripCharge=dict(refToPSet_='SiStripClusterChargeCutLoose')) trackingPhase1PU70.toReplaceWith(lowPtQuadStepTrajectoryFilterBase, _lowPtQuadStepTrajectoryFilterBase) trackingPhase2PU140.toReplaceWith(lowPtQuadStepTrajectoryFilterBase, _lowPtQuadStepTrajectoryFilterBase) from RecoPixelVertexing.PixelLowPtUtilities.ClusterShapeTrajectoryFilter_cfi import * # Composite filter lowPtQuadStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone( filters=[ cms.PSet(refToPSet_=cms.string('lowPtQuadStepTrajectoryFilterBase')) ]) trackingPhase1PU70.toModify( lowPtQuadStepTrajectoryFilter, filters=lowPtQuadStepTrajectoryFilter.filters.value() + [cms.PSet(refToPSet_=cms.string('ClusterShapeTrajectoryFilter'))]) trackingPhase2PU140.toModify( lowPtQuadStepTrajectoryFilter,
cms.InputTag('mixedTripletStepSeedsB'), ) # QUALITY CUTS DURING TRACK BUILDING import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff _mixedTripletStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone( # maxLostHits = 0, minimumNumberOfHits=3, minPt=0.1) mixedTripletStepTrajectoryFilter = _mixedTripletStepTrajectoryFilterBase.clone( constantValueForLostHitsFractionFilter=1.4, ) trackingLowPU.toReplaceWith( mixedTripletStepTrajectoryFilter, _mixedTripletStepTrajectoryFilterBase.clone(maxLostHits=0, )) trackingPhase1PU70.toReplaceWith( mixedTripletStepTrajectoryFilter, _mixedTripletStepTrajectoryFilterBase.clone(maxLostHits=0, )) # Propagator taking into account momentum uncertainty in multiple scattering calculation. import TrackingTools.MaterialEffects.MaterialPropagatorParabolicMf_cff import TrackingTools.MaterialEffects.MaterialPropagator_cfi mixedTripletStepPropagator = TrackingTools.MaterialEffects.MaterialPropagator_cfi.MaterialPropagator.clone( #mixedTripletStepPropagator = TrackingTools.MaterialEffects.MaterialPropagatorParabolicMf_cff.MaterialPropagatorParabolicMF.clone( ComponentName='mixedTripletStepPropagator', ptMin=0.1) import TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi mixedTripletStepPropagatorOpposite = TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi.OppositeMaterialPropagator.clone( #mixedTripletStepPropagatorOpposite = TrackingTools.MaterialEffects.MaterialPropagatorParabolicMf_cff.OppositeMaterialPropagatorParabolicMF.clone( ComponentName='mixedTripletStepPropagatorOpposite', ptMin=0.1)
CAThetaCut = 0.004, CAPhiCut = 0.07, CAHardPtCut = 0.3, )) # QUALITY CUTS DURING TRACK BUILDING import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff as _TrajectoryFilter_cff _highPtTripletStepTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone( minimumNumberOfHits = 3, minPt = 0.2, ) highPtTripletStepTrajectoryFilterBase = _highPtTripletStepTrajectoryFilterBase.clone( maxCCCLostHits = 0, minGoodStripCharge = dict(refToPSet_ = 'SiStripClusterChargeCutLoose') ) trackingPhase1PU70.toReplaceWith(highPtTripletStepTrajectoryFilterBase, _highPtTripletStepTrajectoryFilterBase) trackingPhase2PU140.toReplaceWith(highPtTripletStepTrajectoryFilterBase, _highPtTripletStepTrajectoryFilterBase) highPtTripletStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone( filters = [cms.PSet(refToPSet_ = cms.string('highPtTripletStepTrajectoryFilterBase'))] ) import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi highPtTripletStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone( ComponentName = 'highPtTripletStepChi2Est', nSigma = 3.0, MaxChi2 = 30.0, clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutLoose'), pTChargeCutThreshold = 15. ) trackingPhase1PU70.toModify(highPtTripletStepChi2Est, clusterChargeCut = dict(refToPSet_ = "SiStripClusterChargeCutNone")
pixelPairElectronSeeds* stripPairElectronSeedLayers* stripPairElectronTrackingRegions* stripPairElectronHitDoublets* stripPairElectronSeeds* newCombinedSeeds) _electronSeedsSeq_Phase1 = electronSeedsSeq.copy() _electronSeedsSeq_Phase1.replace(pixelPairStepSeedClusterMask, detachedTripletStepSeedClusterMask) trackingPhase1.toReplaceWith(electronSeedsSeq, _electronSeedsSeq_Phase1) trackingPhase1QuadProp.toReplaceWith(electronSeedsSeq, _electronSeedsSeq_Phase1) trackingPhase1PU70.toReplaceWith(electronSeedsSeq, cms.Sequence( initialStepSeedClusterMask* highPtTripletStepSeedClusterMask* pixelPairStepSeedClusterMask* tripletElectronSeedLayers* tripletElectronTrackingRegions* tripletElectronHitDoublets* tripletElectronHitTriplets* tripletElectronSeeds* newCombinedSeeds )) trackingPhase2PU140.toReplaceWith(electronSeedsSeq, cms.Sequence( initialStepSeedClusterMask* highPtTripletStepSeedClusterMask* pixelPairStepSeedClusterMask* tripletElectronSeedLayers* tripletElectronTrackingRegions* tripletElectronHitDoublets* tripletElectronHitTriplets* tripletElectronSeeds* newCombinedSeeds
trackingPhase2PU140.toModify(detachedQuadStepSeedLayers, layerList = RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff.PixelSeedMergerQuadruplets.layerList.value() ) # TrackingRegion from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi import globalTrackingRegionFromBeamSpotFixedZ as _globalTrackingRegionFromBeamSpotFixedZ detachedQuadStepTrackingRegions = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet = dict( ptMin = 0.3, originHalfLength = 15.0, originRadius = 1.5 )) from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi import globalTrackingRegionFromBeamSpot as _globalTrackingRegionFromBeamSpot from Configuration.Eras.Modifier_trackingPhase1PU70_cff import trackingPhase1PU70 trackingPhase1PU70.toReplaceWith(detachedQuadStepTrackingRegions, _globalTrackingRegionFromBeamSpot.clone(RegionPSet = dict( ptMin = 0.3, originRadius = 0.5, nSigmaZ = 4.0 ))) trackingPhase2PU140.toReplaceWith(detachedQuadStepTrackingRegions, _globalTrackingRegionFromBeamSpot.clone(RegionPSet = dict( ptMin = 0.45, originRadius = 0.7, nSigmaZ = 4.0 ))) # seeding from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer detachedQuadStepHitDoublets = _hitPairEDProducer.clone( seedingLayers = "detachedQuadStepSeedLayers", trackingRegions = "detachedQuadStepTrackingRegions", maxElement = 0, produceIntermediateHitDoublets = True,
cms.ignore(selectedOfflinePrimaryVertices) + cms.ignore(selectedOfflinePrimaryVerticesWithBS) ) ########## vertexAnalysisSequence = cms.Sequence( vertexAnalysisSelection + vertexAnalysis ) vertexAnalysisSequenceTrackingOnly = cms.Sequence( vertexAnalysisSelection + vertexAnalysisTrackingOnly ) from SimTracker.TrackAssociation.trackingParticleRecoTrackAsssociation_cfi import trackingParticleRecoTrackAsssociation as _trackingParticleRecoTrackAsssociation trackingParticlePixelTrackAsssociation = _trackingParticleRecoTrackAsssociation.clone( label_tr = "pixelTracks" ) _vertexAnalysisSequenceTrackingOnly_trackingLowPU = vertexAnalysisSequenceTrackingOnly.copy() _vertexAnalysisSequenceTrackingOnly_trackingLowPU += ( trackingParticlePixelTrackAsssociation + selectedPixelVertices + pixelVertexAnalysisTrackingOnly ) trackingLowPU.toReplaceWith(vertexAnalysisSequenceTrackingOnly, _vertexAnalysisSequenceTrackingOnly_trackingLowPU) trackingPhase1PU70.toReplaceWith(vertexAnalysisSequenceTrackingOnly, _vertexAnalysisSequenceTrackingOnly_trackingLowPU) trackingPhase2PU140.toReplaceWith(vertexAnalysisSequenceTrackingOnly, _vertexAnalysisSequenceTrackingOnly_trackingLowPU)
# QUALITY CUTS DURING TRACK BUILDING import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff _mixedTripletStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone( # maxLostHits = 0, minimumNumberOfHits = 3, minPt = 0.1 ) mixedTripletStepTrajectoryFilter = _mixedTripletStepTrajectoryFilterBase.clone( constantValueForLostHitsFractionFilter = 1.4, ) trackingLowPU.toReplaceWith(mixedTripletStepTrajectoryFilter, _mixedTripletStepTrajectoryFilterBase.clone( maxLostHits = 0, )) trackingPhase1PU70.toReplaceWith(mixedTripletStepTrajectoryFilter, _mixedTripletStepTrajectoryFilterBase.clone( maxLostHits = 0, )) # Propagator taking into account momentum uncertainty in multiple scattering calculation. import TrackingTools.MaterialEffects.MaterialPropagatorParabolicMf_cff import TrackingTools.MaterialEffects.MaterialPropagator_cfi mixedTripletStepPropagator = TrackingTools.MaterialEffects.MaterialPropagator_cfi.MaterialPropagator.clone( #mixedTripletStepPropagator = TrackingTools.MaterialEffects.MaterialPropagatorParabolicMf_cff.MaterialPropagatorParabolicMF.clone( ComponentName = 'mixedTripletStepPropagator', ptMin = 0.1 ) import TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi mixedTripletStepPropagatorOpposite = TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi.OppositeMaterialPropagator.clone( #mixedTripletStepPropagatorOpposite = TrackingTools.MaterialEffects.MaterialPropagatorParabolicMf_cff.OppositeMaterialPropagatorParabolicMF.clone( ComponentName = 'mixedTripletStepPropagatorOpposite',
]) trackingPhase2PU140.toModify(newCombinedSeeds, seedCollections=[ 'initialStepSeeds', 'highPtTripletStepSeeds', 'pixelPairStepSeeds', 'tripletElectronSeeds' ]) electronSeedsSeq = cms.Sequence( initialStepSeedClusterMask * pixelPairStepSeedClusterMask * mixedTripletStepSeedClusterMask * pixelLessStepSeedClusterMask * tripletElectronSeedLayers * tripletElectronSeeds * tripletElectronClusterMask * pixelPairElectronSeedLayers * pixelPairElectronSeeds * stripPairElectronSeedLayers * stripPairElectronSeeds * newCombinedSeeds) _electronSeedsSeq_Phase1 = electronSeedsSeq.copy() _electronSeedsSeq_Phase1.replace(pixelPairStepSeedClusterMask, detachedTripletStepSeedClusterMask) trackingPhase1.toReplaceWith(electronSeedsSeq, _electronSeedsSeq_Phase1) trackingPhase1PU70.toReplaceWith( electronSeedsSeq, cms.Sequence(initialStepSeedClusterMask * highPtTripletStepSeedClusterMask * pixelPairStepSeedClusterMask * tripletElectronSeedLayers * tripletElectronSeeds * newCombinedSeeds)) trackingPhase2PU140.toReplaceWith( electronSeedsSeq, cms.Sequence(initialStepSeedClusterMask * highPtTripletStepSeedClusterMask * pixelPairStepSeedClusterMask * tripletElectronSeedLayers * tripletElectronSeeds * newCombinedSeeds))
addRemainingTriplets=cms.bool(False), mergeTriplets=cms.bool(True), ttrhBuilderLabel=cms.string('PixelTTRHBuilderWithoutAngle'))) # QUALITY CUTS DURING TRACK BUILDING import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff as _TrajectoryFilter_cff _detachedQuadStepTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone( minimumNumberOfHits=3, minPt=0.075, ) detachedQuadStepTrajectoryFilterBase = _detachedQuadStepTrajectoryFilterBase.clone( maxCCCLostHits=0, minGoodStripCharge=dict(refToPSet_='SiStripClusterChargeCutLoose')) trackingPhase1PU70.toReplaceWith( detachedQuadStepTrajectoryFilterBase, _detachedQuadStepTrajectoryFilterBase.clone( maxLostHitsFraction=1. / 10., constantValueForLostHitsFractionFilter=0.501, )) trackingPhase2PU140.toReplaceWith( detachedQuadStepTrajectoryFilterBase, _detachedQuadStepTrajectoryFilterBase.clone( maxLostHitsFraction=1. / 10., constantValueForLostHitsFractionFilter=0.301, )) detachedQuadStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone( filters=[ cms.PSet(refToPSet_=cms.string('detachedQuadStepTrajectoryFilterBase')) ]) trackingPhase1PU70.toModify( detachedQuadStepTrajectoryFilter, filters=detachedQuadStepTrajectoryFilter.filters.value() +
ComponentType=cms.string('TrajectoryCleanerBySharedHits'), allowSharedFirstHit=cms.bool(True)) ###------------- MeasurementEstimator, defining the searcgh window for pattern recongnition ---------------- from TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi import Chi2MeasurementEstimator as _Chi2MeasurementEstimator _muonSeededMeasurementEstimatorForInOutBase = _Chi2MeasurementEstimator.clone( ComponentName=cms.string('muonSeededMeasurementEstimatorForInOut'), MaxChi2=cms.double(80.0), ## was 30 ## TO BE TUNED nSigma=cms.double(4.), ## was 3 ## TO BE TUNED ) muonSeededMeasurementEstimatorForInOut = _muonSeededMeasurementEstimatorForInOutBase.clone( MaxSagitta=cms.double(-1.)) from Configuration.Eras.Modifier_trackingPhase1PU70_cff import trackingPhase1PU70 trackingPhase1PU70.toReplaceWith( muonSeededMeasurementEstimatorForInOut, _muonSeededMeasurementEstimatorForInOutBase.clone(MaxChi2=400)) from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140 trackingPhase2PU140.toModify(muonSeededMeasurementEstimatorForInOut, MaxChi2=400.0, MaxSagitta=2) _muonSeededMeasurementEstimatorForOutInBase = _Chi2MeasurementEstimator.clone( ComponentName=cms.string('muonSeededMeasurementEstimatorForOutIn'), MaxChi2=cms.double(30.0), ## was 30 ## TO BE TUNED nSigma=cms.double(3.), ## was 3 ## TO BE TUNED ) muonSeededMeasurementEstimatorForOutIn = _muonSeededMeasurementEstimatorForOutInBase.clone( MaxSagitta=cms.double(-1.)) trackingPhase1PU70.toReplaceWith(muonSeededMeasurementEstimatorForOutIn, _muonSeededMeasurementEstimatorForOutInBase)
_lowPtTripletStepStandardTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone( minimumNumberOfHits=3, minPt=0.075, ) lowPtTripletStepStandardTrajectoryFilter = _lowPtTripletStepStandardTrajectoryFilterBase.clone( maxCCCLostHits=0, minGoodStripCharge=cms.PSet( refToPSet_=cms.string('SiStripClusterChargeCutLoose'))) from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 _tracker_apv_vfp30_2016.toModify(lowPtTripletStepStandardTrajectoryFilter, maxCCCLostHits=1) from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU trackingLowPU.toReplaceWith(lowPtTripletStepStandardTrajectoryFilter, _lowPtTripletStepStandardTrajectoryFilterBase) trackingPhase1PU70.toReplaceWith( lowPtTripletStepStandardTrajectoryFilter, _lowPtTripletStepStandardTrajectoryFilterBase) trackingPhase2PU140.toReplaceWith( lowPtTripletStepStandardTrajectoryFilter, _lowPtTripletStepStandardTrajectoryFilterBase) from RecoPixelVertexing.PixelLowPtUtilities.ClusterShapeTrajectoryFilter_cfi import * # Composite filter lowPtTripletStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone( filters=[ cms.PSet( refToPSet_=cms.string('lowPtTripletStepStandardTrajectoryFilter')), # cms.PSet(refToPSet_ = cms.string('ClusterShapeTrajectoryFilter')) ]) trackingPhase1PU70.toModify( lowPtTripletStepTrajectoryFilter,