File indexing completed on 2024-04-06 12:20:37
0001 from __future__ import print_function
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015 import FWCore.ParameterSet.Config as cms
0016
0017
0018
0019 import FWCore.ParameterSet.VarParsing as VarParsing
0020 options = VarParsing.VarParsing('analysis')
0021 options.register('skipEvents',
0022 0,
0023 VarParsing.VarParsing.multiplicity.singleton,
0024 VarParsing.VarParsing.varType.int,
0025 "Number of events to skip")
0026 options.register('streamer',
0027 False,
0028 VarParsing.VarParsing.multiplicity.singleton,
0029 VarParsing.VarParsing.varType.bool,
0030 "Read input from streamer file")
0031 options.register('debug',
0032 False,
0033 VarParsing.VarParsing.multiplicity.singleton,
0034 VarParsing.VarParsing.varType.bool,
0035 "Enable debug data")
0036 options.register('dumpRaw',
0037 False,
0038 VarParsing.VarParsing.multiplicity.singleton,
0039 VarParsing.VarParsing.varType.bool,
0040 "Print RAW data")
0041 options.register('dumpDigis',
0042 False,
0043 VarParsing.VarParsing.multiplicity.singleton,
0044 VarParsing.VarParsing.varType.bool,
0045 "Print digis")
0046 options.register('histos',
0047 False,
0048 VarParsing.VarParsing.multiplicity.singleton,
0049 VarParsing.VarParsing.varType.bool,
0050 "Produce standard histograms")
0051 options.register('edm',
0052 False,
0053 VarParsing.VarParsing.multiplicity.singleton,
0054 VarParsing.VarParsing.varType.bool,
0055 "Produce EDM file")
0056 options.register('valEvents',
0057 False,
0058 VarParsing.VarParsing.multiplicity.singleton,
0059 VarParsing.VarParsing.varType.bool,
0060 "Filter on validation events")
0061 options.register('process',
0062 '',
0063 VarParsing.VarParsing.multiplicity.singleton,
0064 VarParsing.VarParsing.varType.string,
0065 "Rename process if used")
0066 options.register('mps',
0067 '',
0068 VarParsing.VarParsing.multiplicity.list,
0069 VarParsing.VarParsing.varType.int,
0070 "List of MPs to process")
0071 options.register('json',
0072 '',
0073 VarParsing.VarParsing.multiplicity.singleton,
0074 VarParsing.VarParsing.varType.string,
0075 "JSON file with list of good lumi sections")
0076 options.register('newXML',
0077 False,
0078 VarParsing.VarParsing.multiplicity.singleton,
0079 VarParsing.VarParsing.varType.bool,
0080 "New XML Grammar")
0081
0082 options.parseArguments()
0083
0084 pname="Raw2Digi"
0085 if (options.process!=""):
0086 pname=options.process
0087
0088 process = cms.Process(pname)
0089
0090
0091 process.load('Configuration.StandardSequences.Services_cff')
0092 process.load('FWCore.MessageService.MessageLogger_cfi')
0093 process.load('Configuration.StandardSequences.GeometryRecoDB_cff')
0094 process.load('Configuration.Geometry.GeometryDB_cff')
0095 process.load('Configuration.StandardSequences.MagneticField_38T_cff')
0096 process.load('Configuration.StandardSequences.SimL1Emulator_cff')
0097 process.load('Configuration.StandardSequences.EndOfProcess_cff')
0098 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0099
0100 process.maxEvents = cms.untracked.PSet(
0101 input = cms.untracked.int32(options.maxEvents)
0102 )
0103
0104
0105 if (options.streamer) :
0106 process.source = cms.Source(
0107 "NewEventStreamFileReader",
0108 fileNames = cms.untracked.vstring (options.inputFiles),
0109 skipEvents=cms.untracked.uint32(options.skipEvents)
0110 )
0111 else :
0112 process.source = cms.Source (
0113 "PoolSource",
0114 fileNames = cms.untracked.vstring (options.inputFiles),
0115 skipEvents=cms.untracked.uint32(options.skipEvents)
0116 )
0117
0118 if (options.json):
0119 import FWCore.PythonUtilities.LumiList as LumiList
0120 process.source.lumisToProcess = LumiList.LumiList(filename = options.json).getVLuminosityBlockRange()
0121
0122 process.options = cms.untracked.PSet(
0123 SkipEvent = cms.untracked.vstring('ProductNotFound')
0124 )
0125
0126
0127
0128
0129 process.load("CommonTools.UtilAlgos.TFileService_cfi")
0130 process.TFileService.fileName = cms.string('l1tCalo_2016_histos.root')
0131
0132
0133 process.MessageLogger.L1TCaloEvents=dict()
0134
0135 process.MessageLogger.suppressInfo = cms.untracked.vstring('Geometry', 'AfterSource')
0136
0137 if (options.dumpRaw):
0138 process.MessageLogger.files.infos = cms.untracked.PSet(
0139 INFO = cms.untracked.PSet(limit = cms.untracked.int32(0)),
0140 L1TCaloEvents = cms.untracked.PSet(
0141 limit = cms.untracked.int32(10000)
0142 )
0143 )
0144
0145 if (options.debug):
0146
0147 process.MessageLogger.debugModules = cms.untracked.vstring('*')
0148 process.MessageLogger.cerr.threshold = cms.untracked.string('DEBUG')
0149
0150
0151
0152 from Configuration.AlCa.GlobalTag import GlobalTag
0153 process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:startup', '')
0154
0155
0156 process.load('EventFilter.L1TRawToDigi.validationEventFilter_cfi')
0157
0158
0159 process.load('EventFilter.L1TRawToDigi.tmtFilter_cfi')
0160 process.tmtFilter.mpList = cms.untracked.vint32(options.mps)
0161
0162
0163 process.dumpRaw = cms.EDAnalyzer(
0164 "DumpFEDRawDataProduct",
0165 token = cms.untracked.InputTag("rawDataCollector"),
0166 feds = cms.untracked.vint32 ( 1360, 1366, 1404 ),
0167 dumpPayload = cms.untracked.bool ( options.dumpRaw )
0168 )
0169
0170
0171 process.load('EventFilter.L1TRawToDigi.caloStage2Digis_cfi')
0172 process.caloStage2Digis.InputLabel = cms.InputTag('rawDataCollector')
0173 if (options.debug):
0174 process.caloStage2Digis.debug = cms.untracked.bool(True)
0175
0176 process.load('EventFilter.L1TRawToDigi.gtStage2Digis_cfi')
0177 process.gtStage2Digis.InputLabel = cms.InputTag('rawDataCollector')
0178
0179
0180
0181 process.load('L1Trigger.L1TGlobal.StableParametersConfig_cff')
0182
0183 process.load('L1Trigger.L1TGlobal.TriggerMenuXml_cfi')
0184 process.TriggerMenuXml.TriggerMenuLuminosity = 'startup'
0185
0186
0187 process.TriggerMenuXml.DefXmlFile = 'L1Menu_Collisions2015_25nsStage1_v6_uGT_v2a.xml'
0188
0189 process.TriggerMenuXml.newGrammar = cms.bool(options.newXML)
0190 if(options.newXML):
0191 print("Using new XML Grammar ")
0192
0193
0194 process.TriggerMenuXml.DefXmlFile = 'test_ext.xml'
0195
0196
0197 process.load('L1Trigger.L1TGlobal.TriggerMenuConfig_cff')
0198 process.es_prefer_l1GtParameters = cms.ESPrefer('l1t::TriggerMenuXmlProducer','TriggerMenuXml')
0199
0200
0201 process.load('L1Trigger.L1TGlobal.simGlobalStage2Digis_cff')
0202 process.simGlobalStage2Digis.caloInputTag = cms.InputTag("gtStage2Digis","GT")
0203 process.simGlobalStage2Digis.GmtInputTag = cms.InputTag("gtStage2Digis","GT")
0204 process.simGlobalStage2Digis.extInputTag = cms.InputTag("gtStage2Digis","GT")
0205 process.simGlobalStage2Digis.PrescaleSet = cms.uint32(1)
0206 process.simGlobalStage2Digis.Verbosity = cms.untracked.int32(0)
0207
0208
0209
0210
0211 process.l1tGlobalAnalyzer = cms.EDAnalyzer('L1TGlobalAnalyzer',
0212 doText = cms.untracked.bool(False),
0213 dmxEGToken = cms.InputTag("None"),
0214 dmxTauToken = cms.InputTag("None"),
0215 dmxJetToken = cms.InputTag("None"),
0216 dmxEtSumToken = cms.InputTag("None"),
0217 muToken = cms.InputTag("gtStage2Digis","GT"),
0218 egToken = cms.InputTag("gtStage2Digis","GT"),
0219 tauToken = cms.InputTag("gtStage2Digis","GT"),
0220 jetToken = cms.InputTag("gtStage2Digis","GT"),
0221 etSumToken = cms.InputTag("gtStage2Digis","GT"),
0222 gtAlgToken = cms.InputTag("gtStage2Digis","GT"),
0223 emulDxAlgToken = cms.InputTag("None"),
0224 emulGtAlgToken = cms.InputTag("simGlobalStage2Digis")
0225 )
0226
0227
0228
0229
0230
0231
0232
0233 process.dumpGTRecord = cms.EDAnalyzer("l1t::GtRecordDump",
0234 egInputTag = cms.InputTag("gtStage2Digis","GT"),
0235 muInputTag = cms.InputTag("gtStage2Digis","GT"),
0236 tauInputTag = cms.InputTag("gtStage2Digis","GT"),
0237 jetInputTag = cms.InputTag("gtStage2Digis","GT"),
0238 etsumInputTag = cms.InputTag("gtStage2Digis","GT"),
0239 uGtAlgInputTag = cms.InputTag("simGlobalStage2Digis"),
0240 uGtExtInputTag = cms.InputTag("gtStage2Digis","GT"),
0241 bxOffset = cms.int32(0),
0242 minBx = cms.int32(-2),
0243 maxBx = cms.int32(2),
0244 minBxVec = cms.int32(0),
0245 maxBxVec = cms.int32(0),
0246 dumpGTRecord = cms.bool(False),
0247 dumpTrigResults= cms.bool(True),
0248 dumpVectors = cms.bool(False),
0249 tvFileName = cms.string( "TestVector_Data.txt" ),
0250 psFileName = cms.string( "prescale_L1TGlobal.csv" ),
0251 psColumn = cms.int32(1)
0252 )
0253
0254
0255
0256
0257 process.path = cms.Path(
0258 process.validationEventFilter
0259 +process.dumpRaw
0260 +process.caloStage2Digis
0261 +process.gtStage2Digis
0262 +process.simGlobalStage2Digis
0263 +process.l1tGlobalAnalyzer
0264 +process.dumpGTRecord
0265
0266 )
0267
0268
0269 if (not options.valEvents):
0270 process.path.remove(process.validationEventFilter)
0271
0272
0273 if (len(options.mps)==0):
0274 process.path.remove(process.tmtFilter)
0275
0276
0277 if (not options.dumpRaw):
0278 process.path.remove(process.dumpRaw)
0279
0280
0281 if (options.edm):
0282 process.output = cms.OutputModule(
0283 "PoolOutputModule",
0284 outputCommands = cms.untracked.vstring("keep *"),
0285 SelectEvents = cms.untracked.PSet(
0286 SelectEvents = cms.vstring('path')
0287 ),
0288 fileName = cms.untracked.string('l1tCalo_2016_EDM.root')
0289 )
0290
0291 process.out = cms.EndPath(
0292 process.output
0293 )
0294
0295
0296