Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 from __future__ import absolute_import
0002 from RecoTracker.IterativeTracking.LowPtQuadStep_cff import *
0003 from .HIPixelTripletSeeds_cff import *
0004 from .HIPixel3PrimTracks_cfi import *
0005 
0006 hiLowPtQuadStepClusters = cms.EDProducer("HITrackClusterRemover",
0007      clusterLessSolution = cms.bool(True),
0008      trajectories = cms.InputTag("hiGlobalPrimTracks"),
0009      overrideTrkQuals = cms.InputTag('hiInitialStepSelector','hiInitialStep'),
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 # SEEDING LAYERS
0025 # Using 4 layers layerlist
0026 hiLowPtQuadStepSeedLayers = hiPixelLayerQuadruplets.clone(
0027     BPix = dict(skipClusters = cms.InputTag('hiLowPtQuadStepClusters')),
0028     FPix = dict(skipClusters = cms.InputTag('hiLowPtQuadStepClusters'))
0029 )
0030 
0031 # SEEDS
0032 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cfi import globalTrackingRegionWithVertices as _globalTrackingRegionWithVertices
0033 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
0034 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi import pixelTripletHLTEDProducer as _pixelTripletHLTEDProducer
0035 from RecoPixelVertexing.PixelLowPtUtilities.ClusterShapeHitFilterESProducer_cfi import *
0036 from RecoPixelVertexing.PixelLowPtUtilities.trackCleaner_cfi import *
0037 from RecoPixelVertexing.PixelTrackFitting.pixelFitterByHelixProjections_cfi import *
0038 from RecoHI.HiTracking.HIPixelTrackFilter_cff import *
0039 from RecoHI.HiTracking.HITrackingRegionProducer_cfi import *
0040 
0041 hiLowPtQuadStepTrackingRegions = _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
0042     precise = True,
0043     useMultipleScattering = False,
0044     useFakeVertices       = False,
0045     beamSpot = "offlineBeamSpot",
0046     useFixedError = True,
0047     nSigmaZ = 4.0,
0048     sigmaZVertex = 4.0,
0049     fixedError = 0.5,
0050     VertexCollection = "hiSelectedPixelVertex",
0051     ptMin = 0.3,#0.2 for pp
0052     useFoundVertices = True,
0053     originRadius = 0.02 #0.02 for pp
0054 ))
0055 hiLowPtQuadStepTracksHitDoubletsCA = _hitPairEDProducer.clone(
0056     clusterCheck = "",
0057     seedingLayers = "hiLowPtQuadStepSeedLayers",
0058     trackingRegions = "hiLowPtQuadStepTrackingRegions",
0059     maxElement = 50000000,
0060     produceIntermediateHitDoublets = True,
0061     layerPairs = [0,1,2]
0062 )
0063 
0064 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
0065 from RecoPixelVertexing.PixelTriplets.caHitQuadrupletEDProducer_cfi import caHitQuadrupletEDProducer as _caHitQuadrupletEDProducer
0066 hiLowPtQuadStepTracksHitQuadrupletsCA = _caHitQuadrupletEDProducer.clone(
0067     doublets = "hiLowPtQuadStepTracksHitDoubletsCA",
0068     extraHitRPhitolerance = 0.0,
0069     SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone(),
0070     maxChi2 = dict(
0071         pt1    = 0.7, pt2    = 2,
0072         value1 = 1000, value2 = 150,
0073     ),
0074     useBendingCorrection = True,
0075     fitFastCircle = True,
0076     fitFastCircleChi2Cut = True,
0077     CAThetaCut = 0.0017,
0078     CAPhiCut = 0.3,
0079 )
0080 
0081 
0082 hiLowPtQuadStepPixelTracksFilter = hiFilter.clone(
0083     nSigmaTipMaxTolerance = 0,
0084     lipMax = 1.0,
0085     tipMax = 1.0,
0086     ptMin = 0.4, #seeding region is 0.3
0087 )
0088 
0089 import RecoPixelVertexing.PixelTrackFitting.pixelTracks_cfi as _mod
0090 
0091 hiLowPtQuadStepPixelTracks = _mod.pixelTracks.clone(
0092     passLabel  = 'Pixel detached tracks with vertex constraint',
0093     # Ordered Hits
0094     SeedingHitSets = "hiLowPtQuadStepTracksHitQuadrupletsCA",
0095     # Fitter
0096     Fitter = "pixelFitterByHelixProjections",
0097     # Filter
0098     Filter = "hiLowPtQuadStepPixelTracksFilter",
0099     # Cleaner
0100     Cleaner = "trackCleaner"
0101 )
0102 
0103 
0104 import RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi
0105 hiLowPtQuadStepSeeds = RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi.pixelTrackSeeds.clone(
0106         InputCollection = 'hiLowPtQuadStepPixelTracks'
0107 )
0108 
0109 # QUALITY CUTS DURING TRACK BUILDING
0110 import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff
0111 hiLowPtQuadStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
0112     #maxLostHits = 1,
0113     minimumNumberOfHits = 3,#3 for pp
0114     minPt = 0.075,# 0.075 for pp
0115     #constantValueForLostHitsFractionFilter = 0.701
0116 )
0117 
0118 import TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi
0119 hiLowPtQuadStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
0120         ComponentName = 'hiLowPtQuadStepChi2Est',
0121             nSigma  = 3.0,
0122             MaxChi2 = 9.0
0123 )
0124 
0125 
0126 # TRACK BUILDING
0127 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi
0128 hiLowPtQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
0129     trajectoryFilter = dict(refToPSet_ = 'hiLowPtQuadStepTrajectoryFilter'),
0130     maxCand = 4, # 4 for pp
0131     estimator = 'hiLowPtQuadStepChi2Est',
0132     maxDPhiForLooperReconstruction = 2.0, # 2.0 for pp
0133     # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
0134     # of the outermost Tracker barrel layer (B=3.8T)
0135     maxPtForLooperReconstruction = 0.7, # 0.7 for pp
0136     alwaysUseInvalidHits = False
0137 )
0138 
0139 # MAKING OF TRACK CANDIDATES
0140 
0141 # Trajectory cleaner in default
0142 
0143 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
0144 hiLowPtQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
0145     src = 'hiLowPtQuadStepSeeds',
0146     ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
0147     numHitsForSeedCleaner = 50,
0148     onlyPixelHitsForSeedCleaner = True,
0149     TrajectoryBuilderPSet = dict(refToPSet_ = 'hiLowPtQuadStepTrajectoryBuilder'),
0150     clustersToSkip = 'hiLowPtQuadStepClusters',
0151     doSeedingRegionRebuilding = True,
0152     useHitsSplitting = True
0153 )
0154 
0155 
0156 # TRACK FITTING
0157 import RecoTracker.TrackProducer.TrackProducer_cfi
0158 hiLowPtQuadStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
0159     src = 'hiLowPtQuadStepTrackCandidates',
0160     AlgorithmName = 'lowPtQuadStep',
0161     Fitter = 'FlexibleKFFittingSmoother'
0162 )
0163 
0164 # Final selection
0165 import RecoHI.HiTracking.hiMultiTrackSelector_cfi
0166 hiLowPtQuadStepSelector = RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiMultiTrackSelector.clone(
0167     src ='hiLowPtQuadStepTracks',
0168     useAnyMVA = True, 
0169     GBRForestLabel = 'HIMVASelectorIter8',#FIXME MVA for new iteration
0170     GBRForestVars  = ['chi2perdofperlayer', 'nhits', 'nlayers', 'eta'],
0171     trackSelectors = cms.VPSet(
0172        RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
0173            name = 'hiLowPtQuadStepLoose',
0174            applyAdaptedPVCuts = False,
0175            useMVA = False,
0176        ), #end of pset
0177        RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
0178            name = 'hiLowPtQuadStepTight',
0179            preFilterName = 'hiLowPtQuadStepLoose',
0180            applyAdaptedPVCuts = False,
0181            useMVA = True,
0182            minMVA = -0.2
0183        ),
0184        RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
0185            name = 'hiLowPtQuadStep',
0186            preFilterName = 'hiLowPtQuadStepTight',
0187            applyAdaptedPVCuts = False,
0188            useMVA = True,
0189            minMVA = -0.09
0190        ),
0191     ) #end of vpset
0192 ) #end of clone
0193 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
0194 trackingPhase1.toModify(hiLowPtQuadStepSelector, useAnyMVA = False)
0195 trackingPhase1.toModify(hiLowPtQuadStepSelector, trackSelectors = cms.VPSet(
0196     RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
0197         name = 'hiLowPtQuadStepLoose',
0198         applyAdaptedPVCuts = False,
0199         useMVA = False,
0200     ), #end of pset
0201     RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
0202         name = 'hiLowPtQuadStepTight',
0203         preFilterName = 'hiLowPtQuadStepLoose',
0204         applyAdaptedPVCuts = False,
0205         useMVA = False,
0206         minMVA = -0.2
0207     ),
0208     RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
0209         name = 'hiLowPtQuadStep',
0210         preFilterName = 'hiLowPtQuadStepTight',
0211         applyAdaptedPVCuts = False,
0212         useMVA = False,
0213         minMVA = -0.09
0214     ),
0215   ) #end of vpset
0216 )
0217 
0218 import RecoTracker.FinalTrackSelectors.trackListMerger_cfi
0219 hiLowPtQuadStepQual = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
0220     TrackProducers = ['hiLowPtQuadStepTracks'],
0221     hasSelector = [1],
0222     selectedTrackQuals = ["hiLowPtQuadStepSelector:hiLowPtQuadStep"],
0223     copyExtras = True,
0224     makeReKeyedSeeds = cms.untracked.bool(False),
0225 )
0226 
0227 
0228 hiLowPtQuadStepTask = cms.Task(hiLowPtQuadStepClusters,
0229                                      hiLowPtQuadStepSeedLayers,
0230                                      hiLowPtQuadStepTrackingRegions,
0231                                      hiLowPtQuadStepTracksHitDoubletsCA, 
0232                                      hiLowPtQuadStepTracksHitQuadrupletsCA, 
0233                      pixelFitterByHelixProjections,
0234                                      hiLowPtQuadStepPixelTracksFilter,
0235                                      hiLowPtQuadStepPixelTracks,
0236                                      hiLowPtQuadStepSeeds,
0237                                      hiLowPtQuadStepTrackCandidates,
0238                                      hiLowPtQuadStepTracks,
0239                                      hiLowPtQuadStepSelector,
0240                                      hiLowPtQuadStepQual)
0241 hiLowPtQuadStep = cms.Sequence(hiLowPtQuadStepTask)
0242