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 # Ref: https://www.geeksforgeeks.org/how-to-search-and-replace-text-in-a-file-in-python/
0012 def replacetext(filename, search_text, replace_text):
0013     with open(filename, 'r+') as f:
0014         file = f.read()
0015         file = re.sub(search_text, replace_text, file)
0016         f.seek(0)
0017         f.write(file)
0018         f.truncate()
0019     # return 'Text {} replaced by {}'.format(search_text, replace_text)
0020 
0021 
0022 if __name__ == '__main__':
0023     parser = OptionParser(usage="usage: %prog ver [options -n]")
0024     parser.add_option("-d", "--isdata", dest="isdata", action="store_true", default=False, help="Is data")
0025     parser.add_option("-f", "--filedesc", dest="filedesc", default='HIJING_ana398_xvtx-0p04cm_yvtx0p24cm_zvtx-20cm_dummyAlignParams', help="File description")
0026     parser.add_option("-j", "--nJob", dest="nJob", default=400, help="nJob")
0027     parser.add_option("-r", "--drcut", dest="drcut", default=0.5, help="Delta R cut for tracklets")
0028     parser.add_option("--randomclusset", dest="randomclusset", default=0, help="Random cluster set (for systematic uncertainty)")
0029     parser.add_option("--clusadccutset", dest="clusadccutset", default=0, help="Cluster ADC cut set (for systematic uncertainty)")
0030     parser.add_option("--clusphisizecutset", dest="clusphisizecutset", default=0, help="Cluster phisize cut set (for systematic uncertainty)")
0031     parser.add_option("-s", "--submitcondor", dest="submitcondor", action="store_true", default=False, help="Submit condor jobs")
0032 
0033     (opt, args) = parser.parse_args()
0034     print('opt: {}'.format(opt))
0035 
0036     isdata = opt.isdata
0037     filedesc = opt.filedesc
0038     nJob = int(opt.nJob)
0039     submitcondor = opt.submitcondor
0040     drcut = float(opt.drcut)
0041     randomclusset = int(opt.randomclusset)
0042     clusadccutset = int(opt.clusadccutset)
0043     clusphisizecutset = int(opt.clusphisizecutset)
0044     username = pwd.getpwuid(os.getuid())[0]
0045 
0046     parentdir = os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir))
0047     # subdir = 'data' if isdata else 'sim'
0048     finaloutfiledir = '{}/plot/hists/{}/{}'.format(parentdir, filedesc, 'dRcut'+str(drcut).replace('.', 'p')+'_NominalVtxZ'+('_RandomClusSet'+str(randomclusset))+('_clusAdcCutSet'+str(clusadccutset))+('_clusPhiSizeCutSet'+str(clusphisizecutset)))
0049     os.makedirs(finaloutfiledir, exist_ok=True)
0050 
0051     os.makedirs('./log_plottracklet/', exist_ok=True)
0052     if not dir_empty('./log_plottracklet/'):
0053         os.system('rm -rf ./log_plottracklet/')
0054     os.makedirs('./log_plottracklet/', exist_ok=True)
0055 
0056     condorFileName = "submitCondor_plottracklet_{}_{}.job".format('data' if isdata else 'sim', 'dRcut'+str(drcut).replace('.', 'p')+'_NominalVtxZ'+('_RandomClusSet'+str(randomclusset))+('_clusAdcCutSet'+str(clusadccutset))+('_clusPhiSizeCutSet'+str(clusphisizecutset)))
0057     condorFile = open("{}".format(condorFileName), "w")
0058     condorFile.write("Universe           = vanilla\n")
0059     condorFile.write("InitialDir         = {}\n".format(parentdir))
0060     condorFile.write("Executable         = $(InitialDir)/condor_plotTracklet.sh\n")
0061     condorFile.write("PeriodicHold       = (NumJobStarts>=1 && JobStatus == 1)\n")
0062     condorFile.write("request_memory     = 4GB\n")
0063     condorFile.write("Priority           = 20\n")
0064     condorFile.write("job_lease_duration = 3600\n")
0065     condorFile.write("Myindex            = $(Process)\n")
0066     condorFile.write("Extension          = $INT(Myindex,%05d)\n")
0067     # condorFile.write("isdata             = {}\n".format(1 if isdata else 0))
0068     condorFile.write("infilename         = /sphenix/tg/tg01/hf/hjheng/ppg02/minitree/TrackletMinitree_{}/{}/minitree_$(Extension).root\n".format(filedesc, 'dRcut'+str(drcut).replace('.', 'p')+'_NominalVtxZ'+('_RandomClusSet'+str(randomclusset))+('_clusAdcCutSet'+str(clusadccutset))+('_clusPhiSizeCutSet'+str(clusphisizecutset))))
0069     condorFile.write("outfilename        = {}/hists_$(Extension).root\n".format(finaloutfiledir))
0070     condorFile.write("Output             = $(Initialdir)/condor/log_plottracklet/condorlog_$(Process).out\n")
0071     condorFile.write("Error              = $(Initialdir)/condor/log_plottracklet/condorlog_$(Process).err\n")
0072     # condorFile.write("Log                = $(Initialdir)/condor/log_plottracklet/condorlog_$(Process).log\n")
0073     condorFile.write("Log                = /tmp/condorlog_hjheng_plottracklet_$(Process).log\n")
0074     condorFile.write("Arguments          = \"$(infilename) $(outfilename)\"\n")
0075     condorFile.write("Queue {}\n".format(nJob))
0076     condorFile.close() # Close the file before submitting the job
0077 
0078     if submitcondor:
0079         cmd = 'condor_submit ' + condorFileName
0080         os.system(cmd)