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 CalouGT : Re-Emulate all of L1 and repack into RAW
0004 
0005 from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
0006 
0007 (~stage2L1Trigger).toModify(None, lambda x:
0008     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."))
0009 stage2L1Trigger.toModify(None, lambda x:
0010     print("# L1T INFO:  L1REPACK:CalouGT (intended for 2016/2017 data), reemulates the Calo part, uses unpacked Muons, and reemulates uGT."))
0011 
0012 # First, Unpack all inputs to L1:
0013 import EventFilter.L1TRawToDigi.bmtfDigis_cfi
0014 unpackBmtf = EventFilter.L1TRawToDigi.bmtfDigis_cfi.bmtfDigis.clone(
0015     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0016 
0017 import EventFilter.DTTFRawToDigi.dttfunpacker_cfi
0018 unpackDttf = EventFilter.DTTFRawToDigi.dttfunpacker_cfi.dttfunpacker.clone(
0019     DTTF_FED_Source = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0020         
0021 import EventFilter.L1TRawToDigi.emtfStage2Digis_cfi
0022 unpackEmtf = EventFilter.L1TRawToDigi.emtfStage2Digis_cfi.emtfStage2Digis.clone(
0023     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0024         
0025 import EventFilter.CSCTFRawToDigi.csctfunpacker_cfi
0026 unpackCsctf = EventFilter.CSCTFRawToDigi.csctfunpacker_cfi.csctfunpacker.clone(
0027     producer = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0028 
0029 import EventFilter.CSCRawToDigi.cscUnpacker_cfi
0030 unpackCSC = EventFilter.CSCRawToDigi.cscUnpacker_cfi.muonCSCDigis.clone(
0031     InputObjects = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0032 
0033 import EventFilter.DTRawToDigi.dtunpacker_cfi
0034 unpackDT = EventFilter.DTRawToDigi.dtunpacker_cfi.muonDTDigis.clone(
0035     inputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0036 
0037 import EventFilter.RPCRawToDigi.rpcUnpacker_cfi
0038 unpackRPC = EventFilter.RPCRawToDigi.rpcUnpacker_cfi.rpcunpacker.clone(
0039     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0040 
0041 import EventFilter.EcalRawToDigi.EcalUnpackerData_cfi
0042 unpackEcal = EventFilter.EcalRawToDigi.EcalUnpackerData_cfi.ecalEBunpacker.clone(
0043     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0044 
0045 import EventFilter.HcalRawToDigi.HcalRawToDigi_cfi
0046 unpackHcal = EventFilter.HcalRawToDigi.HcalRawToDigi_cfi.hcalDigis.clone(
0047     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0048 
0049 # Second, unpacker of inputs to uGT:
0050 # #################################
0051 import EventFilter.L1TRawToDigi.gtStage2Digis_cfi
0052 unpackGtStage2 = EventFilter.L1TRawToDigi.gtStage2Digis_cfi.gtStage2Digis.clone(
0053     InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
0054 
0055 # For simplicity, re-emulate the entire L1T (will not use Muon part)
0056 # ################################################################
0057 
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"
0076 simTwinMuxDigis.DTThetaDigi_Source = "simDtTriggerPrimitiveDigis"
0077 
0078 # -----------------------------------------------------------
0079 # change when availalbe simTwinMux and reliable DTTPs, CSCTPs
0080 cutlist=['simDtTriggerPrimitiveDigis','simCscTriggerPrimitiveDigis','simTwinMuxDigis']
0081 for b in cutlist:
0082     SimL1EmulatorCore.remove(b)
0083 # -----------------------------------------------------------
0084 
0085 # BMTF
0086 simBmtfDigis.DTDigi_Source       = "unpackBmtf"
0087 simBmtfDigis.DTDigi_Theta_Source = "unpackBmtf"
0088 
0089 # OMTF
0090 simOmtfDigis.srcRPC              = 'unpackRPC'
0091 simOmtfDigis.srcDTPh             = "unpackBmtf"
0092 simOmtfDigis.srcDTTh             = "unpackBmtf"
0093 simOmtfDigis.srcCSC              = "unpackCsctf" ## Replace when emtfStage2Digis give equal data-emulator agreement
0094 
0095 # EMTF
0096 simEmtfDigis.CSCInput            = "unpackEmtf"
0097 simEmtfDigis.RPCInput            = 'unpackRPC'
0098 
0099 simCaloStage2Layer1Digis.ecalToken = 'unpackEcal:EcalTriggerPrimitives'
0100 simCaloStage2Layer1Digis.hcalToken = 'unpackHcal'
0101 
0102 # uGT inputs for Muons are from unpacked
0103 simGtStage2Digis.MuonInputTag   = "unpackGtStage2:Muon"
0104 
0105 # Finally, pack the newly re-emulated L1T parts back into RAW
0106 # Calo packer
0107 from EventFilter.L1TRawToDigi.caloStage2Raw_cfi import caloStage2Raw as packCaloStage2
0108 # uGT packer
0109 from EventFilter.L1TRawToDigi.gtStage2Raw_cfi import gtStage2Raw as packGtStage2
0110 
0111 # combine the new L1 RAW with existing RAW for other FEDs
0112 import EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi
0113 rawDataCollector = EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi.rawDataCollector.clone(
0114     verbose = 0,
0115     RawCollectionList = [
0116         'packCaloStage2',
0117         'packGtStage2',
0118         cms.InputTag('rawDataCollector', processName=cms.InputTag.skipCurrentProcess()),
0119         ]
0120     )
0121 
0122 
0123 SimL1EmulatorTask = cms.Task()
0124 stage2L1Trigger.toReplaceWith(SimL1EmulatorTask, cms.Task(unpackEcal,unpackHcal,unpackCSC,unpackDT,unpackRPC,unpackEmtf,unpackCsctf,unpackBmtf,unpackGtStage2
0125                                  ,SimL1EmulatorCoreTask,packCaloStage2
0126                                  ,packGtStage2,rawDataCollector))
0127 SimL1Emulator = cms.Sequence(SimL1EmulatorTask)