CMS 3D CMS Logo

SimL1EmulatorRepack_FullMC_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:FullMC (intended for MC events with RAW eventcontent) 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:FullMC will unpack Calorimetry and Muon L1T inputs, re-emulate L1T (Stage-2), and pack uGT, uGMT, and Calo Stage-2 output."))
13 
14 # First, Unpack all inputs to L1:
15 
17 unpackRPC = EventFilter.RPCRawToDigi.rpcUnpacker_cfi.rpcunpacker.clone(
18  InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
19 
21 unpackDT = EventFilter.DTRawToDigi.dtunpacker_cfi.muonDTDigis.clone(
22  inputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
23 
25 unpackCSC = EventFilter.CSCRawToDigi.cscUnpacker_cfi.muonCSCDigis.clone(
26  InputObjects = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
27 
28 import EventFilter.EcalRawToDigi.EcalUnpackerData_cfi
29 unpackEcal = EventFilter.EcalRawToDigi.EcalUnpackerData_cfi.ecalEBunpacker.clone(
30  InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
31 
32 import EventFilter.HcalRawToDigi.HcalRawToDigi_cfi
33 unpackHcal = EventFilter.HcalRawToDigi.HcalRawToDigi_cfi.hcalDigis.clone(
34  InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))
35 
36 # Second, Re-Emulate the entire L1T
37 #
38 # Legacy trigger primitive emulations still running in 2016 trigger:
39 #
41 
42 # Ecal TPs
43 # cannot simulate EcalTPs, don't have EcalUnsuppressedDigis in RAW
44 # simEcalTriggerPrimitiveDigis.Label = 'unpackEcal'
45 # further downstream, use unpacked EcalTPs
46 
47 # Hcal TPs
48 simHcalTriggerPrimitiveDigis.inputLabel = [
49  'unpackHcal',
50  'unpackHcal'
51 ]
52 simHcalTriggerPrimitiveDigis.inputUpgradeLabel = [
53  'unpackHcal', # upgrade HBHE
54  'unpackHcal' # upgrade HF
55 ]
56 
58 # DT TPs
59 simDtTriggerPrimitiveDigis.digiTag = 'unpackDT'
60 # CSC TPs
61 simCscTriggerPrimitiveDigis.CSCComparatorDigiProducer = 'unpackCSC:MuonCSCComparatorDigi'
62 simCscTriggerPrimitiveDigis.CSCWireDigiProducer = 'unpackCSC:MuonCSCWireDigi'
63 
64 # TWIN-MUX
65 simTwinMuxDigis.RPC_Source = 'unpackRPC'
66 simTwinMuxDigis.DTDigi_Source = "simDtTriggerPrimitiveDigis"
67 simTwinMuxDigis.DTThetaDigi_Source = "simDtTriggerPrimitiveDigis"
68 
69 # BMTF
70 simBmtfDigis.DTDigi_Source = "simTwinMuxDigis"
71 simBmtfDigis.DTDigi_Theta_Source = "simDtTriggerPrimitiveDigis"
72 
73 # OMTF
74 simOmtfDigis.srcRPC = 'unpackRPC'
75 simOmtfDigis.srcDTPh = "simDtTriggerPrimitiveDigis"
76 simOmtfDigis.srcDTTh = "simDtTriggerPrimitiveDigis"
77 simOmtfDigis.srcCSC = 'simCscTriggerPrimitiveDigis:MPCSORTED'
78 
79 # EMTF
80 simEmtfDigis.CSCInput = 'simCscTriggerPrimitiveDigis:MPCSORTED'
81 simEmtfDigis.RPCInput = 'unpackRPC'
82 
83 # CALO Layer1
84 simCaloStage2Layer1Digis.ecalToken = 'unpackEcal:EcalTriggerPrimitives'
85 simCaloStage2Layer1Digis.hcalToken = 'simHcalTriggerPrimitiveDigis'
86 
87 # Finally, pack the new L1T output back into RAW
88 from EventFilter.L1TRawToDigi.caloStage2Raw_cfi import caloStage2Raw as packCaloStage2
89 from EventFilter.L1TRawToDigi.gmtStage2Raw_cfi import gmtStage2Raw as packGmtStage2
90 from EventFilter.L1TRawToDigi.gtStage2Raw_cfi import gtStage2Raw as packGtStage2
91 
92 # combine the new L1 RAW with existing RAW for other FEDs
93 import EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi
94 rawDataCollector = EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi.rawDataCollector.clone(
95  verbose = 0,
96  RawCollectionList = [
97  'packCaloStage2',
98  'packGmtStage2',
99  'packGtStage2',
100  cms.InputTag('rawDataCollector', processName=cms.InputTag.skipCurrentProcess()),
101  ]
102  )
103 
104 SimL1EmulatorTask = cms.Task()
105 stage2L1Trigger.toReplaceWith(SimL1EmulatorTask, cms.Task(unpackRPC
106  , unpackDT
107  , unpackCSC
108  , unpackEcal
109  , unpackHcal
110  #, simEcalTriggerPrimitiveDigis
111  , simHcalTriggerPrimitiveDigis
112  , SimL1EmulatorCoreTask
113  , packCaloStage2
114  , packGmtStage2
115  , packGtStage2
116  , rawDataCollector))
117 SimL1Emulator = cms.Sequence(SimL1EmulatorTask)
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66