Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:03:44

0001 from __future__ import print_function
0002 import FWCore.ParameterSet.Config as cms
0003 
0004 ## L1REPACK CalouGT : 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:CalouGT (intended for 2016/2017 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:CalouGT (intended for 2016/2017 data), reemulates the Calo part, uses unpacked Muons, and reemulates uGT."))
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 import EventFilter.CSCTFRawToDigi.csctfunpacker_cfi
0027 unpackCsctf = EventFilter.CSCTFRawToDigi.csctfunpacker_cfi.csctfunpacker.clone(
0028     producer = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0029 
0030 import EventFilter.CSCRawToDigi.cscUnpacker_cfi
0031 unpackCSC = EventFilter.CSCRawToDigi.cscUnpacker_cfi.muonCSCDigis.clone(
0032     InputObjects = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0033 
0034 import EventFilter.DTRawToDigi.dtunpacker_cfi
0035 unpackDT = EventFilter.DTRawToDigi.dtunpacker_cfi.muonDTDigis.clone(
0036     inputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0037 
0038 import EventFilter.RPCRawToDigi.rpcUnpacker_cfi
0039 unpackRPC = EventFilter.RPCRawToDigi.rpcUnpacker_cfi.rpcunpacker.clone(
0040     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0041 
0042 import EventFilter.EcalRawToDigi.EcalUnpackerData_cfi
0043 unpackEcal = EventFilter.EcalRawToDigi.EcalUnpackerData_cfi.ecalEBunpacker.clone(
0044     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0045 
0046 import EventFilter.HcalRawToDigi.HcalRawToDigi_cfi
0047 unpackHcal = EventFilter.HcalRawToDigi.HcalRawToDigi_cfi.hcalDigis.clone(
0048     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0049 
0050 # Second, unpacker of inputs to uGT:
0051 # #################################
0052 import EventFilter.L1TRawToDigi.gtStage2Digis_cfi
0053 unpackGtStage2 = EventFilter.L1TRawToDigi.gtStage2Digis_cfi.gtStage2Digis.clone(
0054     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0055 
0056 # For simplicity, re-emulate the entire L1T (will not use Muon part)
0057 # ################################################################
0058 
0059 from SimCalorimetry.HcalTrigPrimProducers.hcaltpdigi_cff import *
0060 simHcalTriggerPrimitiveDigis.inputLabel = [
0061     'unpackHcal',
0062     'unpackHcal'
0063 ]
0064 simHcalTriggerPrimitiveDigis.inputUpgradeLabel = [
0065     'unpackHcal',     # upgrade HBHE
0066     'unpackHcal'      # upgrade HF
0067 ]
0068 
0069 from L1Trigger.Configuration.SimL1Emulator_cff import *
0070     
0071 simDtTriggerPrimitiveDigis.digiTag = 'unpackDT'
0072 simCscTriggerPrimitiveDigis.CSCComparatorDigiProducer = 'unpackCSC:MuonCSCComparatorDigi'
0073 simCscTriggerPrimitiveDigis.CSCWireDigiProducer       = 'unpackCSC:MuonCSCWireDigi'
0074 
0075 simTwinMuxDigis.RPC_Source         = 'unpackRPC'
0076 simTwinMuxDigis.DTDigi_Source      = "simDtTriggerPrimitiveDigis"
0077 simTwinMuxDigis.DTThetaDigi_Source = "simDtTriggerPrimitiveDigis"
0078 
0079 # -----------------------------------------------------------
0080 # change when availalbe simTwinMux and reliable DTTPs, CSCTPs
0081 cutlist=['simDtTriggerPrimitiveDigis','simCscTriggerPrimitiveDigis','simTwinMuxDigis']
0082 for b in cutlist:
0083     SimL1EmulatorCore.remove(b)
0084 # -----------------------------------------------------------
0085 
0086 # BMTF
0087 simBmtfDigis.DTDigi_Source       = "unpackBmtf"
0088 simBmtfDigis.DTDigi_Theta_Source = "unpackBmtf"
0089 
0090 # OMTF
0091 simOmtfDigis.srcRPC              = 'unpackRPC'
0092 simOmtfDigis.srcDTPh             = "unpackBmtf"
0093 simOmtfDigis.srcDTTh             = "unpackBmtf"
0094 simOmtfDigis.srcCSC              = "unpackCsctf" ## Replace when emtfStage2Digis give equal data-emulator agreement
0095 
0096 # EMTF
0097 simEmtfDigis.CSCInput            = "unpackEmtf"
0098 simEmtfDigis.RPCInput            = 'unpackRPC'
0099 
0100 simCaloStage2Layer1Digis.ecalToken = 'unpackEcal:EcalTriggerPrimitives'
0101 simCaloStage2Layer1Digis.hcalToken = 'unpackHcal'
0102 
0103 # uGT inputs for Muons are from unpacked
0104 simGtStage2Digis.MuonInputTag   = "unpackGtStage2:Muon"
0105 
0106 # Finally, pack the newly re-emulated L1T parts back into RAW
0107 # Calo packer
0108 from EventFilter.L1TRawToDigi.caloStage2Raw_cfi import caloStage2Raw as packCaloStage2
0109 # uGT packer
0110 from EventFilter.L1TRawToDigi.gtStage2Raw_cfi import gtStage2Raw as packGtStage2
0111 
0112 # combine the new L1 RAW with existing RAW for other FEDs
0113 import EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi
0114 rawDataCollector = EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi.rawDataCollector.clone(
0115     verbose = 0,
0116     RawCollectionList = [
0117         'packCaloStage2',
0118         'packGtStage2',
0119         cms.InputTag('rawDataCollector', processName=cms.InputTag.skipCurrentProcess()),
0120         ]
0121     )
0122 
0123 
0124 SimL1EmulatorTask = cms.Task()
0125 stage2L1Trigger.toReplaceWith(SimL1EmulatorTask, cms.Task(unpackEcal,unpackHcal,unpackCSC,unpackDT,unpackRPC,unpackEmtf,unpackCsctf,unpackBmtf,unpackGtStage2
0126                                  ,SimL1EmulatorCoreTask,packCaloStage2
0127                                  ,packGtStage2,rawDataCollector))
0128 SimL1Emulator = cms.Sequence(SimL1EmulatorTask)