File indexing completed on 2023-03-17 10:59:02
0001 import FWCore.ParameterSet.Config as cms
0002
0003 import FWCore.ParameterSet.VarParsing as VarParsing
0004 parser = VarParsing.VarParsing('python')
0005 one = VarParsing.VarParsing.multiplicity.singleton
0006 bool = VarParsing.VarParsing.varType.bool
0007 string = VarParsing.VarParsing.varType.string
0008 parser.register('nolegacy', False, one, bool, "Don't run legacy harvesters")
0009 parser.register('nomodules', False, one, bool, "Don't run any harvesters")
0010 parser.register('legacyoutput', False, one, bool, "Use DQMFileSaver for output instead of DQMIO.")
0011 parser.register('protobufinput', False, one, bool, "Use DQMProtobufReader for input instead of DQMIO.")
0012 parser.register('metoedminput', False, one, bool, "Use PoolInputSource and EDMtoMEConverter for input.")
0013 parser.register('outfile', "dqm.root", one, string, "Output file name.")
0014 parser.register('reScope', "", one, string, "Type of reScoping to use.")
0015 parser.parseArguments()
0016 args = parser
0017
0018 process = cms.Process("HARVESTING")
0019 process.add_(cms.Service("DQMStore"))
0020 process.load("DQMServices.Demo.testharvester_cfi")
0021 process.load("DQMServices.Demo.testlegacyharvester_cfi")
0022
0023 print(args.inputFiles)
0024
0025 if args.protobufinput:
0026 infile = args.inputFiles[0]
0027 runnr = int(infile[-6:])
0028 indir = "/".join(infile.split("/")[:-1])
0029 process.source = cms.Source("DQMProtobufReader",
0030 runNumber = cms.untracked.uint32(runnr),
0031 runInputDir = cms.untracked.string(indir),
0032 streamLabel = cms.untracked.string("streamDQMHistograms"),
0033 scanOnce = cms.untracked.bool(True),
0034 datafnPosition = cms.untracked.uint32(4),
0035 delayMillis = cms.untracked.uint32(500),
0036 nextLumiTimeoutMillis = cms.untracked.int32(-1),
0037 skipFirstLumis = cms.untracked.bool(False),
0038 deleteDatFiles = cms.untracked.bool(False),
0039 endOfRunKills = cms.untracked.bool(False),
0040 )
0041
0042 elif args.metoedminput:
0043 process.EDMtoMEConverter = cms.EDProducer("EDMtoMEConverter",
0044 Name = cms.untracked.string('EDMtoMEConverter'),
0045 Verbosity = cms.untracked.int32(0),
0046 Frequency = cms.untracked.int32(50),
0047 convertOnEndLumi = cms.untracked.bool(True),
0048 convertOnEndRun = cms.untracked.bool(True),
0049 runInputTag = cms.InputTag('MEtoEDMConverter', 'MEtoEDMConverterRun'),
0050 lumiInputTag = cms.InputTag('MEtoEDMConverter', 'MEtoEDMConverterLumi')
0051 )
0052 process.convert = cms.Path(process.EDMtoMEConverter)
0053 process.source = cms.Source("PoolSource",
0054 fileNames = cms.untracked.vstring(*["file://" + f for f in args.inputFiles]))
0055
0056 else:
0057 process.source = cms.Source("DQMRootSource",
0058 fileNames = cms.untracked.vstring(*["file://" + f for f in args.inputFiles]),
0059 reScope = cms.untracked.string(args.reScope))
0060
0061
0062 process.harvest = cms.Sequence(process.testharvester)
0063 process.harvestlegacy = cms.Sequence(process.testlegacyharvester)
0064
0065 if args.nomodules:
0066 pass
0067 elif args.nolegacy:
0068 process.p = cms.Path(process.harvest)
0069 else:
0070 process.p = cms.Path(process.harvest + process.harvestlegacy)
0071
0072
0073 process.dqmSaver = cms.EDAnalyzer("DQMFileSaver",
0074 convention = cms.untracked.string('Offline'),
0075 fileFormat = cms.untracked.string('ROOT'),
0076 producer = cms.untracked.string('DQM'),
0077 workflow = cms.untracked.string('/Harvesting/DQMTests/DQMIO'),
0078 dirName = cms.untracked.string('.'),
0079 saveByRun = cms.untracked.int32(-1),
0080 saveAtJobEnd = cms.untracked.bool(True),
0081 )
0082
0083
0084 process.out = cms.OutputModule("DQMRootOutputModule",
0085 fileName = cms.untracked.string(args.outfile))
0086 if args.legacyoutput:
0087 process.e = cms.EndPath(process.dqmSaver)
0088 else:
0089 process.e = cms.EndPath(process.out)
0090
0091
0092
0093