Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-06-22 02:24:06

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 from RecoParticleFlow.PFProducer.modules import PFBlockProducer
0004 particleFlowBlock = PFBlockProducer()
0005 
0006 for imp in particleFlowBlock.elementImporters:
0007   if imp.importerName.value() == "SuperClusterImporter":
0008     _scImporter = imp
0009 
0010 from Configuration.ProcessModifiers.egamma_lowPt_exclusive_cff import egamma_lowPt_exclusive
0011 egamma_lowPt_exclusive.toModify(_scImporter,
0012                                 minSuperClusterPt = 1.0,
0013                                 minPTforBypass = 0.0)
0014 
0015 #
0016 # kill pfTICL tracks
0017 def _findIndicesByModule(name):
0018    ret = []
0019    for i, pset in enumerate(particleFlowBlock.elementImporters):
0020         if pset.importerName.value() == name:
0021             ret.append(i)
0022    return ret
0023 
0024 from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal
0025 _insertTrackImportersWithVeto = {}
0026 _trackImporters = ['GeneralTracksImporter','ConvBremTrackImporter',
0027                    'ConversionTrackImporter','NuclearInteractionTrackImporter']
0028 for importer in _trackImporters:
0029   for idx in _findIndicesByModule(importer):
0030     _insertTrackImportersWithVeto[idx] = dict(
0031       vetoEndcap = True,
0032       vetoMode = cms.uint32(2), # pfTICL candidate list
0033       vetoSrc = cms.InputTag("pfTICL")
0034     )
0035 phase2_hgcal.toModify(
0036     particleFlowBlock,
0037     elementImporters = _insertTrackImportersWithVeto
0038 )
0039 
0040 #
0041 # append track-HF linkers
0042 from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker
0043 _addTrackHFLinks = particleFlowBlock.linkDefinitions.copy()
0044 _addTrackHFLinks.append(
0045   cms.PSet( linkerName = cms.string("TrackAndHCALLinker"),
0046             linkType   = cms.string("TRACK:HFEM"),
0047             useKDTree  = cms.bool(True),
0048             trajectoryLayerEntrance = cms.string("VFcalEntrance"),
0049             trajectoryLayerExit = cms.string(""),
0050             nMaxHcalLinksPerTrack = cms.int32(-1) # Keep all track-HFEM links
0051           )
0052 )
0053 _addTrackHFLinks.append(
0054   cms.PSet( linkerName = cms.string("TrackAndHCALLinker"),
0055             linkType   = cms.string("TRACK:HFHAD"),
0056             useKDTree  = cms.bool(True),
0057             trajectoryLayerEntrance = cms.string("VFcalEntrance"),
0058             trajectoryLayerExit = cms.string(""),
0059             nMaxHcalLinksPerTrack = cms.int32(-1) # Keep all track-HFHAD links for now
0060           )
0061 )
0062 phase2_tracker.toModify(
0063     particleFlowBlock,
0064     linkDefinitions = _addTrackHFLinks
0065 )
0066 
0067 #
0068 # for precision timing
0069 from Configuration.Eras.Modifier_phase2_timing_cff import phase2_timing
0070 _addTiming = particleFlowBlock.elementImporters.copy()
0071 _addTiming.append( cms.PSet( importerName = cms.string("TrackTimingImporter"),
0072                              useTimeQuality = cms.bool(False),
0073                              timeValueMap = cms.InputTag("trackTimeValueMapProducer:generalTracksConfigurableFlatResolutionModel"),
0074                              timeErrorMap = cms.InputTag("trackTimeValueMapProducer:generalTracksConfigurableFlatResolutionModelResolution"),
0075                              timeValueMapGsf = cms.InputTag("gsfTrackTimeValueMapProducer:electronGsfTracksConfigurableFlatResolutionModel"),
0076                              timeErrorMapGsf = cms.InputTag("gsfTrackTimeValueMapProducer:electronGsfTracksConfigurableFlatResolutionModelResolution")
0077                              )
0078                    )
0079 
0080 from Configuration.Eras.Modifier_phase2_timing_layer_cff import phase2_timing_layer
0081 _addTimingLayer = particleFlowBlock.elementImporters.copy()
0082 _addTimingLayer.append( cms.PSet( importerName = cms.string("TrackTimingImporter"),
0083                              timeValueMap = cms.InputTag("tofPID:t0"),
0084                              timeErrorMap = cms.InputTag("tofPID:sigmat0"),
0085                              useTimeQuality = cms.bool(True),
0086                              timeQualityMap = cms.InputTag("mtdTrackQualityMVA:mtdQualMVA"),
0087                              timeQualityThreshold = cms.double(0.5),
0088                              #this will cause no time to be set for gsf tracks
0089                              #(since this is not available for the fullsim/reconstruction yet)
0090                              #*TODO* update when gsf times are available
0091                              timeValueMapGsf = cms.InputTag("tofPID:t0"),
0092                              timeErrorMapGsf = cms.InputTag("tofPID:sigmat0"),
0093                              timeQualityMapGsf = cms.InputTag("mtdTrackQualityMVA:mtdQualMVA"),
0094                              )
0095                    )
0096 
0097 phase2_timing.toModify(
0098     particleFlowBlock,
0099     elementImporters = _addTiming
0100 )
0101 
0102 phase2_timing_layer.toModify(
0103     particleFlowBlock,
0104     elementImporters = _addTimingLayer
0105 )
0106 
0107 #--- Use DB conditions for cuts&seeds for Run3 and phase2
0108 from Configuration.Eras.Modifier_hcalPfCutsFromDB_cff import hcalPfCutsFromDB
0109 hcalPfCutsFromDB.toModify( _scImporter,
0110                            usePFThresholdsFromDB = True)