File indexing completed on 2025-01-18 03:42:17
0001 import FWCore.ParameterSet.Config as cms
0002
0003 import RecoTracker.MkFit.mkFitGeometryESProducer_cfi as mkFitGeometryESProducer_cfi
0004 import RecoTracker.MkFit.mkFitSiPixelHitConverter_cfi as mkFitSiPixelHitConverter_cfi
0005 import RecoTracker.MkFit.mkFitSiStripHitConverter_cfi as mkFitSiStripHitConverter_cfi
0006 import RecoTracker.MkFit.mkFitEventOfHitsProducer_cfi as mkFitEventOfHitsProducer_cfi
0007 import RecoTracker.MkFit.mkFitSeedConverter_cfi as mkFitSeedConverter_cfi
0008 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi as mkFitIterationConfigESProducer_cfi
0009 import RecoTracker.MkFit.mkFitProducer_cfi as mkFitProducer_cfi
0010 import RecoTracker.MkFit.mkFitOutputConverter_cfi as mkFitOutputConverter_cfi
0011 import RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi as SiStripRecHitConverter_cfi
0012
0013 def customizeHLTIter0ToMkFit(process):
0014
0015
0016 for objLabel in [
0017 'hltSiStripRawToClustersFacility',
0018 'HLTDoLocalStripSequence',
0019 'HLTIterativeTrackingIteration0',
0020 'hltIter0PFlowCkfTrackCandidates',
0021 ]:
0022 if not hasattr(process, objLabel):
0023 print(f'# WARNING: customizeHLTIter0ToMkFit failed (object with label "{objLabel}" not found) - no customisation applied !')
0024 return process
0025
0026
0027 process.hltSiStripRawToClustersFacility = cms.EDProducer(
0028 "SiStripClusterizerFromRaw",
0029 ProductLabel = cms.InputTag( "rawDataCollector" ),
0030 ConditionsLabel = cms.string( "" ),
0031 onDemand = cms.bool( True ),
0032 DoAPVEmulatorCheck = cms.bool( False ),
0033 LegacyUnpacker = cms.bool( False ),
0034 HybridZeroSuppressed = cms.bool( False ),
0035 Clusterizer = cms.PSet(
0036 ConditionsLabel = cms.string( "" ),
0037 MaxClusterSize = cms.uint32( 32 ),
0038 ClusterThreshold = cms.double( 5.0 ),
0039 SeedThreshold = cms.double( 3.0 ),
0040 Algorithm = cms.string( "ThreeThresholdAlgorithm" ),
0041 ChannelThreshold = cms.double( 2.0 ),
0042 MaxAdjacentBad = cms.uint32( 0 ),
0043 setDetId = cms.bool( True ),
0044 MaxSequentialHoles = cms.uint32( 0 ),
0045 RemoveApvShots = cms.bool( True ),
0046 clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ),
0047 MaxSequentialBad = cms.uint32( 1 )
0048 ),
0049 Algorithms = cms.PSet(
0050 Use10bitsTruncation = cms.bool( False ),
0051 CommonModeNoiseSubtractionMode = cms.string( "Median" ),
0052 useCMMeanMap = cms.bool( False ),
0053 TruncateInSuppressor = cms.bool( True ),
0054 doAPVRestore = cms.bool( False ),
0055 SiStripFedZeroSuppressionMode = cms.uint32( 4 ),
0056 PedestalSubtractionFedMode = cms.bool( True )
0057 )
0058 )
0059 process.hltSiStripRawToClustersFacility.onDemand = False
0060 process.hltSiStripRawToClustersFacility.Clusterizer.MaxClusterSize = 8
0061
0062 process.hltSiStripRecHits = SiStripRecHitConverter_cfi.siStripMatchedRecHits.clone(
0063 ClusterProducer = "hltSiStripRawToClustersFacility",
0064 StripCPE = "hltESPStripCPEfromTrackAngle:hltESPStripCPEfromTrackAngle",
0065 doMatching = False,
0066 )
0067
0068
0069 process.hltIter0PFLowPixelSeedsFromPixelTracks.includeFourthHit = cms.bool(True)
0070
0071 process.load("RecoTracker.MkFit.mkFitGeometryESProducer_cfi")
0072
0073 process.hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits = mkFitSiPixelHitConverter_cfi.mkFitSiPixelHitConverter.clone(
0074 hits = "hltSiPixelRecHits",
0075 clusters = "hltSiPixelClusters",
0076 ttrhBuilder = ":hltESPTTRHBWithTrackAngle",
0077 )
0078 process.hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits = mkFitSiStripHitConverter_cfi.mkFitSiStripHitConverter.clone(
0079 rphiHits = "hltSiStripRecHits:rphiRecHit",
0080 stereoHits = "hltSiStripRecHits:stereoRecHit",
0081 clusters = "hltSiStripRawToClustersFacility",
0082 ttrhBuilder = ":hltESPTTRHBWithTrackAngle",
0083 minGoodStripCharge = dict(refToPSet_ = 'HLTSiStripClusterChargeCutLoose'),
0084 )
0085 process.hltIter0PFlowCkfTrackCandidatesMkFitEventOfHits = mkFitEventOfHitsProducer_cfi.mkFitEventOfHitsProducer.clone(
0086 beamSpot = "hltOnlineBeamSpot",
0087 pixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits",
0088 stripHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits",
0089 )
0090 process.hltIter0PFlowCkfTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
0091 seeds = "hltIter0PFLowPixelSeedsFromPixelTracks",
0092 ttrhBuilder = ":hltESPTTRHBWithTrackAngle",
0093 )
0094 process.hltIter0PFlowTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
0095 ComponentName = 'hltIter0PFlowTrackCandidatesMkFitConfig',
0096 config = 'RecoTracker/MkFit/data/mkfit-phase1-initialStep.json',
0097 )
0098 process.hltIter0PFlowCkfTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
0099 pixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits",
0100 stripHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits",
0101 eventOfHits = "hltIter0PFlowCkfTrackCandidatesMkFitEventOfHits",
0102 seeds = "hltIter0PFlowCkfTrackCandidatesMkFitSeeds",
0103 config = ('', 'hltIter0PFlowTrackCandidatesMkFitConfig'),
0104 minGoodStripCharge = dict(refToPSet_ = 'HLTSiStripClusterChargeCutNone'),
0105 )
0106 process.hltIter0PFlowCkfTrackCandidates = mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
0107 seeds = "hltIter0PFLowPixelSeedsFromPixelTracks",
0108 mkFitEventOfHits = "hltIter0PFlowCkfTrackCandidatesMkFitEventOfHits",
0109 mkFitPixelHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits",
0110 mkFitStripHits = "hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits",
0111 mkFitSeeds = "hltIter0PFlowCkfTrackCandidatesMkFitSeeds",
0112 tracks = "hltIter0PFlowCkfTrackCandidatesMkFit",
0113 ttrhBuilder = ":hltESPTTRHBWithTrackAngle",
0114 propagatorAlong = ":PropagatorWithMaterialParabolicMf",
0115 propagatorOpposite = ":PropagatorWithMaterialParabolicMfOpposite",
0116 )
0117
0118 process.HLTDoLocalStripSequence += process.hltSiStripRecHits
0119
0120 replaceWith = (process.hltIter0PFlowCkfTrackCandidatesMkFitSiPixelHits +
0121 process.hltIter0PFlowCkfTrackCandidatesMkFitSiStripHits +
0122 process.hltIter0PFlowCkfTrackCandidatesMkFitEventOfHits +
0123 process.hltIter0PFlowCkfTrackCandidatesMkFitSeeds +
0124 process.hltIter0PFlowCkfTrackCandidatesMkFit +
0125 process.hltIter0PFlowCkfTrackCandidates)
0126
0127 process.HLTIterativeTrackingIteration0.replace(process.hltIter0PFlowCkfTrackCandidates, replaceWith)
0128
0129 for path in process.paths_().values():
0130 if not path.contains(process.HLTIterativeTrackingIteration0) and path.contains(process.hltIter0PFlowCkfTrackCandidates):
0131 path.replace(process.hltIter0PFlowCkfTrackCandidates, replaceWith)
0132
0133 process.hltIter0PFlowTrackCandidatesMkFitConfig.config = 'RecoTracker/MkFit/data/mkfit-phase1-hltiter0.json'
0134
0135 process.hltIter0PFlowTrackCutClassifier.mva.maxChi2 = cms.vdouble( 999.0, 25.0, 99.0 )
0136
0137 process.hltIter0PFlowTrackCutClassifier.mva.maxChi2n = cms.vdouble( 1.2, 1.0, 999.0 )
0138
0139 process.hltIter0PFlowTrackCutClassifier.mva.dr_par = cms.PSet(
0140 d0err = cms.vdouble( 0.003, 0.003, 0.003 ),
0141 dr_par1 = cms.vdouble( 3.40282346639E38, 0.6, 0.6 ),
0142 dr_par2 = cms.vdouble( 3.40282346639E38, 0.45, 0.45 ),
0143 dr_exp = cms.vint32( 4, 4, 4 ),
0144 d0err_par = cms.vdouble( 0.001, 0.001, 0.001 )
0145 )
0146 process.hltIter0PFlowTrackCutClassifier.mva.dz_par = cms.PSet(
0147 dz_par1 = cms.vdouble( 3.40282346639E38, 0.6, 0.6 ),
0148 dz_par2 = cms.vdouble( 3.40282346639E38, 0.51, 0.51 ),
0149 dz_exp = cms.vint32( 4, 4, 4 )
0150 )
0151
0152 if hasattr(process, 'hltIter0PFlowTrackCutClassifierSerialSync'):
0153 process.hltIter0PFlowTrackCutClassifierSerialSync.mva.maxChi2 = cms.vdouble( 999.0, 25.0, 99.0 )
0154 process.hltIter0PFlowTrackCutClassifierSerialSync.mva.maxChi2n = cms.vdouble( 1.2, 1.0, 999.0 )
0155 process.hltIter0PFlowTrackCutClassifierSerialSync.mva.dr_par = cms.PSet(
0156 d0err = cms.vdouble( 0.003, 0.003, 0.003 ),
0157 dr_par1 = cms.vdouble( 3.40282346639E38, 0.6, 0.6 ),
0158 dr_par2 = cms.vdouble( 3.40282346639E38, 0.45, 0.45 ),
0159 dr_exp = cms.vint32( 4, 4, 4 ),
0160 d0err_par = cms.vdouble( 0.001, 0.001, 0.001 )
0161 )
0162 process.hltIter0PFlowTrackCutClassifierSerialSync.mva.dz_par = cms.PSet(
0163 dz_par1 = cms.vdouble( 3.40282346639E38, 0.6, 0.6 ),
0164 dz_par2 = cms.vdouble( 3.40282346639E38, 0.51, 0.51 ),
0165 dz_exp = cms.vint32( 4, 4, 4 )
0166 )
0167
0168 return process
0169
0170 def customizeHLTSiStripClusterizerOnDemandFalse(process):
0171
0172
0173 for objLabel in [
0174 'hltSiStripRawToClustersFacility',
0175 ]:
0176 if not hasattr(process, objLabel):
0177 print(f'# WARNING: customize command failed (object with label "{objLabel}" not found) - no customisation applied !')
0178 return process
0179
0180
0181 process.hltSiStripRawToClustersFacility.onDemand = False
0182 return process
0183
0184 def customizeHLTSiStripClusterizerOnDemandFalseMaxClusterSize8(process):
0185
0186 for objLabel in [
0187 'hltSiStripRawToClustersFacility',
0188 ]:
0189 if not hasattr(process, objLabel):
0190 print(f'# WARNING: customize command failed (object with label "{objLabel}" not found) - no customisation applied !')
0191 return process
0192
0193 process.hltSiStripRawToClustersFacility = cms.EDProducer(
0194 "SiStripClusterizerFromRaw",
0195 ProductLabel = cms.InputTag( "rawDataCollector" ),
0196 ConditionsLabel = cms.string( "" ),
0197 onDemand = cms.bool( True ),
0198 DoAPVEmulatorCheck = cms.bool( False ),
0199 LegacyUnpacker = cms.bool( False ),
0200 HybridZeroSuppressed = cms.bool( False ),
0201 Clusterizer = cms.PSet(
0202 ConditionsLabel = cms.string( "" ),
0203 MaxClusterSize = cms.uint32( 32 ),
0204 ClusterThreshold = cms.double( 5.0 ),
0205 SeedThreshold = cms.double( 3.0 ),
0206 Algorithm = cms.string( "ThreeThresholdAlgorithm" ),
0207 ChannelThreshold = cms.double( 2.0 ),
0208 MaxAdjacentBad = cms.uint32( 0 ),
0209 setDetId = cms.bool( True ),
0210 MaxSequentialHoles = cms.uint32( 0 ),
0211 RemoveApvShots = cms.bool( True ),
0212 clusterChargeCut = cms.PSet( refToPSet_ = cms.string( "HLTSiStripClusterChargeCutNone" ) ),
0213 MaxSequentialBad = cms.uint32( 1 )
0214 ),
0215 Algorithms = cms.PSet(
0216 Use10bitsTruncation = cms.bool( False ),
0217 CommonModeNoiseSubtractionMode = cms.string( "Median" ),
0218 useCMMeanMap = cms.bool( False ),
0219 TruncateInSuppressor = cms.bool( True ),
0220 doAPVRestore = cms.bool( False ),
0221 SiStripFedZeroSuppressionMode = cms.uint32( 4 ),
0222 PedestalSubtractionFedMode = cms.bool( True )
0223 )
0224 )
0225 process.hltSiStripRawToClustersFacility.onDemand = False
0226 process.hltSiStripRawToClustersFacility.Clusterizer.MaxClusterSize = 8
0227
0228 return process
0229
0230 def modifyMinOutputModuleForTrackingValidation(process, filename="output.root"):
0231
0232 for objLabel in [
0233 'hltOutputMinimal',
0234 ]:
0235 if not hasattr(process, objLabel):
0236 print(f'# WARNING: customize command failed (object with label "{objLabel}" not found) - no customisation applied !')
0237 return process
0238
0239 process.hltOutputMinimal.outputCommands = cms.untracked.vstring(
0240 'drop *',
0241 'keep edmTriggerResults_*_*_*',
0242 'keep triggerTriggerEvent_*_*_*',
0243 'keep GlobalAlgBlkBXVector_*_*_*',
0244 'keep GlobalExtBlkBXVector_*_*_*',
0245 'keep l1tEGammaBXVector_*_EGamma_*',
0246 'keep l1tEtSumBXVector_*_EtSum_*',
0247 'keep l1tJetBXVector_*_Jet_*',
0248 'keep l1tMuonBXVector_*_Muon_*',
0249 'keep l1tTauBXVector_*_Tau_*',
0250 'keep *_*_*_HLTX',
0251 'drop *_hltHbherecoLegacy_*_*',
0252 'drop *_hlt*Pixel*SoA*_*_*',
0253 'keep recoGenParticles_genParticles_*_*',
0254 'keep TrackingParticles_*_*_*',
0255 'keep *_*_MergedTrackTruth_*',
0256 'keep *_simSiPixelDigis_*_*',
0257 'keep *_simSiStripDigis_*_*',
0258 'keep PSimHits_g4SimHits_*_*',
0259 'keep SimTracks_g4SimHits_*_*',
0260 'keep SimVertexs_g4SimHits_*_*',
0261 'keep PileupSummaryInfos_addPileupInfo_*_*',
0262 )
0263 process.hltOutputMinimal.fileName = filename
0264 process.schedule.remove( process.DQMOutput )
0265 return process