Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-02-05 03:14:51

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 # OMTF
0114 simOmtfDigis.srcRPC              = 'unpackRPC'
0115 simOmtfDigis.srcDTPh             = "unpackBmtf"
0116 simOmtfDigis.srcDTTh             = "unpackBmtf"
0117 simOmtfDigis.srcCSC              = "unpackCsctf"
0118 stage2L1Trigger_2017.toModify(simOmtfDigis,
0119     srcRPC  = 'unpackOmtf',
0120     srcCSC  = 'unpackOmtf',
0121     srcDTPh = 'unpackOmtf',
0122     srcDTTh = 'unpackOmtf'
0123 )
0124 
0125 # EMTF
0126 simEmtfDigis.CSCInput            = "unpackEmtf"
0127 simEmtfDigis.RPCInput            = 'unpackRPC'
0128 simEmtfDigis.CPPFInput           = cms.InputTag('unpackEmtf')
0129 simEmtfDigis.GEMEnable           = cms.bool(False)
0130 simEmtfDigis.GEMInput            = cms.InputTag('unpackGEM')
0131 simEmtfDigis.CPPFEnable          = cms.bool(True)
0132 
0133 # Calo Layer-1
0134 simCaloStage2Layer1Digis.ecalToken = 'unpackEcal:EcalTriggerPrimitives'
0135 simCaloStage2Layer1Digis.hcalToken = 'unpackHcal'
0136 
0137 # ZDC EtSums
0138 l1tZDCEtSums.hcalTPDigis = 'unpackHcal'
0139 
0140 ## GT
0141 stage2L1Trigger_2017.toModify(simGtExtFakeStage2Digis,
0142     tcdsRecordLabel= cms.InputTag("unpackTcds","tcdsRecord")
0143 )
0144 stage2L1Trigger.toModify(simGtExtFakeStage2Digis,
0145     tcdsRecordLabel= cms.InputTag("unpackTcds","tcdsRecord")
0146 )
0147 
0148 # Finally, pack the new L1T output back into RAW
0149     
0150 from EventFilter.L1TRawToDigi.caloStage2Raw_cfi import caloStage2Raw as packCaloStage2
0151 from EventFilter.L1TRawToDigi.gmtStage2Raw_cfi import gmtStage2Raw as packGmtStage2
0152 from EventFilter.L1TRawToDigi.gtStage2Raw_cfi import gtStage2Raw as packGtStage2
0153 
0154 # combine the new L1 RAW with existing RAW for other FEDs
0155 import EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi
0156 rawDataCollector = EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi.rawDataCollector.clone(
0157     verbose = 0,
0158     RawCollectionList = [
0159         'packCaloStage2',
0160         'packGmtStage2',
0161         'packGtStage2',
0162         cms.InputTag('rawDataCollector', processName=cms.InputTag.skipCurrentProcess()),
0163         ]
0164     )
0165 
0166 SimL1EmulatorTask = cms.Task()
0167 stage2L1Trigger.toReplaceWith(SimL1EmulatorTask, cms.Task(unpackEcal,unpackHcal,unpackCSC,unpackDT,unpackRPC,unpackRPCTwinMux,unpackTwinMux,unpackOmtf,unpackEmtf,unpackCsctf,unpackBmtf
0168                                                           ,unpackTcds
0169                                                           ,SimL1EmulatorCoreTask,packCaloStage2
0170                                                           ,packGmtStage2,packGtStage2,rawDataCollector))
0171 
0172 _SimL1EmulatorTaskWithGEM = SimL1EmulatorTask.copy()
0173 _SimL1EmulatorTaskWithGEM.add(unpackGEM)
0174 (stage2L1Trigger & run3_GEM).toReplaceWith(SimL1EmulatorTask, _SimL1EmulatorTaskWithGEM)
0175 
0176 SimL1Emulator = cms.Sequence(SimL1EmulatorTask)