File indexing completed on 2024-11-27 03:17:55
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 import FWCore.ParameterSet.Config as cms
0015
0016
0017
0018 import FWCore.ParameterSet.VarParsing as VarParsing
0019 options = VarParsing.VarParsing('analysis')
0020 options.register('skipEvents',
0021 0,
0022 VarParsing.VarParsing.multiplicity.singleton,
0023 VarParsing.VarParsing.varType.int,
0024 "Number of events to skip")
0025 options.register('mpFramesPerEvent',
0026 40,
0027 VarParsing.VarParsing.multiplicity.singleton,
0028 VarParsing.VarParsing.varType.int,
0029 "MP frames per event")
0030 options.register('mpLatency',
0031 0,
0032 VarParsing.VarParsing.multiplicity.singleton,
0033 VarParsing.VarParsing.varType.int,
0034 "MP latency (frames)")
0035 options.register('mpOffset',
0036 0,
0037 VarParsing.VarParsing.multiplicity.singleton,
0038 VarParsing.VarParsing.varType.int,
0039 "MP offset (frames)")
0040 options.register('dmFramesPerEvent',
0041 6,
0042 VarParsing.VarParsing.multiplicity.singleton,
0043 VarParsing.VarParsing.varType.int,
0044 "Demux frames per event")
0045 options.register('dmLatency',
0046 0,
0047 VarParsing.VarParsing.multiplicity.singleton,
0048 VarParsing.VarParsing.varType.int,
0049 "Demux latency (frames)")
0050 options.register('dmOffset',
0051 0,
0052 VarParsing.VarParsing.multiplicity.singleton,
0053 VarParsing.VarParsing.varType.int,
0054 "Demux offset (frames)")
0055 options.register('gtFramesPerEvent',
0056 6,
0057 VarParsing.VarParsing.multiplicity.singleton,
0058 VarParsing.VarParsing.varType.int,
0059 "GT frames per event")
0060 options.register('gtLatency',
0061 47,
0062 VarParsing.VarParsing.multiplicity.singleton,
0063 VarParsing.VarParsing.varType.int,
0064 "GT latency (frames)")
0065 options.register('gtOffset',
0066 15,
0067 VarParsing.VarParsing.multiplicity.singleton,
0068 VarParsing.VarParsing.varType.int,
0069 "GT offset (frames)")
0070 options.register('dump',
0071 False,
0072 VarParsing.VarParsing.multiplicity.singleton,
0073 VarParsing.VarParsing.varType.bool,
0074 "Print RAW data")
0075 options.register('debug',
0076 False,
0077 VarParsing.VarParsing.multiplicity.singleton,
0078 VarParsing.VarParsing.varType.bool,
0079 "Enable debug data")
0080 options.register('doMP',
0081 True,
0082 VarParsing.VarParsing.multiplicity.singleton,
0083 VarParsing.VarParsing.varType.bool,
0084 "Read MP data")
0085 options.register('doDemux',
0086 True,
0087 VarParsing.VarParsing.multiplicity.singleton,
0088 VarParsing.VarParsing.varType.bool,
0089 "Read demux data")
0090 options.register('doGT',
0091 True,
0092 VarParsing.VarParsing.multiplicity.singleton,
0093 VarParsing.VarParsing.varType.bool,
0094 "Read GT data")
0095 options.register('newXML',
0096 False,
0097 VarParsing.VarParsing.multiplicity.singleton,
0098 VarParsing.VarParsing.varType.bool,
0099 "New XML Grammar")
0100 options.register('nMP',
0101 11,
0102 VarParsing.VarParsing.multiplicity.singleton,
0103 VarParsing.VarParsing.varType.int,
0104 "Number of MPs")
0105
0106 options.parseArguments()
0107
0108 if (options.maxEvents == -1):
0109 options.maxEvents = 1
0110
0111
0112 process = cms.Process('Raw2Digi')
0113
0114
0115 process.load('Configuration.StandardSequences.Services_cff')
0116 process.load('FWCore.MessageService.MessageLogger_cfi')
0117 process.load('Configuration.StandardSequences.GeometryRecoDB_cff')
0118 process.load('Configuration.Geometry.GeometryDB_cff')
0119 process.load('Configuration.StandardSequences.MagneticField_38T_cff')
0120 process.load('Configuration.StandardSequences.SimL1Emulator_cff')
0121 process.load('Configuration.StandardSequences.EndOfProcess_cff')
0122 process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff')
0123
0124 process.maxEvents = cms.untracked.PSet(
0125 input = cms.untracked.int32(options.maxEvents)
0126 )
0127
0128
0129 process.source = cms.Source("EmptySource")
0130
0131 process.options = cms.untracked.PSet(
0132 SkipEvent = cms.untracked.vstring('ProductNotFound')
0133 )
0134
0135
0136
0137 process.output = cms.OutputModule(
0138 "PoolOutputModule",
0139 outputCommands = cms.untracked.vstring("keep *"),
0140 fileName = cms.untracked.string('l1tCalo_2016_EDM.root')
0141 )
0142
0143
0144
0145 process.load("CommonTools.UtilAlgos.TFileService_cfi")
0146 process.TFileService.fileName = cms.string('l1tCalo_2016_histos_'+repr(options.gtOffset)+'-'+repr(options.gtLatency)+'.root')
0147
0148
0149
0150 process.MessageLogger.L1TCaloEvents=dict()
0151 process.MessageLogger.L1TGlobalEvents=dict()
0152 process.MessageLogger.Global=dict()
0153
0154 process.MessageLogger.suppressInfo = cms.untracked.vstring('Geometry', 'AfterSource')
0155
0156 if (options.dump):
0157 process.MessageLogger.files.infos = cms.untracked.PSet(
0158 INFO = cms.untracked.PSet(limit = cms.untracked.int32(0)),
0159 L1TCaloEvents = cms.untracked.PSet(
0160 limit = cms.untracked.int32(10000)
0161 )
0162 )
0163
0164 if (options.debug):
0165
0166 process.MessageLogger.debugModules = cms.untracked.vstring('*')
0167 process.MessageLogger.cerr.threshold = cms.untracked.string('DEBUG')
0168
0169
0170
0171
0172 from Configuration.AlCa.GlobalTag import GlobalTag
0173 process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:startup', '')
0174
0175
0176
0177 process.load('EventFilter.L1TRawToDigi.stage2MP7BufferRaw_cff')
0178
0179
0180
0181 dmOffset = options.dmOffset + (options.skipEvents * options.dmFramesPerEvent)
0182
0183 mpOffsets = cms.untracked.vint32()
0184 for i in range (0,options.nMP):
0185 offset = options.mpOffset + (options.skipEvents / options.nMP)
0186 if (i < options.skipEvents % options.nMP):
0187 offset = offset + 1
0188 mpOffsets.append(offset)
0189
0190 boardOffset = options.skipEvents % options.nMP
0191
0192 gtOffset = options.gtOffset + (options.skipEvents * options.gtFramesPerEvent)
0193
0194
0195
0196 print("Job config :")
0197 print("maxEvents = ", options.maxEvents)
0198 print("skipEvents = ", options.skipEvents)
0199 print(" ")
0200
0201
0202 if (options.doMP):
0203 print("MP config :")
0204 print("nBoards = ", options.nMP)
0205 print("mpBoardOffset = ", boardOffset)
0206 print("mpOffset = ", mpOffsets)
0207 print(" ")
0208
0209 process.stage2MPRaw.nFramesPerEvent = cms.untracked.int32(options.mpFramesPerEvent)
0210 process.stage2MPRaw.nFramesOffset = cms.untracked.vuint32(mpOffsets)
0211 process.stage2MPRaw.boardOffset = cms.untracked.int32(boardOffset)
0212
0213 process.stage2MPRaw.rxFile = cms.untracked.string("merge/rx_summary.txt")
0214 process.stage2MPRaw.txFile = cms.untracked.string("merge/tx_summary.txt")
0215
0216
0217 if (options.doDemux):
0218 print("Demux config :")
0219 print("dmOffset = ", dmOffset)
0220 print("dmLatency = ", options.dmLatency)
0221 print(" ")
0222
0223 process.stage2DemuxRaw.nFramesPerEvent = cms.untracked.int32(options.dmFramesPerEvent)
0224 process.stage2DemuxRaw.nFramesOffset = cms.untracked.vuint32(dmOffset)
0225 process.stage2DemuxRaw.nFramesLatency = cms.untracked.vuint32(options.dmLatency)
0226 process.stage2DemuxRaw.rxFile = cms.untracked.string("good/demux/rx_summary.txt")
0227 process.stage2DemuxRaw.txFile = cms.untracked.string("good/demux/tx_summary.txt")
0228
0229
0230 if (options.doGT):
0231 print("GT config :")
0232 print("gtOffset = ", gtOffset)
0233 print("gtLatency = ", options.gtLatency)
0234
0235 process.stage2GTRaw.nFramesPerEvent = cms.untracked.int32(options.gtFramesPerEvent)
0236 process.stage2GTRaw.nFramesOffset = cms.untracked.vuint32(gtOffset)
0237 process.stage2GTRaw.nFramesLatency = cms.untracked.vuint32(options.gtLatency)
0238 process.stage2GTRaw.rxFile = cms.untracked.string("uGT/rx_summary.txt")
0239 process.stage2GTRaw.txFile = cms.untracked.string("uGT/tx_summary.txt")
0240
0241
0242 process.rawDataCollector.verbose = cms.untracked.int32(2)
0243
0244
0245
0246 process.dumpRaw = cms.EDAnalyzer(
0247 "DumpFEDRawDataProduct",
0248 label = cms.untracked.string("rawDataCollector"),
0249 feds = cms.untracked.vint32 ( 1360, 1366, 1404 ),
0250 dumpPayload = cms.untracked.bool ( True )
0251 )
0252
0253
0254 process.load('EventFilter.L1TRawToDigi.caloStage2Digis_cfi')
0255 process.caloStage2Digis.InputLabel = cms.InputTag('rawDataCollector')
0256
0257 process.load('EventFilter.L1TRawToDigi.gtStage2Digis_cfi')
0258 process.gtStage2Digis.InputLabel = cms.InputTag('rawDataCollector')
0259
0260
0261
0262 process.load('L1Trigger.L1TGlobal.StableParametersConfig_cff')
0263 process.load('L1Trigger.L1TGlobal.TriggerMenuXml_cfi')
0264 process.TriggerMenuXml.TriggerMenuLuminosity = 'startup'
0265
0266 process.TriggerMenuXml.DefXmlFile = 'L1Menu_Point5IntegrationTest_2015_v2.xml'
0267 process.TriggerMenuXml.newGrammar = cms.bool(options.newXML)
0268 if(options.newXML):
0269 print("Using new XML Grammar ")
0270
0271 process.TriggerMenuXml.DefXmlFile = 'MuonTest.xml'
0272
0273 process.load('L1Trigger.L1TGlobal.TriggerMenuConfig_cff')
0274 process.es_prefer_l1GtParameters = cms.ESPrefer('l1t::TriggerMenuXmlProducer','TriggerMenuXml')
0275
0276 process.emL1uGtFromGtInput = cms.EDProducer("L1TGlobalProducer",
0277 ProduceL1GtObjectMapRecord = cms.bool(False),
0278 AlgorithmTriggersUnmasked = cms.bool(False),
0279 EmulateBxInEvent = cms.int32(1),
0280 L1DataBxInEvent = cms.int32(1),
0281 AlgorithmTriggersUnprescaled = cms.bool(False),
0282 ProduceL1GtDaqRecord = cms.bool(True),
0283 GmtInputTag = cms.InputTag("gtStage2Digis","GT"),
0284 caloInputTag = cms.InputTag("gtStage2Digis","GT"),
0285 AlternativeNrBxBoardDaq = cms.uint32(0),
0286 BstLengthBytes = cms.int32(-1),
0287 Verbosity = cms.untracked.int32(5)
0288 )
0289
0290 process.emL1uGtFromDemuxOutput = cms.EDProducer("L1TGlobalProducer",
0291 ProduceL1GtObjectMapRecord = cms.bool(False),
0292 AlgorithmTriggersUnmasked = cms.bool(False),
0293 EmulateBxInEvent = cms.int32(1),
0294 L1DataBxInEvent = cms.int32(1),
0295 AlgorithmTriggersUnprescaled = cms.bool(False),
0296 ProduceL1GtDaqRecord = cms.bool(True),
0297 GmtInputTag = cms.InputTag(""),
0298 caloInputTag = cms.InputTag("caloStage2Digis"),
0299 AlternativeNrBxBoardDaq = cms.uint32(0),
0300 BstLengthBytes = cms.int32(-1),
0301 Verbosity = cms.untracked.int32(5)
0302 )
0303
0304
0305
0306
0307 process.load('L1Trigger.L1TCalorimeter.l1tStage2CaloAnalyzer_cfi')
0308 process.l1tStage2CaloAnalyzer.doText = cms.untracked.bool(options.debug)
0309 process.l1tStage2CaloAnalyzer.towerToken = cms.InputTag("caloStage2Digis")
0310 process.l1tStage2CaloAnalyzer.clusterToken = cms.InputTag("None")
0311 process.l1tStage2CaloAnalyzer.mpEGToken = cms.InputTag("None")
0312 process.l1tStage2CaloAnalyzer.mpTauToken = cms.InputTag("None")
0313
0314
0315
0316 process.l1tGlobalAnalyzer = cms.EDAnalyzer('L1TGlobalAnalyzer',
0317 doText = cms.untracked.bool(options.debug),
0318 dmxEGToken = cms.InputTag("caloStage2Digis"),
0319 dmxTauToken = cms.InputTag("None"),
0320 dmxJetToken = cms.InputTag("caloStage2Digis"),
0321 dmxEtSumToken = cms.InputTag("caloStage2Digis"),
0322 muToken = cms.InputTag("gtStage2Digis","GT"),
0323 egToken = cms.InputTag("gtStage2Digis","GT"),
0324 tauToken = cms.InputTag("None"),
0325 jetToken = cms.InputTag("gtStage2Digis","GT"),
0326 etSumToken = cms.InputTag("gtStage2Digis","GT"),
0327 gtAlgToken = cms.InputTag("gtStage2Digis"),
0328 emulDxAlgToken = cms.InputTag("emL1uGtFromDemuxOutput"),
0329 emulGtAlgToken = cms.InputTag("emL1uGtFromGtInput")
0330 )
0331
0332
0333
0334 process.dumpGTRecord = cms.EDAnalyzer("l1t::GtRecordDump",
0335 egInputTag = cms.InputTag("gtStage2Digis","GT"),
0336 muInputTag = cms.InputTag("gtStage2Digis","GT"),
0337 tauInputTag = cms.InputTag(""),
0338 jetInputTag = cms.InputTag("gtStage2Digis","GT"),
0339 etsumInputTag = cms.InputTag("gtStage2Digis","GT"),
0340 uGtRecInputTag = cms.InputTag(""),
0341 uGtAlgInputTag = cms.InputTag("emL1uGtFromGtInput"),
0342 uGtExtInputTag = cms.InputTag(""),
0343 bxOffset = cms.int32(0),
0344 minBx = cms.int32(0),
0345 maxBx = cms.int32(0),
0346 minBxVec = cms.int32(0),
0347 maxBxVec = cms.int32(0),
0348 dumpGTRecord = cms.bool(True),
0349 dumpVectors = cms.bool(True),
0350 tvFileName = cms.string( "TestVector.txt" )
0351 )
0352
0353
0354
0355
0356
0357
0358 process.path = cms.Path(
0359
0360 process.stage2DemuxRaw
0361 +process.stage2GTRaw
0362 +process.rawDataCollector
0363 +process.dumpRaw
0364 +process.caloStage2Digis
0365 +process.gtStage2Digis
0366 +process.emL1uGtFromGtInput
0367
0368
0369
0370
0371 )
0372
0373 if (not options.doMP):
0374 process.path.remove(process.stage2MPRaw)
0375
0376 if (not options.doDemux):
0377 process.path.remove(process.stage2DemuxRaw)
0378
0379 if (not options.doGT):
0380 process.path.remove(process.stage2GTRaw)
0381
0382 process.out = cms.EndPath(
0383 process.output
0384 )
0385