File indexing completed on 2023-03-17 11:12:01
0001 from __future__ import print_function
0002
0003
0004
0005
0006
0007 import FWCore.ParameterSet.Config as cms
0008 import os
0009
0010
0011 import FWCore.ParameterSet.VarParsing as VarParsing
0012 options = VarParsing.VarParsing('analysis')
0013 options.register('filename',
0014 "rx_summary",
0015 VarParsing.VarParsing.multiplicity.singleton,
0016 VarParsing.VarParsing.varType.string,
0017 "Filename string")
0018 options.register('outDir',
0019 "mpRxFiles",
0020 VarParsing.VarParsing.multiplicity.singleton,
0021 VarParsing.VarParsing.varType.string,
0022 "Output directory for buffer files")
0023 options.register('mpPayloadFrames',
0024 40,
0025 VarParsing.VarParsing.multiplicity.singleton,
0026 VarParsing.VarParsing.varType.int,
0027 "N payload frames per event")
0028 options.register('mpHeaderFrames',
0029 1,
0030 VarParsing.VarParsing.multiplicity.singleton,
0031 VarParsing.VarParsing.varType.int,
0032 "N header frames per event")
0033 options.register('mpClearFrames',
0034 13,
0035 VarParsing.VarParsing.multiplicity.singleton,
0036 VarParsing.VarParsing.varType.int,
0037 "N clear frames between events")
0038 options.register('dump',
0039 True,
0040 VarParsing.VarParsing.multiplicity.singleton,
0041 VarParsing.VarParsing.varType.bool,
0042 "Dump messages")
0043 options.register('pattern',
0044 True,
0045 VarParsing.VarParsing.multiplicity.singleton,
0046 VarParsing.VarParsing.varType.bool,
0047 "Save pattern file")
0048 options.register('edm',
0049 False,
0050 VarParsing.VarParsing.multiplicity.singleton,
0051 VarParsing.VarParsing.varType.bool,
0052 "Save EDM file")
0053 options.register('debug',
0054 False,
0055 VarParsing.VarParsing.multiplicity.singleton,
0056 VarParsing.VarParsing.varType.bool,
0057 "Enable debug data")
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074 options.parseArguments()
0075
0076 if (options.maxEvents == -1):
0077 options.maxEvents = 1
0078
0079
0080 try:
0081 os.stat(options.outDir)
0082 except:
0083 print('Output directory does not exist. Creating directory: ' + options.outDir)
0084 os.mkdir(options.outDir)
0085
0086 process = cms.Process('L1Emulator')
0087
0088
0089 process.load('Configuration.StandardSequences.Services_cff')
0090 process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi')
0091 process.load('FWCore.MessageService.MessageLogger_cfi')
0092 process.load('Configuration.EventContent.EventContent_cff')
0093 process.load('SimGeneral.MixingModule.mixNoPU_cfi')
0094 process.load('Configuration.StandardSequences.GeometryRecoDB_cff')
0095 process.load('Configuration.Geometry.GeometryDB_cff')
0096 process.load('Configuration.StandardSequences.MagneticField_38T_cff')
0097 process.load('Configuration.StandardSequences.Generator_cff')
0098 process.load('IOMC.EventVertexGenerators.VtxSmearedRealistic8TeVCollision_cfi')
0099 process.load('GeneratorInterface.Core.genFilterSummary_cff')
0100 process.load('Configuration.StandardSequences.SimIdeal_cff')
0101 process.load('Configuration.StandardSequences.Digi_cff')
0102 process.load('Configuration.StandardSequences.SimL1Emulator_cff')
0103 process.load('Configuration.StandardSequences.EndOfProcess_cff')
0104 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0105
0106
0107 process.load('Configuration.StandardSequences.RawToDigi_cff')
0108
0109 process.maxEvents = cms.untracked.PSet(
0110 input = cms.untracked.int32(options.maxEvents)
0111 )
0112
0113
0114 process.source = cms.Source("PoolSource",
0115 fileNames = cms.untracked.vstring(options.inputFiles)
0116
0117
0118 )
0119
0120 process.options = cms.untracked.PSet(
0121
0122 )
0123
0124 from Configuration.AlCa.GlobalTag import GlobalTag
0125 process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:startup', '')
0126
0127
0128
0129 process.output = cms.OutputModule("PoolOutputModule",
0130 splitLevel = cms.untracked.int32(0),
0131 eventAutoFlushCompressedSize = cms.untracked.int32(5242880),
0132 outputCommands = cms.untracked.vstring("keep *",
0133 "drop *_mix_*_*"),
0134 fileName = cms.untracked.string('SingleElectronPt10_cfi_py_GEN_SIM_DIGI_L1.root'),
0135 dataset = cms.untracked.PSet(
0136 filterName = cms.untracked.string(''),
0137 dataTier = cms.untracked.string('')
0138 ),
0139 SelectEvents = cms.untracked.PSet(
0140 SelectEvents = cms.vstring('generation_step')
0141 )
0142 )
0143
0144
0145
0146 process.MessageLogger.L1TCaloEvents=dict()
0147
0148 process.MessageLogger.suppressInfo = cms.untracked.vstring('Geometry', 'AfterSource')
0149
0150 if (options.dump):
0151 process.MessageLogger.files.infos = cms.untracked.PSet(
0152 INFO = cms.untracked.PSet(limit = cms.untracked.int32(0)),
0153 L1TCaloEvents = cms.untracked.PSet(
0154 limit = cms.untracked.int32(10000)
0155 )
0156 )
0157
0158 if (options.debug):
0159
0160 process.MessageLogger.debugModules = cms.untracked.vstring('*')
0161 process.MessageLogger.cerr.threshold = cms.untracked.string('DEBUG')
0162
0163
0164
0165 process.load("CommonTools.UtilAlgos.TFileService_cfi")
0166 process.TFileService.fileName = cms.string('l1tCalo_2016_histos.root')
0167
0168
0169 process.load('L1Trigger.L1TCalorimeter.caloStage2Params_2017_v1_4_cfi')
0170 process.caloStage2Params.towerEncoding = cms.bool(True)
0171 process.load('L1Trigger.L1TCalorimeter.simCaloStage2Layer1Digis_cfi')
0172 process.load('L1Trigger.L1TCalorimeter.simCaloStage2Digis_cfi')
0173 process.simCaloStage2Digis.useStaticConfig = True
0174 process.simCaloStage2Layer1Digis.ecalToken = cms.InputTag("ecalDigis:EcalTriggerPrimitives")
0175 process.simCaloStage2Layer1Digis.hcalToken = cms.InputTag("hcalDigis")
0176
0177 process.load('L1Trigger.L1TCalorimeter.l1tStage2InputPatternWriter_cfi')
0178 process.l1tStage2InputPatternWriter.filename = cms.untracked.string(options.filename)
0179 process.l1tStage2InputPatternWriter.outDir = cms.untracked.string(options.outDir)
0180 process.l1tStage2InputPatternWriter.mpPayloadFrames = cms.untracked.uint32(options.mpPayloadFrames)
0181 process.l1tStage2InputPatternWriter.mpHeaderFrames = cms.untracked.uint32(options.mpHeaderFrames)
0182 process.l1tStage2InputPatternWriter.mpClearFrames = cms.untracked.uint32(options.mpClearFrames)
0183
0184
0185 process.path = cms.Path(
0186 process.ecalDigis
0187 +process.hcalDigis
0188 +process.simCaloStage2Layer1Digis
0189 +process.simCaloStage2Digis
0190 +process.l1tStage2InputPatternWriter)
0191
0192 if (options.edm):
0193 process.output_step = cms.EndPath(process.output)
0194