Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-06-13 03:23:09

0001 import os
0002 import shutil
0003 import argparse
0004 import subprocess
0005 import helpers
0006 
0007 
0008 def main():
0009     parser = argparse.ArgumentParser(description="Automatically run APE measurements")
0010     parser.add_argument("--iteration", action="store", dest="iteration", type=int,
0011                       help="Current iteration number")
0012     parser.add_argument("--numFiles", action="store", dest="numFiles", type=int,
0013                       help="Number of files")
0014     parser.add_argument("--workingArea", action="store", dest="workingArea", 
0015                       help="Working Area folder")
0016     parser.add_argument("--measName", action="store", dest="measName", 
0017                       help="Measurement name.")                      
0018     parser.add_argument("--isBaseline", action="store", dest="isBaseline",
0019                       help="Is baseline measurement")
0020     # create iteration folders, then merge outputs and remove files
0021     args = parser.parse_args()
0022     args.isBaseline = (args.isBaseline == "True")
0023     
0024     fileNames = [os.path.join(args.workingArea, args.measName, "out{}.root".format(i)) for i in range(1, args.numFiles+1)  ]    
0025     
0026     if not args.isBaseline:
0027         helpers.newIterFolder(args.workingArea, args.measName, "iter"+str(args.iteration))
0028         targetName = os.path.join(args.workingArea, args.measName, "iter"+str(args.iteration), "allData.root")
0029     else:
0030         helpers.newIterFolder(args.workingArea, args.measName, "baseline")
0031         targetName = os.path.join(args.workingArea, args.measName, "baseline", "allData.root")
0032     
0033     subprocess.call("hadd {} {}".format(targetName, " ".join(fileNames)), shell=True)
0034     
0035     for name in fileNames:
0036         os.remove(name)
0037         
0038     if args.iteration>0 and not args.isBaseline: 
0039         # copy over file from last iteration, so that new results are appended in each iteration
0040         shutil.copyfile( os.path.join(args.workingArea, args.measName, "iter"+str(args.iteration-1), "allData_iterationApe.root"), 
0041                          os.path.join(args.workingArea, args.measName, "iter"+str(args.iteration),   "allData_iterationApe.root"))
0042     
0043     
0044 if __name__ == "__main__":
0045     main()