File indexing completed on 2024-12-19 04:04:48
0001 import FWCore.ParameterSet.Config as cms
0002 from PhysicsTools.NanoAOD.run3scouting_cff import *
0003 from L1Trigger.Configuration.L1TRawToDigi_cff import *
0004 from EventFilter.L1TRawToDigi.gtStage2Digis_cfi import gtStage2Digis
0005 from PhysicsTools.NanoAOD.triggerObjects_cff import l1bits
0006 from PhysicsTools.NanoAOD.globals_cff import puTable
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 scoutingMuonTableTask = cms.Task(scoutingMuonTable)
0021 scoutingMuonDisplacedVertexTableTask = cms.Task(scoutingMuonDisplacedVertexTable)
0022
0023
0024 from Configuration.Eras.Modifier_run3_scouting_nanoAOD_post2023_cff import run3_scouting_nanoAOD_post2023
0025 run3_scouting_nanoAOD_post2023.toReplaceWith(scoutingMuonTableTask, cms.Task(scoutingMuonVtxTable, scoutingMuonNoVtxTable))\
0026 .toReplaceWith(scoutingMuonDisplacedVertexTableTask, cms.Task(scoutingMuonVtxDisplacedVertexTable, scoutingMuonNoVtxDisplacedVertexTable))
0027
0028
0029
0030
0031
0032
0033
0034 scoutingPFCandidateTask = cms.Task(scoutingPFCandidate, scoutingPFCandidateTable)
0035 scoutingPFJetReclusterTask = cms.Task(
0036 scoutingPFCandidate,
0037 scoutingPFJetRecluster,
0038 scoutingPFJetReclusterParticleNetJetTagInfos, scoutingPFJetReclusterParticleNetJetTags,
0039 scoutingPFJetReclusterTable
0040 )
0041 scoutingPFJetReclusterMatchGenExtensionTask = cms.Task(
0042 scoutingPFJetReclusterMatchGen,
0043 scoutingPFJetReclusterMatchGenExtensionTable
0044 )
0045
0046 scoutingFatPFJetReclusterTask = cms.Task(
0047 scoutingPFCandidate,
0048 scoutingFatPFJetRecluster,
0049 scoutingFatPFJetReclusterParticleNetJetTagInfos, scoutingFatPFJetReclusterParticleNetJetTags,
0050 scoutingFatPFJetReclusterSoftDrop, scoutingFatPFJetReclusterSoftDropMass,
0051 scoutingFatPFJetReclusterParticleNetJetTagInfos, scoutingFatPFJetReclusterParticleNetMassRegressionJetTags,
0052 scoutingFatPFJetReclusterEcfNbeta1, scoutingFatPFJetReclusterNjettiness,
0053 scoutingFatPFJetReclusterTable
0054 )
0055 scoutingFatPFJetReclusterMatchGenExtensionTask = cms.Task(
0056 scoutingFatPFJetReclusterMatchGen,
0057 scoutingFatPFJetReclusterMatchGenExtensionTable
0058 )
0059
0060
0061
0062
0063
0064
0065 gtStage2DigisScouting = gtStage2Digis.clone(InputLabel="hltFEDSelectorL1")
0066 l1bitsScouting = l1bits.clone(src="gtStage2DigisScouting")
0067
0068
0069 from PhysicsTools.NanoAOD.l1trig_cff import *
0070 l1MuScoutingTable = l1MuTable.clone(src=cms.InputTag("gtStage2DigisScouting", "Muon"))
0071 l1EGScoutingTable = l1EGTable.clone(src=cms.InputTag("gtStage2DigisScouting", "EGamma"))
0072 l1TauScoutingTable = l1TauTable.clone(src=cms.InputTag("gtStage2DigisScouting", "Tau"))
0073 l1JetScoutingTable = l1JetTable.clone(src=cms.InputTag("gtStage2DigisScouting", "Jet"))
0074 l1EtSumScoutingTable = l1EtSumTable.clone(src=cms.InputTag("gtStage2DigisScouting", "EtSum"))
0075
0076
0077 l1MuScoutingTable.variables = cms.PSet(l1MuonReducedVars)
0078 l1EGScoutingTable.variables = cms.PSet(l1EGReducedVars)
0079 l1TauScoutingTable.variables = cms.PSet(l1TauReducedVars)
0080 l1JetScoutingTable.variables = cms.PSet(l1JetReducedVars)
0081 l1EtSumScoutingTable.variables = cms.PSet(l1EtSumReducedVars)
0082
0083
0084
0085
0086
0087
0088 def prepareScoutingNanoTaskCommon():
0089
0090
0091 scoutingNanoTaskCommon = cms.Task()
0092 scoutingNanoTaskCommon.add(scoutingMuonTableTask, scoutingMuonDisplacedVertexTableTask)
0093 scoutingNanoTaskCommon.add(scoutingElectronTable)
0094 scoutingNanoTaskCommon.add(scoutingPhotonTable)
0095 scoutingNanoTaskCommon.add(scoutingPrimaryVertexTable)
0096 scoutingNanoTaskCommon.add(scoutingPFJetTable)
0097 scoutingNanoTaskCommon.add(scoutingMETTable, scoutingRhoTable)
0098
0099
0100 scoutingNanoTaskCommon.add(scoutingPFJetReclusterTask)
0101 scoutingNanoTaskCommon.add(scoutingFatPFJetReclusterTask)
0102
0103 return scoutingNanoTaskCommon
0104
0105
0106 def prepareScoutingTriggerTask():
0107 scoutingTriggerTask = cms.Task(gtStage2DigisScouting, l1bitsScouting)
0108 scoutingTriggerTask.add(cms.Task(l1MuScoutingTable, l1EGScoutingTable, l1TauScoutingTable, l1JetScoutingTable, l1EtSumScoutingTable))
0109 return scoutingTriggerTask
0110
0111
0112 def prepareScoutingNanoTaskMC():
0113 scoutingNanoTaskMC = cms.Task()
0114 scoutingNanoTaskMC.add(scoutingPFJetReclusterMatchGenExtensionTask)
0115 scoutingNanoTaskMC.add(scoutingFatPFJetReclusterMatchGenExtensionTask)
0116
0117 scoutingNanoTaskMC.add(puTable)
0118 return scoutingNanoTaskMC
0119
0120
0121 scoutingNanoTaskCommon = prepareScoutingNanoTaskCommon()
0122 scoutingNanoSequence = cms.Sequence(scoutingNanoTaskCommon)
0123
0124
0125 scoutingTriggerTask = prepareScoutingTriggerTask()
0126 scoutingTriggerSequence = cms.Sequence(L1TRawToDigi+cms.Sequence(scoutingTriggerTask))
0127 scoutingNanoTaskMC = prepareScoutingNanoTaskMC()
0128
0129 def customiseScoutingNano(process):
0130
0131
0132 if not ((hasattr(process, "nanoSequence") and process.schedule.contains(process.nanoSequence))
0133 or hasattr(process, "nanoSequenceMC") and process.schedule.contains(process.nanoSequenceMC)):
0134 process.trigger_step = cms.Path(process.scoutingTriggerSequence)
0135 process.schedule.extend([process.trigger_step])
0136
0137
0138 runOnMC = hasattr(process,"NANOEDMAODSIMoutput") or hasattr(process,"NANOAODSIMoutput")
0139 if runOnMC:
0140 process.scoutingNanoSequence.associate(scoutingNanoTaskMC)
0141
0142 return process
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152 def customiseScoutingNanoFromMini(process):
0153
0154 process.scoutingTriggerSequence.remove(process.L1TRawToDigi)
0155
0156
0157 process.scoutingTriggerTask.remove(process.gtStage2DigisScouting)
0158
0159
0160 process.l1bitsScouting.src = cms.InputTag("gtStage2Digis")
0161
0162
0163 process.l1MuScoutingTable.src = cms.InputTag("gmtStage2Digis", "Muon")
0164 process.l1EGScoutingTable.src = cms.InputTag("caloStage2Digis", "EGamma")
0165 process.l1TauScoutingTable.src = cms.InputTag("caloStage2Digis", "Tau")
0166 process.l1JetScoutingTable.src = cms.InputTag("caloStage2Digis", "Jet")
0167 process.l1EtSumScoutingTable.src = cms.InputTag("caloStage2Digis", "EtSum")
0168
0169 return process
0170
0171 def addScoutingTrack(process):
0172 process.scoutingNanoSequence.associate(cms.Task(scoutingTrackTable))
0173 return process
0174
0175 def addScoutingParticle(process):
0176
0177 process.scoutingNanoSequence.associate(cms.Task(scoutingParticleTable))
0178 return process
0179
0180 def addScoutingPFCandidate(process):
0181
0182 process.scoutingNanoSequence.associate(scoutingPFCandidateTask)
0183 return process