justIN           Dashboard       Workflows       Jobs       AWT       Sites       Storages       Docs       Login

Workflow 12674, Stage 4

Workflow12674
Campaign1011
Priority50
Processors1
Wall seconds7200
Image/cvmfs/singularity.opensciencegrid.org/fermilab/fnal-wn-sl7:latest
RSS bytes4194304000 (4000 MiB)
Max distance for inputs60.0
Enabled input RSEs CERN_PDUNE_EOS, DUNE_CA_SFU, DUNE_CERN_EOS, DUNE_ES_PIC, DUNE_FR_CCIN2P3_DISK, DUNE_IN_TIFR, DUNE_IT_INFN_CNAF, DUNE_UK_GLASGOW, DUNE_UK_LANCASTER_CEPH, DUNE_UK_MANCHESTER_CEPH, DUNE_US_BNL_SDCC, DUNE_US_FNAL_DISK_STAGE, FNAL_DCACHE, FNAL_DCACHE_STAGING, FNAL_DCACHE_TEST, MONTECARLO, NIKHEF, PRAGUE, QMUL, RAL-PP, RAL_ECHO, SURFSARA, T3_US_NERSC
Enabled output RSEs CERN_PDUNE_EOS, DUNE_CA_SFU, DUNE_CERN_EOS, DUNE_ES_PIC, DUNE_FR_CCIN2P3_DISK, DUNE_IN_TIFR, DUNE_IT_INFN_CNAF, DUNE_UK_GLASGOW, DUNE_UK_LANCASTER_CEPH, DUNE_UK_MANCHESTER_CEPH, DUNE_US_BNL_SDCC, DUNE_US_FNAL_DISK_STAGE, FNAL_DCACHE, FNAL_DCACHE_STAGING, FNAL_DCACHE_TEST, NIKHEF, PRAGUE, QMUL, RAL-PP, RAL_ECHO, SURFSARA, T3_US_NERSC
Enabled sites BR_CBPF, CA_SFU, CA_Victoria, CERN, CH_UNIBE-LHEP, CZ_FZU, ES_CIEMAT, ES_PIC, FR_CCIN2P3, IT_CNAF, NL_NIKHEF, NL_SURFsara, UK_Bristol, UK_Brunel, UK_Durham, UK_Edinburgh, UK_Glasgow, UK_Imperial, UK_Lancaster, UK_Liverpool, UK_Manchester, UK_Oxford, UK_QMUL, UK_RAL-PPD, UK_RAL-Tier1, UK_Sheffield, US_BNL, US_Colorado, US_FNAL-FermiGrid, US_FNAL-T1, US_Michigan, US_NotreDame, US_PuertoRico, US_SU-ITS, US_Swan, US_UChicago, US_UConn-HPC, US_UCSD, US_Wisconsin
Scopeusertests
Events for this stage

Output patterns

 DestinationPatternLifetimeFor next stageRSE expression
1Rucio usertests:fnal-w12674s4p1*_reco.root7776000FalseT3_US_NERSC
2Rucio usertests:fnal-w12674s4p2*_larcv.root7776000FalseT3_US_NERSC

Environment variables

NameValue
JOB_FHICL_FILEstandard_mythical_supera_dune10kt_1x2x6.fcl

File states

Total filesFindingUnallocatedAllocatedOutputtingProcessedNot foundFailed
2000002000

Job states

TotalSubmittedStartedProcessingOutputtingFinishedNotusedAbortedStalledJobscript errorOutputting failedNone processed
32000032000000
Files processed0011223344556677889910101111Feb-03 09:00Feb-03 10:00Feb-03 11:00Feb-03 12:00Feb-03 13:00Files processedBin start timesNumber per binUK_RAL-Tier1NL_NIKHEFES_PICUK_QMULUK_ManchesterUK_RAL-PPDUK_Imperial
Replicas per RSE7473.8229869970351186.194800377425746380.0339.32279.8537488341203266.5394895076822279.8537488341203201.460510492318062318.10621293360254148.810510492318031363.52745083126365129.996417735332Replicas per RSEDUNE_ES_PIC (35%)NIKHEF (30%)QMUL (10%)RAL_ECHO (10%)RAL-PP (10%)DUNE_UK_MANCHESTER_CEPH (5%)

RSEs used

NameInputsOutputs
DUNE_ES_PIC78
NIKHEF612
QMUL22
RAL_ECHO20
RAL-PP28
DUNE_UK_MANCHESTER_CEPH110

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
#set -euo pipefail

echo "=== RECO job starting ==="
echo "Host: $(hostname)"
echo "PWD(cmd): $(/bin/pwd -P || pwd || true)"
echo "PWD(var): ${PWD:-unset}"
echo "JUSTIN_PATH=${JUSTIN_PATH:-unset}"
echo "JUSTIN_INPUT_FILE=${JUSTIN_INPUT_FILE:-unset}"

# ----------------------------------------------------------------------
# Allocate the input file via justIN (robust)
# ----------------------------------------------------------------------
if [[ -z "${JUSTIN_PATH:-}" ]]; then
  echo "ERROR: JUSTIN_PATH is not set (not running under justIN wrapper?)"
  exit 2
fi

alloc="$("$JUSTIN_PATH/justin-get-file")"
if [[ -z "$alloc" ]]; then
  echo "No more inputs allocated for this stage; exiting cleanly."
  exit 0
fi

did="$(echo "$alloc" | awk '{print $1}')"
pfn="$(echo "$alloc" | awk '{print $2}')"
rse="$(echo "$alloc" | awk '{print $3}')"
echo "Allocated input: did=$did pfn=$pfn rse=$rse"

INPUT_DETSIM="${pfn:-}"
if [[ -z "${INPUT_DETSIM}" ]]; then
  echo "ERROR: allocator returned empty PFN"
  exit 3
fi

echo "G4 input file: ${INPUT_DETSIM}"

# Output value of expected input environment variables
echo "fhicl file: ${JOB_FHICL_FILE}"

# Work in the sandbox
cd $PWD

# ----------------------------------------------------------------------
# Grab the tarball that has our fhicl files we'll need
# ----------------------------------------------------------------------
FCL_TGZ_URL="https://raw.githubusercontent.com/SFBayLaser/dune-justin/main/bundles/fhicl_bundle.tgz"
curl -L -o fhicl_bundle.tgz "$FCL_TGZ_URL"
tar xzf fhicl_bundle.tgz

# ----------------------------------------------------------------------
# Environment setup
# ----------------------------------------------------------------------
echo "Sourcing DUNE setup..."
#set +u
source /cvmfs/dune.opensciencegrid.org/products/dune/setup_dune.sh
#set -u

setup dunesw v10_16_00d00 -q e26:prof

ups active
lar --version

# ----------------------------------------------------------------------
# Point fhicl to our local files
# ----------------------------------------------------------------------
export FHICL_FILE_PATH="$PWD/fhicl:${FHICL_FILE_PATH:-.}"

# ----------------------------------------------------------------------
# Run Reco
# ----------------------------------------------------------------------
FCL=${JOB_FHICL_FILE}

# Output filename derived from input (your preferred convention)
INBASE="$(basename "${INPUT_DETSIM}" .root)"
OUTFILE="${INBASE}_reco.root"

echo "Running lar DETSIM:"
echo "  FCL:     ${FCL}"
echo "  Input:   ${INPUT_DETSIM}"
echo "  Output:  ${OUTFILE}"

lar -c "${FCL}" -s "${INPUT_DETSIM}" -o "${OUTFILE}" -n -1

# ----------------------------------------------------------------------
# rename larcv file
# ----------------------------------------------------------------------
LARCVNAME="${INBASE}_reco_larcv.root"
mv -v larcv.root "${LARCVNAME}"

# ----------------------------------------------------------------------
# Sanity checks
# ----------------------------------------------------------------------
test -f "${OUTFILE}" || { echo "ERROR: Output file ${OUTFILE} not produced!"; exit 1; }
test -f "${LARCVNAME}" || { echo "ERROR: Output file ${LARCVNAME} not produced!"; exit 1; }

echo "Sandbox folder contains:"
ls -lh $PWD

# ----------------------------------------------------------------------
# Tell justIN we successfully processed the allocated input
# ----------------------------------------------------------------------
echo "$did" >> justin-processed-dids.txt
echo "Wrote processed DID: $did"

echo "=== RECOjob completed successfully ==="
justIN time: 2026-02-04 04:26:04 UTC       justIN version: 01.06.00