Stats of processed input files as CSV or JSON, and of uploaded output files as CSV or JSON (up to 10000 files included)
Jobscript
#!/bin/bash
# fcl file and DUNE software version/qualifier to be used
# number of events to process from the input file
if [ "$NUM_EVENTS" != "" ] ; then
events_option="-n $NUM_EVENTS"
fi
# First get an unprocessed file from this stage
did_pfn_rse=`$JUSTIN_PATH/justin-get-file`
if [ "$did_pfn_rse" = "" ] ; then
echo "Nothing to process - exit jobscript"
exit 0
fi
# Keep a record of all input DIDs, for pdjson2meta file -> DID mapping
echo "$did_pfn_rse" | cut -f1 -d' ' >>all-input-dids.txt
# pfn is also needed when creating justin-processed-pfns.txt
pfn=`echo $did_pfn_rse | cut -f2 -d' '`
echo "Input PFN = $pfn"
export DUNE_VERSION=v10_08_00d00
export DUNE_QUALIFIER="e26:prof"
echo "INPUT_TAR_DIR_LOCAL = $INPUT_TAR_DIR_LOCAL"
# Setup DUNE environment
source /cvmfs/dune.opensciencegrid.org/products/dune/setup_dune.sh
export LOCALPRODUCTS="${INPUT_TAR_DIR_LOCAL}/protodunedm_analysis/localProducts_larsoft_v10_08_00_e26_prof"
# Then we can set up our local products
echo "SETUP: setup dunesw $DUNE_VERSION -q $DUNE_QUALIFIER"
setup dunesw $DUNE_VERSION -q $DUNE_QUALIFIER
source ${LOCALPRODUCTS}/setup-grid
mrbslp
ls $INPUT_TAR_DIR_LOCAL
echo "Print MRB_INSTALL"
echo "$MRB_INSTALL"
export FHICL_FILE_PATH=$INPUT_TAR_DIR_LOCAL:$FHICL_FILE_PATH
# Construct outFile from input $pfn
now=$(date -u +"%Y-%m-%dT_%H%M%SZ")
Ffname=`echo $pfn | awk -F/ '{print $NF}'`
fname=`echo $Ffname | awk -F. '{print $1}'`
outFile=${fname}_anaOut_${now}.root
campaign="justIN.w${JUSTIN_WORKFLOW_ID}s${JUSTIN_STAGE_ID}"
# Here is where the LArSoft command is call it
(
# Do the scary preload stuff in a subshell!
export LD_PRELOAD=${XROOTD_LIB}/libXrdPosixPreload.so
echo "$LD_PRELOAD"
lar -c FindNeutrinos_bkg.fcl ${events_option} -T $outFile -s "$pfn" > ${fname}_pdhdbsm_${now}.log 2>&1
)
echo '=== Start last 100 lines of lar log file ==='
tail -100 ${fname}_ana_${now}.log
echo '=== End last 100 lines of lar log file ==='
# Subshell exits with exit code of last command
larExit=$?
echo "lar exit code $larExit"
if [ $larExit -eq 0 ] ; then
# Success !
echo "$pfn" > justin-processed-pfns.txt
jobscriptExit=0
else
# Oh :(
jobscriptExit=1
fi
# Create compressed tar file with all log files
tar zcf `echo "$JUSTIN_JOBSUB_ID.logs.tgz" | sed 's/@/_/g'` *.log
exit $jobscriptExit
justIN time: 2025-08-04 17:34:20 UTC justIN version: 01.04.00