Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 09:59:38

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 
0004 
0005 # NEW CLUSTERS (remove previously used clusters)
0006 hiPixelPairClusters = cms.EDProducer("HITrackClusterRemover",
0007                                      clusterLessSolution= cms.bool(True),
0008                                      oldClusterRemovalInfo = cms.InputTag("hiLowPtTripletStepClusters"),
0009                                      trajectories = cms.InputTag("hiLowPtTripletStepTracks"),
0010                                      overrideTrkQuals = cms.InputTag('hiLowPtTripletStepSelector','hiLowPtTripletStep'),
0011                                      TrackQuality = cms.string('highPurity'),
0012                                      minNumberOfLayersWithMeasBeforeFiltering = cms.int32(0),
0013                                      pixelClusters = cms.InputTag("siPixelClusters"),
0014                                      stripClusters = cms.InputTag("siStripClusters"),
0015                                      Common = cms.PSet(
0016     maxChi2 = cms.double(9.0),
0017     ),
0018                                      Strip = cms.PSet(
0019     maxChi2 = cms.double(9.0),
0020     #Yen-Jie's mod to preserve merged clusters
0021     maxSize = cms.uint32(2)
0022     )
0023                                      )
0024 
0025 
0026 # SEEDING LAYERS
0027 import RecoTracker.TkSeedingLayers.PixelLayerPairs_cfi
0028 hiPixelPairSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerPairs_cfi.PixelLayerPairs.clone(
0029      layerList = ['BPix1+BPix2', 'BPix1+BPix3', 'BPix2+BPix3',
0030                   'BPix1+FPix1_pos', 'BPix1+FPix1_neg',
0031                   'BPix2+FPix1_pos', 'BPix2+FPix1_neg',
0032                   'FPix1_pos+FPix2_pos', 'FPix1_neg+FPix2_neg'],
0033      BPix = cms.PSet(
0034          TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'),
0035          HitProducer = cms.string('siPixelRecHits'),
0036          skipClusters = cms.InputTag('hiPixelPairClusters')
0037      ),
0038      FPix = cms.PSet(
0039          TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'),
0040          HitProducer = cms.string('siPixelRecHits'),
0041          skipClusters = cms.InputTag('hiPixelPairClusters')
0042      )
0043 )
0044 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
0045 trackingPhase1.toModify(hiPixelPairSeedLayers,
0046     layerList = ['BPix1+BPix4','BPix1+FPix1_pos','BPix1+FPix1_neg']  #only use first and fourth barrel layers or first barrel and first forward layer around area where BPIX2+3 are inactive
0047 )
0048 
0049 # SEEDS
0050 import RecoTracker.TkSeedGenerator.GlobalSeedsFromPairsWithVertices_cff
0051 hiPixelPairSeeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromPairsWithVertices_cff.globalSeedsFromPairsWithVertices.clone(
0052     RegionFactoryPSet = dict( 
0053         RegionPSet = dict(
0054             VertexCollection = "hiSelectedPixelVertex",
0055             ptMin = 1.0,
0056             originRadius = 0.005,
0057             nSigmaZ = 4.0,
0058             # sigmaZVertex is only used when usedFixedError is True -Matt
0059             sigmaZVertex = 4.0,
0060             useFixedError = False
0061         )
0062     ),
0063     OrderedHitsFactoryPSet = dict(
0064         SeedingLayers = 'hiPixelPairSeedLayers',
0065         maxElement = 5000000
0066     ),
0067     ClusterCheckPSet = dict(
0068         MaxNumberOfPixelClusters = 5000000,
0069         MaxNumberOfStripClusters = 50000000,
0070         cut = ""
0071     ),
0072     SeedComparitorPSet = cms.PSet(
0073         ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
0074         FilterAtHelixStage = cms.bool(True),
0075         FilterPixelHits = cms.bool(True),
0076         FilterStripHits = cms.bool(False),
0077         ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
0078         ClusterShapeCacheSrc = cms.InputTag("siPixelClusterShapeCache")
0079     )
0080 )
0081 #rectangular tracking region around area missing BPIX2/3 in Phase 1
0082 from RecoTracker.TkTrackingRegions.pointSeededTrackingRegion_cfi import pointSeededTrackingRegion as _pointSeededTrackingRegion
0083 hiPixelPairStepTrackingRegionPhase1 = _pointSeededTrackingRegion.clone(
0084     RegionPSet = dict(
0085         ptMin = 0.9,
0086         originRadius = 0.005,
0087         mode = "VerticesSigma",
0088         nSigmaZVertex = 4.0,
0089         vertexCollection = "hiSelectedPixelVertex",
0090         beamSpot = "offlineBeamSpot",
0091         whereToUseMeasurementTracker = "Never",
0092         deltaEta = 1.8,
0093         deltaPhi = 0.5,
0094         points = dict(
0095             eta = [0.0],
0096             phi = [3.0],
0097         )
0098     )
0099 )
0100 
0101 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
0102 hiPixelPairStepHitDoubletsPhase1 = _hitPairEDProducer.clone(
0103     seedingLayers = "hiPixelPairSeedLayers",
0104     trackingRegions = "hiPixelPairStepTrackingRegionPhase1",
0105     clusterCheck = "",
0106     produceSeedingHitSets = True, 
0107 )
0108 
0109 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff import seedCreatorFromRegionConsecutiveHitsEDProducer as _seedCreatorFromRegionConsecutiveHitsEDProducer
0110 hiPixelPairStepSeedsPhase1 = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
0111     seedingHitSets = "hiPixelPairStepHitDoubletsPhase1",
0112     SeedComparitorPSet = dict(
0113         ComponentName = 'PixelClusterShapeSeedComparitor',
0114         FilterAtHelixStage = cms.bool(True),
0115         FilterPixelHits = cms.bool(True),
0116         FilterStripHits = cms.bool(False),
0117         ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
0118         ClusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCache'),
0119     )
0120 )
0121 
0122 # QUALITY CUTS DURING TRACK BUILDING
0123 import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff
0124 hiPixelPairTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
0125     #maxLostHits = 0,
0126     minimumNumberOfHits = 6,
0127     minPt = 1.0
0128 )
0129 
0130 import TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi
0131 hiPixelPairChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
0132     ComponentName = 'hiPixelPairChi2Est',
0133     nSigma = 3.0,
0134     MaxChi2 = 9.0
0135 )
0136 
0137 # TRACK BUILDING
0138 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi
0139 hiPixelPairTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
0140     trajectoryFilter = dict(refToPSet_ = 'hiPixelPairTrajectoryFilter'),
0141     maxCand = 3,
0142     estimator = 'hiPixelPairChi2Est',
0143     maxDPhiForLooperReconstruction = 2.0,
0144     maxPtForLooperReconstruction = 0.7,
0145 )
0146 
0147 # MAKING OF TRACK CANDIDATES
0148 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
0149 hiPixelPairTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
0150     src = 'hiPixelPairSeeds',
0151     clustersToSkip = 'hiPixelPairClusters',
0152     TrajectoryBuilderPSet = dict(refToPSet_ = 'hiPixelPairTrajectoryBuilder'),
0153     ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
0154     numHitsForSeedCleaner = 50,
0155     onlyPixelHitsForSeedCleaner = True,
0156 )
0157 trackingPhase1.toModify(hiPixelPairTrackCandidates,
0158     src = 'hiPixelPairStepSeedsPhase1'
0159 )
0160 
0161 # TRACK FITTING
0162 import RecoTracker.TrackProducer.TrackProducer_cfi
0163 hiPixelPairGlobalPrimTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
0164     AlgorithmName = 'pixelPairStep',
0165     src = 'hiPixelPairTrackCandidates',
0166     Fitter = 'FlexibleKFFittingSmoother'
0167 )
0168 
0169 
0170 
0171 
0172 # Final selection
0173 import RecoHI.HiTracking.hiMultiTrackSelector_cfi
0174 hiPixelPairStepSelector = RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiMultiTrackSelector.clone(
0175     src = 'hiPixelPairGlobalPrimTracks',
0176     useAnyMVA = True,
0177     GBRForestLabel = 'HIMVASelectorIter6',
0178     GBRForestVars = ['chi2perdofperlayer', 'dxyperdxyerror', 'dzperdzerror', 'nhits', 'nlayers', 'eta'],
0179     trackSelectors= cms.VPSet(
0180     RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
0181         name = 'hiPixelPairStepLoose',
0182         useMVA = False
0183     ), #end of pset
0184     RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
0185         name = 'hiPixelPairStepTight',
0186         preFilterName = 'hiPixelPairStepLoose',
0187         useMVA = True,
0188         minMVA = -0.58
0189     ),
0190     RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
0191         name = 'hiPixelPairStep',
0192         preFilterName = 'hiPixelPairStepTight',
0193         useMVA = True,
0194         minMVA = 0.77
0195     ),
0196     ) #end of vpset
0197 ) #end of clone
0198 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
0199 trackingPhase1.toModify(hiPixelPairStepSelector, 
0200     useAnyMVA = False,
0201     trackSelectors= cms.VPSet(
0202         RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
0203             name = 'hiPixelPairStepLoose',
0204             useMVA = False
0205         ), #end of pset
0206         RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
0207             name = 'hiPixelPairStepTight',
0208             preFilterName = 'hiPixelPairStepLoose',
0209             useMVA = False,
0210             minMVA = -0.58
0211         ),
0212         RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
0213             name = 'hiPixelPairStep',
0214             preFilterName = 'hiPixelPairStepTight',
0215             useMVA = False,
0216             minMVA = 0.77
0217         ),
0218     ) #end of vpset
0219 )
0220 
0221 # Final sequence
0222 hiPixelPairStepTask = cms.Task(hiPixelPairClusters,
0223                                hiPixelPairSeedLayers,
0224                                hiPixelPairSeeds,
0225                                hiPixelPairTrackCandidates,
0226                                hiPixelPairGlobalPrimTracks,
0227                                hiPixelPairStepSelector)
0228 hiPixelPairStep = cms.Sequence(hiPixelPairStepTask)
0229 hiPixelPairStep_Phase1 = hiPixelPairStepTask.copy()
0230 hiPixelPairStep_Phase1.replace(hiPixelPairSeeds, cms.Task(hiPixelPairStepTrackingRegionPhase1,hiPixelPairStepHitDoubletsPhase1,hiPixelPairStepSeedsPhase1) )
0231 trackingPhase1.toReplaceWith(hiPixelPairStepTask, hiPixelPairStep_Phase1)