Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove nearly all calls to Modifier.isChosen() from L1T configurations #25577

Merged
merged 9 commits into from
Feb 4, 2019
28 changes: 13 additions & 15 deletions Configuration/StandardSequences/python/DigiToRawDM_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,18 +52,16 @@
)


if 'caloLayer1RawFed1354' in globals():
from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger

stage2L1Trigger.toModify(caloLayer1RawFed1354,
ecalDigis= "DMEcalTriggerPrimitiveDigis",
hcalDigis= "DMHcalTriggerPrimitiveDigis"
)
stage2L1Trigger.toModify(caloLayer1RawFed1356,
ecalDigis= "DMEcalTriggerPrimitiveDigis",
hcalDigis= "DMHcalTriggerPrimitiveDigis"
)
stage2L1Trigger.toModify(caloLayer1RawFed1358,
ecalDigis= "DMEcalTriggerPrimitiveDigis",
hcalDigis= "DMHcalTriggerPrimitiveDigis"
)
from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
stage2L1Trigger.toModify(caloLayer1RawFed1354,
ecalDigis= "DMEcalTriggerPrimitiveDigis",
hcalDigis= "DMHcalTriggerPrimitiveDigis"
)
stage2L1Trigger.toModify(caloLayer1RawFed1356,
ecalDigis= "DMEcalTriggerPrimitiveDigis",
hcalDigis= "DMHcalTriggerPrimitiveDigis"
)
stage2L1Trigger.toModify(caloLayer1RawFed1358,
ecalDigis= "DMEcalTriggerPrimitiveDigis",
hcalDigis= "DMHcalTriggerPrimitiveDigis"
)
20 changes: 10 additions & 10 deletions Configuration/StandardSequences/python/SimL1EmulatorDM_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@
hgcalVFEProducer.bhDigis = "mixData:HGCDigisHEback"

from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
if not stage2L1Trigger.isChosen():
(~premix_stage2).toModify(simRpcTriggerDigis, label = 'mixData')
simRctDigis.hcalDigis=cms.VInputTag(cms.InputTag("DMHcalTriggerPrimitiveDigis"))
simRctDigis.ecalDigis=cms.VInputTag(cms.InputTag("DMEcalTriggerPrimitiveDigis"))
else:
#seems likely that this code does not support 2015 MC...
(~premix_stage2).toModify(simTwinMuxDigis, RPC_Source = 'mixData')
(~premix_stage2).toModify(simOmtfDigis, srcRPC = 'mixData')
simCaloStage2Layer1Digis.ecalToken = cms.InputTag("DMEcalTriggerPrimitiveDigis")
simCaloStage2Layer1Digis.hcalToken = cms.InputTag("DMHcalTriggerPrimitiveDigis")
# Legacy and Stage-1 Trigger
(~premix_stage2).toModify(simRpcTriggerDigis, label = 'mixData')
simRctDigis.hcalDigis=["DMHcalTriggerPrimitiveDigis"]
simRctDigis.ecalDigis=["DMEcalTriggerPrimitiveDigis"]
# Stage-2 Trigger
#seems likely that this code does not support 2015 MC...
(~premix_stage2).toModify(simTwinMuxDigis, RPC_Source = 'mixData')
(~premix_stage2).toModify(simOmtfDigis, srcRPC = 'mixData')
simCaloStage2Layer1Digis.ecalToken = "DMEcalTriggerPrimitiveDigis"
simCaloStage2Layer1Digis.hcalToken = "DMHcalTriggerPrimitiveDigis"
218 changes: 109 additions & 109 deletions Configuration/StandardSequences/python/SimL1EmulatorRepack_CalouGT_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,118 +11,118 @@
else:
print("L1T INFO: L1REPACK:CalouGT (intended for 2016/2017 data), reemulates the Calo part, uses unpacked Muons, and reemulates uGT.")
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these printouts still needed (also in other SimL1EmulatorRepack_* files)? If no, I'd remove them, if yes, there is likely a (bit hacky) way to recast them as calls to Modifier.toModify().

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These comments are useful to remind the user of intricacies of the expert level workflow. I'd like to keep them, please.


# First, Unpack all inputs to L1:
import EventFilter.L1TRawToDigi.bmtfDigis_cfi
unpackBmtf = EventFilter.L1TRawToDigi.bmtfDigis_cfi.bmtfDigis.clone(
InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

import EventFilter.DTTFRawToDigi.dttfunpacker_cfi
unpackDttf = EventFilter.DTTFRawToDigi.dttfunpacker_cfi.dttfunpacker.clone(
DTTF_FED_Source = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
# First, Unpack all inputs to L1:
import EventFilter.L1TRawToDigi.bmtfDigis_cfi
unpackBmtf = EventFilter.L1TRawToDigi.bmtfDigis_cfi.bmtfDigis.clone(
InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

import EventFilter.DTTFRawToDigi.dttfunpacker_cfi
unpackDttf = EventFilter.DTTFRawToDigi.dttfunpacker_cfi.dttfunpacker.clone(
DTTF_FED_Source = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

import EventFilter.L1TRawToDigi.emtfStage2Digis_cfi
unpackEmtf = EventFilter.L1TRawToDigi.emtfStage2Digis_cfi.emtfStage2Digis.clone(
InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
import EventFilter.L1TRawToDigi.emtfStage2Digis_cfi
unpackEmtf = EventFilter.L1TRawToDigi.emtfStage2Digis_cfi.emtfStage2Digis.clone(
InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

import EventFilter.CSCTFRawToDigi.csctfunpacker_cfi
unpackCsctf = EventFilter.CSCTFRawToDigi.csctfunpacker_cfi.csctfunpacker.clone(
producer = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

import EventFilter.CSCRawToDigi.cscUnpacker_cfi
unpackCSC = EventFilter.CSCRawToDigi.cscUnpacker_cfi.muonCSCDigis.clone(
InputObjects = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

import EventFilter.DTRawToDigi.dtunpacker_cfi
unpackDT = EventFilter.DTRawToDigi.dtunpacker_cfi.muonDTDigis.clone(
inputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

import EventFilter.RPCRawToDigi.rpcUnpacker_cfi
unpackRPC = EventFilter.RPCRawToDigi.rpcUnpacker_cfi.rpcunpacker.clone(
InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

import EventFilter.EcalRawToDigi.EcalUnpackerData_cfi
unpackEcal = EventFilter.EcalRawToDigi.EcalUnpackerData_cfi.ecalEBunpacker.clone(
InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

import EventFilter.HcalRawToDigi.HcalRawToDigi_cfi
unpackHcal = EventFilter.HcalRawToDigi.HcalRawToDigi_cfi.hcalDigis.clone(
InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

# Second, unpacker of inputs to uGT:
# #################################
import EventFilter.L1TRawToDigi.gtStage2Digis_cfi
unpackGtStage2 = EventFilter.L1TRawToDigi.gtStage2Digis_cfi.gtStage2Digis.clone(
InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

# For simplicity, re-emulate the entire L1T (will not use Muon part)
# ################################################################

from SimCalorimetry.HcalTrigPrimProducers.hcaltpdigi_cff import *
simHcalTriggerPrimitiveDigis.inputLabel = cms.VInputTag(
cms.InputTag('unpackHcal'),
cms.InputTag('unpackHcal')
)
simHcalTriggerPrimitiveDigis.inputUpgradeLabel = cms.VInputTag(
cms.InputTag('unpackHcal'), # upgrade HBHE
cms.InputTag('unpackHcal') # upgrade HF
)

from L1Trigger.Configuration.SimL1Emulator_cff import *
import EventFilter.CSCTFRawToDigi.csctfunpacker_cfi
unpackCsctf = EventFilter.CSCTFRawToDigi.csctfunpacker_cfi.csctfunpacker.clone(
producer = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

import EventFilter.CSCRawToDigi.cscUnpacker_cfi
unpackCSC = EventFilter.CSCRawToDigi.cscUnpacker_cfi.muonCSCDigis.clone(
InputObjects = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

import EventFilter.DTRawToDigi.dtunpacker_cfi
unpackDT = EventFilter.DTRawToDigi.dtunpacker_cfi.muonDTDigis.clone(
inputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

import EventFilter.RPCRawToDigi.rpcUnpacker_cfi
unpackRPC = EventFilter.RPCRawToDigi.rpcUnpacker_cfi.rpcunpacker.clone(
InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

import EventFilter.EcalRawToDigi.EcalUnpackerData_cfi
unpackEcal = EventFilter.EcalRawToDigi.EcalUnpackerData_cfi.ecalEBunpacker.clone(
InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

import EventFilter.HcalRawToDigi.HcalRawToDigi_cfi
unpackHcal = EventFilter.HcalRawToDigi.HcalRawToDigi_cfi.hcalDigis.clone(
InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

# Second, unpacker of inputs to uGT:
# #################################
import EventFilter.L1TRawToDigi.gtStage2Digis_cfi
unpackGtStage2 = EventFilter.L1TRawToDigi.gtStage2Digis_cfi.gtStage2Digis.clone(
InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

# For simplicity, re-emulate the entire L1T (will not use Muon part)
# ################################################################

from SimCalorimetry.HcalTrigPrimProducers.hcaltpdigi_cff import *
simHcalTriggerPrimitiveDigis.inputLabel = [
'unpackHcal',
'unpackHcal'
]
simHcalTriggerPrimitiveDigis.inputUpgradeLabel = [
'unpackHcal', # upgrade HBHE
'unpackHcal' # upgrade HF
]

from L1Trigger.Configuration.SimL1Emulator_cff import *

simDtTriggerPrimitiveDigis.digiTag = 'unpackDT'
simCscTriggerPrimitiveDigis.CSCComparatorDigiProducer = cms.InputTag( 'unpackCSC', 'MuonCSCComparatorDigi' )
simCscTriggerPrimitiveDigis.CSCWireDigiProducer = cms.InputTag( 'unpackCSC', 'MuonCSCWireDigi' )

simTwinMuxDigis.RPC_Source = cms.InputTag('unpackRPC')
simTwinMuxDigis.DTDigi_Source = cms.InputTag("simDtTriggerPrimitiveDigis")
simTwinMuxDigis.DTThetaDigi_Source = cms.InputTag("simDtTriggerPrimitiveDigis")

# -----------------------------------------------------------
# change when availalbe simTwinMux and reliable DTTPs, CSCTPs
cutlist=['simDtTriggerPrimitiveDigis','simCscTriggerPrimitiveDigis','simTwinMuxDigis']
for b in cutlist:
SimL1EmulatorCore.remove(b)
# -----------------------------------------------------------

# BMTF
simBmtfDigis.DTDigi_Source = cms.InputTag("unpackBmtf")
simBmtfDigis.DTDigi_Theta_Source = cms.InputTag("unpackBmtf")

# OMTF
simOmtfDigis.srcRPC = cms.InputTag('unpackRPC')
simOmtfDigis.srcDTPh = cms.InputTag("unpackBmtf")
simOmtfDigis.srcDTTh = cms.InputTag("unpackBmtf")
simOmtfDigis.srcCSC = cms.InputTag("unpackCsctf") ## Replace when emtfStage2Digis give equal data-emulator agreement

# EMTF
simEmtfDigis.CSCInput = cms.InputTag("unpackEmtf")
simEmtfDigis.RPCInput = cms.InputTag('unpackRPC')

simCaloStage2Layer1Digis.ecalToken = cms.InputTag('unpackEcal:EcalTriggerPrimitives')
simCaloStage2Layer1Digis.hcalToken = cms.InputTag('unpackHcal')

# uGT inputs for Muons are from unpacked
simGtStage2Digis.MuonInputTag = cms.InputTag("unpackGtStage2","Muon")

# Finally, pack the newly re-emulated L1T parts back into RAW
# Calo packer
from EventFilter.L1TRawToDigi.caloStage2Raw_cfi import caloStage2Raw as packCaloStage2
# uGT packer
from EventFilter.L1TRawToDigi.gtStage2Raw_cfi import gtStage2Raw as packGtStage2

# combine the new L1 RAW with existing RAW for other FEDs
import EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi
rawDataCollector = EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi.rawDataCollector.clone(
verbose = cms.untracked.int32(0),
RawCollectionList = cms.VInputTag(
cms.InputTag('packCaloStage2'),
cms.InputTag('packGtStage2'),
cms.InputTag('rawDataCollector', processName=cms.InputTag.skipCurrentProcess()),
)
)
simDtTriggerPrimitiveDigis.digiTag = 'unpackDT'
simCscTriggerPrimitiveDigis.CSCComparatorDigiProducer = 'unpackCSC:MuonCSCComparatorDigi'
simCscTriggerPrimitiveDigis.CSCWireDigiProducer = 'unpackCSC:MuonCSCWireDigi'

simTwinMuxDigis.RPC_Source = 'unpackRPC'
simTwinMuxDigis.DTDigi_Source = "simDtTriggerPrimitiveDigis"
simTwinMuxDigis.DTThetaDigi_Source = "simDtTriggerPrimitiveDigis"

# -----------------------------------------------------------
# change when availalbe simTwinMux and reliable DTTPs, CSCTPs
cutlist=['simDtTriggerPrimitiveDigis','simCscTriggerPrimitiveDigis','simTwinMuxDigis']
for b in cutlist:
SimL1EmulatorCore.remove(b)
# -----------------------------------------------------------

# BMTF
simBmtfDigis.DTDigi_Source = "unpackBmtf"
simBmtfDigis.DTDigi_Theta_Source = "unpackBmtf"

# OMTF
simOmtfDigis.srcRPC = 'unpackRPC'
simOmtfDigis.srcDTPh = "unpackBmtf"
simOmtfDigis.srcDTTh = "unpackBmtf"
simOmtfDigis.srcCSC = "unpackCsctf" ## Replace when emtfStage2Digis give equal data-emulator agreement

# EMTF
simEmtfDigis.CSCInput = "unpackEmtf"
simEmtfDigis.RPCInput = 'unpackRPC'

simCaloStage2Layer1Digis.ecalToken = 'unpackEcal:EcalTriggerPrimitives'
simCaloStage2Layer1Digis.hcalToken = 'unpackHcal'

# uGT inputs for Muons are from unpacked
simGtStage2Digis.MuonInputTag = "unpackGtStage2","Muon"

# Finally, pack the newly re-emulated L1T parts back into RAW
# Calo packer
from EventFilter.L1TRawToDigi.caloStage2Raw_cfi import caloStage2Raw as packCaloStage2
# uGT packer
from EventFilter.L1TRawToDigi.gtStage2Raw_cfi import gtStage2Raw as packGtStage2

# combine the new L1 RAW with existing RAW for other FEDs
import EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi
rawDataCollector = EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi.rawDataCollector.clone(
verbose = 0,
RawCollectionList = [
'packCaloStage2',
'packGtStage2',
cms.InputTag('rawDataCollector', processName=cms.InputTag.skipCurrentProcess()),
]
)


SimL1Emulator = cms.Sequence(unpackEcal+unpackHcal+unpackCSC+unpackDT+unpackRPC+unpackEmtf+unpackCsctf+unpackBmtf+unpackGtStage2
SimL1Emulator = cms.Sequence()
stage2L1Trigger.toReplaceWith(SimL1Emulator, cms.Sequence(unpackEcal+unpackHcal+unpackCSC+unpackDT+unpackRPC+unpackEmtf+unpackCsctf+unpackBmtf+unpackGtStage2
+SimL1EmulatorCore+packCaloStage2
+packGtStage2+rawDataCollector)
+packGtStage2+rawDataCollector))