Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 60 additions & 1 deletion DataFormats/L1TParticleFlow/interface/gt_datatypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,36 @@ namespace l1gt {
pack_into_bits(ret, start, z0);
return ret;
}

inline void initFromBits(const ap_uint<BITWIDTH> &src) {
unsigned int start = 0;
unpack_from_bits(src, start, valid);
unpack_from_bits(src, start, v3.pt);
unpack_from_bits(src, start, v3.phi);
unpack_from_bits(src, start, v3.eta);
unpack_from_bits(src, start, quality);
unpack_from_bits(src, start, isolation);
unpack_from_bits(src, start, charge);
unpack_from_bits(src, start, z0);
}

inline static Electron unpack_ap(const ap_uint<BITWIDTH> &src) {
Electron ret;
ret.initFromBits(src);
return ret;
}

inline static Electron unpack(const std::array<uint64_t, 2> &src, int parity) {
ap_uint<BITWIDTH> bits;
if (parity == 0) {
bits(63, 0) = src[0];
bits(95, 64) = src[1];
} else {
bits(63, 0) = src[1];
bits(95, 64) = (src[0] >> 32);
}
return unpack_ap(bits);
}
};

struct Photon {
Expand All @@ -234,7 +264,8 @@ namespace l1gt {
egquality_t quality;
iso_t isolation;

inline ap_uint<96> pack() const {
static const int BITWIDTH = 96;
inline ap_uint<BITWIDTH> pack() const {
ap_uint<96> ret(0);
unsigned int start = 0;
pack_into_bits(ret, start, valid);
Expand All @@ -243,6 +274,34 @@ namespace l1gt {
pack_into_bits(ret, start, isolation);
return ret;
}

inline void initFromBits(const ap_uint<BITWIDTH> &src) {
unsigned int start = 0;
unpack_from_bits(src, start, valid);
unpack_from_bits(src, start, v3.pt);
unpack_from_bits(src, start, v3.phi);
unpack_from_bits(src, start, v3.eta);
unpack_from_bits(src, start, quality);
unpack_from_bits(src, start, isolation);
}

inline static Photon unpack_ap(const ap_uint<BITWIDTH> &src) {
Photon ret;
ret.initFromBits(src);
return ret;
}

inline static Photon unpack(const std::array<uint64_t, 2> &src, int parity) {
ap_uint<BITWIDTH> bits;
if (parity == 0) {
bits(63, 0) = src[0];
bits(95, 64) = src[1];
} else {
bits(63, 0) = src[1];
bits(95, 64) = (src[0] >> 32);
}
return unpack_ap(bits);
}
};

} // namespace l1gt
Expand Down
2 changes: 1 addition & 1 deletion L1Trigger/Phase2L1ParticleFlow/python/l1ctLayer2EG_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@
outPatternFile=cms.PSet(
nFramesPerBX=cms.uint32(9), # 360 MHz clock or 25 Gb/s link
format=cms.string("EMP"),
outputFilename=cms.string("L1TCTL2EG_OuPattern"),
outputFilename=cms.string("L1TCTL2EG_OutPattern"),
TMUX=cms.uint32(6),
maxLinesPerFile=cms.uint32(1024),
channels=cms.VPSet(
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,29 @@
import argparse
import sys

# example: cmsRun L1Trigger/Phase2L1ParticleFlow/test/make_l1ct_patternFiles_cfg.py -- --dumpFilesOFF
# example: cmsRun L1Trigger/Phase2L1ParticleFlow/test/make_l1ct_patternFiles_cfg.py -- --dumpFilesOFF

parser = argparse.ArgumentParser(prog=sys.argv[0], description='Optional parameters')

parser.add_argument("--dumpFilesOFF", help="switch on dump file production", action="store_true", default=False)
parser.add_argument("--patternFilesOFF", help="switch on Layer-1 pattern file production", action="store_true", default=False)

argv = sys.argv[:]
if '--' in argv:
argv.remove("--")
args, unknown = parser.parse_known_args(argv)

if args.dumpFilesOFF:
print(f'Switching off dump file creation: dumpFilesOFF is {args.dumpFilesOFF}')
if args.patternFilesOFF:
print(f'Switching off pattern file creation: patternFilesOFF is {args.patternFilesOFF}')


import FWCore.ParameterSet.Config as cms
from Configuration.StandardSequences.Eras import eras

process = cms.Process("RESP", eras.Phase2C9)
process = cms.Process("RESP", eras.Phase2C17I13M9)

process.load('Configuration.StandardSequences.Services_cff')
process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi")
Expand All @@ -19,14 +41,14 @@
"drop l1tTkPrimaryVertexs_*_*_*")
)

process.load('Configuration.Geometry.GeometryExtended2026D49Reco_cff')
process.load('Configuration.Geometry.GeometryExtended2026D49_cff')
process.load('Configuration.Geometry.GeometryExtended2026D88Reco_cff')
process.load('Configuration.Geometry.GeometryExtended2026D88_cff')
process.load('Configuration.StandardSequences.MagneticField_cff')
process.load('SimCalorimetry.HcalTrigPrimProducers.hcaltpdigi_cff') # needed to read HCal TPs
process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')

from Configuration.AlCa.GlobalTag import GlobalTag
process.GlobalTag = GlobalTag(process.GlobalTag, '123X_mcRun4_realistic_v3', '')
process.GlobalTag = GlobalTag(process.GlobalTag, '125X_mcRun4_realistic_v2', '')

process.load('L1Trigger.Phase2L1ParticleFlow.l1ctLayer1_cff')
process.load('L1Trigger.Phase2L1ParticleFlow.l1ctLayer2EG_cff')
Expand All @@ -38,14 +60,14 @@
from L1Trigger.Phase2L1GMT.gmt_cfi import l1tStandaloneMuons
process.l1tSAMuonsGmt = l1tStandaloneMuons.clone()

from L1Trigger.Phase2L1ParticleFlow.l1tSeedConePFJetProducer_cfi import l1tSeedConePFJetEmulatorProducer
from L1Trigger.Phase2L1ParticleFlow.l1SeedConePFJetEmulatorProducer_cfi import l1SeedConePFJetEmulatorProducer
from L1Trigger.Phase2L1ParticleFlow.l1tDeregionizerProducer_cfi import l1tDeregionizerProducer
from L1Trigger.Phase2L1ParticleFlow.l1tJetFileWriter_cfi import l1tSeededConeJetFileWriter
process.l1tLayer2Deregionizer = l1tDeregionizerProducer.clone()
process.l1tLayer2SeedConeJetsCorrected = l1tSeedConePFJetEmulatorProducer.clone(L1PFObject = ('l1tLayer2Deregionizer', 'Puppi'),
doCorrections = True,
correctorFile = "L1Trigger/Phase2L1ParticleFlow/data/jecs/jecs_20220308.root",
correctorDir = "L1PuppiSC4EmuJets")
process.l1tLayer2SeedConeJetsCorrected = l1SeedConePFJetEmulatorProducer.clone(L1PFObjects = cms.InputTag('l1tLayer2Deregionizer', 'Puppi'),
doCorrections = cms.bool(True),
correctorFile = cms.string("L1Trigger/Phase2L1ParticleFlow/data/jecs/jecs_20220308.root"),
correctorDir = cms.string('L1PuppiSC4EmuJets'))
process.l1tLayer2SeedConeJetWriter = l1tSeededConeJetFileWriter.clone(jets = "l1tLayer2SeedConeJetsCorrected")

process.l1tLayer1Barrel9 = process.l1tLayer1Barrel.clone()
Expand All @@ -61,25 +83,26 @@
)

from L1Trigger.Phase2L1ParticleFlow.l1ctLayer1_patternWriters_cff import *
process.l1tLayer1Barrel.patternWriters = cms.untracked.VPSet(*barrelWriterConfigs)
#process.l1tLayer1Barrel9.patternWriters = cms.untracked.VPSet(*barrel9WriterConfigs) # not enabled for now
process.l1tLayer1HGCal.patternWriters = cms.untracked.VPSet(*hgcalWriterConfigs)
process.l1tLayer1HGCalNoTK.patternWriters = cms.untracked.VPSet(*hgcalNoTKWriterConfigs)
process.l1tLayer1HF.patternWriters = cms.untracked.VPSet(*hfWriterConfigs)
if not args.patternFilesOFF:
process.l1tLayer1Barrel.patternWriters = cms.untracked.VPSet(*barrelWriterConfigs)
# process.l1tLayer1Barrel9.patternWriters = cms.untracked.VPSet(*barrel9WriterConfigs) # not enabled for now
process.l1tLayer1HGCal.patternWriters = cms.untracked.VPSet(*hgcalWriterConfigs)
process.l1tLayer1HGCalNoTK.patternWriters = cms.untracked.VPSet(*hgcalNoTKWriterConfigs)
process.l1tLayer1HF.patternWriters = cms.untracked.VPSet(*hfWriterConfigs)

process.runPF = cms.Path(
process.l1tSAMuonsGmt +
process.l1tGTTInputProducer +
process.l1tVertexFinderEmulator +
process.l1tLayer1Barrel +
#process.l1tLayer1Barrel9 +
process.l1tLayer1Barrel9 +
process.l1tLayer1HGCal +
process.l1tLayer1HGCalNoTK +
process.l1tLayer1HF +
process.l1tLayer1 +
process.l1tLayer2Deregionizer +
process.l1tLayer2SeedConeJetsCorrected +
process.l1tLayer2SeedConeJetWriter +
# process.l1tLayer2SeedConeJetWriter +
process.l1tLayer2EG
)
process.runPF.associate(process.L1TLayer1TaskInputsTask)
Expand All @@ -88,20 +111,23 @@
#####################################################################################################################
## Layer 2 e/gamma

process.l1tLayer2EG.writeInPattern = True
process.l1tLayer2EG.writeOutPattern = True
process.l1tLayer2EG.inPatternFile.maxLinesPerFile = eventsPerFile_*54
process.l1tLayer2EG.outPatternFile.maxLinesPerFile = eventsPerFile_*54
if not args.patternFilesOFF:
process.l1tLayer2EG.writeInPattern = True
process.l1tLayer2EG.writeOutPattern = True
process.l1tLayer2EG.inPatternFile.maxLinesPerFile = eventsPerFile_*54
process.l1tLayer2EG.outPatternFile.maxLinesPerFile = eventsPerFile_*54

#####################################################################################################################
## Layer 2 seeded-cone jets
process.l1tLayer2SeedConeJetWriter.maxLinesPerFile = eventsPerFile_*54

process.source.fileNames = [ '/store/cmst3/group/l1tr/gpetrucc/11_1_0/NewInputs110X/110121.done/TTbar_PU200/inputs110X_%d.root' % i for i in (1,3,7,8,9) ]
process.l1tPFClustersFromL1EGClusters.src = cms.InputTag("L1EGammaClusterEmuProducer",)
process.l1tPFClustersFromCombinedCaloHCal.phase2barrelCaloTowers = [cms.InputTag("L1EGammaClusterEmuProducer",)]
process.l1tPFClustersFromHGC3DClusters.src = cms.InputTag("hgcalBackEndLayer2Producer","HGCalBackendLayer2Processor3DClustering")
process.l1tPFClustersFromCombinedCaloHF.hcalCandidates = [ cms.InputTag("hgcalBackEndLayer2Producer","HGCalBackendLayer2Processor3DClustering")]
process.l1tPFTracksFromL1Tracks.L1TrackTag = cms.InputTag("TTTracksFromTrackletEmulation","Level1TTTracks")
process.l1tGTTInputProducer.l1TracksInputTag = cms.InputTag("TTTracksFromTrackletEmulation","Level1TTTracks")
if not args.patternFilesOFF:
process.runPF.insert(process.runPF.index(process.l1tLayer2SeedConeJetsCorrected)+1, process.l1tLayer2SeedConeJetWriter)
process.l1tLayer2SeedConeJetWriter.maxLinesPerFile = eventsPerFile_*54

if not args.dumpFilesOFF:
for det in "Barrel", "Barrel9", "HGCal", "HGCalNoTK", "HF":
l1pf = getattr(process, 'l1tLayer1'+det)
l1pf.dumpFileName = cms.untracked.string("TTbar_PU200_"+det+".dump")


process.source.fileNames = [ '/store/cmst3/group/l1tr/gpetrucc/12_5_X/NewInputs125X/150223/TTbar_PU200/inputs125X_%d.root' % i for i in (1,2,3,4,5) ]