Back to home page

sPhenix code displayed by LXR

 
 

    


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     # username = pwd.getpwuid(os.getuid())[0]
0031     # print ('username: {}'.format(username))
0032     # subdir = 'data' if isdata else 'sim'
0033     # get parent directory of this file
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     # condorFile.write("concurrency_limits = CONCURRENCY_LIMIT_DEFAULT:100\n")
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     # condorFile.write("Log                = $(Initialdir)/condor/log_beamspot/condorlog_$(Process).log\n")
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() # Close the file before submitting the job
0069 
0070     if submitcondor:
0071         cmd = 'condor_submit ' + condorFileName
0072         os.system(cmd)