2024-02-13 18:24:56 -05:00
|
|
|
#!/bin/bash -l
|
|
|
|
|
2024-07-02 11:26:40 -04:00
|
|
|
echo -e "${RED}##################### Loading Process_Sort.sh ${NC}"
|
|
|
|
|
2024-02-13 18:24:56 -05:00
|
|
|
if [ -z $SOLARISANADIR ]; then
|
|
|
|
echo "###### env variable SOLARISANADIR not defined. Abort. Please run the SOLARIS.sh."
|
|
|
|
echo "better add \"source <path_to_SOLARIS.sh>\" into .bashrc"
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $# -eq 0 ] || [ $1 == "-help" ]; then
|
|
|
|
echo "$ Process_Sort [RunNum] [GeneralSort] [TraceMethod]"
|
|
|
|
echo " RunNum = run number"
|
|
|
|
echo " GeneralSort = n/0/-n || n = number of worker"
|
|
|
|
echo " TraceMethod = -1/0/1/2 || -1 no trace, 0 save trace, 1 fit, 2 trapezoid"
|
|
|
|
echo ""
|
|
|
|
exit 1
|
|
|
|
fi;
|
|
|
|
|
|
|
|
RUN=$1
|
|
|
|
nWorker=$2
|
|
|
|
TraceMethod=$3
|
|
|
|
|
2024-07-02 11:26:40 -04:00
|
|
|
source $SOLARISANADIR/Armory/Process_BasicConfig
|
|
|
|
if [ -z $expName ]; then
|
|
|
|
source $SOLARISANADIR/working/expName.sh
|
|
|
|
fi
|
2024-02-13 18:24:56 -05:00
|
|
|
|
|
|
|
runNum=${RUN#0} #remove zero
|
|
|
|
RUN=$(printf '%03d' $runNum) ##add back the zero
|
|
|
|
|
|
|
|
if [ ${nWorker} -eq 0 ]; then
|
|
|
|
echo -e "${LRED}>>>>>>>>>>>>>>>>>>>>> GeneralSort Skipped by user. ${NC}"
|
|
|
|
else
|
|
|
|
source $ROOTSYS/bin/thisroot.sh
|
|
|
|
|
|
|
|
#--------- Check is runXXX.root exist
|
|
|
|
rootDataPath=$SOLARISANADIR/root_data
|
|
|
|
rootDataName="$rootDataPath/run$RUN.root"
|
|
|
|
isRootDataExist=`ls -1 $rootDataName 2>/dev/null | wc -l`
|
|
|
|
|
|
|
|
#==== if root data exist, check timeStamp
|
|
|
|
if [ $isRootDataExist -gt 0 ]; then
|
|
|
|
if [ ${Arch} == "Linux" ]; then
|
|
|
|
rootDataTime=`stat -c "%Z" $rootDataName | sort -rn | head -1`
|
|
|
|
else
|
|
|
|
rootDataTime=`stat -f "%Sm" -t "%Y%m%d%H%M%S" $rootDataName | sort -rn | head -1`
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
rootDataTime=0
|
|
|
|
echo -e "$LRED ################# run$RUN.root does not exist. Abort. $NC"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
#-------- check gen_root timestamp
|
|
|
|
genRootDataName="$rootDataPath/gen_run$RUN.root"
|
|
|
|
isGenRootDataExist=`ls -1 $genRootDataName 2>/dev/null | wc -l`
|
|
|
|
|
|
|
|
#----- if gen_runXXX.data exist, check timeStamp
|
|
|
|
if [ $isGenRootDataExist -gt 0 ]; then
|
|
|
|
if [ ${Arch} == "Linux" ]; then
|
|
|
|
genRootDataTime=`stat -c "%Z" $genRootDataName | sort -rn | head -1`
|
|
|
|
else
|
|
|
|
genRootDataTime=`stat -f "%Sm" -t "%Y%m%d%H%M%S" $genRootDataName | sort -rn | head -1`
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
genRootDataTime=0
|
|
|
|
fi
|
|
|
|
|
|
|
|
mkdir -p ~/.proof/working
|
|
|
|
cp ${SOLARISANADIR}/working/Mapping.h ~/.proof/working/.
|
|
|
|
|
|
|
|
if [ $nWorker -le -1 ]; then
|
|
|
|
echo -e "${LRED}>>>>>>>>>>>>>>> Force GeneralSort $(date) ${NC}"
|
2024-07-02 11:26:40 -04:00
|
|
|
root -l -q -b "$SOLARISANADIR/Armory/GeneralSortAgent.C($runNum, $nWorker, $TraceMethod)"
|
2024-02-13 18:24:56 -05:00
|
|
|
echo -e "${LRED}<<<<<<<<<<<<<<<< Done GeneralSort $(date) ${NC}"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $nWorker -ge 1 ]; then
|
|
|
|
|
|
|
|
if [ $rootDataTime -ge $genRootDataTime ]; then
|
|
|
|
|
|
|
|
echo -e "${LRED}>>>>>>>>>>>>>>>>>>>>> GeneralSort $(date) ${NC}"
|
2024-07-02 11:26:40 -04:00
|
|
|
root -l -q -b "$SOLARISANADIR/Armory/GeneralSortAgent.C($runNum, $nWorker, $TraceMethod)"
|
2024-02-13 18:24:56 -05:00
|
|
|
echo -e "${LRED}<<<<<<<<<<<<<<<< Done GeneralSort $(date) ${NC}"
|
|
|
|
|
|
|
|
else
|
|
|
|
echo -e "${GREEN} gen_run$RUN.root is newer than run$RUN.root. No need to GeneralSort again.${NC}"
|
|
|
|
echo -e "${GREEN} You can Force GeneralSort using option -${nWorker}, ${ORANGE} see Process_Run -help${NC}"
|
|
|
|
echo -e "${LRED}>>>>>>>>>>>>>>>>>>>>> GeneralSort Skipped. ${NC}"
|
|
|
|
fi
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
fi
|