File indexing completed on 2024-04-06 11:58:55
0001 from pathlib import Path
0002 import json
0003 import os
0004 from optparse import OptionParser
0005 import subprocess
0006 import uproot3
0007
0008 parser=OptionParser()
0009 MYDIR=os.getcwd()
0010
0011 parser.add_option("-q","--flavour",dest="jobFlavour",type="str",default="workday",help="job FLAVOUR",metavar="FLAVOUR")
0012
0013 parser.add_option("--filePU",dest="PU_file",type=str, default=None,help="input PU file")
0014
0015 parser.add_option("--isotrackNtupler", dest="IsotrackNtupler", type=str, default=None, help="location of isotrackNtupler")
0016
0017
0018
0019
0020 parser.add_option("--fileNPU", dest="NoPU_file", type=str, default=None,
0021 help="input NoPU file")
0022
0023 parser.add_option("--output", "-o", dest="output_dir", type=str,
0024 help="location of output file directory without '/' ", )
0025
0026 opts, args = parser.parse_args()
0027
0028 jobDir = MYDIR + '/condor_jobs_vF4'
0029 Path(jobDir).mkdir(parents=True, exist_ok=False)
0030 job_files = []
0031
0032 PU_tree = uproot3.open(opts.PU_file)['hcalIsoTrkAnalyzer/CalibTree']
0033 pu_entries = PU_tree.numentries
0034 print("No of elements in pileup samples",pu_entries)
0035
0036 scale = 5000000
0037 pu_start = 0
0038 i = 0
0039
0040 print("Creating jobs ------->")
0041 for index in range(0,pu_entries, scale):
0042 print(i)
0043 pu_stop = index+scale
0044 if (pu_stop > pu_entries):
0045 pu_stop = pu_entries
0046 output_file = opts.output_dir + "/IsoTrkNtupler"
0047 arguments = "%s -NPU %s -PU %s --start %i --end %i -O %s"%(opts.IsotrackNtupler, opts.NoPU_file, opts.PU_file, pu_start, pu_stop, output_file)
0048 pu_start = pu_stop
0049 file_name = "IsoTrkNtupler_" + str(i)
0050 job_file_name = os.path.join(jobDir, f"{file_name}.sub")
0051 job_file_out = os.path.join(jobDir, f"{file_name}.out")
0052 job_file_err = os.path.join(jobDir, f"{file_name}.err")
0053
0054 with open(job_file_name, "w") as submit_file:
0055 submit_file.write(f"executable = /eos/user/d/dasgupsu/anaconda3/envs/dna/bin/python3.8\n")
0056 submit_file.write(f"arguments = {arguments}\n")
0057 submit_file.write(f"output = {job_file_out}\n")
0058 submit_file.write(f"error = {job_file_err}\n")
0059 submit_file.write("getenv = True\n")
0060 submit_file.write(f'+JobFlavour = "{opts.jobFlavour}"\n')
0061 submit_file.write("queue 1\n")
0062 job_files.append(job_file_name)
0063 i+= 1
0064
0065 for jf in job_files:
0066 if jobDir.startswith("/eos"):
0067 subprocess.run(["condor_submit", "-spool", jf])
0068 else:
0069 subprocess.run(["condor_submit", jf])