CMS 3D CMS Logo

SimL1EmulatorRepack_Full_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 from Configuration.Eras.Modifier_stage2L1Trigger_2017_cff import stage2L1Trigger_2017
9 
10 def _print(ignored):
11  print("L1T WARN: L1REPACK:Full (intended for 2016 data) only supports Stage 2 eras for now.")
12  print("L1T WARN: Use a legacy version of L1REPACK for now.")
13 stage2L1Trigger.toModify(None, _print)
14 (~stage2L1Trigger).toModify(None, lambda x: print("L1T INFO: L1REPACK:Full (intended for 2016 & 2017 data) will unpack all L1T inputs, re-emulated (Stage-2), and pack uGT, uGMT, and Calo Stage-2 output."))
15 
16 # First, Unpack all inputs to L1:
17 
19 unpackTcds = EventFilter.Utilities.tcdsRawToDigi_cfi.tcdsRawToDigi.clone(
20  InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
21 
22 import EventFilter.L1TRawToDigi.bmtfDigis_cfi
23 unpackBmtf = EventFilter.L1TRawToDigi.bmtfDigis_cfi.bmtfDigis.clone(
24  InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
25 
26 import EventFilter.DTTFRawToDigi.dttfunpacker_cfi
27 unpackDttf = EventFilter.DTTFRawToDigi.dttfunpacker_cfi.dttfunpacker.clone(
28  DTTF_FED_Source = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
29 
30 import EventFilter.L1TRawToDigi.omtfStage2Digis_cfi
31 unpackOmtf = EventFilter.L1TRawToDigi.omtfStage2Digis_cfi.omtfStage2Digis.clone(
32  inputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
33 
34 import EventFilter.L1TRawToDigi.emtfStage2Digis_cfi
35 unpackEmtf = EventFilter.L1TRawToDigi.emtfStage2Digis_cfi.emtfStage2Digis.clone(
36  InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
37 
38 import EventFilter.CSCTFRawToDigi.csctfunpacker_cfi
39 unpackCsctf = EventFilter.CSCTFRawToDigi.csctfunpacker_cfi.csctfunpacker.clone(
40  producer = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
41 
43 unpackCSC = EventFilter.CSCRawToDigi.cscUnpacker_cfi.muonCSCDigis.clone(
44  InputObjects = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
45 
47 unpackDT = EventFilter.DTRawToDigi.dtunpacker_cfi.muonDTDigis.clone(
48  inputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
49 
51 unpackRPC = EventFilter.RPCRawToDigi.rpcUnpacker_cfi.rpcunpacker.clone(
52  InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
53 
54 import EventFilter.RPCRawToDigi.rpcTwinMuxRawToDigi_cfi
55 unpackRPCTwinMux = EventFilter.RPCRawToDigi.rpcTwinMuxRawToDigi_cfi.rpcTwinMuxRawToDigi.clone(
56  inputTag = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
57 
59 unpackTwinMux = EventFilter.L1TXRawToDigi.twinMuxStage2Digis_cfi.twinMuxStage2Digis.clone(
60  DTTM7_FED_Source = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
61 
62 import EventFilter.EcalRawToDigi.EcalUnpackerData_cfi
63 unpackEcal = EventFilter.EcalRawToDigi.EcalUnpackerData_cfi.ecalEBunpacker.clone(
64  InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
65 
66 import EventFilter.HcalRawToDigi.HcalRawToDigi_cfi
67 unpackHcal = EventFilter.HcalRawToDigi.HcalRawToDigi_cfi.hcalDigis.clone(
68  InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
69 
70 import EventFilter.L1TXRawToDigi.caloLayer1Stage2Digis_cfi
71 unpackLayer1 = EventFilter.L1TXRawToDigi.caloLayer1Stage2Digis_cfi.l1tCaloLayer1Digis.clone(
72  fedRawDataLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
73 
74 # Second, Re-Emulate the entire L1T
75 
77 simHcalTriggerPrimitiveDigis.inputLabel = [
78  'unpackHcal',
79  'unpackHcal'
80 ]
81 simHcalTriggerPrimitiveDigis.inputUpgradeLabel = [
82  'unpackHcal', # upgrade HBHE
83  'unpackHcal' # upgrade HF
84 ]
85 
87 
88 simDtTriggerPrimitiveDigis.digiTag = 'unpackDT'
89 simCscTriggerPrimitiveDigis.CSCComparatorDigiProducer = 'unpackCSC:MuonCSCComparatorDigi'
90 simCscTriggerPrimitiveDigis.CSCWireDigiProducer = 'unpackCSC:MuonCSCWireDigi'
91 
92 simTwinMuxDigis.RPC_Source = 'unpackRPCTwinMux'
93 simTwinMuxDigis.DTDigi_Source = "unpackTwinMux:PhIn"
94 simTwinMuxDigis.DTThetaDigi_Source = "unpackTwinMux:ThIn"
95 
96 # -----------------------------------------------------------
97 # change when availalbe simTwinMux and reliable DTTPs, CSCTPs
98 cutlist=['simDtTriggerPrimitiveDigis','simCscTriggerPrimitiveDigis']
99 for b in cutlist:
100  SimL1EmulatorCore.remove(b)
101 # -----------------------------------------------------------
102 
103 # BMTF
104 simBmtfDigis.DTDigi_Source = "simTwinMuxDigis"
105 simBmtfDigis.DTDigi_Theta_Source = "unpackBmtf"
106 
107 # OMTF
108 simOmtfDigis.srcRPC = 'unpackRPC'
109 simOmtfDigis.srcDTPh = "unpackBmtf"
110 simOmtfDigis.srcDTTh = "unpackBmtf"
111 simOmtfDigis.srcCSC = "unpackCsctf"
112 stage2L1Trigger_2017.toModify(simOmtfDigis,
113  srcRPC = 'unpackOmtf',
114  srcCSC = 'unpackOmtf',
115  srcDTPh = 'unpackOmtf',
116  srcDTTh = 'unpackOmtf'
117 )
118 
119 # EMTF
120 simEmtfDigis.CSCInput = "unpackEmtf"
121 simEmtfDigis.RPCInput = 'unpackRPC'
122 
123 simCaloStage2Layer1Digis.ecalToken = 'unpackEcal:EcalTriggerPrimitives'
124 simCaloStage2Layer1Digis.hcalToken = 'unpackLayer1'
125 
126 
127 ## GT
128 stage2L1Trigger_2017.toModify(simGtExtFakeStage2Digis,
129  tcdsRecordLabel= cms.InputTag("unpackTcds","tcdsRecord")
130 )
131 stage2L1Trigger.toModify(simGtExtFakeStage2Digis,
132  tcdsRecordLabel= cms.InputTag("unpackTcds","tcdsRecord")
133 )
134 
135 # Finally, pack the new L1T output back into RAW
136 
137 from EventFilter.L1TRawToDigi.caloStage2Raw_cfi import caloStage2Raw as packCaloStage2
138 from EventFilter.L1TRawToDigi.gmtStage2Raw_cfi import gmtStage2Raw as packGmtStage2
139 from EventFilter.L1TRawToDigi.gtStage2Raw_cfi import gtStage2Raw as packGtStage2
140 
141 # combine the new L1 RAW with existing RAW for other FEDs
142 import EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi
143 rawDataCollector = EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi.rawDataCollector.clone(
144  verbose = 0,
145  RawCollectionList = [
146  'packCaloStage2',
147  'packGmtStage2',
148  'packGtStage2',
149  cms.InputTag('rawDataCollector', processName=cms.InputTag.skipCurrentProcess()),
150  ]
151  )
152 
153 
154 SimL1EmulatorTask = cms.Task()
155 stage2L1Trigger.toReplaceWith(SimL1EmulatorTask, cms.Task(unpackEcal,unpackHcal,unpackCSC,unpackDT,unpackRPC,unpackRPCTwinMux,unpackTwinMux,unpackOmtf,unpackEmtf,unpackCsctf,unpackBmtf
156  ,unpackLayer1
157  ,unpackTcds
158  ,SimL1EmulatorCoreTask,packCaloStage2
159  ,packGmtStage2,packGtStage2,rawDataCollector))
160 SimL1Emulator = cms.Sequence(SimL1EmulatorTask)
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66