Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:12:57

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