File indexing completed on 2025-04-30 22:24:28
0001 import argparse
0002 import sys
0003
0004
0005
0006
0007 parser = argparse.ArgumentParser(prog=sys.argv[0], description='Optional parameters')
0008
0009 parser.add_argument("--dumpFilesOFF", help="switch on dump file production", action="store_true", default=False)
0010 parser.add_argument("--patternFilesOFF", help="switch on Layer-1 pattern file production", action="store_true", default=False)
0011 parser.add_argument("--serenity", help="use Serenity settigns as default everwhere, i.e. also for barrel", action="store_true", default=False)
0012 parser.add_argument("--tm18", help="Add TM18 emulators", action="store_true", default=False)
0013 parser.add_argument("--split18", help="Make 3 TM18 layer 1 pattern files", action="store_true", default=False)
0014
0015 args = parser.parse_args()
0016
0017 if args.dumpFilesOFF:
0018 print(f'Switching off dump file creation: dumpFilesOFF is {args.dumpFilesOFF}')
0019 if args.patternFilesOFF:
0020 print(f'Switching off pattern file creation: patternFilesOFF is {args.patternFilesOFF}')
0021
0022
0023 import FWCore.ParameterSet.Config as cms
0024 from Configuration.StandardSequences.Eras import eras
0025
0026 process = cms.Process("RESP", eras.Phase2C17I13M9)
0027
0028 process.load('Configuration.StandardSequences.Services_cff')
0029 process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi")
0030 process.load("FWCore.MessageLogger.MessageLogger_cfi")
0031 process.options = cms.untracked.PSet( wantSummary = cms.untracked.bool(True), allowUnscheduled = cms.untracked.bool(False) )
0032 process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1008))
0033 process.MessageLogger.cerr.FwkReport.reportEvery = 1
0034
0035 process.source = cms.Source("PoolSource",
0036 fileNames = cms.untracked.vstring('file:inputs110X.root'),
0037 inputCommands = cms.untracked.vstring("keep *",
0038 "drop l1tPFClusters_*_*_*",
0039 "drop l1tPFTracks_*_*_*",
0040 "drop l1tPFCandidates_*_*_*",
0041 "drop l1tTkPrimaryVertexs_*_*_*",
0042 "drop l1tKMTFTracks_*_*_*"),
0043 skipEvents = cms.untracked.uint32(0),
0044 )
0045
0046 process.load('Configuration.Geometry.GeometryExtendedRun4D110Reco_cff')
0047 process.load('Configuration.Geometry.GeometryExtendedRun4D110_cff')
0048 process.load('Configuration.StandardSequences.MagneticField_cff')
0049 process.load('SimCalorimetry.HcalTrigPrimProducers.hcaltpdigi_cff')
0050 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0051
0052 from Configuration.AlCa.GlobalTag import GlobalTag
0053 process.GlobalTag = GlobalTag(process.GlobalTag, '125X_mcRun4_realistic_v2', '')
0054
0055 process.load('L1Trigger.Phase2L1ParticleFlow.l1ctLayer1_cff')
0056 process.load('L1Trigger.Phase2L1ParticleFlow.l1ctLayer2EG_cff')
0057 process.load('L1Trigger.Phase2L1ParticleFlow.l1pfJetMet_cff')
0058 process.load('L1Trigger.L1TTrackMatch.l1tGTTInputProducer_cfi')
0059 process.load('L1Trigger.L1TTrackMatch.l1tTrackSelectionProducer_cfi')
0060 process.l1tTrackSelectionProducer.processSimulatedTracks = False
0061 process.load('L1Trigger.VertexFinder.l1tVertexProducer_cfi')
0062 from L1Trigger.Configuration.SimL1Emulator_cff import l1tSAMuonsGmt
0063 process.l1tSAMuonsGmt = l1tSAMuonsGmt.clone()
0064 from L1Trigger.L1CaloTrigger.l1tPhase2L1CaloEGammaEmulator_cfi import l1tPhase2L1CaloEGammaEmulator
0065 process.l1tPhase2L1CaloEGammaEmulator = l1tPhase2L1CaloEGammaEmulator.clone()
0066 from L1Trigger.L1CaloTrigger.l1tPhase2CaloPFClusterEmulator_cfi import l1tPhase2CaloPFClusterEmulator
0067 process.l1tPhase2CaloPFClusterEmulator = l1tPhase2CaloPFClusterEmulator.clone()
0068
0069 process.L1TInputTask = cms.Task(
0070 process.l1tSAMuonsGmt,
0071 process.l1tPhase2L1CaloEGammaEmulator,
0072 process.l1tPhase2CaloPFClusterEmulator
0073 )
0074
0075
0076 from L1Trigger.Phase2L1ParticleFlow.l1tJetFileWriter_cfi import l1tSeededConeJetFileWriter
0077 l1ctLayer2SCJetsProducts = cms.VPSet([cms.PSet(jets = cms.InputTag("l1tSC4NGJetProducer","l1tSC4NGJets"),
0078 nJets = cms.uint32(12),
0079 mht = cms.InputTag("l1tSC4PFL1PuppiCorrectedEmulatorMHT"),
0080 nSums = cms.uint32(2)),
0081 cms.PSet(jets = cms.InputTag("l1tSC8PFL1PuppiCorrectedEmulator"),
0082 nJets = cms.uint32(12))
0083 ])
0084 process.l1tLayer2SeedConeJetWriter = l1tSeededConeJetFileWriter.clone(collections = l1ctLayer2SCJetsProducts)
0085
0086 process.l1tLayer1BarrelTDR = process.l1tLayer1Barrel.clone()
0087 process.l1tLayer1BarrelTDR.regionizerAlgo = cms.string("TDR")
0088 process.l1tLayer1BarrelTDR.regionizerAlgoParameters = cms.PSet(
0089 nTrack = cms.uint32(22),
0090 nCalo = cms.uint32(15),
0091 nEmCalo = cms.uint32(12),
0092 nMu = cms.uint32(2),
0093 nClocks = cms.uint32(162),
0094 doSort = cms.bool(False),
0095 bigRegionEdges = cms.vint32(-560, -80, 400, -560)
0096 )
0097
0098 process.l1tLayer1BarrelSerenity = process.l1tLayer1Barrel.clone()
0099 process.l1tLayer1BarrelSerenity.regionizerAlgo = "MultififoBarrel"
0100 process.l1tLayer1BarrelSerenity.regionizerAlgoParameters = cms.PSet(
0101 barrelSetup = cms.string("Full54"),
0102 useAlsoVtxCoords = cms.bool(True),
0103 nClocks = cms.uint32(54),
0104 nHCalLinks = cms.uint32(2),
0105 nECalLinks = cms.uint32(1),
0106 nTrack = cms.uint32(22),
0107 nCalo = cms.uint32(15),
0108 nEmCalo = cms.uint32(12),
0109 nMu = cms.uint32(2))
0110 process.l1tLayer1BarrelSerenity.pfAlgoParameters.nTrack = 22
0111 process.l1tLayer1BarrelSerenity.pfAlgoParameters.nSelCalo = 15
0112 process.l1tLayer1BarrelSerenity.pfAlgoParameters.nCalo = 15
0113 process.l1tLayer1BarrelSerenity.pfAlgoParameters.nAllNeutral = 27
0114 process.l1tLayer1BarrelSerenity.puAlgoParameters.nTrack = 22
0115 process.l1tLayer1BarrelSerenity.puAlgoParameters.nIn = 27
0116 process.l1tLayer1BarrelSerenity.puAlgoParameters.nOut = 27
0117 process.l1tLayer1BarrelSerenity.puAlgoParameters.finalSortAlgo = "FoldedHybrid"
0118
0119 if args.serenity:
0120 process.l1tLayer1.pfProducers[0] = "l1tLayer1BarrelSerenity"
0121 process.l1tLayer2EG.tkElectrons[1].pfProducer = "l1tLayer1BarrelSerenity:L1TkElePerBoard"
0122 process.l1tLayer2EG.tkEms[2].pfProducer = "l1tLayer1BarrelSerenity:L1TkEmPerBoard"
0123
0124 from L1Trigger.Phase2L1ParticleFlow.l1ctLayer1_patternWriters_cff import *
0125 from L1Trigger.Phase2L1ParticleFlow.l1ctLayer1_patternWriters_cff import _eventsPerFile
0126 if not args.patternFilesOFF:
0127 process.l1tLayer1Barrel.patternWriters = cms.untracked.VPSet(*barrelWriterConfigs)
0128 process.l1tLayer1BarrelSerenity.patternWriters = cms.untracked.VPSet(barrelSerenityVU9PPhi1Config,barrelSerenityVU13PPhi1Config)
0129 process.l1tLayer1HGCal.patternWriters = cms.untracked.VPSet(*hgcalWriterConfigs)
0130 process.l1tLayer1HGCalElliptic.patternWriters = cms.untracked.VPSet(*hgcalWriterConfigs)
0131 process.l1tLayer1HGCalNoTK.patternWriters = cms.untracked.VPSet(*hgcalNoTKWriterConfigs)
0132 process.l1tLayer1HF.patternWriters = cms.untracked.VPSet(*hfWriterConfigs)
0133
0134 process.l1tSC4NGJetProducer.l1tSC4NGJetModelPath = cms.string(os.environ['CMSSW_BASE']+"/src/L1TSC4NGJetModel/L1TSC4NGJetModel_v0")
0135 process.l1tSC4NGJetProducer.jets = cms.InputTag("l1tSC4PFL1PuppiCorrectedEmulator")
0136
0137 process.runPF = cms.Path(
0138
0139
0140
0141 process.l1tGTTInputProducer +
0142 process.l1tTrackSelectionProducer +
0143 process.l1tVertexFinderEmulator +
0144 process.l1tLayer1Barrel +
0145 process.l1tLayer1BarrelTDR +
0146 process.l1tLayer1BarrelSerenity +
0147 process.l1tLayer1HGCal +
0148 process.l1tLayer1HGCalElliptic +
0149 process.l1tLayer1HGCalNoTK +
0150 process.l1tLayer1HF +
0151 process.l1tLayer1 +
0152 process.l1tLayer2Deregionizer +
0153 process.l1tSC4PFL1PuppiCorrectedEmulator +
0154 process.l1tSC4NGJetProducer +
0155 process.l1tSC4PFL1PuppiCorrectedEmulatorMHT +
0156 process.l1tSC8PFL1PuppiCorrectedEmulator +
0157
0158 process.l1tLayer2EG
0159 )
0160 process.runPF.associate(process.L1TInputTask)
0161 process.runPF.associate(process.L1TLayer1TaskInputsTask)
0162
0163
0164
0165
0166 if not args.patternFilesOFF:
0167 process.l1tLayer2EG.writeInPattern = True
0168 process.l1tLayer2EG.writeOutPattern = True
0169 process.l1tLayer2EG.inPatternFile.maxLinesPerFile = _eventsPerFile*54
0170 process.l1tLayer2EG.outPatternFile.maxLinesPerFile = _eventsPerFile*54
0171
0172
0173
0174 if not args.patternFilesOFF:
0175 process.runPF.insert(process.runPF.index(process.l1tSC8PFL1PuppiCorrectedEmulator)+1, process.l1tLayer2SeedConeJetWriter)
0176 process.l1tLayer2SeedConeJetWriter.maxLinesPerFile = _eventsPerFile*54
0177
0178 if not args.dumpFilesOFF:
0179 for det in "Barrel", "BarrelTDR", "BarrelSerenity", "HGCal", "HGCalElliptic", "HGCalNoTK", "HF":
0180 l1pf = getattr(process, 'l1tLayer1'+det)
0181 l1pf.dumpFileName = cms.untracked.string("TTbar_PU200_"+det+".dump")
0182
0183
0184 if args.tm18:
0185 process.l1tLayer1HGCalTM18 = process.l1tLayer1HGCal.clone()
0186 process.l1tLayer1HGCalTM18.regionizerAlgo = "BufferedFoldedMultififo"
0187 process.l1tLayer1HGCalTM18.regionizerAlgoParameters.nClocks = 162
0188 del process.l1tLayer1HGCalTM18.regionizerAlgoParameters.nEndcaps
0189 del process.l1tLayer1HGCalTM18.regionizerAlgoParameters.nTkLinks
0190 del process.l1tLayer1HGCalTM18.regionizerAlgoParameters.nCaloLinks
0191 process.l1tLayer1HGCalNoTKTM18 = process.l1tLayer1HGCalNoTK.clone()
0192 process.l1tLayer1HGCalNoTKTM18.regionizerAlgo = "BufferedFoldedMultififo"
0193 process.l1tLayer1HGCalNoTKTM18.regionizerAlgoParameters.nClocks = 162
0194 del process.l1tLayer1HGCalNoTKTM18.regionizerAlgoParameters.nEndcaps
0195 del process.l1tLayer1HGCalNoTKTM18.regionizerAlgoParameters.nTkLinks
0196 del process.l1tLayer1HGCalNoTKTM18.regionizerAlgoParameters.nCaloLinks
0197 process.l1tLayer1BarrelSerenityTM18 = process.l1tLayer1BarrelSerenity.clone()
0198 process.l1tLayer1BarrelSerenityTM18.regionizerAlgo = "MiddleBufferMultififo"
0199 process.l1tLayer1BarrelSerenityTM18.regionizerAlgoParameters = cms.PSet(
0200 nTrack = process.l1tLayer1BarrelSerenity.regionizerAlgoParameters.nTrack,
0201 nCalo = process.l1tLayer1BarrelSerenity.regionizerAlgoParameters.nCalo,
0202 nEmCalo = process.l1tLayer1BarrelSerenity.regionizerAlgoParameters.nEmCalo,
0203 nMu = process.l1tLayer1BarrelSerenity.regionizerAlgoParameters.nMu,
0204 )
0205 process.l1tLayer1BarrelSerenityTM18.boards = cms.VPSet(*[cms.PSet(regions = cms.vuint32(*range(18*i,18*i+18))) for i in range(3)])
0206 process.runPF.insert(process.runPF.index(process.l1tLayer1HGCal)+1, process.l1tLayer1HGCalTM18)
0207 process.runPF.insert(process.runPF.index(process.l1tLayer1HGCalNoTK)+1, process.l1tLayer1HGCalNoTKTM18)
0208 process.runPF.insert(process.runPF.index(process.l1tLayer1BarrelSerenity)+1, process.l1tLayer1BarrelSerenityTM18)
0209
0210 process.runPF.insert(process.runPF.index(process.l1tLayer2EG)+1, process.l1tLayer2EGTM18)
0211 if not args.patternFilesOFF:
0212 process.l1tLayer1HGCalTM18.patternWriters = cms.untracked.VPSet(*hgcalTM18WriterConfigs)
0213 process.l1tLayer1HGCalNoTKTM18.patternWriters = cms.untracked.VPSet(hgcalNoTKOutputTM18WriterConfig)
0214 process.l1tLayer1BarrelSerenityTM18.patternWriters = cms.untracked.VPSet(*barrelSerenityTM18WriterConfigs)
0215 process.l1tLayer2EGTM18.writeInPattern = True
0216 process.l1tLayer2EGTM18.writeOutPattern = True
0217 if not args.dumpFilesOFF:
0218 for det in "HGCalTM18", "HGCalNoTKTM18", "BarrelSerenityTM18":
0219 getattr(process, 'l1tLayer1'+det).dumpFileName = cms.untracked.string("TTbar_PU200_"+det+".dump")
0220 if args.split18 and not args.patternFilesOFF:
0221 from FWCore.Modules.preScaler_cfi import preScaler
0222 for tmSlice, psOffset in (0,1), (6,2), (12,0):
0223 setattr(process, f"preTM{tmSlice}", preScaler.clone(prescaleFactor = 3, prescaleOffset = psOffset))
0224 for det in "HGCalTM18", "HGCalNoTKTM18", "BarrelSerenityTM18":
0225 tsmod = getattr(process, 'l1tLayer1'+det).clone()
0226 tsmod.dumpFileName = cms.untracked.string("")
0227 setattr(process, f"l1tLayer1{det}TS{tmSlice}", tsmod)
0228 setattr(process, f"Write_{det}TS{tmSlice}", cms.Path(getattr(process, f"preTM{tmSlice}")+tsmod))
0229 getattr(process, f'l1tLayer1HGCalTM18TS{tmSlice}').patternWriters = cms.untracked.VPSet(
0230 hgcalWriterOutputTM18WriterConfig.clone(outputFileName = f"l1HGCalTM18-outputs-ts{tmSlice}"),
0231 hgcalWriterVU9PTM18WriterConfig.clone(inputFileName = f"l1HGCalTM18-inputs-vu9p-ts{tmSlice}"),
0232 hgcalWriterVU13PTM18WriterConfig.clone(inputFileName = f"l1HGCalTM18-inputs-vu13p-ts{tmSlice}")
0233 )
0234 getattr(process, f'l1tLayer1HGCalNoTKTM18TS{tmSlice}').patternWriters = cms.untracked.VPSet(
0235 hgcalNoTKOutputTM18WriterConfig.clone(outputFileName = f"l1HGCalTM18-outputs-ts{tmSlice}"),
0236 )
0237 getattr(process, f'l1tLayer1BarrelSerenityTM18TS{tmSlice}').patternWriters = cms.untracked.VPSet(
0238 barrelSerenityOutputTM18WriterConfig.clone(outputFileName = f"l1BarrelSerenityTM18-outputs-ts{tmSlice}"),
0239 barrelSerenityVU13PTM18WriterConfig.clone(inputFileName = f"l1BarrelSerenityTM18-inputs-vu13p-ts{tmSlice}")
0240 )
0241
0242 process.source.fileNames = [ '/store/cmst3/group/l1tr/cerminar/14_0_X/fpinputs_131X/v3/TTbar_PU200/inputs131X_1.root' ]