Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
import FWCore.ParameterSet.Config as cms

process = cms.Process("L1ConfigValidation")
process.load("FWCore.MessageLogger.MessageLogger_cfi")
process.MessageLogger.cout.enable = cms.untracked.bool(True)
process.MessageLogger.cout.threshold = cms.untracked.string('DEBUG')
process.MessageLogger.debugModules = cms.untracked.vstring('*')

import FWCore.ParameterSet.VarParsing as VarParsing
options = VarParsing.VarParsing()
options.register('runNumber',
                 4294967295, #default value
                 VarParsing.VarParsing.multiplicity.singleton,
                 VarParsing.VarParsing.varType.int,
                 "Run number; default gives latest IOV")
options.register('inputDBConnect',
                 'sqlite_file:l1config.db', #default value
                 VarParsing.VarParsing.multiplicity.singleton,
                 VarParsing.VarParsing.varType.string,
                 "Connection string for input DB")
options.register('inputDBAuth',
                 '.', #default value
                 VarParsing.VarParsing.multiplicity.singleton,
                 VarParsing.VarParsing.varType.string,
                 "Authentication path for input DB")
options.register('printL1TriggerKeyList',
                 0, #default value
                 VarParsing.VarParsing.multiplicity.singleton,
                 VarParsing.VarParsing.varType.int,
                 "Print all object keys in CondDB")
options.register('printL1TriggerKey',
                 0, #default value
                 VarParsing.VarParsing.multiplicity.singleton,
                 VarParsing.VarParsing.varType.int,
                 "Print TSC key, subsystem keys, and object keys")
options.register('printRSKeys',
                 0, #default value
                 VarParsing.VarParsing.multiplicity.singleton,
                 VarParsing.VarParsing.varType.int,
                 "Print Run Settings keys")
options.register('printPayloadTokens',
                 0, #default value
                 VarParsing.VarParsing.multiplicity.singleton,
                 VarParsing.VarParsing.varType.int,
                 "Print payload tokens (long)")
options.parseArguments()

# Define CondDB tags
from CondTools.L1Trigger.L1CondEnum_cfi import L1CondEnum
from CondTools.L1Trigger.L1O2OTags_cfi import initL1O2OTags
initL1O2OTags()

# Input DB
from CondTools.L1Trigger.L1CondDBSource_cff import initCondDBSource
initCondDBSource( process,
                  inputDBConnect = options.inputDBConnect,
                  inputDBAuth = options.inputDBAuth,
                  tagBaseVec = initL1O2OTags.tagBaseVec,
                  includeRSTags = options.printRSKeys )

from CondCore.DBCommon.CondDBSetup_cfi import CondDBSetup
outputDB = cms.Service("PoolDBOutputService",
                       CondDBSetup,
                       # BlobStreamerName = cms.untracked.string('TBufferBlobStreamingService'),
                       connect = cms.string(options.inputDBConnect),
                       toPut = cms.VPSet(cms.PSet(
    record = cms.string("L1TriggerKeyRcd"),
    tag = cms.string("L1TriggerKey_" + initL1O2OTags.tagBaseVec[ L1CondEnum.L1TriggerKey ])),
                                         cms.PSet(
    record = cms.string("L1TriggerKeyListRcd"),
    tag = cms.string("L1TriggerKeyList_" + initL1O2OTags.tagBaseVec[ L1CondEnum.L1TriggerKeyList ]))
                                         ))
outputDB.DBParameters.authenticationPath = options.inputDBAuth

# PoolDBOutputService for printing out ESRecords
if options.printRSKeys == 1:
    from CondTools.L1Trigger.L1RSSubsystemParams_cfi import initL1RSSubsystems
    initL1RSSubsystems( tagBaseVec = initL1O2OTags.tagBaseVec )
    outputDB.toPut.extend(initL1RSSubsystems.params.recordInfo)

process.add_(outputDB)
    
# Source of events
process.maxEvents = cms.untracked.PSet(
    input = cms.untracked.int32(1)
)
process.source = cms.Source("EmptyIOVSource",
    timetype = cms.string('runnumber'),
    firstValue = cms.uint64(options.runNumber),
    lastValue = cms.uint64(options.runNumber),
    interval = cms.uint64(1)
)

# Validation modules
process.load('CondTools.L1Trigger.L1O2OTestAnalyzer_cfi')
process.L1O2OTestAnalyzer.printPayloadTokens = False

if options.printL1TriggerKey == 1:
    process.L1O2OTestAnalyzer.printL1TriggerKey = True
else:
    process.L1O2OTestAnalyzer.printL1TriggerKey = False

if options.printL1TriggerKeyList == 1:
    process.L1O2OTestAnalyzer.printL1TriggerKeyList = True
else:
    process.L1O2OTestAnalyzer.printL1TriggerKeyList = False

if options.printRSKeys == 1:
    process.L1O2OTestAnalyzer.printESRecords = True
else:
    process.L1O2OTestAnalyzer.printESRecords = False

if options.printPayloadTokens == 1:
    process.L1O2OTestAnalyzer.printPayloadTokens = True
else:
    process.L1O2OTestAnalyzer.printPayloadTokens = False

process.p = cms.Path(process.L1O2OTestAnalyzer)