Skip to content

Commit

Permalink
Merge pull request #14551 from cms-l1t-offline/rekovic-L1REPACK-2016-…
Browse files Browse the repository at this point in the history
…2015_CMSSW808

L1 repack 2016 2015 (Full, uGT, Full2015Data) cmssw808
  • Loading branch information
davidlange6 committed May 23, 2016
2 parents 7ca714b + 996072c commit 9a045ea
Show file tree
Hide file tree
Showing 6 changed files with 96 additions and 19 deletions.
2 changes: 1 addition & 1 deletion Configuration/Applications/python/ConfigBuilder.py
Expand Up @@ -1499,7 +1499,7 @@ def prepare_L1(self, sequence = None):

def prepare_L1REPACK(self, sequence = None):
""" Enrich the schedule with the L1 simulation step, running the L1 emulator on data unpacked from the RAW collection, and repacking the result in a new RAW collection"""
supported = ['GT','GT1','GT2','GCTGT','Full','Full2015Data']
supported = ['GT','GT1','GT2','GCTGT','Full','Full2015Data','uGT']
if sequence in supported:
self.loadAndRemember('Configuration/StandardSequences/SimL1EmulatorRepack_%s_cff'%sequence)
if self._options.scenario == 'HeavyIons':
Expand Down
Expand Up @@ -48,7 +48,6 @@
cms.InputTag('unpackHcal')
)
# L1TEventSetupForHF1x1TPs
from Configuration.Geometry.GeometryExtended2016Reco_cff import *
from L1Trigger.L1TCalorimeter.caloStage2Params_HFTP_cfi import *

from L1Trigger.Configuration.SimL1Emulator_cff import *
Expand Down
@@ -0,0 +1,69 @@
import FWCore.ParameterSet.Config as cms
from Configuration.StandardSequences.Eras import eras

## L1REPACK FULL: Re-Emulate all of L1 and repack into RAW


if not (eras.stage2L1Trigger.isChosen()):
print "L1T WARN: L1REPACK:Full (intended for 2016 data) only supports Stage 2 eras for now."
print "L1T WARN: Use a legacy version of L1REPACK for now."
else:
print "L1T INFO: L1REPACK:uGT (intended for 2016 data) will unpack uGMT and CaloLaye2 outputs and re-emulate uGT"

# First, inputs to uGT:
import EventFilter.L1TRawToDigi.gmtStage2Digis_cfi
unpackGmtStage2 = EventFilter.L1TRawToDigi.gmtStage2Digis_cfi.gmtStage2Digis.clone(
InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

import EventFilter.L1TRawToDigi.caloStage2Digis_cfi
unpackCaloStage2 = EventFilter.L1TRawToDigi.caloStage2Digis_cfi.caloStage2Digis.clone(
InputLabel = cms.InputTag( 'rawDataCollector', processName=cms.InputTag.skipCurrentProcess()))

from L1Trigger.Configuration.SimL1Emulator_cff import *
simGtStage2Digis.MuonInputTag = cms.InputTag("unpackGmtStage2","Muon")
simGtStage2Digis.EGammaInputTag = cms.InputTag("unpackCaloStage2","EGamma")
simGtStage2Digis.TauInputTag = cms.InputTag("unpackCaloStage2","Tau")
simGtStage2Digis.JetInputTag = cms.InputTag("unpackCaloStage2","Jet")
simGtStage2Digis.EtSumInputTag = cms.InputTag("unpackCaloStage2","EtSum")
simGtStage2Digis.ExtInputTag = cms.InputTag("simGtExtFakeStage2Digis") # as in default


# Finally, pack the new L1T output back into RAW

# pack unpacked
from EventFilter.L1TRawToDigi.caloStage2Raw_cfi import caloStage2Raw as packCaloStage2
packCaloStage2.InputLabel = cms.InputTag("unpackCaloStage2")

# pack unpacked
from EventFilter.L1TRawToDigi.gmtStage2Raw_cfi import gmtStage2Raw as packGmtStage2
packGmtStage2.InputLabel = cms.InputTag("unpackGmtStage2")

# pack simulated uGT
from EventFilter.L1TRawToDigi.gtStage2Raw_cfi import gtStage2Raw as packGtStage2
packGtStage2.MuonInputTag = cms.InputTag("unpackGmtStage2","Muon")
packGtStage2.EGammaInputTag = cms.InputTag("unpackCaloStage2","EGamma")
packGtStage2.TauInputTag = cms.InputTag("unpackCaloStage2","Tau")
packGtStage2.JetInputTag = cms.InputTag("unpackCaloStage2","Jet")
packGtStage2.EtSumInputTag = cms.InputTag("unpackCaloStage2","EtSum")
packGtStage2.GtInputTag = cms.InputTag("simGtStage2Digis") # as in default
packGtStage2.ExtInputTag = cms.InputTag("simGtStage2Digis") # as in default


# combine the new L1 RAW with existing RAW for other FEDs
import EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi
rawDataCollector = EventFilter.RawDataCollector.rawDataCollectorByLabel_cfi.rawDataCollector.clone(
verbose = cms.untracked.int32(0),
RawCollectionList = cms.VInputTag(
cms.InputTag('packGtStage2'),
cms.InputTag('rawDataCollector', processName=cms.InputTag.skipCurrentProcess()),
)
)



SimL1Emulator = cms.Sequence(unpackGmtStage2
+unpackCaloStage2
+SimL1TechnicalTriggers
+SimL1TGlobal
+packGtStage2
+rawDataCollector)
11 changes: 7 additions & 4 deletions EventFilter/L1TRawToDigi/python/gtStage2Raw_cfi.py
Expand Up @@ -4,10 +4,13 @@
"L1TDigiToRaw",
Setup = cms.string("stage2::GTSetup"),
# TowerInputLabel = cms.InputTag("simCaloStage2Digis"),
GtInputLabel = cms.InputTag("simGtStage2Digis"),
ExtInputLabel = cms.InputTag("simGtStage2Digis"),
CaloInputLabel = cms.InputTag("simCaloStage2Digis"),
GmtInputLabel = cms.InputTag("simGmtStage2Digis"),
GtInputTag = cms.InputTag("simGtStage2Digis"),
ExtInputTag = cms.InputTag("simGtStage2Digis"),
MuonInputTag = cms.InputTag("simGmtStage2Digis"),
EGammaInputTag = cms.InputTag("simCaloStage2Digis"),
TauInputTag = cms.InputTag("simCaloStage2Digis"),
JetInputTag = cms.InputTag("simCaloStage2Digis"),
EtSumInputTag = cms.InputTag("simCaloStage2Digis"),
FedId = cms.int32(1404),
FWId = cms.uint32(1),
lenSlinkHeader = cms.untracked.int32(8),
Expand Down
11 changes: 7 additions & 4 deletions EventFilter/L1TRawToDigi/src/implementations_stage2/GTSetup.cc
Expand Up @@ -17,10 +17,13 @@ namespace l1t {
};

virtual void fillDescription(edm::ParameterSetDescription& desc) override {
desc.addOptional<edm::InputTag>("GtInputLabel")->setComment("for stage2");
desc.addOptional<edm::InputTag>("ExtInputLabel")->setComment("for stage2");
desc.addOptional<edm::InputTag>("GmtInputLabel")->setComment("for stage2");
desc.addOptional<edm::InputTag>("CaloInputLabel")->setComment("for stage2");
desc.addOptional<edm::InputTag>("GtInputTag")->setComment("for stage2");
desc.addOptional<edm::InputTag>("ExtInputTag")->setComment("for stage2");
desc.addOptional<edm::InputTag>("MuonInputTag")->setComment("for stage2");
desc.addOptional<edm::InputTag>("EGammaInputTag")->setComment("for stage2");
desc.addOptional<edm::InputTag>("JetInputTag")->setComment("for stage2");
desc.addOptional<edm::InputTag>("TauInputTag")->setComment("for stage2");
desc.addOptional<edm::InputTag>("EtSumInputTag")->setComment("for stage2");
};

virtual PackerMap getPackers(int fed, unsigned int fw) override {
Expand Down
21 changes: 12 additions & 9 deletions EventFilter/L1TRawToDigi/src/implementations_stage2/GTTokens.cc
Expand Up @@ -8,18 +8,21 @@ namespace l1t {
namespace stage2 {
GTTokens::GTTokens(const edm::ParameterSet& cfg, edm::ConsumesCollector& cc)
{
auto gttag = cfg.getParameter<edm::InputTag>("GtInputLabel");
auto exttag = cfg.getParameter<edm::InputTag>("ExtInputLabel");
auto calotag = cfg.getParameter<edm::InputTag>("CaloInputLabel");
auto muontag = cfg.getParameter<edm::InputTag>("GmtInputLabel");
auto gttag = cfg.getParameter<edm::InputTag>("GtInputTag");
auto exttag = cfg.getParameter<edm::InputTag>("ExtInputTag");
auto egammatag = cfg.getParameter<edm::InputTag>("EGammaInputTag");
auto jettag = cfg.getParameter<edm::InputTag>("JetInputTag");
auto tautag = cfg.getParameter<edm::InputTag>("TauInputTag");
auto etsumtag = cfg.getParameter<edm::InputTag>("EtSumInputTag");
auto muontag = cfg.getParameter<edm::InputTag>("MuonInputTag");

//cout << "DEBUG: GmtInputLabel" << muontag << "\n";
//cout << "DEBUG: GmtInputTag" << muontag << "\n";

muonToken_ = cc.consumes<MuonBxCollection>(muontag);
egammaToken_ = cc.consumes<EGammaBxCollection>(calotag);
etSumToken_ = cc.consumes<EtSumBxCollection>(calotag);
jetToken_ = cc.consumes<JetBxCollection>(calotag);
tauToken_ = cc.consumes<TauBxCollection>(calotag);
egammaToken_ = cc.consumes<EGammaBxCollection>(egammatag);
etSumToken_ = cc.consumes<EtSumBxCollection>(etsumtag);
jetToken_ = cc.consumes<JetBxCollection>(jettag);
tauToken_ = cc.consumes<TauBxCollection>(tautag);
algToken_ = cc.consumes<GlobalAlgBlkBxCollection>(gttag);
extToken_ = cc.consumes<GlobalExtBlkBxCollection>(exttag);

Expand Down

0 comments on commit 9a045ea

Please sign in to comment.