CMS 3D CMS Logo

SimL1EmulatorRepack_CalouGT_cff.py
Go to the documentation of this file.
1 from __future__ import print_function
2 import FWCore.ParameterSet.Config as cms
3 
4 ## L1REPACK FULL: Re-Emulate all of L1 and repack into RAW
5 
6 
7 from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
8 def _print(ignored):
9  print("L1T WARN: L1REPACK:CalouGT (intended for 2016/2017 data) only supports Stage 2 eras for now.")
10  print("L1T WARN: Use a legacy version of L1REPACK for now.")
11 stage2L1Trigger.toModify(None, _print)
12 (~stage2L1Trigger).toModify(None, lambda x: print("L1T INFO: L1REPACK:CalouGT (intended for 2016/2017 data), reemulates the Calo part, uses unpacked Muons, and reemulates uGT."))
13 
14 # First, Unpack all inputs to L1:
15 import EventFilter.L1TRawToDigi.bmtfDigis_cfi
16 unpackBmtf = EventFilter.L1TRawToDigi.bmtfDigis_cfi.bmtfDigis.clone(
17  InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
18 
19 import EventFilter.DTTFRawToDigi.dttfunpacker_cfi
20 unpackDttf = EventFilter.DTTFRawToDigi.dttfunpacker_cfi.dttfunpacker.clone(
21  DTTF_FED_Source = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
22 
23 import EventFilter.L1TRawToDigi.emtfStage2Digis_cfi
24 unpackEmtf = EventFilter.L1TRawToDigi.emtfStage2Digis_cfi.emtfStage2Digis.clone(
25  InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
26 
27 import EventFilter.CSCTFRawToDigi.csctfunpacker_cfi
28 unpackCsctf = EventFilter.CSCTFRawToDigi.csctfunpacker_cfi.csctfunpacker.clone(
29  producer = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
30 
32 unpackCSC = EventFilter.CSCRawToDigi.cscUnpacker_cfi.muonCSCDigis.clone(
33  InputObjects = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
34 
36 unpackDT = EventFilter.DTRawToDigi.dtunpacker_cfi.muonDTDigis.clone(
37  inputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
38 
40 unpackRPC = EventFilter.RPCRawToDigi.rpcUnpacker_cfi.rpcunpacker.clone(
41  InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
42 
43 import EventFilter.EcalRawToDigi.EcalUnpackerData_cfi
44 unpackEcal = EventFilter.EcalRawToDigi.EcalUnpackerData_cfi.ecalEBunpacker.clone(
45  InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
46 
47 import EventFilter.HcalRawToDigi.HcalRawToDigi_cfi
48 unpackHcal = EventFilter.HcalRawToDigi.HcalRawToDigi_cfi.hcalDigis.clone(
49  InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
50 
51 # Second, unpacker of inputs to uGT:
52 # #################################
53 import EventFilter.L1TRawToDigi.gtStage2Digis_cfi
54 unpackGtStage2 = EventFilter.L1TRawToDigi.gtStage2Digis_cfi.gtStage2Digis.clone(
55  InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
56 
57 # For simplicity, re-emulate the entire L1T (will not use Muon part)
58 # ################################################################
59 
61 simHcalTriggerPrimitiveDigis.inputLabel = [
62  'unpackHcal',
63  'unpackHcal'
64 ]
65 simHcalTriggerPrimitiveDigis.inputUpgradeLabel = [
66  'unpackHcal', # upgrade HBHE
67  'unpackHcal' # upgrade HF
68 ]
69 
71 
72 simDtTriggerPrimitiveDigis.digiTag = 'unpackDT'
73 simCscTriggerPrimitiveDigis.CSCComparatorDigiProducer = 'unpackCSC:MuonCSCComparatorDigi'
74 simCscTriggerPrimitiveDigis.CSCWireDigiProducer = 'unpackCSC:MuonCSCWireDigi'
75 
76 simTwinMuxDigis.RPC_Source = 'unpackRPC'
77 simTwinMuxDigis.DTDigi_Source = "simDtTriggerPrimitiveDigis"
78 simTwinMuxDigis.DTThetaDigi_Source = "simDtTriggerPrimitiveDigis"
79 
80 # -----------------------------------------------------------
81 # change when availalbe simTwinMux and reliable DTTPs, CSCTPs
82 cutlist=['simDtTriggerPrimitiveDigis','simCscTriggerPrimitiveDigis','simTwinMuxDigis']
83 for b in cutlist:
84  SimL1EmulatorCore.remove(b)
85 # -----------------------------------------------------------
86 
87 # BMTF
88 simBmtfDigis.DTDigi_Source = "unpackBmtf"
89 simBmtfDigis.DTDigi_Theta_Source = "unpackBmtf"
90 
91 # OMTF
92 simOmtfDigis.srcRPC = 'unpackRPC'
93 simOmtfDigis.srcDTPh = "unpackBmtf"
94 simOmtfDigis.srcDTTh = "unpackBmtf"
95 simOmtfDigis.srcCSC = "unpackCsctf" ## Replace when emtfStage2Digis give equal data-emulator agreement
96 
97 # EMTF
98 simEmtfDigis.CSCInput = "unpackEmtf"
99 simEmtfDigis.RPCInput = 'unpackRPC'
100 
101 simCaloStage2Layer1Digis.ecalToken = 'unpackEcal:EcalTriggerPrimitives'
102 simCaloStage2Layer1Digis.hcalToken = 'unpackHcal'
103 
104 # uGT inputs for Muons are from unpacked
105 simGtStage2Digis.MuonInputTag = "unpackGtStage2:Muon"
106 
107 # Finally, pack the newly re-emulated L1T parts back into RAW
108 # Calo packer
109 from EventFilter.L1TRawToDigi.caloStage2Raw_cfi import caloStage2Raw as packCaloStage2
110 # uGT packer
111 from EventFilter.L1TRawToDigi.gtStage2Raw_cfi import gtStage2Raw as packGtStage2
112 
113 # combine the new L1 RAW with existing RAW for other FEDs
114 import EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi
115 rawDataCollector = EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi.rawDataCollector.clone(
116  verbose = 0,
117  RawCollectionList = [
118  'packCaloStage2',
119  'packGtStage2',
120  cms.InputTag('rawDataCollector', processName=cms.InputTag.skipCurrentProcess()),
121  ]
122  )
123 
124 
125 SimL1EmulatorTask = cms.Task()
126 stage2L1Trigger.toReplaceWith(SimL1EmulatorTask, cms.Task(unpackEcal,unpackHcal,unpackCSC,unpackDT,unpackRPC,unpackEmtf,unpackCsctf,unpackBmtf,unpackGtStage2
127  ,SimL1EmulatorCoreTask,packCaloStage2
128  ,packGtStage2,rawDataCollector))
129 SimL1Emulator = cms.Sequence(SimL1EmulatorTask)
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66