Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-11-28 23:10:44

0001 #!/usr/bin/env python3
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()