Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-04-07 08:10:32

0001 #!/bin/bash
0002 
0003 run=$1
0004 
0005 dirStart=${run:0:3}
0006 dirEnd=$(($dirStart + 1))
0007 
0008 runSpecies=run3oo
0009 buildTag=ana534_2025p010_v001
0010 dstType=DST_TRKR_SEED
0011 
0012 directory=DIRECTORY
0013 if [[ "${runSpecies}" == "run3auau" || "${runSpecies}" == "run3pp"  || "${runSpecies}" == "run3oo" ]]; then
0014   directory=/sphenix/lustre01/sphnxpro/production/${runSpecies}/physics/${buildTag}/${dstType}/run_000${dirStart}00_000${dirEnd}00/
0015 fi
0016 if [[ "${runSpecies}" == "run2pp" ]]; then
0017   directory=/sphenix/lustre01/sphnxpro/production/${runSpecies}/physics/${buildTag}/${dstType}/run_000${dirStart}00_000${dirEnd}00/dst/
0018 fi
0019 
0020 fileHeader=${dstType}_${runSpecies}_${buildTag}-000${run}-
0021 filePath=${directory}${fileHeader}
0022 
0023 totalLargeSegments=$(ls -1 ${filePath}*000.root | wc -l)
0024 totalLargeSegments=$((${totalLargeSegments} - 1))
0025 
0026 nTotal=1000 #10000 events per segment
0027 nEvents=1000 # nEvents per job
0028 nSkips=$((($nTotal / $nEvents) - 1))
0029 
0030 outDir=fileLists
0031 
0032 if [[ ! -d ${outDir} ]]; then
0033   mkdir -p ${outDir}
0034 fi
0035 
0036 for largeSegment in $(seq 0 $totalLargeSegments)
0037 do
0038   largeSegment=$(printf "%02d" $largeSegment)
0039   fileNames=${filePath}${largeSegment}*.root
0040 
0041   nDSTs=$(ls -1 ${fileNames} | wc -l)
0042   nDSTs=$((${nDSTs} - 1))
0043 
0044   outFile=${outDir}/file_run${run}_${largeSegment}.list
0045 
0046   if [[ -f ${outFile} ]]; then
0047     rm ${outFile}
0048   fi
0049 
0050   echo "Writing output file ${outFile}"
0051 
0052   fileCounter=0
0053   for i in $(seq 0 $nDSTs)
0054   do
0055     smallSegment=$(printf "%03d" $fileCounter)
0056     #checkFile=${filePath}${smallSegment}.root
0057     checkFile=${filePath}${largeSegment}${smallSegment}.root
0058     while [[ ! -f ${checkFile} ]]
0059     do
0060       ((fileCounter++))
0061       smallSegment=$(printf "%03d" $fileCounter)
0062       #checkFile=${filePath}${smallSegment}.root
0063       checkFile=${filePath}${largeSegment}${smallSegment}.root
0064     done
0065 
0066     DST=$(realpath ${checkFile} | awk -F '/' '{print $NF}' ) 
0067     ((fileCounter++))
0068 
0069     for i in $(seq 0 $nSkips)
0070     do
0071       startEvent=$(($i*$nEvents))
0072 
0073       echo "${nEvents} ${DST} ${directory} ${startEvent}" >> ${outFile}
0074       #echo "${nEvents} ${DST} ${startEvent}" >> ${outFile}
0075 
0076     done
0077  
0078   done
0079 
0080 done
0081