CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
SimL1Emulator_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 # L1 Emulator sequence for simulation use-case
4 # subsystem emulators run on the results of previous (in the hardware chain) subsystem emulator
5 #
6 # Jim Brooke, 24 April 2008
7 # Vasile Mihai Ghete, 2009
8 
9 
10 # This object is used to make changes for different running scenarios. In
11 # this case for the Stage 1 trigger in run 2
12 from Configuration.StandardSequences.Eras import eras
13 # Note that this next file does nothing if the stage1L1Trigger era is not active, so
14 # it is safe to import even if the Stage 1 trigger is not required. It *MUST* be
15 # imported into this namespace, i.e. "from <file> import *".
17 
18 # ECAL TPG emulator and HCAL TPG run in the simulation sequence in order to be able
19 # to use unsuppressed digis produced by ECAL and HCAL simulation, respectively
20 # in Configuration/StandardSequences/python/Digi_cff.py
21 # SimCalorimetry.Configuration.SimCalorimetry_cff
22 # which calls
23 # SimCalorimetry.Configuration.ecalDigiSequence_cff
24 # SimCalorimetry.Configuration.hcalDigiSequence_cff
25 
26 ### calorimeter emulators
27 
28 # RCT (Regional Calorimeter Trigger) emulator
30 simRctDigis = L1Trigger.RegionalCaloTrigger.rctDigis_cfi.rctDigis.clone()
31 
32 simRctDigis.ecalDigis = cms.VInputTag( cms.InputTag( 'simEcalTriggerPrimitiveDigis' ) )
33 simRctDigis.hcalDigis = cms.VInputTag( cms.InputTag( 'simHcalTriggerPrimitiveDigis' ) )
34 
35 # GCT (Global Calorimeter Trigger) emulator
37 simGctDigis = L1Trigger.GlobalCaloTrigger.gctDigis_cfi.gctDigis.clone()
38 
39 simGctDigis.inputLabel = 'simRctDigis'
40 
41 
42 ### muon emulators
43 # Note: GMT requires input from calorimeter emulators, namely MipIsoData from GCT
44 
45 # DT TP emulator
47 # import L1Trigger.DTTrigger.dtTriggerPrimitiveDigis_cfi // FIXME replace above "from" when DT TPG configured from global tag
48 simDtTriggerPrimitiveDigis = L1Trigger.DTTrigger.dtTriggerPrimitiveDigis_cfi.dtTriggerPrimitiveDigis.clone()
49 
50 simDtTriggerPrimitiveDigis.digiTag = 'simMuonDTDigis'
51 
52 # CSC TP emulator
55 simCscTriggerPrimitiveDigis = L1Trigger.CSCTriggerPrimitives.cscTriggerPrimitiveDigis_cfi.cscTriggerPrimitiveDigis.clone()
56 
57 simCscTriggerPrimitiveDigis.CSCComparatorDigiProducer = cms.InputTag( 'simMuonCSCDigis', 'MuonCSCComparatorDigi' )
58 simCscTriggerPrimitiveDigis.CSCWireDigiProducer = cms.InputTag( 'simMuonCSCDigis', 'MuonCSCWireDigi' )
59 
60 # CSC Track Finder - digi track generation
61 # currently used also by DT TF to generate CSCTF stubs
63 simCsctfTrackDigis = L1Trigger.CSCTrackFinder.csctfTrackDigis_cfi.csctfTrackDigis.clone()
64 
65 simCsctfTrackDigis.SectorReceiverInput = cms.untracked.InputTag( 'simCscTriggerPrimitiveDigis', 'MPCSORTED' )
66 simCsctfTrackDigis.DTproducer = 'simDtTriggerPrimitiveDigis'
67 
68 # DT Track Finder emulator
69 # currently generates CSCTF stubs by running CSCTF emulator
71 simDttfDigis = L1Trigger.DTTrackFinder.dttfDigis_cfi.dttfDigis.clone()
72 
73 simDttfDigis.DTDigi_Source = 'simDtTriggerPrimitiveDigis'
74 simDttfDigis.CSCStub_Source = 'simCsctfTrackDigis'
75 
76 # CSC Track Finder emulator
78 simCsctfDigis = L1Trigger.CSCTrackFinder.csctfDigis_cfi.csctfDigis.clone()
79 
80 simCsctfDigis.CSCTrackProducer = 'simCsctfTrackDigis'
81 
82 # RPC PAC Trigger emulator
84 simRpcTriggerDigis = L1Trigger.RPCTrigger.rpcTriggerDigis_cff.rpcTriggerDigis.clone()
85 
86 simRpcTriggerDigis.label = 'simMuonRPCDigis'
87 
88 # Global Muon Trigger emulator
90 simGmtDigis = L1Trigger.GlobalMuonTrigger.gmtDigis_cfi.gmtDigis.clone()
91 
92 simGmtDigis.DTCandidates = cms.InputTag( 'simDttfDigis', 'DT' )
93 simGmtDigis.CSCCandidates = cms.InputTag( 'simCsctfDigis', 'CSC' )
94 simGmtDigis.RPCbCandidates = cms.InputTag( 'simRpcTriggerDigis', 'RPCb' )
95 simGmtDigis.RPCfCandidates = cms.InputTag( 'simRpcTriggerDigis', 'RPCf' )
96 
97 simGmtDigis.MipIsoData = 'simRctDigis'
98 
99 
100 ### technical trigger emulators
101 
102 # BSC Technical Trigger
103 import L1TriggerOffline.L1Analyzer.bscTrigger_cfi
104 simBscDigis = L1TriggerOffline.L1Analyzer.bscTrigger_cfi.bscTrigger.clone()
105 
106 # RPC Technical Trigger
107 import L1Trigger.RPCTechnicalTrigger.rpcTechnicalTrigger_cfi
108 simRpcTechTrigDigis = L1Trigger.RPCTechnicalTrigger.rpcTechnicalTrigger_cfi.rpcTechnicalTrigger.clone()
109 
110 simRpcTechTrigDigis.RPCDigiLabel = 'simMuonRPCDigis'
111 
112 # HCAL Technical Trigger
114 simHcalTechTrigDigis = SimCalorimetry.HcalTrigPrimProducers.hcalTTPRecord_cfi.simHcalTTPRecord.clone()
115 
116 # CASTOR Techical Trigger
117 import SimCalorimetry.CastorTechTrigProducer.castorTTRecord_cfi
118 simCastorTechTrigDigis = SimCalorimetry.CastorTechTrigProducer.castorTTRecord_cfi.simCastorTTRecord.clone()
119 
120 # Global Trigger emulator
122 simGtDigis = L1Trigger.GlobalTrigger.gtDigis_cfi.gtDigis.clone()
123 
124 simGtDigis.GmtInputTag = 'simGmtDigis'
125 simGtDigis.GctInputTag = 'simGctDigis'
126 simGtDigis.TechnicalTriggersInputTags = cms.VInputTag(
127  cms.InputTag( 'simBscDigis' ),
128  cms.InputTag( 'simRpcTechTrigDigis' ),
129  cms.InputTag( 'simHcalTechTrigDigis' ),
130  cms.InputTag( 'simCastorTechTrigDigis' )
131  )
132 #
133 # Make some changes if using the Stage 1 trigger
134 #
135 eras.stage1L1Trigger.toModify( simGtDigis, GctInputTag = 'simCaloStage1LegacyFormatDigis' )
136 eras.stage1L1Trigger.toModify( simGtDigis, TechnicalTriggersInputTags = cms.VInputTag() )
137 
138 ### L1 Trigger sequences
139 
140 SimL1MuTriggerPrimitives = cms.Sequence(
141  simDtTriggerPrimitiveDigis +
142  simCscTriggerPrimitiveDigis )
143 
144 SimL1MuTrackFinders = cms.Sequence(
145  simCsctfTrackDigis +
146  simDttfDigis +
147  simCsctfDigis )
148 
149 SimL1TechnicalTriggers = cms.Sequence(
150  simBscDigis +
151  simRpcTechTrigDigis +
152  simHcalTechTrigDigis +
153  simCastorTechTrigDigis )
154 
155 SimL1Emulator = cms.Sequence(
156  simRctDigis +
157  simGctDigis +
158  SimL1MuTriggerPrimitives +
159  SimL1MuTrackFinders +
160  simRpcTriggerDigis +
161  simGmtDigis +
162  SimL1TechnicalTriggers +
163  simGtDigis )
164 ##
165 ## Make changes for Run 2
166 ##
167 if eras.stage1L1Trigger.isChosen() :
168  from L1Trigger.L1TCalorimeter.L1TCaloStage1_cff import L1TCaloStage1
169  SimL1Emulator.replace( simGctDigis, L1TCaloStage1 )
L1REPACK: redo GCT,GT, using Run-1 or Run-2 input, making Run-2 output.