Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-09 02:22:25

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