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.HighPtTripletStep_cff import *
0003 from .HIPixelTripletSeeds_cff import *
0004 from .HIPixel3PrimTracks_cfi import *
0005 
0006 hiHighPtTripletStepClusters = cms.EDProducer("HITrackClusterRemover",
0007      clusterLessSolution = cms.bool(True),
0008      trajectories = cms.InputTag("hiLowPtQuadStepTracks"),
0009      overrideTrkQuals = cms.InputTag("hiLowPtQuadStepSelector","hiLowPtQuadStep"),
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 3 layers layerlist
0026 hiHighPtTripletStepSeedLayers = highPtTripletStepSeedLayers.clone(
0027     BPix = dict(skipClusters = 'hiHighPtTripletStepClusters'),
0028     FPix = dict(skipClusters = 'hiHighPtTripletStepClusters')
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 hiHighPtTripletStepTrackingRegions = _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.8,#0.6 for pp
0052     useFoundVertices = True,
0053     originRadius = 0.02 #0.02 for pp
0054 ))
0055 hiHighPtTripletStepTracksHitDoubletsCA = _hitPairEDProducer.clone(
0056     clusterCheck = "",
0057     seedingLayers = "hiHighPtTripletStepSeedLayers",
0058     trackingRegions = "hiHighPtTripletStepTrackingRegions",
0059     maxElement = 50000000,
0060     produceIntermediateHitDoublets = True,
0061     layerPairs = [0,1]
0062 )
0063 
0064 from RecoPixelVertexing.PixelTriplets.caHitTripletEDProducer_cfi import caHitTripletEDProducer as _caHitTripletEDProducer
0065 hiHighPtTripletStepTracksHitTripletsCA = _caHitTripletEDProducer.clone(
0066     doublets = "hiHighPtTripletStepTracksHitDoubletsCA",
0067     extraHitRPhitolerance = 0.0,
0068     SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone(),
0069     maxChi2 = dict(
0070         pt1    = 0.8, pt2    = 8,
0071         value1 = 100, value2 = 6,
0072     ),
0073     useBendingCorrection = True,
0074     CAThetaCut = 0.004,
0075     CAPhiCut = 0.07,
0076     CAHardPtCut = 0.3,
0077 )
0078 
0079 hiHighPtTripletStepPixelTracksFilter = hiFilter.clone(
0080     nSigmaTipMaxTolerance = 0,
0081     lipMax = 1.0,
0082     tipMax = 1.0,
0083     ptMin = 1.0, #seeding region is 0.6
0084 )
0085 
0086 import RecoPixelVertexing.PixelTrackFitting.pixelTracks_cfi as _mod
0087 
0088 hiHighPtTripletStepPixelTracks = _mod.pixelTracks.clone(
0089     passLabel  = 'Pixel detached tracks with vertex constraint',
0090     # Ordered Hits
0091     SeedingHitSets = "hiHighPtTripletStepTracksHitTripletsCA",
0092     # Fitter
0093     Fitter = "pixelFitterByHelixProjections",
0094     # Filter
0095     Filter = "hiHighPtTripletStepPixelTracksFilter",
0096     # Cleaner
0097     Cleaner = "trackCleaner"
0098 )
0099 
0100 import RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi
0101 hiHighPtTripletStepSeeds = RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi.pixelTrackSeeds.clone(
0102         InputCollection = 'hiHighPtTripletStepPixelTracks'
0103 )
0104 
0105 # QUALITY CUTS DURING TRACK BUILDING
0106 import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff
0107 hiHighPtTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
0108     #maxLostHits = 1,
0109     minimumNumberOfHits = 3,#3 for pp
0110     minPt = 0.2,# 0.2 for pp
0111     #constantValueForLostHitsFractionFilter = 0.701
0112 )
0113 
0114 import TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi
0115 hiHighPtTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
0116     ComponentName = 'hiHighPtTripletStepChi2Est',
0117     nSigma  = 3.0,
0118     MaxChi2 = 9.0# 30 for pp
0119 )
0120 
0121 
0122 # TRACK BUILDING
0123 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi
0124 hiHighPtTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
0125     trajectoryFilter = dict(refToPSet_ = 'hiHighPtTripletStepTrajectoryFilter'),
0126     maxCand = 3, # 3 for pp
0127     estimator = 'hiHighPtTripletStepChi2Est',
0128     maxDPhiForLooperReconstruction = 2.0, # 2.0 for pp
0129     # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
0130     # of the outermost Tracker barrel layer (B=3.8T)
0131     maxPtForLooperReconstruction = 0.7, # 0.7 for pp
0132     alwaysUseInvalidHits = False
0133 )
0134 
0135 # MAKING OF TRACK CANDIDATES
0136 
0137 # Trajectory cleaner in default
0138 
0139 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
0140 hiHighPtTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
0141     src = 'hiHighPtTripletStepSeeds',
0142     ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
0143     numHitsForSeedCleaner = 50,
0144     onlyPixelHitsForSeedCleaner = True,
0145     TrajectoryBuilderPSet = dict(refToPSet_ = 'hiHighPtTripletStepTrajectoryBuilder'),
0146     clustersToSkip = 'hiHighPtTripletStepClusters',
0147     doSeedingRegionRebuilding = True,
0148     useHitsSplitting = True
0149 )
0150 
0151 
0152 # TRACK FITTING
0153 import RecoTracker.TrackProducer.TrackProducer_cfi
0154 hiHighPtTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
0155     src = 'hiHighPtTripletStepTrackCandidates',
0156     AlgorithmName = 'highPtTripletStep',
0157     Fitter = 'FlexibleKFFittingSmoother'
0158 )
0159 
0160 # Final selection
0161 import RecoHI.HiTracking.hiMultiTrackSelector_cfi
0162 hiHighPtTripletStepSelector = RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiMultiTrackSelector.clone(
0163     src = 'hiHighPtTripletStepTracks',
0164     useAnyMVA = True, 
0165     GBRForestLabel = 'HIMVASelectorIter9',#FIXME MVA for new iteration
0166     GBRForestVars  = ['chi2perdofperlayer', 'nhits', 'nlayers', 'eta'],
0167     trackSelectors = cms.VPSet(
0168        RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
0169            name = 'hiHighPtTripletStepLoose',
0170            applyAdaptedPVCuts = False,
0171            useMVA = False,
0172        ), #end of pset
0173        RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
0174            name = 'hiHighPtTripletStepTight',
0175            preFilterName = 'hiHighPtTripletStepLoose',
0176            applyAdaptedPVCuts = False,
0177            useMVA = True,
0178            minMVA = -0.2
0179        ),
0180        RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
0181            name = 'hiHighPtTripletStep',
0182            preFilterName = 'hiHighPtTripletStepTight',
0183            applyAdaptedPVCuts = False,
0184            useMVA = True,
0185            minMVA = -0.09
0186        ),
0187     ) #end of vpset
0188 ) #end of clone
0189 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
0190 trackingPhase1.toModify(hiHighPtTripletStepSelector, useAnyMVA = False)
0191 trackingPhase1.toModify(hiHighPtTripletStepSelector, trackSelectors= cms.VPSet(
0192     RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
0193         name = 'hiHighPtTripletStepLoose',
0194         applyAdaptedPVCuts = False,
0195         useMVA = False,
0196     ), #end of pset
0197     RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
0198         name = 'hiHighPtTripletStepTight',
0199         preFilterName = 'hiHighPtTripletStepLoose',
0200         applyAdaptedPVCuts = False,
0201         useMVA = False,
0202         minMVA = -0.2
0203     ),
0204     RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
0205         name = 'hiHighPtTripletStep',
0206         preFilterName = 'hiHighPtTripletStepTight',
0207         applyAdaptedPVCuts = False,
0208         useMVA = False,
0209         minMVA = -0.09
0210     ),
0211   ) #end of vpset
0212 )
0213 
0214 import RecoTracker.FinalTrackSelectors.trackListMerger_cfi
0215 hiHighPtTripletStepQual = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
0216     TrackProducers = ['hiHighPtTripletStepTracks'],
0217     hasSelector = [1],
0218     selectedTrackQuals = ["hiHighPtTripletStepSelector:hiHighPtTripletStep"],
0219     copyExtras = True,
0220     makeReKeyedSeeds = cms.untracked.bool(False),
0221 )
0222 
0223 
0224 hiHighPtTripletStepTask = cms.Task(hiHighPtTripletStepClusters,
0225                                      hiHighPtTripletStepSeedLayers,
0226                                      hiHighPtTripletStepTrackingRegions,
0227                                      hiHighPtTripletStepTracksHitDoubletsCA, 
0228                                      hiHighPtTripletStepTracksHitTripletsCA, 
0229                      pixelFitterByHelixProjections,
0230                                      hiHighPtTripletStepPixelTracksFilter,
0231                                      hiHighPtTripletStepPixelTracks,
0232                                      hiHighPtTripletStepSeeds,
0233                                      hiHighPtTripletStepTrackCandidates,
0234                                      hiHighPtTripletStepTracks,
0235                                      hiHighPtTripletStepSelector,
0236                                      hiHighPtTripletStepQual)
0237 hiHighPtTripletStep = cms.Sequence(hiHighPtTripletStepTask)
0238