Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-11-28 23:10:45

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 ## L1REPACK FullMC : Re-Emulate all of L1 and repack into RAW
0004 
0005 from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
0006 from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM
0007 
0008 (~stage2L1Trigger).toModify(None, lambda x:
0009     print("# L1T WARN:  L1REPACK:FullMC (intended for MC events with RAW eventcontent) only supports Stage-2 eras for now.\n# L1T WARN:  Use a legacy version of L1REPACK for now."))
0010 stage2L1Trigger.toModify(None, lambda x:
0011     print("# L1T INFO:  L1REPACK:FullMC will unpack Calorimetry and Muon L1T inputs, re-emulate L1T (Stage-2), and pack uGT, uGMT, and Calo Stage-2 output."))
0012 
0013 # First, Unpack all inputs to L1:
0014 
0015 import EventFilter.RPCRawToDigi.rpcUnpacker_cfi
0016 unpackRPC = EventFilter.RPCRawToDigi.rpcUnpacker_cfi.rpcunpacker.clone(
0017     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0018 
0019 import EventFilter.DTRawToDigi.dtunpacker_cfi
0020 unpackDT = EventFilter.DTRawToDigi.dtunpacker_cfi.muonDTDigis.clone(
0021     inputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0022 
0023 import EventFilter.CSCRawToDigi.cscUnpacker_cfi
0024 unpackCSC = EventFilter.CSCRawToDigi.cscUnpacker_cfi.muonCSCDigis.clone(
0025     InputObjects = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0026 
0027 import EventFilter.GEMRawToDigi.muonGEMDigis_cfi
0028 unpackGEM = EventFilter.GEMRawToDigi.muonGEMDigis_cfi.muonGEMDigis.clone(
0029     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0030 
0031 import EventFilter.EcalRawToDigi.EcalUnpackerData_cfi
0032 unpackEcal = EventFilter.EcalRawToDigi.EcalUnpackerData_cfi.ecalEBunpacker.clone(
0033     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0034 
0035 import EventFilter.HcalRawToDigi.HcalRawToDigi_cfi
0036 unpackHcal = EventFilter.HcalRawToDigi.HcalRawToDigi_cfi.hcalDigis.clone(
0037     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0038 
0039 # Second, Re-Emulate the entire L1T
0040 #
0041 # Legacy trigger primitive emulations still running in 2016 trigger:
0042 #
0043 from SimCalorimetry.Configuration.SimCalorimetry_cff import *
0044 
0045 # Ecal TPs
0046 # cannot simulate EcalTPs, don't have EcalUnsuppressedDigis in RAW
0047 #     simEcalTriggerPrimitiveDigis.Label = 'unpackEcal'
0048 # further downstream, use unpacked EcalTPs
0049 
0050 # Hcal TPs
0051 simHcalTriggerPrimitiveDigis.inputLabel = [
0052     'unpackHcal',
0053     'unpackHcal'
0054 ]
0055 simHcalTriggerPrimitiveDigis.inputUpgradeLabel = [
0056     'unpackHcal',     # upgrade HBHE
0057     'unpackHcal'      # upgrade HF
0058 ]
0059 
0060 from L1Trigger.Configuration.SimL1Emulator_cff import *
0061 # DT TPs
0062 simDtTriggerPrimitiveDigis.digiTag                    = 'unpackDT'
0063 # CSC TPs
0064 simCscTriggerPrimitiveDigis.CSCComparatorDigiProducer = 'unpackCSC:MuonCSCComparatorDigi'
0065 simCscTriggerPrimitiveDigis.CSCWireDigiProducer       = 'unpackCSC:MuonCSCWireDigi'
0066 # GEM
0067 (stage2L1Trigger & run3_GEM).toModify(simMuonGEMPadDigis, InputCollection = 'unpackGEM')
0068 
0069 # TWIN-MUX
0070 simTwinMuxDigis.RPC_Source         = 'unpackRPC'
0071 simTwinMuxDigis.DTDigi_Source      = "simDtTriggerPrimitiveDigis"
0072 simTwinMuxDigis.DTThetaDigi_Source = "simDtTriggerPrimitiveDigis"
0073 
0074 # BMTF
0075 simBmtfDigis.DTDigi_Source       = "simTwinMuxDigis"
0076 simBmtfDigis.DTDigi_Theta_Source = "simDtTriggerPrimitiveDigis"
0077 
0078 # OMTF
0079 simOmtfDigis.srcRPC              = 'unpackRPC'
0080 simOmtfDigis.srcDTPh             = "simDtTriggerPrimitiveDigis"
0081 simOmtfDigis.srcDTTh             = "simDtTriggerPrimitiveDigis"
0082 simOmtfDigis.srcCSC              = 'simCscTriggerPrimitiveDigis:MPCSORTED'
0083 
0084 # EMTF
0085 simEmtfDigis.CSCInput            = 'simCscTriggerPrimitiveDigis:MPCSORTED'
0086 simEmtfDigis.RPCInput            = 'unpackRPC'
0087 
0088 # CALO Layer1
0089 simCaloStage2Layer1Digis.ecalToken = 'unpackEcal:EcalTriggerPrimitives'
0090 simCaloStage2Layer1Digis.hcalToken = 'simHcalTriggerPrimitiveDigis'
0091 
0092 # ZDC EtSums
0093 l1tZDCEtSums.hcalTPDigis = 'unpackHcal'
0094 
0095 # Finally, pack the new L1T output back into RAW
0096 from EventFilter.L1TRawToDigi.caloStage2Raw_cfi import caloStage2Raw as packCaloStage2
0097 from EventFilter.L1TRawToDigi.gmtStage2Raw_cfi import gmtStage2Raw as packGmtStage2
0098 from EventFilter.L1TRawToDigi.gtStage2Raw_cfi import gtStage2Raw as packGtStage2
0099 
0100 # combine the new L1 RAW with existing RAW for other FEDs
0101 import EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi
0102 rawDataCollector = EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi.rawDataCollector.clone(
0103     verbose = 0,
0104         RawCollectionList = [
0105             'packCaloStage2',
0106             'packGmtStage2',
0107             'packGtStage2',
0108             cms.InputTag('rawDataCollector', processName=cms.InputTag.skipCurrentProcess()),
0109         ]
0110     )
0111 
0112 SimL1EmulatorTask = cms.Task()
0113 stage2L1Trigger.toReplaceWith(SimL1EmulatorTask, cms.Task(unpackRPC
0114                                                           , unpackDT
0115                                                           , unpackCSC
0116                                                           , unpackEcal
0117                                                           , unpackHcal
0118                                                           #, simEcalTriggerPrimitiveDigis
0119                                                           , simHcalTriggerPrimitiveDigis
0120                                                           , SimL1EmulatorCoreTask
0121                                                           , packCaloStage2
0122                                                           , packGmtStage2
0123                                                           , packGtStage2
0124                                                           , rawDataCollector))
0125 
0126 _SimL1EmulatorTaskWithGEM = SimL1EmulatorTask.copy()
0127 _SimL1EmulatorTaskWithGEM.add(unpackGEM)
0128 (stage2L1Trigger & run3_GEM).toReplaceWith(SimL1EmulatorTask, _SimL1EmulatorTaskWithGEM)
0129 
0130 SimL1Emulator = cms.Sequence(SimL1EmulatorTask)