Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 10:49:11

0001 from __future__ import print_function
0002 import FWCore.ParameterSet.Config as cms
0003 
0004 ## L1REPACK FullSimTP : Re-Emulate all of L1 and repack into RAW
0005 
0006 from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
0007 
0008 (~stage2L1Trigger).toModify(None, lambda x:
0009     print("# L1T WARN:  L1REPACK:FullSimTP (intended for data) 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:FullSimTP (intended for data) will unpack all L1T inputs, re-emulate Trigger Primitives, re-emulate L1T (Stage-2), and pack uGT, uGMT, and Calo Stage-2 output."))
0012 
0013 # First, Unpack all inputs to L1:
0014 import EventFilter.L1TRawToDigi.bmtfDigis_cfi
0015 unpackBmtf = EventFilter.L1TRawToDigi.bmtfDigis_cfi.bmtfDigis.clone(
0016     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0017 
0018 import EventFilter.DTTFRawToDigi.dttfunpacker_cfi
0019 unpackDttf = EventFilter.DTTFRawToDigi.dttfunpacker_cfi.dttfunpacker.clone(
0020     DTTF_FED_Source = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0021         
0022 import EventFilter.L1TRawToDigi.emtfStage2Digis_cfi
0023 unpackEmtf = EventFilter.L1TRawToDigi.emtfStage2Digis_cfi.emtfStage2Digis.clone(
0024     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0025         
0026 
0027 import EventFilter.CSCTFRawToDigi.csctfunpacker_cfi
0028 unpackCsctf = EventFilter.CSCTFRawToDigi.csctfunpacker_cfi.csctfunpacker.clone(
0029     producer = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0030 
0031 import EventFilter.CSCRawToDigi.cscUnpacker_cfi
0032 unpackCSC = EventFilter.CSCRawToDigi.cscUnpacker_cfi.muonCSCDigis.clone(
0033     InputObjects = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0034 
0035 import EventFilter.DTRawToDigi.dtunpacker_cfi
0036 unpackDT = EventFilter.DTRawToDigi.dtunpacker_cfi.muonDTDigis.clone(
0037     inputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0038 
0039 import EventFilter.RPCRawToDigi.rpcUnpacker_cfi
0040 unpackRPC = EventFilter.RPCRawToDigi.rpcUnpacker_cfi.rpcunpacker.clone(
0041     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0042 
0043 import EventFilter.EcalRawToDigi.EcalUnpackerData_cfi
0044 unpackEcal = EventFilter.EcalRawToDigi.EcalUnpackerData_cfi.ecalEBunpacker.clone(
0045     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0046 
0047 import EventFilter.HcalRawToDigi.HcalRawToDigi_cfi
0048 unpackHcal = EventFilter.HcalRawToDigi.HcalRawToDigi_cfi.hcalDigis.clone(
0049     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0050 
0051 # Second, Re-Emulate the entire L1T
0052 
0053 from SimCalorimetry.EcalTrigPrimProducers.ecalTriggerPrimitiveDigis_cfi import *
0054 #from L1Trigger.Configuration.CaloTriggerPrimitives_cff import *
0055 simEcalTriggerPrimitiveDigis.InstanceEB = 'ebDigis'
0056 simEcalTriggerPrimitiveDigis.InstanceEE = 'eeDigis'
0057 simEcalTriggerPrimitiveDigis.Label = 'unpackEcal'
0058 from SimCalorimetry.HcalTrigPrimProducers.hcaltpdigi_cff import *
0059 simHcalTriggerPrimitiveDigis.inputLabel = [
0060     'unpackHcal',
0061     'unpackHcal'
0062 ]
0063 simHcalTriggerPrimitiveDigis.inputUpgradeLabel = [
0064     'unpackHcal',     # upgrade HBHE
0065     'unpackHcal'      # upgrade HF
0066 ]
0067 
0068 from L1Trigger.Configuration.SimL1Emulator_cff import *
0069     
0070 simDtTriggerPrimitiveDigis.digiTag = 'unpackDT'
0071 simCscTriggerPrimitiveDigis.CSCComparatorDigiProducer = 'unpackCSC:MuonCSCComparatorDigi'
0072 simCscTriggerPrimitiveDigis.CSCWireDigiProducer       = 'unpackCSC:MuonCSCWireDigi'
0073 
0074 simTwinMuxDigis.RPC_Source         = 'unpackRPC'
0075 # simTwinMuxDigis.DTDigi_Source      = "simDtTriggerPrimitiveDigis"  # DEFAULT
0076 # simTwinMuxDigis.DTThetaDigi_Source = "simDtTriggerPrimitiveDigis"  # DEFAULT
0077 
0078 # BMTF
0079 # simBmtfDigis.DTDigi_Source       = "simTwinMuxDigis"               # DEFAULT
0080 # simBmtfDigis.DTDigi_Theta_Source = "simDtTriggerPrimitiveDigis"    # DEFAULT
0081 
0082 # OMTF
0083 simOmtfDigis.srcRPC              = 'unpackRPC'
0084 # simOmtfDigis.srcDTPh             = "simDtTriggerPrimitiveDigis"    # DEFAULT
0085 # simOmtfDigis.srcDTTh             = "simDtTriggerPrimitiveDigis"    # DEFAULT
0086 simOmtfDigis.srcCSC              = "unpackCsctf"
0087 # simOmtfDigis.srcCSC              = "simCscTriggerPrimitiveDigis"   # DEFAULT
0088 
0089 # EMTF
0090 simEmtfDigis.CSCInput            = "unpackEmtf"
0091 # simEmtfDigis.CSCInput            = "simCscTriggerPrimitiveDigis"     # DEFAULT
0092 simEmtfDigis.RPCInput            = 'unpackRPC'
0093 
0094 # simCaloStage2Layer1Digis.ecalToken = 'simEcalTriggerPrimitiveDigis'  # DEFAULT
0095 # simCaloStage2Layer1Digis.hcalToken = 'simHcalTriggerPrimitiveDigis'  # DEFAULT
0096 
0097 # Finally, pack the new L1T output back into RAW
0098     
0099 from EventFilter.L1TRawToDigi.caloStage2Raw_cfi import caloStage2Raw as packCaloStage2
0100 from EventFilter.L1TRawToDigi.gmtStage2Raw_cfi import gmtStage2Raw as packGmtStage2
0101 from EventFilter.L1TRawToDigi.gtStage2Raw_cfi import gtStage2Raw as packGtStage2
0102 
0103 # combine the new L1 RAW with existing RAW for other FEDs
0104 import EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi
0105 rawDataCollector = EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi.rawDataCollector.clone(
0106     verbose = 0,
0107     RawCollectionList = [
0108         'packCaloStage2',
0109         'packGmtStage2',
0110         'packGtStage2',
0111         cms.InputTag('rawDataCollector', processName=cms.InputTag.skipCurrentProcess()),
0112         ]
0113     )
0114 
0115 
0116 SimL1EmulatorTask = cms.Task()
0117 stage2L1Trigger.toReplaceWith(SimL1EmulatorTask, cms.Task(unpackEcal,unpackHcal,unpackCSC,unpackDT,unpackRPC,unpackEmtf,unpackCsctf,unpackBmtf
0118                                  ,simEcalTriggerPrimitiveDigis
0119                                  ,simHcalTriggerPrimitiveDigis
0120                                  ,SimL1EmulatorCoreTask,packCaloStage2
0121                                  ,packGmtStage2,packGtStage2,rawDataCollector))
0122 SimL1Emulator = cms.Sequence(SimL1EmulatorTask)