Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-09-12 05:12:22

0001 import argparse
0002 import sys
0003 
0004 # example: cmsRun L1Trigger/Phase2L1ParticleFlow/test/make_l1ct_patternFiles_cfg.py -- --patternFilesOFF
0005 # example: cmsRun L1Trigger/Phase2L1ParticleFlow/test/make_l1ct_patternFiles_cfg.py -- --dumpFilesOFF --serenity
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 for the endcaps", action="store_true", default=False)
0013 
0014 argv = sys.argv[:]
0015 if '--' in argv:
0016     argv.remove("--")
0017 args, unknown = parser.parse_known_args(argv)
0018 
0019 if args.dumpFilesOFF:
0020     print(f'Switching off dump file creation: dumpFilesOFF is {args.dumpFilesOFF}')
0021 if args.patternFilesOFF:
0022     print(f'Switching off pattern file creation: patternFilesOFF is {args.patternFilesOFF}')
0023 
0024 
0025 import FWCore.ParameterSet.Config as cms
0026 from Configuration.StandardSequences.Eras import eras
0027 
0028 process = cms.Process("RESP", eras.Phase2C17I13M9)
0029 
0030 process.load('Configuration.StandardSequences.Services_cff')
0031 process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi")
0032 process.load("FWCore.MessageLogger.MessageLogger_cfi")
0033 process.options   = cms.untracked.PSet( wantSummary = cms.untracked.bool(True), allowUnscheduled = cms.untracked.bool(False) )
0034 process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1000))
0035 process.MessageLogger.cerr.FwkReport.reportEvery = 1
0036 
0037 process.source = cms.Source("PoolSource",
0038     fileNames = cms.untracked.vstring('file:inputs110X.root'),
0039     inputCommands = cms.untracked.vstring("keep *", 
0040             "drop l1tPFClusters_*_*_*",
0041             "drop l1tPFTracks_*_*_*",
0042             "drop l1tPFCandidates_*_*_*",
0043             "drop l1tTkPrimaryVertexs_*_*_*")
0044 )
0045 
0046 process.load('Configuration.Geometry.GeometryExtended2026D88Reco_cff')
0047 process.load('Configuration.Geometry.GeometryExtended2026D88_cff')
0048 process.load('Configuration.StandardSequences.MagneticField_cff')
0049 process.load('SimCalorimetry.HcalTrigPrimProducers.hcaltpdigi_cff') # needed to read HCal TPs
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.L1TTrackMatch.l1tGTTInputProducer_cfi')
0058 process.load('L1Trigger.L1TTrackMatch.l1tTrackSelectionProducer_cfi')
0059 process.l1tTrackSelectionProducer.processSimulatedTracks = False # these would need stubs, and are not used anyway
0060 process.load('L1Trigger.VertexFinder.l1tVertexProducer_cfi')
0061 from L1Trigger.Phase2L1GMT.gmt_cfi import l1tStandaloneMuons
0062 process.l1tSAMuonsGmt = l1tStandaloneMuons.clone()
0063 
0064 from L1Trigger.Phase2L1ParticleFlow.l1SeedConePFJetEmulatorProducer_cfi import l1SeedConePFJetEmulatorProducer
0065 from L1Trigger.Phase2L1ParticleFlow.l1tDeregionizerProducer_cfi import l1tDeregionizerProducer
0066 from L1Trigger.Phase2L1ParticleFlow.l1tJetFileWriter_cfi import l1tSeededConeJetFileWriter
0067 process.l1tLayer2Deregionizer = l1tDeregionizerProducer.clone()
0068 process.l1tLayer2SeedConeJetsCorrected = l1SeedConePFJetEmulatorProducer.clone(L1PFObjects = cms.InputTag('l1tLayer2Deregionizer', 'Puppi'),
0069                                                                                 doCorrections = cms.bool(True),
0070                                                                                 correctorFile = cms.string("L1Trigger/Phase2L1ParticleFlow/data/jecs/jecs_20220308.root"),
0071                                                                                 correctorDir = cms.string('L1PuppiSC4EmuJets'))
0072 process.l1tLayer2SeedConeJetWriter = l1tSeededConeJetFileWriter.clone(jets = "l1tLayer2SeedConeJetsCorrected")
0073 
0074 process.l1tLayer1BarrelTDR = process.l1tLayer1Barrel.clone()
0075 process.l1tLayer1BarrelTDR.regionizerAlgo = cms.string("TDR")
0076 process.l1tLayer1BarrelTDR.regionizerAlgoParameters = cms.PSet(
0077         nTrack = cms.uint32(22),
0078         nCalo = cms.uint32(15),
0079         nEmCalo = cms.uint32(12),
0080         nMu = cms.uint32(2),
0081         nClocks = cms.uint32(162),
0082         doSort = cms.bool(False),
0083         bigRegionEdges = cms.vint32(-560, -80, 400, -560)
0084     )
0085 
0086 process.l1tLayer1BarrelSerenity = process.l1tLayer1Barrel.clone()
0087 process.l1tLayer1BarrelSerenity.regionizerAlgo = "MultififoBarrel"
0088 process.l1tLayer1BarrelSerenity.regionizerAlgoParameters = cms.PSet(
0089         barrelSetup = cms.string("Full54"),
0090         useAlsoVtxCoords = cms.bool(True),
0091         nClocks = cms.uint32(54),
0092         nHCalLinks = cms.uint32(2),
0093         nECalLinks = cms.uint32(1),
0094         nTrack = cms.uint32(22),
0095         nCalo = cms.uint32(15),
0096         nEmCalo = cms.uint32(12),
0097         nMu = cms.uint32(2))
0098 process.l1tLayer1BarrelSerenity.pfAlgoParameters.nTrack = 22
0099 process.l1tLayer1BarrelSerenity.pfAlgoParameters.nSelCalo = 15
0100 process.l1tLayer1BarrelSerenity.pfAlgoParameters.nCalo = 15
0101 process.l1tLayer1BarrelSerenity.pfAlgoParameters.nAllNeutral = 27
0102 process.l1tLayer1BarrelSerenity.puAlgoParameters.nTrack = 22
0103 process.l1tLayer1BarrelSerenity.puAlgoParameters.nIn = 27
0104 process.l1tLayer1BarrelSerenity.puAlgoParameters.nOut = 27
0105 process.l1tLayer1BarrelSerenity.puAlgoParameters.finalSortAlgo = "FoldedHybrid"
0106 
0107 if args.serenity:
0108     process.l1tLayer1.pfProducers[0] = "l1tLayer1BarrelSerenity"
0109     process.l1tLayer2EG.tkElectrons[1].pfProducer = "l1tLayer1BarrelSerenity:L1TkElePerBoard"
0110     process.l1tLayer2EG.tkEms[2].pfProducer = "l1tLayer1BarrelSerenity:L1TkEmPerBoard"
0111 
0112 from L1Trigger.Phase2L1ParticleFlow.l1ctLayer1_patternWriters_cff import *
0113 from L1Trigger.Phase2L1ParticleFlow.l1ctLayer1_patternWriters_cff import _eventsPerFile
0114 if not args.patternFilesOFF:
0115     process.l1tLayer1Barrel.patternWriters = cms.untracked.VPSet(*barrelWriterConfigs)
0116     process.l1tLayer1BarrelSerenity.patternWriters = cms.untracked.VPSet(barrelSerenityVU9PPhi1Config,barrelSerenityVU13PPhi1Config)
0117     process.l1tLayer1HGCal.patternWriters = cms.untracked.VPSet(*hgcalWriterConfigs)
0118     process.l1tLayer1HGCalElliptic.patternWriters = cms.untracked.VPSet(*hgcalWriterConfigs)
0119     process.l1tLayer1HGCalNoTK.patternWriters = cms.untracked.VPSet(*hgcalNoTKWriterConfigs)
0120     process.l1tLayer1HF.patternWriters = cms.untracked.VPSet(*hfWriterConfigs)
0121 
0122 process.runPF = cms.Path( 
0123         process.l1tSAMuonsGmt +
0124         process.l1tGTTInputProducer +
0125         process.l1tTrackSelectionProducer +
0126         process.l1tVertexFinderEmulator +
0127         process.l1tLayer1Barrel +
0128         process.l1tLayer1BarrelTDR +
0129         process.l1tLayer1BarrelSerenity +
0130         process.l1tLayer1HGCal +
0131         process.l1tLayer1HGCalElliptic +
0132         process.l1tLayer1HGCalNoTK +
0133         process.l1tLayer1HF +
0134         process.l1tLayer1 +
0135         process.l1tLayer2Deregionizer +
0136         process.l1tLayer2SeedConeJetsCorrected +
0137         # process.l1tLayer2SeedConeJetWriter +
0138         process.l1tLayer2EG
0139     )
0140 process.runPF.associate(process.L1TLayer1TaskInputsTask)
0141 
0142 
0143 #####################################################################################################################
0144 ## Layer 2 e/gamma 
0145 
0146 if not args.patternFilesOFF:
0147     process.l1tLayer2EG.writeInPattern = True
0148     process.l1tLayer2EG.writeOutPattern = True
0149     process.l1tLayer2EG.inPatternFile.maxLinesPerFile = _eventsPerFile*54
0150     process.l1tLayer2EG.outPatternFile.maxLinesPerFile = _eventsPerFile*54
0151 
0152 #####################################################################################################################
0153 ## Layer 2 seeded-cone jets 
0154 if not args.patternFilesOFF:
0155     process.runPF.insert(process.runPF.index(process.l1tLayer2SeedConeJetsCorrected)+1, process.l1tLayer2SeedConeJetWriter)
0156     process.l1tLayer2SeedConeJetWriter.maxLinesPerFile = _eventsPerFile*54
0157 
0158 if not args.dumpFilesOFF:
0159   for det in "Barrel", "BarrelTDR", "BarrelSerenity", "HGCal", "HGCalElliptic", "HGCalNoTK", "HF":
0160         l1pf = getattr(process, 'l1tLayer1'+det)
0161         l1pf.dumpFileName = cms.untracked.string("TTbar_PU200_"+det+".dump")
0162 
0163 
0164 if args.tm18:
0165     process.l1tLayer1HGCalTM18 = process.l1tLayer1HGCal.clone()
0166     process.l1tLayer1HGCalTM18.regionizerAlgo = "BufferedFoldedMultififo"
0167     process.l1tLayer1HGCalTM18.regionizerAlgoParameters.nClocks = 162
0168     del process.l1tLayer1HGCalTM18.regionizerAlgoParameters.nEndcaps 
0169     del process.l1tLayer1HGCalTM18.regionizerAlgoParameters.nTkLinks
0170     del process.l1tLayer1HGCalTM18.regionizerAlgoParameters.nCaloLinks
0171     process.l1tLayer1HGCalNoTKTM18 = process.l1tLayer1HGCalNoTK.clone()
0172     process.l1tLayer1HGCalNoTKTM18.regionizerAlgo = "BufferedFoldedMultififo"
0173     process.l1tLayer1HGCalNoTKTM18.regionizerAlgoParameters.nClocks = 162
0174     del process.l1tLayer1HGCalNoTKTM18.regionizerAlgoParameters.nEndcaps 
0175     del process.l1tLayer1HGCalNoTKTM18.regionizerAlgoParameters.nTkLinks
0176     del process.l1tLayer1HGCalNoTKTM18.regionizerAlgoParameters.nCaloLinks
0177     process.runPF.insert(process.runPF.index(process.l1tLayer1HGCal)+1, process.l1tLayer1HGCalTM18)
0178     process.runPF.insert(process.runPF.index(process.l1tLayer1HGCalNoTK)+1, process.l1tLayer1HGCalNoTKTM18)
0179     if not args.patternFilesOFF:
0180         process.l1tLayer1HGCalTM18.patternWriters = cms.untracked.VPSet(*hgcalTM18WriterConfigs)
0181         process.l1tLayer1HGCalNoTKTM18.patternWriters = cms.untracked.VPSet(hgcalNoTKOutputTM18WriterConfig)
0182     if not args.dumpFilesOFF:
0183         for det in "HGCalTM18", "HGCalNoTKTM18":
0184                 getattr(process, 'l1tLayer1'+det).dumpFileName = cms.untracked.string("TTbar_PU200_"+det+".dump")
0185 
0186 process.source.fileNames  = [ '/store/cmst3/group/l1tr/gpetrucc/12_5_X/NewInputs125X/150223/TTbar_PU200/inputs125X_1.root' ]