Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2026-04-04 08:11:55

0001 #!/bin/bash
0002 #
0003 #       use CreateDstList to get filelists for 4 different DST types for all QM40 runs
0004 #       and build output list where all 4 segments (CALO, CLUS, SEED, TRACKS) exist!
0005 #               bill llope 20250810
0006 #
0007 leading_zero_fill () {
0008     printf "%0$1d\\n" "$2"
0009 }
0010 
0011 #---- begin user setup -----------------------------
0012 #
0013 RUNSLIST="./QM40runs.list"
0014 #
0015 OUTPUTDIR="./LISTS"
0016 mkdir -p $OUTPUTDIR
0017 #
0018 DST_CALO="DST_CALO"
0019 DST_CLUS="DST_TRKR_CLUSTER"
0020 DST_SEED="DST_TRKR_SEED"
0021 DST_TRAC="DST_TRKR_TRACKS"
0022 prodCALO="ana502_2024p022_v001"
0023 prodCLUS="ana494_2024p021_v001"
0024 prodSEED="ana494_2024p021_v001"
0025 prodTRAC="ana495_2024p021_v001"
0026 listdirCALO=${OUTPUTDIR}"/DST_CALO_ana502"
0027 listdirCLUS=${OUTPUTDIR}"/DST_TRKR_CLUSTER_ana494"
0028 listdirSEED=${OUTPUTDIR}"/DST_TRKR_SEED_ana494"
0029 listdirTRAC=${OUTPUTDIR}"/DST_TRKR_TRACKS_ana495"
0030 #
0031 #---- end user setup -------------------------------
0032 
0033 datestr=$(date '+%Y%m%d')
0034 OUTPUTLIST=${OUTPUTDIR}"/catlist_"${datestr}".txt"
0035 echo output file: $OUTPUTLIST
0036 rm -fv $OUTPUTLIST
0037 touch $OUTPUTLIST
0038 dst_CALO=`echo "${DST_CALO,,}"`         # make lowercase
0039 dst_CLUS=`echo "${DST_CLUS,,}"`         # make lowercase
0040 dst_SEED=`echo "${DST_SEED,,}"`         # make lowercase
0041 dst_TRAC=`echo "${DST_TRAC,,}"`         # make lowercase
0042 
0043 mkdir -p $listdirCALO && rm -f $listdirCALO/*.list
0044 mkdir -p $listdirCLUS && rm -f $listdirCLUS/*.list
0045 mkdir -p $listdirSEED && rm -f $listdirSEED/*.list
0046 mkdir -p $listdirTRAC && rm -f $listdirTRAC/*.list
0047 
0048 ./myCreateDstList.pl --tag $prodCALO --list $RUNSLIST $DST_CALO
0049 mv ${dst_CALO}*.list $listdirCALO
0050 echo $prodCALO $RUNSLIST $DST_CALO -- `ls -1 $listdirCALO/*.list | wc -l` runs found
0051 
0052 ./myCreateDstList.pl --tag $prodCLUS --list $RUNSLIST $DST_CLUS
0053 mv ${dst_CLUS}*.list $listdirCLUS
0054 echo $prodCLUS $RUNSLIST $DST_CLUS -- `ls -1 $listdirCLUS/*.list | wc -l` runs found
0055 
0056 ./myCreateDstList.pl --tag $prodSEED --list $RUNSLIST $DST_SEED
0057 mv ${dst_SEED}*.list $listdirSEED
0058 echo $prodSEED $RUNSLIST $DST_SEED -- `ls -1 $listdirSEED/*.list | wc -l` runs found
0059 
0060 ./myCreateDstList.pl --tag $prodTRAC --list $RUNSLIST $DST_TRAC
0061 mv ${dst_TRAC}*.list $listdirTRAC
0062 echo $prodTRAC $RUNSLIST $DST_TRAC -- `ls -1 $listdirTRAC/*.list | wc -l` runs found
0063 
0064 #----- now loop over runs in RUNSLIST and build list of segments where all 4 DSTs exist
0065 echo Starting...
0066 numfoundsegtotal=0
0067 while IFS= read -r runnum; do
0068         #echo doing $runnum
0069         numfoundseg=0
0070         paddedrunnum=`leading_zero_fill 8 $runnum`
0071     for segment in $(seq 0 3000); do            #!!!!!!!!! keep an eye on max # of segments/run! 
0072         paddedsegment=`leading_zero_fill 5 $segment`
0073                 #
0074                 found_CALO=false
0075                 found_CLUS=false
0076                 found_SEED=false
0077                 found_TRAC=false
0078                 #
0079                 segment2="$((segment / 10))"                            # if 10 tracking files per calo file
0080                 paddedsegment2=`leading_zero_fill 5 $segment2`
0081             fileCALO=${DST_CALO}_run2pp_${prodCALO}-${paddedrunnum}-${paddedsegment2}.root
0082                 filelist=${listdirCALO}/${dst_CALO}-${paddedrunnum}.list
0083                 if grep -Fxq "$fileCALO" "$filelist"; then
0084                         found_CALO=true
0085             fi
0086             #
0087             fileCLUS=${DST_CLUS}_run2pp_${prodCLUS}-${paddedrunnum}-${paddedsegment}.root
0088                 filelist=${listdirCLUS}/${dst_CLUS}-${paddedrunnum}.list
0089                 if grep -Fxq "$fileCLUS" "$filelist"; then
0090                         found_CLUS=true
0091             fi
0092             #
0093             fileSEED=${DST_SEED}_run2pp_${prodSEED}-${paddedrunnum}-${paddedsegment}.root
0094                 filelist=${listdirSEED}/${dst_SEED}-${paddedrunnum}.list
0095                 if grep -Fxq "$fileSEED" "$filelist"; then
0096                         found_SEED=true
0097             fi
0098             #
0099             fileTRAC=${DST_TRAC}_run2pp_${prodTRAC}-${paddedrunnum}-${paddedsegment}.root
0100                 filelist=${listdirTRAC}/${dst_TRAC}-${paddedrunnum}.list
0101                 if grep -Fxq "$fileTRAC" "$filelist"; then
0102                         found_TRAC=true
0103             fi
0104             #
0105                 if [[ "$found_CALO" == "true" 
0106                    && "$found_CLUS" == "true" 
0107                    && "$found_SEED" == "true" 
0108                    && "$found_TRAC" == "true" ]]; then
0109                         #echo Found all 4..  $runnum $segment $filesearch
0110                         numfoundseg=$((numfoundseg+1))
0111                         numfoundsegtotal=$((numfoundsegtotal+1))
0112                     #       trac      seed      clus      calo
0113                     echo 0,$fileTRAC,$fileSEED,$fileCLUS,$fileCALO >> $OUTPUTLIST
0114                 fi
0115             #
0116     done
0117         echo found $numfoundseg segments in run $runnum, $numfoundsegtotal total
0118 done < QM40runs.list
0119 
0120 exit
0121 
0122 
0123 # #---- print available tags
0124 # #CreateDstList.pl --printtags --dataset run2pp
0125 # #---- make list for one run
0126 # #CreateDstList.pl DST_CALO --run 53877 --tag ana468_2024p012_v001
0127 # 
0128 # #---- fixed build DSTs...
0129 # #CreateDstList.pl --tag ana502_2024p022_v001 DST_CALO --dataset run2pp --printruns
0130 # CreateDstList.pl --tag ana502_2024p022_v001 --list QM40runs.list DST_CALO
0131 # mv dst_calo-*.list LISTS_TrackFitting/DST_CALO_ana502
0132 # 
0133 # #CreateDstList.pl --tag ana494_2024p021_v001 DST_TRKR_CLUSTER --dataset run2pp --printruns
0134 # CreateDstList.pl --tag ana494_2024p021_v001 --list QM40runs.list DST_TRKR_CLUSTER
0135 # mv dst_trkr_cluster-*.list LISTS_TrackFitting/DST_TRKR_CLUSTER_ana494
0136 # 
0137 # #CreateDstList.pl --tag ana494_2024p021_v001 DST_TRKR_SEED --dataset run2pp --printruns
0138 # CreateDstList.pl --tag ana494_2024p021_v001 --list QM40runs.list DST_TRKR_SEED
0139 # mv dst_trkr_seed-*.list LISTS_TrackFitting/DST_TRKR_SEED_ana494
0140 # 
0141 # #CreateDstList.pl --tag ana495_2024p021_v001 DST_TRKR_TRACKS --dataset run2pp --printruns
0142 # CreateDstList.pl --tag ana495_2024p021_v001 --list QM40runs.list DST_TRKR_TRACKS
0143 # mv dst_trkr_tracks-*.list LISTS_TrackFitting/DST_TRKR_TRACKS_ana495
0144