Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-05-19 22:19:17

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger
0004 from Configuration.Eras.Modifier_stage2L1Trigger_2017_cff import stage2L1Trigger_2017
0005 from Configuration.Eras.Modifier_stage2L1Trigger_2021_cff import stage2L1Trigger_2021
0006 from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM
0007 
0008 def L1TCaloStage2ParamsForHW(process):
0009     process.load("L1Trigger.L1TCalorimeter.caloStage2Params_HWConfig_cfi")
0010     return process
0011 
0012 def L1TAddBitwiseLayer1(process):
0013     from L1Trigger.L1TCaloLayer1.simCaloStage2Layer1Digis_cfi import simCaloStage2Layer1Digis as simCaloStage2BitwiseLayer1Digis
0014     from L1Trigger.L1TCalorimeter.simCaloStage2Digis_cfi import simCaloStage2Digis as simCaloStage2BitwiseDigis        
0015     process.simCaloStage2BitwiseLayer1Digis = simCaloStage2BitwiseLayer1Digis.clone()
0016     process.simCaloStage2BitwiseLayer1Digis.ecalToken = cms.InputTag("ecalDigis:EcalTriggerPrimitives")
0017     process.simCaloStage2BitwiseDigis = simCaloStage2BitwiseDigis.clone()
0018     process.simCaloStage2BitwiseDigis.towerToken = cms.InputTag("simCaloStage2BitwiseLayer1Digis")
0019     process.SimL1TCalorimeter = cms.Sequence( process.simCaloStage2Layer1Digis + process.simCaloStage2Digis + process.simCaloStage2BitwiseLayer1Digis + process.simCaloStage2BitwiseDigis)    
0020     from L1Trigger.L1TNtuples.l1UpgradeTree_cfi import l1UpgradeTree
0021     process.l1UpgradeBitwiseTree = l1UpgradeTree.clone()
0022     process.l1UpgradeBitwiseTree.egToken = cms.untracked.InputTag("simCaloStage2BitwiseDigis")
0023     process.l1UpgradeBitwiseTree.tauTokens = cms.untracked.VInputTag("simCaloStage2BitwiseDigis")
0024     process.l1UpgradeBitwiseTree.jetToken = cms.untracked.InputTag("simCaloStage2BitwiseDigis")
0025     process.l1UpgradeBitwiseTree.muonToken = cms.untracked.InputTag("simGmtStage2Digis")
0026     process.l1UpgradeBitwiseTree.sumToken = cms.untracked.InputTag("simCaloStage2BitwiseDigis")
0027     process.l1ntuplebitwise = cms.Path(
0028         process.l1UpgradeBitwiseTree
0029     )
0030     process.schedule.append(process.l1ntuplebitwise)
0031     print("# modified L1TReEmul:  ")
0032     print("# {0}".format(process.L1TReEmul))
0033     return process
0034 
0035 # As of 80X, this ES configuration is needed for *data* GTs (mc tags work w/o)
0036 def L1TEventSetupForHF1x1TPs(process):
0037     process.es_pool_hf1x1 = cms.ESSource(
0038         "PoolDBESSource",
0039         #process.CondDBSetup,
0040         toGet = cms.VPSet(
0041             cms.PSet(record = cms.string("HcalLutMetadataRcd"),
0042                      tag = cms.string("HcalLutMetadata_HFTP_1x1")
0043                      ),
0044             cms.PSet(record = cms.string("HcalElectronicsMapRcd"),
0045                      tag = cms.string("HcalElectronicsMap_HFTP_1x1")
0046                      )
0047             ),
0048         connect = cms.string('frontier://FrontierProd/CMS_CONDITIONS'),
0049         )
0050     process.es_prefer_es_pool_hf1x1 = cms.ESPrefer("PoolDBESSource", "es_pool_hf1x1")    
0051     return process
0052 
0053 def L1TReEmulFromRAW2015(process):
0054     process.load('L1Trigger.Configuration.SimL1Emulator_cff')
0055     process.load('L1Trigger.Configuration.CaloTriggerPrimitives_cff')
0056     process.simEcalTriggerPrimitiveDigis.Label = 'ecalDigis'
0057     process.simHcalTriggerPrimitiveDigis.inputLabel = cms.VInputTag(
0058         cms.InputTag('hcalDigis'),
0059         cms.InputTag('hcalDigis')
0060     )
0061     process.L1TReEmul = cms.Sequence(process.simEcalTriggerPrimitiveDigis * process.simHcalTriggerPrimitiveDigis * process.SimL1Emulator)
0062     process.simDtTriggerPrimitiveDigis.digiTag = 'muonDTDigis'
0063     process.simCscTriggerPrimitiveDigis.CSCComparatorDigiProducer = cms.InputTag( 'muonCSCDigis', 'MuonCSCComparatorDigi')
0064     process.simCscTriggerPrimitiveDigis.CSCWireDigiProducer       = cms.InputTag( 'muonCSCDigis', 'MuonCSCWireDigi' )  
0065 
0066     stage2L1Trigger.toModify(process.simTwinMuxDigis,
0067         RPC_Source         = 'muonRPCDigis',
0068         # When available, this will switch to TwinMux input Digis:
0069         DTDigi_Source      = "dttfDigis",
0070         DTThetaDigi_Source = "dttfDigis"
0071     )
0072     stage2L1Trigger.toModify(process.simOmtfDigis,
0073         srcRPC = 'muonRPCDigis',
0074         srcCSC = "csctfDigis"
0075     )
0076     stage2L1Trigger.toModify(process.simBmtfDigis,
0077        DTDigi_Source         = "simTwinMuxDigis",
0078        DTDigi_Theta_Source   = "dttfDigis"
0079     )
0080     stage2L1Trigger.toModify(process.simKBmtfStubs,
0081         srcPhi     = "simTwinMuxDigis",
0082         srcTheta   = "dttfDigis"
0083     )
0084     stage2L1Trigger.toModify(process.simEmtfDigis,
0085         CSCInput = "csctfDigis",
0086         RPCInput = 'muonRPCDigis'
0087     )
0088     stage2L1Trigger.toModify(process.simCaloStage2Layer1Digis, ecalToken = "ecalDigis:EcalTriggerPrimitives")
0089     # quiet warning abouts missing Stage-2 payloads, since they won't reliably exist in 2015 data.
0090     stage2L1Trigger.toModify(process.caloStage2Digis, MinFeds = 0)
0091     stage2L1Trigger.toModify(process.gmtStage2Digis, MinFeds = 0)
0092     stage2L1Trigger.toModify(process.gtStage2Digis, MinFeds = 0)
0093 
0094     (~stage2L1Trigger).toModify(process.simRctDigis,
0095         ecalDigis = ['simEcalTriggerPrimitiveDigis'],
0096         hcalDigis = ['simHcalTriggerPrimitiveDigis']
0097     )
0098     (~stage2L1Trigger).toModify(process.simRpcTriggerDigis, label = 'muonRPCDigis')
0099     (~stage2L1Trigger).toModify(process.simRpcTechTrigDigis, RPCDigiLabel  = 'muonRPCDigis')
0100 
0101     if not hasattr(process, 'L1TReEmulPath'):
0102         process.L1TReEmulPath = cms.Path(process.L1TReEmul)
0103         process.schedule.append(process.L1TReEmulPath)
0104     
0105     print("# L1TReEmul sequence:  ")
0106     print("# {0}".format(process.L1TReEmul))
0107     print("# {0}".format(process.schedule))
0108     return process
0109 
0110 def L1TReEmulMCFromRAW2015(process):
0111     L1TReEmulFromRAW2015(process)
0112     stage2L1Trigger.toModify(process.simEmtfDigis, CSCInput = 'simCscTriggerPrimitiveDigis:MPCSORTED')
0113     stage2L1Trigger.toModify(process.simOmtfDigis, srcCSC   = 'simCscTriggerPrimitiveDigis:MPCSORTED')
0114     return process
0115 
0116 def L1TReEmulFromRAW2015simCaloTP(process):
0117     L1TReEmulFromRAW2015(process)
0118     stage2L1Trigger.toModify(process.simCaloStage2Layer1Digis, ecalToken = "simEcalTriggerPrimitiveDigis")
0119     return process
0120 
0121 def L1TReEmulFromRAW2016(process):
0122     process.load('L1Trigger.Configuration.SimL1Emulator_cff')
0123     process.load('L1Trigger.Configuration.CaloTriggerPrimitives_cff')
0124     process.simEcalTriggerPrimitiveDigis.Label = 'ecalDigis'
0125     process.simHcalTriggerPrimitiveDigis.inputLabel = cms.VInputTag(
0126         cms.InputTag('hcalDigis'),
0127         cms.InputTag('hcalDigis')
0128     )
0129     process.simHcalTriggerPrimitiveDigis.inputUpgradeLabel = cms.VInputTag(
0130                 cms.InputTag('hcalDigis'),
0131                 cms.InputTag('hcalDigis')
0132     )
0133     process.simDtTriggerPrimitiveDigis.digiTag = cms.InputTag("muonDTDigis")
0134     process.simCscTriggerPrimitiveDigis.CSCComparatorDigiProducer = cms.InputTag( 'muonCSCDigis', 'MuonCSCComparatorDigi')
0135     process.simCscTriggerPrimitiveDigis.CSCWireDigiProducer       = cms.InputTag( 'muonCSCDigis', 'MuonCSCWireDigi' )  
0136     process.L1TReEmul = cms.Sequence(process.simEcalTriggerPrimitiveDigis * process.simHcalTriggerPrimitiveDigis * process.SimL1Emulator)
0137 
0138 
0139     #cutlist=['simDtTriggerPrimitiveDigis','simCscTriggerPrimitiveDigis']
0140     #for b in cutlist:
0141     #    process.SimL1Emulator.remove(getattr(process,b))
0142     # TwinMux
0143     stage2L1Trigger.toModify(process.simTwinMuxDigis,
0144         RPC_Source         = 'rpcTwinMuxRawToDigi',
0145         DTDigi_Source      = 'twinMuxStage2Digis:PhIn',
0146         DTThetaDigi_Source = 'twinMuxStage2Digis:ThIn'
0147     )
0148     # BMTF
0149     stage2L1Trigger.toModify(process.simBmtfDigis,
0150        DTDigi_Source         = "simTwinMuxDigis",
0151        DTDigi_Theta_Source   = "bmtfDigis"
0152     )
0153     # KBMTF
0154     stage2L1Trigger.toModify(process.simKBmtfStubs,
0155        srcPhi       = 'simTwinMuxDigis',
0156        srcTheta     = 'bmtfDigis'
0157     )
0158     # OMTF
0159     stage2L1Trigger.toModify(process.simOmtfDigis,
0160         srcRPC  = 'muonRPCDigis',
0161         srcCSC  = 'csctfDigis',
0162         srcDTPh = 'bmtfDigis',
0163         srcDTTh = 'bmtfDigis'
0164     )
0165     # EMTF
0166     stage2L1Trigger.toModify(process.simEmtfDigis,
0167         CSCInput = 'emtfStage2Digis',
0168         RPCInput = 'muonRPCDigis'
0169     )
0170     # Calo Layer1
0171     stage2L1Trigger.toModify(process.simCaloStage2Layer1Digis,
0172         ecalToken = 'ecalDigis:EcalTriggerPrimitives',
0173         hcalToken = 'hcalDigis:'
0174     )
0175 
0176     (~stage2L1Trigger).toModify(process.simRctDigis,
0177         ecalDigis = ['ecalDigis:EcalTriggerPrimitives'],
0178         hcalDigis = ['hcalDigis:']
0179     )
0180     (~stage2L1Trigger).toModify(process.simRpcTriggerDigis, label = 'muonRPCDigis')
0181 
0182     if not hasattr(process, 'L1TReEmulPath'):
0183         process.L1TReEmulPath = cms.Path(process.L1TReEmul)    
0184         process.schedule.append(process.L1TReEmulPath)
0185 
0186     return process 
0187 
0188 def L1TReEmulFromRAW(process):
0189     L1TReEmulFromRAW2016(process)
0190 
0191     stage2L1Trigger_2017.toModify(process.simOmtfDigis,
0192         srcRPC   = 'omtfStage2Digis',
0193         srcCSC   = 'omtfStage2Digis',
0194         srcDTPh  = 'omtfStage2Digis',
0195         srcDTTh  = 'omtfStage2Digis'
0196     )
0197 
0198     stage2L1Trigger.toModify(process.simEmtfDigis,
0199       CSCInput  = cms.InputTag('emtfStage2Digis'),
0200       RPCInput  = cms.InputTag('muonRPCDigis'),
0201       CPPFInput = cms.InputTag('emtfStage2Digis'),
0202       GEMEnable = cms.bool(False),
0203       GEMInput  = cms.InputTag('muonGEMPadDigis'),
0204       CPPFEnable = cms.bool(True), # Use CPPF-emulated clustered RPC hits from CPPF as the RPC hits
0205     )
0206 
0207     run3_GEM.toModify(process.simMuonGEMPadDigis,
0208         InputCollection         = 'muonGEMDigis',
0209     )
0210 
0211     run3_GEM.toModify(process.simTwinMuxDigis,
0212         RPC_Source         = 'rpcTwinMuxRawToDigi',
0213         DTDigi_Source      = 'simDtTriggerPrimitiveDigis',
0214         DTThetaDigi_Source = 'simDtTriggerPrimitiveDigis'
0215     )
0216 
0217     run3_GEM.toModify(process.simKBmtfStubs,
0218         srcPhi   = 'bmtfDigis',
0219         srcTheta = 'bmtfDigis'
0220     )
0221 
0222     run3_GEM.toModify(process.simBmtfDigis,
0223         DTDigi_Source       = 'bmtfDigis',
0224         DTDigi_Theta_Source = 'bmtfDigis'
0225     )
0226 
0227     stage2L1Trigger_2021.toModify(process.l1tZDCEtSums,
0228         hcalTPDigis = 'hcalDigis'
0229     )
0230 
0231     print("# L1TReEmul sequence:  ")
0232     print("# {0}".format(process.L1TReEmul))
0233     print("# {0}".format(process.schedule))
0234     return process
0235 
0236 def L1TReEmulFromRAWCalouGT(process):
0237     L1TReEmulFromRAW(process)
0238     process.simGtStage2Digis.MuonInputTag   = cms.InputTag("gtStage2Digis","Muon")
0239     return process 
0240 
0241 def L1TReEmulFromNANO(process):
0242 
0243     process.load('L1Trigger.Configuration.SimL1Emulator_cff')
0244     process.L1TReEmul = cms.Sequence(process.SimL1TGlobal)
0245     stage2L1Trigger_2017.toModify(process.simGtStage2Digis,
0246         ExtInputTag = "hltGtStage2Digis",
0247         MuonInputTag = "hltGtStage2Digis:Muon",
0248         EtSumInputTag = "hltGtStage2Digis:EtSum",
0249         EGammaInputTag = "hltGtStage2Digis:EGamma",
0250         TauInputTag = "hltGtStage2Digis:Tau",
0251         JetInputTag = "hltGtStage2Digis:Jet"
0252     )
0253     
0254     if not hasattr(process, 'L1TReEmulPath'):
0255         process.L1TReEmulPath = cms.Path(process.L1TReEmul)    
0256         process.schedule.append(process.L1TReEmulPath)
0257 
0258     print ("# L1TReEmul sequence:  ")
0259     print ("# {0}".format(process.L1TReEmul))
0260     print ("# {0}".format(process.schedule))
0261     return process 
0262 
0263 def L1TReEmulFromRAWCalo(process):
0264     process.load('L1Trigger.Configuration.SimL1CaloEmulator_cff')
0265     process.L1TReEmul = cms.Sequence(process.SimL1CaloEmulator)
0266     process.simCaloStage2Layer1Digis.ecalToken = cms.InputTag('ecalDigis:EcalTriggerPrimitives')
0267     process.simCaloStage2Layer1Digis.hcalToken = cms.InputTag('hcalDigis:')
0268     
0269     if not hasattr(process, 'L1TReEmulPath'):
0270         process.L1TReEmulPath = cms.Path(process.L1TReEmul)
0271         process.schedule.append(process.L1TReEmulPath)
0272 
0273     print ("# L1TReEmul sequence:  ")
0274     print ("# {0}".format(process.L1TReEmul))
0275     print ("# {0}".format(process.schedule))
0276     return process
0277 
0278 def L1TReEmulFromRAWCaloSimTP(process):
0279     process.load('L1Trigger.Configuration.SimL1CaloEmulator_cff')
0280     process.L1TReEmul = cms.Sequence(process.SimL1CaloEmulator)
0281     if not hasattr(process, 'L1TReEmulPath'):
0282         process.L1TReEmulPath = cms.Path(process.L1TReEmul)
0283         process.schedule.append(process.L1TReEmulPath)
0284 
0285     print ("# L1TReEmul sequence:  ")
0286     print ("# {0}".format(process.L1TReEmul))
0287     print ("# {0}".format(process.schedule))
0288     return process
0289 
0290 def L1TReEmulMCFromRAW(process):
0291     L1TReEmulFromRAW(process)
0292     stage2L1Trigger.toModify(process.simEmtfDigis, CSCInput = 'simCscTriggerPrimitiveDigis:MPCSORTED')
0293     stage2L1Trigger.toModify(process.simOmtfDigis, srcCSC   = 'simCscTriggerPrimitiveDigis:MPCSORTED')
0294 
0295     # Correct input collections for MC re-emulation
0296     run3_GEM.toModify(process.simBmtfDigis,
0297         DTDigi_Source         = 'simTwinMuxDigis',
0298         DTDigi_Theta_Source   = 'simDtTriggerPrimitiveDigis'
0299     )
0300 
0301     run3_GEM.toModify(process.simKBmtfStubs,
0302         srcPhi     = "simTwinMuxDigis",
0303         srcTheta   = "simDtTriggerPrimitiveDigis"
0304     )
0305 
0306     run3_GEM.toModify(process.simOmtfDigis,
0307         srcRPC   = 'muonRPCDigis',
0308         srcDTPh  = 'simDtTriggerPrimitiveDigis',
0309         srcDTTh  = 'simDtTriggerPrimitiveDigis'
0310     )
0311 
0312     run3_GEM.toModify(process.simEmtfDigis,
0313       RPCInput  = 'muonRPCDigis',
0314       GEMEnable = False,  # Will be enabled when GEM is in use.
0315       GEMInput  = 'simMuonGEMPadDigiClusters',
0316       CPPFEnable = False,  # Use CPPF-emulated clustered RPC hits from CPPF as the RPC hits. Set to "False" for MC
0317       UseRun3CCLUT_OTMB = False,  # TODO: Enable UseRun3CCLUT_OTMB once it's ready.
0318     )
0319 
0320     return process
0321 
0322 def L1TReEmulMCFromRAWSimEcalTP(process):
0323     L1TReEmulMCFromRAW(process)
0324     stage2L1Trigger.toModify(process.simCaloStage2Layer1Digis, ecalToken = "simEcalTriggerPrimitiveDigis")
0325     return process
0326 
0327 def L1TReEmulMCFromRAWSimHcalTP(process):
0328     L1TReEmulMCFromRAW(process)
0329     stage2L1Trigger.toModify(process.simCaloStage2Layer1Digis, hcalToken = 'simHcalTriggerPrimitiveDigis')
0330     return process
0331 
0332 def L1TReEmulMCFrom90xRAWSimHcalTP(process):
0333     L1TReEmulMCFromRAW(process)
0334     stage2L1Trigger.toModify(process.simHcalTriggerPrimitiveDigis,
0335         inputLabel = [
0336             'simHcalUnsuppressedDigis',
0337             'simHcalUnsuppressedDigis'
0338         ],
0339         inputUpgradeLabel = [
0340             'simHcalUnsuppressedDigis:HBHEQIE11DigiCollection',
0341             'simHcalUnsuppressedDigis:HFQIE10DigiCollection'
0342         ]
0343     )
0344     stage2L1Trigger.toModify(process.simCaloStage2Layer1Digis, hcalToken = 'simHcalTriggerPrimitiveDigis')
0345     return process
0346     #inputUpgradeLabel = cms.VInputTag(
0347     #    cms.InputTag('simHcalUnsuppressedDigis:HBHEQIE11DigiCollection'),
0348     #    cms.InputTag('simHcalUnsuppressedDigis:HFQIE10DigiCollection')),
0349 
0350 def L1TReEmulMCFromRAWSimCalTP(process):
0351     L1TReEmulMCFromRAW(process)
0352     stage2L1Trigger.toModify(process.simCaloStage2Layer1Digis,
0353         ecalToken = "simEcalTriggerPrimitiveDigis",
0354         hcalToken = 'simHcalTriggerPrimitiveDigis'
0355     ) 
0356     return process
0357 
0358 def L1TReEmulFromRAWsimEcalTP(process):
0359     L1TReEmulFromRAW(process)
0360     stage2L1Trigger.toModify(process.simCaloStage2Layer1Digis, ecalToken = "simEcalTriggerPrimitiveDigis")
0361     return process
0362 
0363 def L1TReEmulFromRAWsimHcalTP(process):
0364     L1TReEmulFromRAW(process)
0365     stage2L1Trigger.toModify(process.simCaloStage2Layer1Digis, hcalToken = 'simHcalTriggerPrimitiveDigis')
0366     return process
0367 
0368 def L1TReEmulFromRAWsimTP(process):
0369     L1TReEmulFromRAW(process)
0370     # TwinMux
0371     stage2L1Trigger.toModify(process.simTwinMuxDigis,
0372         RPC_Source         = 'muonRPCDigis',
0373         DTDigi_Source      = 'simDtTriggerPrimitiveDigis',
0374         DTThetaDigi_Source = 'simDtTriggerPrimitiveDigis'
0375     )
0376     # BMTF
0377     stage2L1Trigger.toModify(process.simBmtfDigis,
0378         DTDigi_Source         = 'simTwinMuxDigis',
0379         DTDigi_Theta_Source   = 'simDtTriggerPrimitiveDigis'
0380     )
0381     # KBMTF
0382     stage2L1Trigger.toModify(process.simKBmtfStubs,
0383         srcPhi     = "simTwinMuxDigis",
0384         srcTheta   = "simDtTriggerPrimitiveDigis"
0385     )
0386     # OMTF
0387     stage2L1Trigger.toModify(process.simOmtfDigis,
0388         srcRPC  = 'muonRPCDigis',
0389         srcCSC  = 'simCscTriggerPrimitiveDigis',
0390         srcDTPh = 'simDtTriggerPrimitiveDigis',
0391         srcDTTh = 'simDtTriggerPrimitiveDigis'
0392     )
0393     # EMTF
0394     stage2L1Trigger.toModify(process.simEmtfDigis,
0395         CSCInput = 'simCscTriggerPrimitiveDigis',
0396         RPCInput = 'muonRPCDigis'
0397     )
0398     # Layer1
0399     stage2L1Trigger.toModify(process.simCaloStage2Layer1Digis,
0400         ecalToken = "simEcalTriggerPrimitiveDigis",
0401         hcalToken = 'simHcalTriggerPrimitiveDigis'
0402     )
0403     return process
0404 
0405 def L1TReEmulFromRAWLegacyMuon(process):
0406     process.load('L1Trigger.Configuration.SimL1Emulator_cff')
0407     process.load('L1Trigger.Configuration.CaloTriggerPrimitives_cff')
0408     process.simEcalTriggerPrimitiveDigis.Label = 'ecalDigis'
0409     process.simHcalTriggerPrimitiveDigis.inputLabel = cms.VInputTag(
0410         cms.InputTag('hcalDigis'),
0411         cms.InputTag('hcalDigis')
0412     )
0413 
0414 ## - Legacy to upgrade format muon converter
0415     process.load('L1Trigger.L1TCommon.muonLegacyInStage2FormatDigis_cfi')
0416     process.muonLegacyInStage2FormatDigis.muonSource = cms.InputTag('simGmtDigis')  
0417 
0418 ## - DT TP emulator
0419     from L1Trigger.DTTrigger.dtTriggerPrimitiveDigis_cfi import dtTriggerPrimitiveDigis
0420     process.simDtTriggerPrimitiveDigis = dtTriggerPrimitiveDigis.clone()
0421     process.simDtTriggerPrimitiveDigis.digiTag = cms.InputTag('muonDTDigis')
0422 
0423 ## - TwinMux
0424     from L1Trigger.L1TTwinMux.simTwinMuxDigis_cfi import simTwinMuxDigis
0425     process.simTwinMuxDigisForDttf = simTwinMuxDigis.clone()
0426     process.simTwinMuxDigisForDttf.RPC_Source         = cms.InputTag('muonRPCDigis')
0427     process.simTwinMuxDigisForDttf.DTDigi_Source      = cms.InputTag('bmtfDigis')
0428     process.simTwinMuxDigisForDttf.DTThetaDigi_Source = cms.InputTag('bmtfDigis')
0429 
0430     # Lookup tables for the CSC TP emulator
0431     process.load("CalibMuon.CSCCalibration.CSCL1TPLookupTableEP_cff")
0432     ## - CSC TP emulator
0433     from L1Trigger.CSCTriggerPrimitives.cscTriggerPrimitiveDigis_cfi import cscTriggerPrimitiveDigis
0434     process.simCscTriggerPrimitiveDigis = cscTriggerPrimitiveDigis.clone()
0435     process.simCscTriggerPrimitiveDigis.CSCComparatorDigiProducer = cms.InputTag( 'muonCSCDigis', 'MuonCSCComparatorDigi' )
0436     process.simCscTriggerPrimitiveDigis.CSCWireDigiProducer       = cms.InputTag( 'muonCSCDigis', 'MuonCSCWireDigi' )
0437 #
0438 # - CSC Track Finder emulator
0439 #
0440     from L1Trigger.CSCTrackFinder.csctfTrackDigis_cfi import csctfTrackDigis
0441     process.simCsctfTrackDigis = csctfTrackDigis.clone()
0442     process.simCsctfTrackDigis.SectorReceiverInput = cms.untracked.InputTag( 'csctfDigis' ) 
0443     process.simCsctfTrackDigis.DTproducer = 'simDtTriggerPrimitiveDigis'
0444     from L1Trigger.CSCTrackFinder.csctfDigis_cfi import csctfDigis
0445     process.simCsctfDigis = csctfDigis.clone()
0446     process.simCsctfDigis.CSCTrackProducer = 'simCsctfTrackDigis'
0447 ##
0448 ## - DT Track Finder emulator
0449 ## 
0450     from L1Trigger.DTTrackFinder.dttfDigis_cfi import dttfDigis
0451     process.simDttfDigis = dttfDigis.clone()
0452     process.simDttfDigis.DTDigi_Source  = 'simTwinMuxDigisForDttf'
0453     process.simDttfDigis.CSCStub_Source = 'simCsctfTrackDigis'
0454 ##
0455 ## - RPC PAC Trigger emulator
0456 ##
0457     from L1Trigger.RPCTrigger.rpcTriggerDigis_cff import rpcTriggerDigis
0458     process.load('L1Trigger.RPCTrigger.RPCConeConfig_cff')
0459     process.simRpcTriggerDigis = rpcTriggerDigis.clone()
0460     process.simRpcTriggerDigis.label = 'muonRPCDigis'
0461     process.simRpcTriggerDigis.RPCTriggerDebug = cms.untracked.int32(1)
0462 
0463 ## 
0464 ## - Legacy Global Muon Trigger emulator
0465 ##
0466     from L1Trigger.GlobalMuonTrigger.gmtDigis_cfi import gmtDigis
0467     process.simGmtDigis = gmtDigis.clone()
0468     process.simGmtDigis.DTCandidates   = cms.InputTag( 'simDttfDigis', 'DT' )
0469     process.simGmtDigis.CSCCandidates  = cms.InputTag( 'simCsctfDigis', 'CSC' )
0470     process.simGmtDigis.RPCbCandidates = cms.InputTag( 'simRpcTriggerDigis', 'RPCb' )
0471     process.simGmtDigis.RPCfCandidates = cms.InputTag( 'simRpcTriggerDigis', 'RPCf' )
0472 
0473 
0474     # This is for the upgrade
0475 
0476     # BMTF
0477     process.simBmtfDigis.DTDigi_Source         = cms.InputTag('bmtfDigis')
0478     process.simBmtfDigis.DTDigi_Theta_Source   = cms.InputTag('bmtfDigis')
0479     # TwinMux
0480     process.simTwinMuxDigis.RPC_Source         = cms.InputTag('muonRPCDigis')
0481     process.simTwinMuxDigis.DTDigi_Source      = cms.InputTag('bmtfDigis')
0482     process.simTwinMuxDigis.DTThetaDigi_Source = cms.InputTag('bmtfDigis')
0483     # OMTF
0484     process.simOmtfDigis.srcRPC                = cms.InputTag('muonRPCDigis')
0485     process.simOmtfDigis.srcCSC                = cms.InputTag('csctfDigis')
0486     process.simOmtfDigis.srcDTPh               = cms.InputTag('bmtfDigis')
0487     process.simOmtfDigis.srcDTTh               = cms.InputTag('bmtfDigis')
0488     # EMTF
0489     process.simEmtfDigis.CSCInput              = cms.InputTag('emtfStage2Digis')
0490     process.simEmtfDigis.RPCInput              = cms.InputTag('muonRPCDigis')
0491     # Calo Layer1
0492     process.simCaloStage2Layer1Digis.ecalToken = cms.InputTag('ecalDigis:EcalTriggerPrimitives')
0493     process.simCaloStage2Layer1Digis.hcalToken = cms.InputTag('hcalDigis:')
0494    
0495 
0496 # - Sequences 
0497     process.L1TMuonTriggerPrimitives = cms.Sequence(process.simCscTriggerPrimitiveDigis + process.simDtTriggerPrimitiveDigis + process.simTwinMuxDigisForDttf)
0498 
0499     process.L1TReEmul = cms.Sequence(process.L1TMuonTriggerPrimitives + process.simCsctfTrackDigis + process.simCsctfDigis + process.simDttfDigis + process.simRpcTriggerDigis + process.simGmtDigis + process.muonLegacyInStage2FormatDigis)
0500     
0501     process.load('L1Trigger.L1TMuon.simMuonQualityAdjusterDigis_cfi')
0502 
0503     process.L1TReEmul = cms.Sequence( process.L1TReEmul + process.simTwinMuxDigis + process.simBmtfDigis + process.simEmtfDigis + process.simOmtfDigis + process.simGmtCaloSumDigis + process.simMuonQualityAdjusterDigis + process.simGmtStage2Digis)
0504 
0505     process.L1TReEmul = cms.Sequence( process.L1TReEmul + process.SimL1TechnicalTriggers + process.SimL1TGlobal )
0506 
0507     if not hasattr(process, 'L1TReEmulPath'):
0508         process.L1TReEmulPath = cms.Path(process.L1TReEmul)    
0509         process.schedule.append(process.L1TReEmulPath)
0510     print("# L1TReEmul sequence:  ")
0511     print("# {0}".format(process.L1TReEmul))
0512     print("# {0}".format(process.schedule))
0513     return process
0514