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