)) # QUALITY CUTS DURING TRACK BUILDING import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff as _TrajectoryFilter_cff _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) 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'))
produceIntermediateHitTriplets = True, ) trackingPhase1.toModify(initialStepSeedsPreSplitting, seedingHitSets = "initialStepHitQuadrupletsPreSplitting") trackingPhase1QuadProp.toModify(initialStepSeedsPreSplitting, seedingHitSets = "initialStepHitQuadrupletsPreSplitting") # building import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff initialStepTrajectoryFilterBasePreSplitting = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone( minimumNumberOfHits = 4, minPt = 0.2, 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(initialStepTrajectoryFilterBasePreSplitting, maxCCCLostHits = 2) import RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi initialStepTrajectoryFilterShapePreSplitting = RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone() initialStepTrajectoryFilterPreSplitting = cms.PSet( ComponentType = cms.string('CompositeTrajectoryFilter'), filters = cms.VPSet( cms.PSet( refToPSet_ = cms.string('initialStepTrajectoryFilterBasePreSplitting')), cms.PSet( refToPSet_ = cms.string('initialStepTrajectoryFilterShapePreSplitting'))), ) import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi initialStepChi2EstPreSplitting = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone( ComponentName = cms.string('initialStepChi2EstPreSplitting'), nSigma = cms.double(3.0), MaxChi2 = cms.double(16.0), clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutLoose')),
layerPairs=initialStepHitDoublets.layerPairs.value())) fastSim.toReplaceWith(initialStepSeeds, _fastSim_initialStepSeeds) # 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) from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff import pp_on_XeXe_2017 from Configuration.Eras.Modifier_pp_on_AA_2018_cff import pp_on_AA_2018 for e in [pp_on_XeXe_2017, pp_on_AA_2018]: e.toModify(initialStepTrajectoryFilterBase, minPt=0.6) highBetaStar_2018.toModify(initialStepTrajectoryFilterBase, minPt=0.05) initialStepTrajectoryFilterInOut = initialStepTrajectoryFilterBase.clone( minimumNumberOfHits=4, seedExtension=1, strictSeedExtension=True, # don't allow inactive pixelSeedExtension=True, ) from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU trackingLowPU.toReplaceWith(initialStepTrajectoryFilterBase,
#only use region B for pp_on_XY era for timing reasons (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(pixelPairStepSeeds, pixelPairStepSeedsB) # 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=dict(refToPSet_='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) trackingPhase1.toModify(pixelPairStepTrajectoryFilterBase, minimumNumberOfHits=4) trackingPhase2PU140.toReplaceWith( pixelPairStepTrajectoryFilterBase, _pixelPairStepTrajectoryFilterBase.clone( minimumNumberOfHits=4, maxLostHitsFraction=1. / 10., constantValueForLostHitsFractionFilter=0.701, )) highBetaStar_2018.toModify(pixelPairStepTrajectoryFilterBase, minPt=0.05) import RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi pixelPairStepTrajectoryFilterShape = RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone(
import FWCore.ParameterSet.Config as cms from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 as _tracker_apv_vfp30_2016 from RecoLocalTracker.SiStripClusterizer.SiStripClusterChargeCut_cfi import * from RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimatorDefault_cfi import Chi2ChargeMeasurementEstimatorDefault Chi2ChargeMeasurementEstimator = Chi2ChargeMeasurementEstimatorDefault.clone() Chi2ChargeMeasurementEstimator.clusterChargeCut = cms.PSet( refToPSet_=cms.string('SiStripClusterChargeCutTight')) _tracker_apv_vfp30_2016.toModify(Chi2ChargeMeasurementEstimator, MinPtForHitRecoveryInGluedDet=0.9)
###### Muon reconstruction module ##### from RecoMuon.MuonIdentification.earlyMuons_cfi import earlyMuons ###### SEEDER MODELS ###### import RecoTracker.SpecialSeedGenerators.outInSeedsFromStandaloneMuons_cfi import RecoTracker.SpecialSeedGenerators.inOutSeedsFromTrackerMuons_cfi muonSeededSeedsOutIn = RecoTracker.SpecialSeedGenerators.outInSeedsFromStandaloneMuons_cfi.outInSeedsFromStandaloneMuons.clone( src = "earlyMuons", ) muonSeededSeedsInOut = RecoTracker.SpecialSeedGenerators.inOutSeedsFromTrackerMuons_cfi.inOutSeedsFromTrackerMuons.clone( src = "earlyMuons", ) ### This is also needed for seeding from RecoTracker.SpecialSeedGenerators.outInSeedsFromStandaloneMuons_cfi import hitCollectorForOutInMuonSeeds from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 as _tracker_apv_vfp30_2016 _tracker_apv_vfp30_2016.toModify(hitCollectorForOutInMuonSeeds, MinPtForHitRecoveryInGluedDet=1e9) ###### EVENT-SETUP STUFF ####### ###---------- Trajectory Cleaner, deciding how overlapping track candidates are arbitrated ---------------- import TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi muonSeededTrajectoryCleanerBySharedHits = TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi.trajectoryCleanerBySharedHits.clone( ComponentName = cms.string('muonSeededTrajectoryCleanerBySharedHits'), fractionShared = cms.double(0.1), ValidHitBonus = cms.double(1000.0), MissingHitPenalty = cms.double(1.0), ComponentType = cms.string('TrajectoryCleanerBySharedHits'), allowSharedFirstHit = cms.bool(True) ) ###------------- MeasurementEstimator, defining the searcgh window for pattern recongnition ----------------
# 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) trackingPhase1.toModify(pixelPairStepTrajectoryFilterBase, minimumNumberOfHits = 4) trackingPhase1QuadProp.toModify(pixelPairStepTrajectoryFilterBase, minimumNumberOfHits = 4) trackingPhase2PU140.toReplaceWith(pixelPairStepTrajectoryFilterBase, _pixelPairStepTrajectoryFilterBase.clone( minimumNumberOfHits = 4, 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'))
)) # QUALITY CUTS DURING TRACK BUILDING import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff as _TrajectoryFilter_cff _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) trackingPhase2PU140.toReplaceWith(lowPtTripletStepStandardTrajectoryFilter, _lowPtTripletStepStandardTrajectoryFilterBase) pp_on_XeXe_2017.toModify(lowPtTripletStepStandardTrajectoryFilter, minPt=0.3) 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')) ] ) trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryFilter, filters = lowPtTripletStepTrajectoryFilter.filters + [cms.PSet(refToPSet_ = cms.string('ClusterShapeTrajectoryFilter'))]
import FWCore.ParameterSet.Config as cms ###### Muon reconstruction module ##### from RecoMuon.MuonIdentification.earlyMuons_cfi import earlyMuons ###### SEEDER MODELS ###### import RecoTracker.SpecialSeedGenerators.outInSeedsFromStandaloneMuons_cfi import RecoTracker.SpecialSeedGenerators.inOutSeedsFromTrackerMuons_cfi muonSeededSeedsOutIn = RecoTracker.SpecialSeedGenerators.outInSeedsFromStandaloneMuons_cfi.outInSeedsFromStandaloneMuons.clone( src="earlyMuons", ) muonSeededSeedsInOut = RecoTracker.SpecialSeedGenerators.inOutSeedsFromTrackerMuons_cfi.inOutSeedsFromTrackerMuons.clone( src="earlyMuons", ) ### This is also needed for seeding from RecoTracker.SpecialSeedGenerators.outInSeedsFromStandaloneMuons_cfi import hitCollectorForOutInMuonSeeds from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 as _tracker_apv_vfp30_2016 _tracker_apv_vfp30_2016.toModify(hitCollectorForOutInMuonSeeds, MinPtForHitRecoveryInGluedDet=1e9) ###### EVENT-SETUP STUFF ####### ###---------- Trajectory Cleaner, deciding how overlapping track candidates are arbitrated ---------------- import TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi muonSeededTrajectoryCleanerBySharedHits = TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi.trajectoryCleanerBySharedHits.clone( ComponentName=cms.string('muonSeededTrajectoryCleanerBySharedHits'), fractionShared=cms.double(0.1), ValidHitBonus=cms.double(1000.0), MissingHitPenalty=cms.double(1.0), 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
seedingHitSets='initialStepHitTripletsPreSplitting', ) trackingPhase1.toModify(initialStepSeedsPreSplitting, seedingHitSets='initialStepHitQuadrupletsPreSplitting') # building import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff initialStepTrajectoryFilterBasePreSplitting = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone( minimumNumberOfHits=4, minPt=0.2, 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(initialStepTrajectoryFilterBasePreSplitting, maxCCCLostHits=2) import RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi initialStepTrajectoryFilterShapePreSplitting = RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone( ) initialStepTrajectoryFilterPreSplitting = cms.PSet( ComponentType=cms.string('CompositeTrajectoryFilter'), filters=cms.VPSet( cms.PSet(refToPSet_=cms.string( 'initialStepTrajectoryFilterBasePreSplitting')), cms.PSet(refToPSet_=cms.string( 'initialStepTrajectoryFilterShapePreSplitting'))), ) import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
fracOfEventsToSimAPV = cms.double( 0.0 ), # fraction of events to simulate APV saturation ) ################################################# # activate APV simulation for 2016 Strip detector (UL 2016) # According to this document https://indico.cern.ch/event/560226/contributions/2277448/attachments/1324704/1988050/wgm_vfp_change_ebutz.pdf # the first LHC fill taken with vfp=0 settings is https://cmswbm.cern.ch/cmsdb/servlet/FillReport?FILL=5198 (run 278801) # cf Prompt-Reco DQM: https://tinyurl.com/y2gybwx7 # pre-VFP runs: 273150-278800 lumi: 19480.4566773 /pb # post-VFP runs: 278801-284044 lumi: 16755.0362868 /pb # ~53.8% of luminosity is affected by APV saturation ################################################# from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 tracker_apv_vfp30_2016.toModify(SiStripSimBlock, includeAPVSimulation = True, fracOfEventsToSimAPV = 1.0 ) from Configuration.ProcessModifiers.premix_stage1_cff import premix_stage1 premix_stage1.toModify(SiStripSimBlock, Noise = False, PreMixingMode = True, FedAlgorithm = 5, # special ZS mode: accept adc>0 includeAPVSimulation = False # APV simulation is off for premix stage1 ) from Configuration.Eras.Modifier_run2_common_cff import run2_common run2_common.toModify(SiStripSimBlock, CouplingConstantsRunIIDecB = True, #for TIB and TOB CouplingConstantsRunIIDecW = True, #for TID and TEC APVShapeDecoFile =cms.FileInPath("SimTracker/SiStripDigitizer/data/APVShapeDeco_320.txt")
import FWCore.ParameterSet.Config as cms from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 as _tracker_apv_vfp30_2016 from RecoLocalTracker.SiStripClusterizer.SiStripClusterChargeCut_cfi import * from RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimatorDefault_cfi import Chi2ChargeMeasurementEstimatorDefault Chi2ChargeMeasurementEstimator = Chi2ChargeMeasurementEstimatorDefault.clone() Chi2ChargeMeasurementEstimator.clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')) _tracker_apv_vfp30_2016.toModify(Chi2ChargeMeasurementEstimator, MinPtForHitRecoveryInGluedDet=0.9)