File indexing completed on 2025-08-06 08:12:07
0001 from optparse import OptionParser
0002 import time
0003 import os
0004 import pwd
0005 import sys
0006 import re
0007
0008 def dir_empty(dir_path):
0009 return not any((True for _ in os.scandir(dir_path)))
0010
0011
0012 if __name__ == '__main__':
0013 parser = OptionParser(usage="usage: %prog ver [options -h]")
0014 parser.add_option("-d", "--isdata", dest="isdata", action="store_true", default=False, help="Is data")
0015 parser.add_option("-i", "--infiledir", dest="infiledir", default='/sphenix/user/hjheng/TrackletAna/data/INTT/HIJING_ana398_xvtx-0p04cm_yvtx0p24cm_zvtx-20cm_dummyAlignParams', help="Input file")
0016 parser.add_option("-o", "--outfiledir", dest="outfiledir", default='BeamspotMinitree_HIJING_ana398_xvtx-0p04cm_yvtx0p24cm_zvtx-20cm_dummyAlignParams', help="Output file directory (under /sphenix/user/hjheng/TrackletAna/minitree/INTT/)")
0017 parser.add_option("-p", "--dphicut", dest="dphicut", default=0.05, help="Delta phi cut")
0018 parser.add_option("-j", "--nJob", dest="nJob", default=400, help="nJob")
0019 parser.add_option("-s", "--submitcondor", dest="submitcondor", action="store_true", default=False, help="Submit condor jobs")
0020
0021 (opt, args) = parser.parse_args()
0022 print('opt: {}'.format(opt))
0023
0024 isdata = opt.isdata
0025 infiledir = opt.infiledir
0026 outfiledir = opt.outfiledir
0027 dphicut = float(opt.dphicut)
0028 nJob = int(opt.nJob)
0029 submitcondor = opt.submitcondor
0030
0031
0032
0033
0034 parentdir = os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir))
0035 finaloutfiledir = '{}/minitree/{}'.format(parentdir, outfiledir)
0036 os.makedirs(finaloutfiledir, exist_ok=True)
0037
0038 os.makedirs('./log_beamspot/', exist_ok=True)
0039 if not dir_empty('./log_beamspot/'):
0040 os.system('rm -rf ./log_beamspot/')
0041 os.makedirs('./log_beamspot/', exist_ok=True)
0042
0043
0044 condorFileName = "submitCondor_BeamspotReco_{}.job".format('data' if isdata else 'sim')
0045 condorFile = open("{}".format(condorFileName), "w")
0046 condorFile.write("Universe = vanilla\n")
0047 condorFile.write("InitialDir = {}\n".format(parentdir))
0048 condorFile.write("Executable = $(InitialDir)/condor_BeamspotReco.sh\n")
0049 condorFile.write("PeriodicHold = (NumJobStarts>=1 && JobStatus == 1)\n")
0050
0051 condorFile.write("request_memory = 4GB\n")
0052 condorFile.write("Priority = 20\n")
0053 condorFile.write("job_lease_duration = 3600\n")
0054 condorFile.write("Myindex = $(Process)\n")
0055 condorFile.write("Extension = $INT(Myindex,%05d)\n")
0056 if isdata:
0057 condorFile.write("inputfile = {}/ntuple_wEvtBcoDiff_$(Extension).root\n".format(infiledir))
0058 else:
0059 condorFile.write("inputfile = {}/ntuple_$(Extension).root\n".format(infiledir))
0060 condorFile.write("dphicut = {}\n".format(dphicut))
0061 condorFile.write("outputfile = {}/minitree_$(Extension).root\n".format(finaloutfiledir))
0062 condorFile.write("Output = $(Initialdir)/condor/log_beamspot/condorlog_$(Process).out\n")
0063 condorFile.write("Error = $(Initialdir)/condor/log_beamspot/condorlog_$(Process).err\n")
0064
0065 condorFile.write("Log = /tmp/condorlog_hjheng_beamspot_$(Process).log\n")
0066 condorFile.write("Arguments = \"$(inputfile) $(outputfile) $(dphicut)\"\n")
0067 condorFile.write("Queue {}\n".format(nJob))
0068 condorFile.close()
0069
0070 if submitcondor:
0071 cmd = 'condor_submit ' + condorFileName
0072 os.system(cmd)