Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-01-11 23:32:41

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 
0004 # NEW CLUSTERS (remove previously used clusters)
0005 hiLowPtTripletStepClusters = cms.EDProducer("HITrackClusterRemover",
0006                                               clusterLessSolution= cms.bool(True),
0007                                               oldClusterRemovalInfo = cms.InputTag("hiDetachedTripletStepClusters"),
0008                                               trajectories = cms.InputTag("hiDetachedTripletStepTracks"),
0009                                               overrideTrkQuals = cms.InputTag("hiDetachedTripletStepSelector","hiDetachedTripletStep"),
0010                                               TrackQuality = cms.string('highPurity'),
0011                                               minNumberOfLayersWithMeasBeforeFiltering = cms.int32(0),
0012                                               pixelClusters = cms.InputTag("siPixelClusters"),
0013                                               stripClusters = cms.InputTag("siStripClusters"),
0014                                               Common = cms.PSet(
0015         maxChi2 = cms.double(9.0)
0016         ),
0017                                               Strip = cms.PSet(
0018         #Yen-Jie's mod to preserve merged clusters
0019         maxSize = cms.uint32(2),
0020         maxChi2 = cms.double(9.0)
0021         )
0022                                               )
0023 
0024 
0025 # SEEDING LAYERS
0026 import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi
0027 hiLowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone(
0028     BPix = dict(skipClusters = cms.InputTag('hiLowPtTripletStepClusters')),
0029     FPix = dict(skipClusters = cms.InputTag('hiLowPtTripletStepClusters'))
0030 )
0031 
0032 # SEEDS
0033 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cfi import globalTrackingRegionWithVertices as _globalTrackingRegionWithVertices
0034 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
0035 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi import pixelTripletHLTEDProducer as _pixelTripletHLTEDProducer
0036 from RecoPixelVertexing.PixelLowPtUtilities.ClusterShapeHitFilterESProducer_cfi import *
0037 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
0038 from RecoPixelVertexing.PixelLowPtUtilities.trackCleaner_cfi import *
0039 from RecoPixelVertexing.PixelTrackFitting.pixelFitterByHelixProjections_cfi import *
0040 from RecoHI.HiTracking.HIPixelTrackFilter_cff import *
0041 from RecoHI.HiTracking.HITrackingRegionProducer_cfi import *
0042 
0043 hiLowPtTripletStepTrackingRegions = _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
0044     precise = True,
0045     useMultipleScattering = False,
0046     useFakeVertices       = False,
0047     beamSpot = "offlineBeamSpot",
0048     useFixedError = False,
0049     nSigmaZ = 4.0,
0050     sigmaZVertex = 4.0,
0051     fixedError = 0.2,
0052     VertexCollection = "hiSelectedPixelVertex",
0053     ptMin = 0.4,
0054     useFoundVertices = True,
0055     originRadius = 0.02
0056 ))
0057 hiLowPtTripletStepTracksHitDoublets = _hitPairEDProducer.clone(
0058     clusterCheck = "",
0059     seedingLayers = "hiLowPtTripletStepSeedLayers",
0060     trackingRegions = "hiLowPtTripletStepTrackingRegions",
0061     maxElement = 50000000,
0062     produceIntermediateHitDoublets = True,
0063 )
0064 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
0065 hiLowPtTripletStepTracksHitTriplets = _pixelTripletHLTEDProducer.clone(
0066     doublets = "hiLowPtTripletStepTracksHitDoublets",
0067     #maxElement = 5000000,
0068     SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone(),
0069     produceSeedingHitSets = True,
0070 )
0071 
0072 from RecoPixelVertexing.PixelTriplets.caHitTripletEDProducer_cfi import caHitTripletEDProducer as _caHitTripletEDProducer
0073 hiLowPtTripletStepTracksHitDoubletsCA = hiLowPtTripletStepTracksHitDoublets.clone(
0074     layerPairs = [0,1]
0075 )
0076 hiLowPtTripletStepTracksHitTripletsCA = _caHitTripletEDProducer.clone(
0077     doublets = "hiLowPtTripletStepTracksHitDoubletsCA",
0078     extraHitRPhitolerance = hiLowPtTripletStepTracksHitTriplets.extraHitRPhitolerance,
0079     SeedComparitorPSet = hiLowPtTripletStepTracksHitTriplets.SeedComparitorPSet,
0080     maxChi2 = dict(
0081         pt1    = 0.8, pt2    = 2,
0082         value1 = 70 , value2 = 8,
0083     ),
0084     useBendingCorrection = True,
0085     CAThetaCut = 0.002,
0086     CAPhiCut = 0.05,
0087 )
0088 
0089 hiLowPtTripletStepPixelTracksFilter = hiFilter.clone(
0090     nSigmaLipMaxTolerance = 4.0,
0091     nSigmaTipMaxTolerance = 4.0,
0092     lipMax = 0,
0093     ptMin = 0.4,
0094 )
0095 
0096 import RecoPixelVertexing.PixelTrackFitting.pixelTracks_cfi as _mod
0097 
0098 hiLowPtTripletStepPixelTracks = _mod.pixelTracks.clone(
0099     passLabel  = 'Pixel primary tracks with vertex constraint',
0100     # Ordered Hits
0101     SeedingHitSets = "hiLowPtTripletStepTracksHitTriplets",
0102     # Fitter
0103     Fitter = "pixelFitterByHelixProjections",
0104     # Filter
0105     Filter = "hiLowPtTripletStepPixelTracksFilter",
0106     # Cleaner
0107     Cleaner = "trackCleaner"
0108 )
0109 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
0110 trackingPhase1.toModify(hiLowPtTripletStepPixelTracks,
0111     SeedingHitSets = "hiLowPtTripletStepTracksHitTripletsCA"
0112 )
0113 
0114 
0115 import RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi
0116 hiLowPtTripletStepSeeds = RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi.pixelTrackSeeds.clone(
0117         InputCollection = 'hiLowPtTripletStepPixelTracks'
0118 )
0119 
0120 
0121 # QUALITY CUTS DURING TRACK BUILDING
0122 import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff
0123 hiLowPtTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
0124     maxLostHits = 1,
0125     minimumNumberOfHits = 6,
0126     minPt = 0.4
0127 )
0128 
0129 import TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi
0130 hiLowPtTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
0131         ComponentName = 'hiLowPtTripletStepChi2Est',
0132             nSigma  = 3.0,
0133             MaxChi2 = 9.0
0134 )
0135 
0136 # TRACK BUILDING
0137 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi
0138 hiLowPtTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
0139     trajectoryFilter = dict(refToPSet_ = 'hiLowPtTripletStepTrajectoryFilter'),
0140     maxCand = 3,
0141     estimator = 'hiLowPtTripletStepChi2Est',
0142     maxDPhiForLooperReconstruction = 2.0,
0143     # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
0144     # of the outermost Tracker barrel layer (with B=3.8T)
0145     maxPtForLooperReconstruction = 0.7,
0146 )
0147 
0148 # MAKING OF TRACK CANDIDATES
0149 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
0150 hiLowPtTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
0151     src = 'hiLowPtTripletStepSeeds',
0152     ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
0153     numHitsForSeedCleaner = 50,
0154     onlyPixelHitsForSeedCleaner = True,
0155     TrajectoryBuilderPSet = dict(refToPSet_ = 'hiLowPtTripletStepTrajectoryBuilder'),
0156     clustersToSkip = 'hiLowPtTripletStepClusters',
0157     doSeedingRegionRebuilding = True,
0158     useHitsSplitting = True
0159 )
0160 
0161 # TRACK FITTING
0162 import RecoTracker.TrackProducer.TrackProducer_cfi
0163 hiLowPtTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
0164     src = 'hiLowPtTripletStepTrackCandidates',
0165     AlgorithmName = 'lowPtTripletStep',
0166     Fitter='FlexibleKFFittingSmoother'
0167 )
0168 
0169 
0170 
0171 # Final selection
0172 import RecoHI.HiTracking.hiMultiTrackSelector_cfi
0173 hiLowPtTripletStepSelector = RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiMultiTrackSelector.clone(
0174     src = 'hiLowPtTripletStepTracks',
0175     useAnyMVA = True,
0176     GBRForestLabel = 'HIMVASelectorIter5',
0177     GBRForestVars = ['chi2perdofperlayer', 'dxyperdxyerror', 'dzperdzerror', 'relpterr', 'nhits', 'nlayers', 'eta'],
0178     trackSelectors= cms.VPSet(
0179        RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
0180            name = 'hiLowPtTripletStepLoose',
0181            useMVA = False
0182        ), #end of pset
0183        RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
0184            name = 'hiLowPtTripletStepTight',
0185            preFilterName = 'hiLowPtTripletStepLoose',
0186            useMVA = True,
0187            minMVA = -0.58
0188        ),
0189        RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
0190            name = 'hiLowPtTripletStep',
0191            preFilterName = 'hiLowPtTripletStepTight',
0192            useMVA = True,
0193            minMVA = 0.35
0194        ),
0195     ) #end of vpset
0196 ) #end of clone
0197 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
0198 trackingPhase1.toModify(hiLowPtTripletStepSelector, useAnyMVA = False)
0199 trackingPhase1.toModify(hiLowPtTripletStepSelector, trackSelectors= cms.VPSet(
0200     RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
0201         name = 'hiLowPtTripletStepLoose',
0202         useMVA = False
0203     ), #end of pset
0204     RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
0205         name = 'hiLowPtTripletStepTight',
0206         preFilterName = 'hiLowPtTripletStepLoose',
0207         useMVA = False,
0208         minMVA = -0.58
0209     ),
0210     RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
0211         name = 'hiLowPtTripletStep',
0212         preFilterName = 'hiLowPtTripletStepTight',
0213         useMVA = False,
0214         minMVA = 0.35
0215     ),
0216   ) #end of vpset
0217 )
0218 
0219 
0220 import RecoTracker.FinalTrackSelectors.trackListMerger_cfi
0221 hiLowPtTripletStepQual = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
0222     TrackProducers = ['hiLowPtTripletStepTracks'],
0223     hasSelector = [1],
0224     selectedTrackQuals = ["hiLowPtTripletStepSelector:hiLowPtTripletStep"],
0225     copyExtras = True,
0226     makeReKeyedSeeds = cms.untracked.bool(False),
0227     #writeOnlyTrkQuals = True
0228 )
0229 
0230 # Final sequence
0231 
0232 hiLowPtTripletStepTask = cms.Task(hiLowPtTripletStepClusters,
0233                                         hiLowPtTripletStepSeedLayers,
0234                                         hiLowPtTripletStepTrackingRegions,
0235                                         hiLowPtTripletStepTracksHitDoublets,
0236                                         hiLowPtTripletStepTracksHitTriplets,
0237                                         pixelFitterByHelixProjections,
0238                                         hiLowPtTripletStepPixelTracksFilter,
0239                                         hiLowPtTripletStepPixelTracks,hiLowPtTripletStepSeeds,
0240                                         hiLowPtTripletStepTrackCandidates,
0241                                         hiLowPtTripletStepTracks,
0242                                         hiLowPtTripletStepSelector,
0243                                         hiLowPtTripletStepQual
0244                                         )
0245 hiLowPtTripletStep = cms.Sequence(hiLowPtTripletStepTask)
0246 hiLowPtTripletStepTask_Phase1 = hiLowPtTripletStepTask.copy()
0247 hiLowPtTripletStepTask_Phase1.replace(hiLowPtTripletStepTracksHitDoublets, hiLowPtTripletStepTracksHitDoubletsCA)
0248 hiLowPtTripletStepTask_Phase1.replace(hiLowPtTripletStepTracksHitTriplets, hiLowPtTripletStepTracksHitTripletsCA)
0249 trackingPhase1.toReplaceWith(hiLowPtTripletStepTask, hiLowPtTripletStepTask_Phase1)