Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-05-19 22:19:03

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 ## L1REPACK Full : Re-Emulate all of L1 and repack into RAW
0004 
0005 from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
0006 from Configuration.Eras.Modifier_stage2L1Trigger_2017_cff import stage2L1Trigger_2017
0007 from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM
0008 
0009 (~stage2L1Trigger).toModify(None, lambda x:
0010     print("# L1T WARN:  L1REPACK:Full only supports Stage-2 eras for now.\n# L1T WARN:  Use a legacy version of L1REPACK for now."))
0011 
0012 stage2L1Trigger.toModify(None, lambda x:
0013     print("# L1T INFO:  L1REPACK:Full will unpack all L1T inputs, re-emulated (Stage-2), and pack uGT, uGMT, and Calo Stage-2 output."))
0014 
0015 # First, Unpack all inputs to L1:
0016 
0017 import EventFilter.OnlineMetaDataRawToDigi.tcdsRawToDigi_cfi
0018 unpackTcds = EventFilter.OnlineMetaDataRawToDigi.tcdsRawToDigi_cfi.tcdsRawToDigi.clone(
0019     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0020 
0021 import EventFilter.L1TRawToDigi.bmtfDigis_cfi
0022 unpackBmtf = EventFilter.L1TRawToDigi.bmtfDigis_cfi.bmtfDigis.clone(
0023     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0024 
0025 import EventFilter.DTTFRawToDigi.dttfunpacker_cfi
0026 unpackDttf = EventFilter.DTTFRawToDigi.dttfunpacker_cfi.dttfunpacker.clone(
0027     DTTF_FED_Source = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0028         
0029 import EventFilter.L1TRawToDigi.omtfStage2Digis_cfi
0030 unpackOmtf = EventFilter.L1TRawToDigi.omtfStage2Digis_cfi.omtfStage2Digis.clone(
0031     inputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0032         
0033 import EventFilter.L1TRawToDigi.emtfStage2Digis_cfi
0034 unpackEmtf = EventFilter.L1TRawToDigi.emtfStage2Digis_cfi.emtfStage2Digis.clone(
0035     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0036         
0037 import EventFilter.CSCTFRawToDigi.csctfunpacker_cfi
0038 unpackCsctf = EventFilter.CSCTFRawToDigi.csctfunpacker_cfi.csctfunpacker.clone(
0039     producer = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0040 
0041 import EventFilter.CSCRawToDigi.cscUnpacker_cfi
0042 unpackCSC = EventFilter.CSCRawToDigi.cscUnpacker_cfi.muonCSCDigis.clone(
0043     InputObjects = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0044 
0045 import EventFilter.DTRawToDigi.dtunpacker_cfi
0046 unpackDT = EventFilter.DTRawToDigi.dtunpacker_cfi.muonDTDigis.clone(
0047     inputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0048 
0049 import EventFilter.RPCRawToDigi.rpcUnpacker_cfi
0050 unpackRPC = EventFilter.RPCRawToDigi.rpcUnpacker_cfi.rpcunpacker.clone(
0051     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0052 
0053 import EventFilter.RPCRawToDigi.rpcTwinMuxRawToDigi_cfi
0054 unpackRPCTwinMux = EventFilter.RPCRawToDigi.rpcTwinMuxRawToDigi_cfi.rpcTwinMuxRawToDigi.clone(
0055     inputTag = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0056 
0057 import EventFilter.L1TXRawToDigi.twinMuxStage2Digis_cfi
0058 unpackTwinMux = EventFilter.L1TXRawToDigi.twinMuxStage2Digis_cfi.twinMuxStage2Digis.clone(
0059     DTTM7_FED_Source = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0060 
0061 import EventFilter.GEMRawToDigi.muonGEMDigis_cfi
0062 unpackGEM = EventFilter.GEMRawToDigi.muonGEMDigis_cfi.muonGEMDigis.clone(
0063     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0064 
0065 import EventFilter.EcalRawToDigi.EcalUnpackerData_cfi
0066 unpackEcal = EventFilter.EcalRawToDigi.EcalUnpackerData_cfi.ecalEBunpacker.clone(
0067     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0068 
0069 import EventFilter.HcalRawToDigi.HcalRawToDigi_cfi
0070 unpackHcal = EventFilter.HcalRawToDigi.HcalRawToDigi_cfi.hcalDigis.clone(
0071     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0072 
0073 # Second, Re-Emulate the entire L1T
0074 
0075 from SimCalorimetry.HcalTrigPrimProducers.hcaltpdigi_cff import *
0076 simHcalTriggerPrimitiveDigis.inputLabel = [
0077     'unpackHcal',
0078     'unpackHcal'
0079 ]
0080 simHcalTriggerPrimitiveDigis.inputUpgradeLabel = [
0081     'unpackHcal',     # upgrade HBHE
0082     'unpackHcal'      # upgrade HF
0083 ]
0084 
0085 from L1Trigger.Configuration.SimL1Emulator_cff import *
0086     
0087 simDtTriggerPrimitiveDigis.digiTag = 'unpackDT'
0088 simCscTriggerPrimitiveDigis.CSCComparatorDigiProducer = 'unpackCSC:MuonCSCComparatorDigi'
0089 simCscTriggerPrimitiveDigis.CSCWireDigiProducer       = 'unpackCSC:MuonCSCWireDigi'
0090 
0091 simTwinMuxDigis.RPC_Source         = 'unpackRPCTwinMux'
0092 #simTwinMuxDigis.DTDigi_Source      = "unpackTwinMux:PhIn"
0093 #simTwinMuxDigis.DTThetaDigi_Source = "unpackTwinMux:ThIn" #technically correct, but L1 emulation does not seem to favor this?
0094 simTwinMuxDigis.DTDigi_Source = 'simDtTriggerPrimitiveDigis'
0095 simTwinMuxDigis.DTThetaDigi_Source = 'simDtTriggerPrimitiveDigis'
0096 
0097 (stage2L1Trigger & run3_GEM).toModify(simMuonGEMPadDigis,
0098     InputCollection = 'unpackGEM'
0099 )
0100 
0101 # -----------------------------------------------------------
0102 # change when availalbe simTwinMux and reliable DTTPs, CSCTPs
0103 cutlist=['simDtTriggerPrimitiveDigis','simCscTriggerPrimitiveDigis']
0104 for b in cutlist:
0105     SimL1EmulatorCore.remove(b)
0106 # -----------------------------------------------------------
0107 
0108 # BMTF
0109 #simBmtfDigis.DTDigi_Source =     = "simTwinMuxDigis" #used previously, but removed in favor of rem-emul favored unpacked inputs
0110 simBmtfDigis.DTDigi_Source       = "unpackBmtf"
0111 simBmtfDigis.DTDigi_Theta_Source = "unpackBmtf"
0112 
0113 # kBMTF
0114 simKBmtfStubs.srcPhi = 'unpackBmtf'
0115 simKBmtfStubs.srcTheta = 'unpackBmtf'
0116 
0117 # OMTF
0118 simOmtfDigis.srcRPC              = 'unpackRPC'
0119 simOmtfDigis.srcDTPh             = "unpackBmtf"
0120 simOmtfDigis.srcDTTh             = "unpackBmtf"
0121 simOmtfDigis.srcCSC              = "unpackCsctf"
0122 stage2L1Trigger_2017.toModify(simOmtfDigis,
0123     srcRPC  = 'unpackOmtf',
0124     srcCSC  = 'unpackOmtf',
0125     srcDTPh = 'unpackOmtf',
0126     srcDTTh = 'unpackOmtf'
0127 )
0128 
0129 # EMTF
0130 simEmtfDigis.CSCInput            = "unpackEmtf"
0131 simEmtfDigis.RPCInput            = 'unpackRPC'
0132 simEmtfDigis.CPPFInput           = cms.InputTag('unpackEmtf')
0133 simEmtfDigis.GEMEnable           = cms.bool(False)
0134 simEmtfDigis.GEMInput            = cms.InputTag('unpackGEM')
0135 simEmtfDigis.CPPFEnable          = cms.bool(True)
0136 
0137 # Calo Layer-1
0138 simCaloStage2Layer1Digis.ecalToken = 'unpackEcal:EcalTriggerPrimitives'
0139 simCaloStage2Layer1Digis.hcalToken = 'unpackHcal'
0140 
0141 # ZDC EtSums
0142 l1tZDCEtSums.hcalTPDigis = 'unpackHcal'
0143 
0144 ## GT
0145 stage2L1Trigger_2017.toModify(simGtExtFakeStage2Digis,
0146     tcdsRecordLabel= cms.InputTag("unpackTcds","tcdsRecord")
0147 )
0148 stage2L1Trigger.toModify(simGtExtFakeStage2Digis,
0149     tcdsRecordLabel= cms.InputTag("unpackTcds","tcdsRecord")
0150 )
0151 
0152 # Finally, pack the new L1T output back into RAW
0153     
0154 from EventFilter.L1TRawToDigi.caloStage2Raw_cfi import caloStage2Raw as packCaloStage2
0155 from EventFilter.L1TRawToDigi.gmtStage2Raw_cfi import gmtStage2Raw as packGmtStage2
0156 from EventFilter.L1TRawToDigi.gtStage2Raw_cfi import gtStage2Raw as packGtStage2
0157 
0158 # combine the new L1 RAW with existing RAW for other FEDs
0159 import EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi
0160 rawDataCollector = EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi.rawDataCollector.clone(
0161     verbose = 0,
0162     RawCollectionList = [
0163         'packCaloStage2',
0164         'packGmtStage2',
0165         'packGtStage2',
0166         cms.InputTag('rawDataCollector', processName=cms.InputTag.skipCurrentProcess()),
0167         ]
0168     )
0169 
0170 SimL1EmulatorTask = cms.Task()
0171 stage2L1Trigger.toReplaceWith(SimL1EmulatorTask, cms.Task(unpackEcal,unpackHcal,unpackCSC,unpackDT,unpackRPC,unpackRPCTwinMux,unpackTwinMux,unpackOmtf,unpackEmtf,unpackCsctf,unpackBmtf
0172                                                           ,unpackTcds
0173                                                           ,SimL1EmulatorCoreTask,packCaloStage2
0174                                                           ,packGmtStage2,packGtStage2,rawDataCollector))
0175 
0176 _SimL1EmulatorTaskWithGEM = SimL1EmulatorTask.copy()
0177 _SimL1EmulatorTaskWithGEM.add(unpackGEM)
0178 (stage2L1Trigger & run3_GEM).toReplaceWith(SimL1EmulatorTask, _SimL1EmulatorTaskWithGEM)
0179 
0180 SimL1Emulator = cms.Sequence(SimL1EmulatorTask)