File indexing completed on 2023-03-17 11:21:11
0001 import FWCore.ParameterSet.Config as cms
0002
0003 particleFlowBlock = cms.EDProducer(
0004 "PFBlockProducer",
0005
0006 verbose = cms.untracked.bool(False),
0007
0008 debug = cms.untracked.bool(False),
0009
0010
0011
0012
0013
0014
0015
0016 elementImporters = cms.VPSet(
0017 cms.PSet( importerName = cms.string("GSFTrackImporter"),
0018 source = cms.InputTag("pfTrackElec"),
0019 gsfsAreSecondary = cms.bool(False),
0020 superClustersArePF = cms.bool(True) ),
0021 cms.PSet( importerName = cms.string("ConvBremTrackImporter"),
0022 source = cms.InputTag("pfTrackElec"),
0023 vetoEndcap = cms.bool(False)),
0024 cms.PSet( importerName = cms.string("SuperClusterImporter"),
0025 source_eb = cms.InputTag("particleFlowSuperClusterECAL:particleFlowSuperClusterECALBarrel"),
0026 source_ee = cms.InputTag("particleFlowSuperClusterECAL:particleFlowSuperClusterECALEndcapWithPreshower"),
0027 source_towers = cms.InputTag("towerMaker"),
0028 maximumHoverE = cms.double(0.5),
0029 minSuperClusterPt = cms.double(10.0),
0030 minPTforBypass = cms.double(100.0),
0031 superClustersArePF = cms.bool(True) ),
0032 cms.PSet( importerName = cms.string("ConversionTrackImporter"),
0033 source = cms.InputTag("pfConversions"),
0034 vetoEndcap = cms.bool(False)),
0035
0036
0037
0038
0039
0040 cms.PSet( importerName = cms.string("NuclearInteractionTrackImporter"),
0041 source = cms.InputTag("pfDisplacedTrackerVertex"),
0042 vetoEndcap = cms.bool(False)),
0043
0044
0045 cms.PSet( importerName = cms.string("GeneralTracksImporter"),
0046 source = cms.InputTag("pfTrack"),
0047 vetoEndcap = cms.bool(False),
0048 muonSrc = cms.InputTag("muons1stStep"),
0049 trackQuality = cms.string("highPurity"),
0050 cleanBadConvertedBrems = cms.bool(True),
0051 useIterativeTracking = cms.bool(True),
0052 DPtOverPtCuts_byTrackAlgo = cms.vdouble(10.0,10.0,10.0,
0053 10.0,10.0,5.0),
0054 NHitCuts_byTrackAlgo = cms.vuint32(3,3,3,3,3,3),
0055 muonMaxDPtOPt = cms.double(1)
0056 ),
0057
0058
0059
0060
0061
0062
0063
0064 cms.PSet( importerName = cms.string("ECALClusterImporter"),
0065 source = cms.InputTag("particleFlowClusterECAL"),
0066 BCtoPFCMap = cms.InputTag('particleFlowSuperClusterECAL:PFClusterAssociationEBEE') ),
0067 cms.PSet( importerName = cms.string("GenericClusterImporter"),
0068 source = cms.InputTag("particleFlowClusterHCAL") ),
0069 cms.PSet( importerName = cms.string("GenericClusterImporter"),
0070 source = cms.InputTag("particleFlowBadHcalPseudoCluster") ),
0071 cms.PSet( importerName = cms.string("GenericClusterImporter"),
0072 source = cms.InputTag("particleFlowClusterHO") ),
0073 cms.PSet( importerName = cms.string("GenericClusterImporter"),
0074 source = cms.InputTag("particleFlowClusterHF") ),
0075 cms.PSet( importerName = cms.string("GenericClusterImporter"),
0076 source = cms.InputTag("particleFlowClusterPS") ),
0077 ),
0078
0079
0080
0081
0082
0083
0084
0085
0086 linkDefinitions = cms.VPSet(
0087 cms.PSet( linkerName = cms.string("PreshowerAndECALLinker"),
0088 linkType = cms.string("PS1:ECAL"),
0089 useKDTree = cms.bool(True) ),
0090 cms.PSet( linkerName = cms.string("PreshowerAndECALLinker"),
0091 linkType = cms.string("PS2:ECAL"),
0092 useKDTree = cms.bool(True) ),
0093 cms.PSet( linkerName = cms.string("TrackAndECALLinker"),
0094 linkType = cms.string("TRACK:ECAL"),
0095 useKDTree = cms.bool(True) ),
0096 cms.PSet( linkerName = cms.string("TrackAndHCALLinker"),
0097 linkType = cms.string("TRACK:HCAL"),
0098 useKDTree = cms.bool(True),
0099 trajectoryLayerEntrance = cms.string("HCALEntrance"),
0100 trajectoryLayerExit = cms.string("HCALExit"),
0101 nMaxHcalLinksPerTrack = cms.int32(1)
0102 ),
0103 cms.PSet( linkerName = cms.string("TrackAndHOLinker"),
0104 linkType = cms.string("TRACK:HO"),
0105 useKDTree = cms.bool(False) ),
0106 cms.PSet( linkerName = cms.string("ECALAndHCALLinker"),
0107 linkType = cms.string("ECAL:HCAL"),
0108 minAbsEtaEcal = cms.double(2.5),
0109 useKDTree = cms.bool(False) ),
0110 cms.PSet( linkerName = cms.string("HCALAndHOLinker"),
0111 linkType = cms.string("HCAL:HO"),
0112 useKDTree = cms.bool(False) ),
0113 cms.PSet( linkerName = cms.string("HFEMAndHFHADLinker"),
0114 linkType = cms.string("HFEM:HFHAD"),
0115 useKDTree = cms.bool(False) ),
0116 cms.PSet( linkerName = cms.string("TrackAndTrackLinker"),
0117 linkType = cms.string("TRACK:TRACK"),
0118 useKDTree = cms.bool(False) ),
0119 cms.PSet( linkerName = cms.string("ECALAndECALLinker"),
0120 linkType = cms.string("ECAL:ECAL"),
0121 useKDTree = cms.bool(False) ),
0122 cms.PSet( linkerName = cms.string("GSFAndECALLinker"),
0123 linkType = cms.string("GSF:ECAL"),
0124 useKDTree = cms.bool(False) ),
0125 cms.PSet( linkerName = cms.string("TrackAndGSFLinker"),
0126 linkType = cms.string("TRACK:GSF"),
0127 useKDTree = cms.bool(False),
0128 useConvertedBrems = cms.bool(True) ),
0129 cms.PSet( linkerName = cms.string("GSFAndBREMLinker"),
0130 linkType = cms.string("GSF:BREM"),
0131 useKDTree = cms.bool(False) ),
0132 cms.PSet( linkerName = cms.string("GSFAndGSFLinker"),
0133 linkType = cms.string("GSF:GSF"),
0134 useKDTree = cms.bool(False) ),
0135 cms.PSet( linkerName = cms.string("ECALAndBREMLinker"),
0136 linkType = cms.string("ECAL:BREM"),
0137 useKDTree = cms.bool(False) ),
0138 cms.PSet( linkerName = cms.string("GSFAndHCALLinker"),
0139 linkType = cms.string("GSF:HCAL"),
0140 useKDTree = cms.bool(False) ),
0141 cms.PSet( linkerName = cms.string("HCALAndBREMLinker"),
0142 linkType = cms.string("HCAL:BREM"),
0143 useKDTree = cms.bool(False) ),
0144 cms.PSet( linkerName = cms.string("SCAndECALLinker"),
0145 linkType = cms.string("SC:ECAL"),
0146 useKDTree = cms.bool(False),
0147 SuperClusterMatchByRef = cms.bool(True) )
0148 )
0149 )
0150
0151 for imp in particleFlowBlock.elementImporters:
0152 if imp.importerName.value() == "SuperClusterImporter":
0153 _scImporter = imp
0154
0155 from Configuration.ProcessModifiers.egamma_lowPt_exclusive_cff import egamma_lowPt_exclusive
0156 egamma_lowPt_exclusive.toModify(_scImporter,
0157 minSuperClusterPt = 1.0,
0158 minPTforBypass = 0.0)
0159
0160
0161
0162 def _findIndicesByModule(name):
0163 ret = []
0164 for i, pset in enumerate(particleFlowBlock.elementImporters):
0165 if pset.importerName.value() == name:
0166 ret.append(i)
0167 return ret
0168
0169 from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal
0170 _insertTrackImportersWithVeto = {}
0171 _trackImporters = ['GeneralTracksImporter','ConvBremTrackImporter',
0172 'ConversionTrackImporter','NuclearInteractionTrackImporter']
0173 for importer in _trackImporters:
0174 for idx in _findIndicesByModule(importer):
0175 _insertTrackImportersWithVeto[idx] = dict(
0176 vetoEndcap = True,
0177 vetoMode = cms.uint32(2),
0178 vetoSrc = cms.InputTag("pfTICL")
0179 )
0180 phase2_hgcal.toModify(
0181 particleFlowBlock,
0182 elementImporters = _insertTrackImportersWithVeto
0183 )
0184
0185
0186
0187 from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker
0188 _addTrackHFLinks = particleFlowBlock.linkDefinitions.copy()
0189 _addTrackHFLinks.append(
0190 cms.PSet( linkerName = cms.string("TrackAndHCALLinker"),
0191 linkType = cms.string("TRACK:HFEM"),
0192 useKDTree = cms.bool(True),
0193 trajectoryLayerEntrance = cms.string("VFcalEntrance"),
0194 trajectoryLayerExit = cms.string(""),
0195 nMaxHcalLinksPerTrack = cms.int32(-1)
0196 )
0197 )
0198 _addTrackHFLinks.append(
0199 cms.PSet( linkerName = cms.string("TrackAndHCALLinker"),
0200 linkType = cms.string("TRACK:HFHAD"),
0201 useKDTree = cms.bool(True),
0202 trajectoryLayerEntrance = cms.string("VFcalEntrance"),
0203 trajectoryLayerExit = cms.string(""),
0204 nMaxHcalLinksPerTrack = cms.int32(-1)
0205 )
0206 )
0207 phase2_tracker.toModify(
0208 particleFlowBlock,
0209 linkDefinitions = _addTrackHFLinks
0210 )
0211
0212
0213
0214 from Configuration.Eras.Modifier_phase2_timing_cff import phase2_timing
0215 _addTiming = particleFlowBlock.elementImporters.copy()
0216 _addTiming.append( cms.PSet( importerName = cms.string("TrackTimingImporter"),
0217 timeValueMap = cms.InputTag("trackTimeValueMapProducer:generalTracksConfigurableFlatResolutionModel"),
0218 timeErrorMap = cms.InputTag("trackTimeValueMapProducer:generalTracksConfigurableFlatResolutionModelResolution"),
0219 timeValueMapGsf = cms.InputTag("gsfTrackTimeValueMapProducer:electronGsfTracksConfigurableFlatResolutionModel"),
0220 timeErrorMapGsf = cms.InputTag("gsfTrackTimeValueMapProducer:electronGsfTracksConfigurableFlatResolutionModelResolution")
0221 )
0222 )
0223
0224 from Configuration.Eras.Modifier_phase2_timing_layer_cff import phase2_timing_layer
0225 _addTimingLayer = particleFlowBlock.elementImporters.copy()
0226 _addTimingLayer.append( cms.PSet( importerName = cms.string("TrackTimingImporter"),
0227 timeValueMap = cms.InputTag("tofPID:t0"),
0228 timeErrorMap = cms.InputTag("tofPID:sigmat0"),
0229 timeQualityMap = cms.InputTag("mtdTrackQualityMVA:mtdQualMVA"),
0230 timeQualityThreshold = cms.double(0.5),
0231
0232
0233
0234 timeValueMapGsf = cms.InputTag("tofPID:t0"),
0235 timeErrorMapGsf = cms.InputTag("tofPID:sigmat0"),
0236 timeQualityMapGsf = cms.InputTag("mtdTrackQualityMVA:mtdQualMVA"),
0237 )
0238 )
0239
0240 phase2_timing.toModify(
0241 particleFlowBlock,
0242 elementImporters = _addTiming
0243 )
0244
0245 phase2_timing_layer.toModify(
0246 particleFlowBlock,
0247 elementImporters = _addTimingLayer
0248 )