justIN           Dashboard       Workflows       Jobs       AWT       Sites       Storages       Docs       Login

Workflow 5613, Stage 1

Priority50
Processors1
Wall seconds80000
Image/cvmfs/singularity.opensciencegrid.org/fermilab/fnal-wn-sl7:latest
RSS bytes6815744000 (6500 MiB)
Max distance for inputs100.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, IN_TIFR, 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_Caltech, US_Colorado, US_FNAL-FermiGrid, US_FNAL-T1, US_Michigan, US_MIT, US_Nebraska, 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
1https://fndcadoor.fnal.gov:2880/dune/scratch/users/ykermaid/pdhd_scan_0to10MeV_electron/05613/1/1prod_scan_*.*

Environment variables

NameValue
DUNESW_TAR/cvmfs/fifeuser3.opensciencegrid.org/sw/dune/9f46258c0a562feedfa572f33f7d225eccec1f02
JSONFILEpdhd_photon_208Tl_base_meta.json
MCJob1
NEVENTS10
pipyaml1
UTIL_TAR/cvmfs/fifeuser1.opensciencegrid.org/sw/dune/7c52707aa4aed94de464eba44c480974727aac64
YAMLFILEpdhd_scan_0to10MeV_electron_gen.yaml

File states

Total filesFindingUnallocatedAllocatedOutputtingProcessedNot foundFailed
10000000100000

Job states

TotalSubmittedStartedProcessingOutputtingFinishedNotusedAbortedStalledJobscript errorOutputting failedNone processed
150200001496015000
Files processed00100100200200300300400400500500600600700700800800900900Mar-18 08:00Mar-18 09:00Mar-18 10:00Mar-18 11:00Files processedBin start timesNumber per binUK_BristolUS_ColoradoUK_BrunelUK_RAL-PPDCERNFR_CCIN2P3US_UChicagoES_PICUK_ImperialUS_WisconsinCZ_FZUNL_NIKHEFUK_RAL-Tier1US_FNAL-T1UK_QMULCA_SFUUK_ManchesterUK_Glasgow

RSEs used

NameInputsOutputs
MONTECARLO10000
None015000

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
#

#These must be defined
#if [ -z $FCL_FILE ]; then
#  echo "Fatal Must provide FCL_FILE env var"
#  exit 1
#fi

if [ -z $UTIL_TAR ]; then
  echo "Fatal must provide UTIL_TAR env var"
  exit 1
fi
export PYTHONPATH=$UTIL_TAR:$PYTHONPATH

source /cvmfs/dune.opensciencegrid.org/products/dune/setup_dune.sh
setup metacat
export METACAT_SERVER_URL=https://metacat.fnal.gov:9443/dune_meta_prod/app
export METACAT_AUTH_SERVER_URL=https://metacat.fnal.gov:8143/auth/dune

if [ -z ${JUSTIN_PROCESSORS} ]; then
  JUSTIN_PROCESSORS=1
fi

echo "Justin processors: ${JUSTIN_PROCESSORS}"

export TF_NUM_THREADS=${JUSTIN_PROCESSORS}   
export OPENBLAS_NUM_THREADS=${JUSTIN_PROCESSORS} 
export JULIA_NUM_THREADS=${JUSTIN_PROCESSORS} 
export MKL_NUM_THREADS=${JUSTIN_PROCESSORS} 
export NUMEXPR_NUM_THREADS=${JUSTIN_PROCESSORS} 
export OMP_NUM_THREADS=${JUSTIN_PROCESSORS}  

echo "Justin specific env vars"
env | grep JUSTIN
now=$(date -u +"%Y%m%dT%H%M%SZ")
jobid=`echo "${JUSTIN_JOBSUB_ID:-1}" | cut -f1 -d'@' | sed -e "s/\./_/"`
stageid=${JUSTIN_STAGE_ID:-1}
a=1
 if [ -n "$DUNESW_TAR" ]; then
   stat ${DUNESW_TAR}
   if [ $? -ne 0 ]; then
     echo "Failed to stat $DUNESW_TAR. Exiting safely"
     exit 0
   fi
 
   export PRODUCTS=$DUNESW_TAR:$PRODUCTS 
   echo "Set dunesw to $DUNESW_TAR"
 fi

 if [ -n "$WIRECELL_TAR" ]; then
   stat ${WIRECELL_TAR}
   if [ $? -ne 0 ]; then
     echo "Failed to stat $WIRECELL_TAR. Exiting safely"
     exit 0
   fi
 
   export PRODUCTS=$WIRECELL_TAR:$PRODUCTS 
   echo "Set wirecell to $WIRECELL_TAR"
 fi

 #Setup recent lar software suite
 DUNESW_VERSION=${DUNESW_VERSION:-v10_04_04d00}
 setup dunesw \
    "${DUNESW_VERSION}" \
    -q "${DUNE_QUALIFIER:-e26:prof}"
 
 setup_exit=$?
 if [ $? -ne 0 ]; then
   echo "Failed to setup dunesw $DUNESW_VERSION $DUNE_QUALIFIER"
   exit $setup_exit
 fi

 echo "DUNESW loc:"
 ups active | grep dunesw

 echo "WIRECELL loc:"
 ups active | grep wirecell
 
:'
export DUNESW_DIR=${DUNESW_TAR}/dunesw/${DUNESW_VERSION}
export DUNESW_FQ_DIR=${DUNESW_DIR}/slf7.x86_64.e26.prof
export DUNESW_LIB=${DUNESW_FQ_DIR}/lib

export PROTODUNEANA_DIR=${DUNESW_TAR}/protoduneana/${DUNESW_VERSION}
export PROTODUNEANA_LIB=${PROTODUNEANA_DIR}/include
export PROTODUNEANA_FQ_DIR=${PROTODUNEANA_DIR}/slf7.x86_64.e26.prof
export PROTODUNEANA_LIB=${PROTODUNEANA_FQ_DIR}/lib

export DUNESIM_DIR=${DUNESW_TAR}/dunesim/${DUNESW_VERSION}
export DUNESIM_LIB=${DUNESIM_DIR}/include
export DUNESIM_FQ_DIR=${DUNESIM_DIR}/slf7.x86_64.e26.prof
export DUNESIM_LIB=${DUNESIM_FQ_DIR}/lib

export DUNECORE_DIR=${DUNESW_TAR}/dunecore/${DUNESW_VERSION}
export DUNECORE_LIB=${DUNECORE_DIR}/include
export DUNECORE_FQ_DIR=${DUNECORE_DIR}/slf7.x86_64.e26.prof
export DUNECORE_LIB=${DUNECORE_FQ_DIR}/lib

export DUNEPROTOTYPES_DIR=${DUNESW_TAR}/duneprototypes/${DUNESW_VERSION}
export DUNEPROTOTYPES_INC=${DUNEPROTOTYPES_DIR}/include
export DUNEPROTOTYPES_FQ_DIR=${DUNEPROTOTYPES_DIR}/slf7.x86_64.e26.prof
export DUNEPROTOTYPES_LIB=${DUNEPROTOTYPES_FQ_DIR}/lib

export FHICL_FILE_PATH=${DUNESW_DIR}/fcl:${FHICL_FILE_PATH}
export FHICL_FILE_PATH=${DUNESIM_DIR}/fcl:${FHICL_FILE_PATH}
export FHICL_FILE_PATH=${DUNEPROTOTYPES_DIR}/fcl:${FHICL_FILE_PATH}
export FHICL_FILE_PATH=${PROTODUNEANA_DIR}/job:${FHICL_FILE_PATH}
export FHICL_FILE_PATH=${DUNECORE_DIR}/fcl:${FHICL_FILE_PATH}

export FW_SEARCH_PATH=${DUNECORE_DIR}/gdml:${FW_SEARCH_PATH}
'
export FHICL_FILE_PATH=${DUNESW_TAR}:${FHICL_FILE_PATH}
 
 
 echo "printing env"
 env
 echo "DUNE specific env vars"
 env | grep DUNE

# User can specify to pip install pyyaml
if [ -n "$pipyaml" ]; then
  echo "Installing yaml"
  pip install --user pyyaml
  echo "Done"
# elif [ -n "${YAML_TAR}" ]; then
#   echo "Using venv at ${YAML_TAR}"
#   source ${YAML_TAR}/yaml_venv/bin/activate
fi


 echo "Will use justin-get-file"
 DID_PFN_RSE=`$JUSTIN_PATH/justin-get-file`
 if [ "${DID_PFN_RSE}" == "" ] ; then
   echo "Could not get file"
   exit 0
 fi
 pfn=`echo ${DID_PFN_RSE} | cut -f2 -d' '`
 did=`echo ${DID_PFN_RSE} | cut -f1 -d' '`
 
 input_filename=`echo $did | cut -f2 -d':'`
 echo "input file: $input_filename"

 echo "jobsub_id: ${JUSTIN_JOBSUB_ID:-1}"
 
 #Get run/subrun from parent if using input -- else from justin job ID/process"
 echo "MCJob: $MCJob"
 if [ -z "$MCJob" ]; then
   echo "Getting run subrun from $did"
   run_subrun=`python -m beam_job_utils get_run_subrun -i $did`
   get_run_ret=$?
   if [ $get_run_ret -ne 0 ]; then
     echo "error in get_run_subrun"
   fi
 
   echo $run_subrun
   run=`echo $run_subrun | cut -f1 -d' '`
   subrun=`echo $run_subrun | cut -f2 -d' '`
 else
   run=`echo $jobid | cut -f1 -d'_'`  ##TODO -- check order here
   subrun=`echo $jobid | cut -f2 -d'_'`
 fi
 nevents=${NEVENTS:--1} #Set from env override or -1 
 NSKIP=${NSKIP:-0} 
 echo "nevents: $nevents"
 
 overrides="core.data_tier=full-reconstructed \
  core.application.version=${DUNESW_VERSION} \
  core.application.name=reco \
  core.application.family=dunesw \
  core.application=dunesw.reco \
 "

#User specifies if they'd like to use an input file or not 
if [ -n "$MCJob" ]; then
  inputflag=""
else
  inputflag="-i $pfn --parent $did"
fi

echo "input flag: $inputflag"

# TODO -- metadata file configurable
python -m beam_job_utils run_job \
      --json ${UTIL_TAR}/${JSONFILE} \
      --overrides ${overrides} \
      --run $run \
      --subrun $subrun \
      --yaml ${UTIL_TAR}/${YAMLFILE} \
      --nevents $nevents \
      --event 0 \
      $inputflag

exitcode=$?
if [ $exitcode -ne 0 ]; then
  echo "Error running. Exiting with ${exitcode}"
  exit $exitcode
fi

echo "$pfn" > justin-processed-pfns.txt
justIN time: 2025-04-03 08:07:48 UTC       justIN version: 01.03.00