File indexing completed on 2024-11-28 23:10:44
0001
0002 """
0003 _RunMerge_
0004
0005 Test/Debugging harness for the merge configuration builder
0006
0007 """
0008
0009
0010
0011 import sys
0012 import getopt
0013
0014 from Configuration.DataProcessing.Merge import mergeProcess
0015
0016
0017 class RunMerge:
0018
0019 def __init__(self):
0020 self.processName = "Merge"
0021 self.outputFile = "Merged.root"
0022 self.outputLFN = None
0023 self.inputFiles = []
0024 self.newDQMIO = False
0025 self.mergeNANO = False
0026 self.bypassVersionCheck = False
0027
0028
0029 def __call__(self):
0030 if self.inputFiles == []:
0031 msg = "No Input Files provided"
0032 raise RuntimeError(msg)
0033
0034 try:
0035 process = mergeProcess(
0036 *self.inputFiles,
0037 process_name = self.processName,
0038 output_file = self.outputFile,
0039 output_lfn = self.outputLFN,
0040 newDQMIO = self.newDQMIO,
0041 mergeNANO = self.mergeNANO,
0042 bypassVersionCheck = self.bypassVersionCheck)
0043 except Exception as ex:
0044 msg = "Error creating process for Merge:\n"
0045 msg += str(ex)
0046 raise RuntimeError(msg)
0047
0048 psetFile = open("RunMergeCfg.py", "w")
0049 psetFile.write(process.dumpPython())
0050 psetFile.close()
0051 cmsRun = "cmsRun -j FrameworkJobReport.xml RunMergeCfg.py"
0052 print("Now do:\n%s" % cmsRun)
0053
0054
0055
0056
0057 if __name__ == '__main__':
0058 valid = ["input-files=", "output-file=", "output-lfn=", "dqmroot", "mergeNANO", "bypassVersionCheck" ]
0059
0060 usage = """RunMerge.py <options>"""
0061 try:
0062 opts, args = getopt.getopt(sys.argv[1:], "", valid)
0063 except getopt.GetoptError as ex:
0064 print(usage)
0065 print(str(ex))
0066 sys.exit(1)
0067
0068
0069 merger = RunMerge()
0070
0071 for opt, arg in opts:
0072 if opt == "--input-files":
0073 merger.inputFiles = [
0074 x for x in arg.split(',') if x.strip() != '' ]
0075
0076 if opt == "--output-file" :
0077 merger.outputFile = arg
0078 if opt == "--output-lfn" :
0079 merger.outputLFN = arg
0080 if opt == "--dqmroot" :
0081 merger.newDQMIO = True
0082 if opt == "--mergeNANO" :
0083 merger.mergeNANO = True
0084 if opt == "--bypassVersionCheck" :
0085 merger.bypassVersionCheck = True
0086
0087 merger()