Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Forward port of #5752 and #5781 into CMSSW_7_3_X. #5815

Merged
merged 8 commits into from Oct 14, 2014
Expand Up @@ -21,12 +21,6 @@
rctUpgradeFormatDigis.regionTag = cms.InputTag("simRctDigis")
rctUpgradeFormatDigis.emTag = cms.InputTag("simRctDigis")

# GT
from L1Trigger.Configuration.SimL1Emulator_cff import simGtDigis
simGtDigis.GmtInputTag = 'gtDigis'
simGtDigis.GctInputTag = 'caloStage1LegacyFormatDigis'
simGtDigis.TechnicalTriggersInputTags = cms.VInputTag( )

# L1Extra
import L1Trigger.Configuration.L1Extra_cff
l1ExtraLayer2 = L1Trigger.Configuration.L1Extra_cff.l1extraParticles.clone()
Expand All @@ -51,5 +45,4 @@
+ecalDigis
+simRctDigis
+L1TCaloStage1
+simGtDigis
)
123 changes: 94 additions & 29 deletions L1Trigger/L1TCalorimeter/python/L1TCaloStage1_customForHLT.py
Expand Up @@ -2,51 +2,116 @@
#

import FWCore.ParameterSet.Config as cms
import os

##############################################################################

def customiseL1CaloAndGtEmulatorsFromRaw(process):
# customization fragment to run calorimeter emulators (TPGs and L1 calorimeter emulators)
# and GT emulator starting from a RAW file assuming that "RawToDigi_cff" and "SimL1Emulator_cff"
def customiseL1EmulatorFromRaw(process):
# customization fragment to run full emulator chain (TPGs and L1 Muon,Calo and GT emulators)
# starting from a RAW file assuming that "RawToDigi_cff" and "SimL1Emulator_cff"
# have already been loaded

## # run Calo TPGs on unpacked digis
## process.load('L1Trigger.Configuration.CaloTriggerPrimitives_cff')
## process.simEcalTriggerPrimitiveDigis.Label = 'ecalDigis'
## process.simHcalTriggerPrimitiveDigis.inputLabel = cms.VInputTag(
## cms.InputTag('hcalDigis'),
## cms.InputTag('hcalDigis')
## )

# do not run muon emulators - instead, use unpacked GMT digis for GT input
# (GMT digis produced by same module as the GT digis, as GT and GMT have common unpacker)
process.simRpcTechTrigDigis.RPCDigiLabel = 'muonRPCDigis'
process.simGtDigis.GmtInputTag = 'gtDigis'
## process.simRpcTechTrigDigis.RPCDigiLabel = 'muonRPCDigis'

## 2015 L1 Calo Emulator
process.load('L1Trigger.L1TCalorimeter.L1TCaloStage1_PPFromRaw_cff')

### 2015 L1 Muon Emulator
from L1Trigger.DTTrackFinder.dttfDigis_cfi import dttfDigis
process.dttfReEmulDigis = dttfDigis.clone()
process.dttfReEmulDigis.DTDigi_Source = cms.InputTag("dttfDigis")
process.dttfReEmulDigis.CSCStub_Source = cms.InputTag("csctfReEmulTrackDigis")

from L1Trigger.RPCTrigger.rpcTriggerDigis_cfi import rpcTriggerDigis
process.rpcTriggerReEmulDigis = rpcTriggerDigis.clone()

process.load("L1TriggerConfig.RPCTriggerConfig.RPCConeDefinition_cff")
process.load("L1Trigger.RPCTrigger.RPCConeConfig_cff")

from SLHCUpgradeSimulations.Configuration.muonCustoms import customise_csc_L1Emulator_sim
from L1Trigger.CSCTrackFinder.csctfDigis_cfi import csctfDigis
customise_csc_L1Emulator_sim(process)

process.csctfReEmulTrackDigis = process.simCsctfTrackDigis.clone()
process.csctfReEmulDigis = csctfDigis.clone()

# RCT
# HCAL input would be from hcalDigis if hack not needed
from L1Trigger.Configuration.SimL1Emulator_cff import simRctDigis
simRctDigis.ecalDigis = cms.VInputTag( cms.InputTag( 'ecalDigis:EcalTriggerPrimitives' ) )
simRctDigis.hcalDigis = cms.VInputTag( cms.InputTag( 'simHcalTriggerPrimitiveDigis' ) )
process.csctfReEmulTrackDigis.DTproducer = cms.untracked.InputTag("dttfDigis")
process.csctfReEmulDigis.CSCTrackProducer = cms.untracked.InputTag("csctfReEmulTrackDigis")

# stage 1 itself
from L1Trigger.L1TCalorimeter.L1TCaloStage1_cff import rctUpgradeFormatDigis
## process.load('L1Trigger.L1TCalorimeter.L1TCaloStage1_cff')
rctUpgradeFormatDigis.regionTag = cms.InputTag("simRctDigis")
rctUpgradeFormatDigis.emTag = cms.InputTag("simRctDigis")
process.csctfReEmulTrackDigis.SectorProcessor.PTLUT.PtMethod = cms.untracked.uint32(34) # no triple ganging in ME11a
process.csctfReEmulTrackDigis.SectorProcessor.gangedME1a = cms.untracked.bool(False)
process.csctfReEmulTrackDigis.SectorProcessor.firmwareSP = cms.uint32(20140515) #core 20120730
process.csctfReEmulTrackDigis.SectorProcessor.initializeFromPSet = cms.bool(True)

process.csctfReEmulSequence = cms.Sequence(
process.simCscTriggerPrimitiveDigis
* process.csctfReEmulTrackDigis
* process.csctfReEmulDigis
)

from L1Trigger.GlobalMuonTrigger.gmtDigis_cfi import gmtDigis
process.gmtReEmulDigis = gmtDigis.clone()

process.gmtReEmulDigis.DTCandidates = cms.InputTag("dttfReEmulDigis","DT")
process.gmtReEmulDigis.CSCCandidates = cms.InputTag("csctfReEmulDigis","CSC")
process.gmtReEmulDigis.RPCbCandidates = cms.InputTag("rpcTriggerReEmulDigis","RPCb")
process.gmtReEmulDigis.RPCfCandidates = cms.InputTag("rpcTriggerReEmulDigis","RPCf")
process.gmtReEmulDigis.MipIsoData = cms.InputTag("none")

process.load('L1TriggerConfig.GMTConfigProducers.L1MuGMTParameters_cfi')
process.L1MuGMTParameters.MergeMethodPtBrl=cms.string("byMinPt")
process.L1MuGMTParameters.MergeMethodPtFwd=cms.string("byMinPt")
process.L1MuGMTParameters.VersionSortRankEtaQLUT = cms.uint32(275)
process.L1MuGMTParameters.VersionLUTs = cms.uint32(1)
process.es_prefer_gmtConfig = cms.ESPrefer("L1MuGMTParametersProducer","L1MuGMTParameters")

process.reEmulMuonChain = cms.Sequence(
process.rpcTriggerReEmulDigis
*process.csctfReEmulSequence
*process.dttfReEmulDigis
*process.gmtReEmulDigis
)

## remove for 720pre7 and beyond
## use new muon LUTs
## dttfFile='sqlite:dttf_config.db'
## process.GlobalTag.toGet.extend(
## cms.VPSet(cms.PSet(record = cms.string("L1MuDTEtaPatternLutRcd"),
## tag = cms.string("L1MuDTEtaPatternLut_CRAFT09_hlt"),
## connect = cms.untracked.string(dttfFile)
## ),
## cms.PSet(record = cms.string("L1MuDTExtLutRcd"),
## tag = cms.string("L1MuDTExtLut_CRAFT09_hlt"),
## connect = cms.untracked.string(dttfFile)
## ),
## cms.PSet(record = cms.string("L1MuDTPhiLutRcd"),
## tag = cms.string("L1MuDTPhiLut_CRAFT09_hlt"),
## connect = cms.untracked.string(dttfFile)
## ),
## cms.PSet(record = cms.string("L1MuDTPtaLutRcd"),
## tag = cms.string("L1MuDTPtaLut_CRAFT09_hlt"),
## connect = cms.untracked.string(dttfFile)
## ),
## cms.PSet(record = cms.string("L1MuDTQualPatternLutRcd"),
## tag = cms.string("L1MuDTQualPatternLut_CRAFT09_hlt"),
## connect = cms.untracked.string(dttfFile)
## )
## )
## )
## end

# GT
from L1Trigger.Configuration.SimL1Emulator_cff import simGtDigis
simGtDigis.GmtInputTag = 'gtDigis'
simGtDigis.GmtInputTag = 'gmtReEmulDigis'
simGtDigis.GctInputTag = 'caloStage1LegacyFormatDigis'
simGtDigis.TechnicalTriggersInputTags = cms.VInputTag( )

# run Calo TPGs, L1 GCT, technical triggers, L1 GT
SimL1Emulator = cms.Sequence(
process.L1TRerunHCALTP_FromRAW +
process.ecalDigis +
process.simRctDigis +
process.L1TCaloStage1 +
## process.reEmulCaloChain +
process.L1TCaloStage1_PPFromRaw +
process.reEmulMuonChain +
process.simGtDigis )

# replace the SimL1Emulator in all paths and sequences
Expand Down
9 changes: 9 additions & 0 deletions L1Trigger/L1TCalorimeter/test/SimL1Emulator_Stage1.py
Expand Up @@ -46,8 +46,17 @@

process.load('L1Trigger.L1TCalorimeter.L1TCaloStage1_PPFromRaw_cff')

# GT
from L1Trigger.Configuration.SimL1Emulator_cff import simGtDigis
process.simGtDigis = simGtDigis.clone()
process.simGtDigis.GmtInputTag = 'simGmtDigis'
process.simGtDigis.GctInputTag = 'caloStage1LegacyFormatDigis'
process.simGtDigis.TechnicalTriggersInputTags = cms.VInputTag( )


process.p1 = cms.Path(
process.L1TCaloStage1_PPFromRaw
+process.simGtDigis
+process.l1ExtraLayer2
)

Expand Down