File indexing completed on 2026-04-07 08:10:32
0001
0002 run=$1
0003 dirStart=${run:0:3}
0004 dirEnd=$(($dirStart + 1))
0005 runSpecies=run3pp
0006 buildTag=ana538_2025p011_v001
0007 dstType=DST_TRKR_TRACKS
0008 directory=DIRECTORY
0009 if [[ "${runSpecies}" == "run3auau" || "${runSpecies}" == "run3pp" ]]; then
0010 directory=/sphenix/lustre01/sphnxpro/production/${runSpecies}/physics/${buildTag}/${dstType}/run_000${dirStart}00_000${dirEnd}00/
0011 fi
0012 if [[ "${runSpecies}" == "run2pp" ]]; then
0013 directory=/sphenix/lustre01/sphnxpro/production/${runSpecies}/physics/${buildTag}/${dstType}/run_000${dirStart}00_000${dirEnd}00/dst/
0014 fi
0015 fileHeader=${dstType}_${runSpecies}_${buildTag}-000${run}-
0016 filePath=${directory}${fileHeader}
0017 totalLargeSegments=$(ls -1 ${filePath}*000.root | wc -l)
0018 totalLargeSegments=$((${totalLargeSegments} - 1))
0019 nTotal=1000
0020 nEvents=1000
0021 nSkips=$((($nTotal / $nEvents) - 1))
0022
0023 filesPerList=20
0024
0025 outDir=fileLists
0026 if [[ ! -d ${outDir} ]]; then
0027 mkdir -p ${outDir}
0028 fi
0029
0030
0031 masterList=${outDir}/masterList_run${run}.list
0032 if [[ -f ${masterList} ]]; then
0033 rm ${masterList}
0034 fi
0035
0036 groupCounter=0
0037 for largeSegment in $(seq 0 $totalLargeSegments)
0038 do
0039 largeSegment=$(printf "%02d" $largeSegment)
0040 fileNames=${filePath}${largeSegment}*.root
0041 nDSTs=$(ls -1 ${fileNames} | wc -l)
0042 nDSTs=$((${nDSTs} - 1))
0043
0044 fileCounter=0
0045 filesInCurrentGroup=0
0046 outFile=""
0047
0048 for i in $(seq 0 $nDSTs)
0049 do
0050 smallSegment=$(printf "%03d" $fileCounter)
0051 checkFile=${filePath}${largeSegment}${smallSegment}.root
0052 while [[ ! -f ${checkFile} ]]
0053 do
0054 ((fileCounter++))
0055 smallSegment=$(printf "%03d" $fileCounter)
0056 checkFile=${filePath}${largeSegment}${smallSegment}.root
0057 done
0058
0059 DST=$(realpath ${checkFile} | awk -F '/' '{print $NF}')
0060
0061
0062 if [[ $filesInCurrentGroup -eq 0 ]]; then
0063 groupSegment=$(printf "%04d" $groupCounter)
0064 outFile=${outDir}/${dstType}_${runSpecies}_${buildTag}-000${run}-${groupSegment}.list
0065 if [[ -f ${outFile} ]]; then
0066 rm ${outFile}
0067 fi
0068 echo "Writing output file ${outFile}"
0069
0070 echo ${outFile} >> ${masterList}
0071 fi
0072
0073 for j in $(seq 0 $nSkips)
0074 do
0075 startEvent=$(($j*$nEvents))
0076 echo "${directory}${DST}" >> ${outFile}
0077 done
0078
0079 ((fileCounter++))
0080 ((filesInCurrentGroup++))
0081
0082
0083 if [[ $filesInCurrentGroup -eq $filesPerList ]]; then
0084 filesInCurrentGroup=0
0085 ((groupCounter++))
0086 fi
0087
0088 done
0089 done
0090
0091 echo "Master list written to ${masterList}"