Workflow 11096, Stage 1
| Workflow | 11096 |
| Priority | 50 |
| Processors | 1 |
| Wall seconds | 80000 |
| Image | /cvmfs/singularity.opensciencegrid.org/fermilab/fnal-wn-sl7:latest |
| RSS bytes | 4194304000 (4000 MiB) |
| Max distance for inputs | 30.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_Lancaster, UK_Liverpool, UK_Manchester, UK_Oxford, UK_QMUL, UK_RAL-PPD, UK_RAL-Tier1, UK_Sheffield, US_Colorado, US_FNAL-FermiGrid, US_FNAL-T1, US_Michigan, US_PuertoRico, US_SU-ITS, US_Swan, US_UChicago, US_UConn-HPC, US_UCSD, US_Wisconsin |
| Scope | usertests |
| Events for this stage |
Output patterns
| | Destination | Pattern | Lifetime | For next stage | RSE expression |
|---|
| 1 | https://fndcadoor.fnal.gov:2880/dune/scratch/users/cdalmazz/fnal/11096/1 | *_detsim_*.root | | | |
Environment variables
| Name | Value |
|---|
| DUNE_QUALIFIER | e26:prof |
| FCL_TAR_DIR_LOCAL | /cvmfs/fifeuser2.opensciencegrid.org/sw/dune/0bd14ca038757bbd172363e3e05ce021132588ea |
| HAS_ART_OUTPUT | false |
| NUM_EVENTS | 99 |
File states
| Total files | Finding | Unallocated | Allocated | Outputting | Processed | Not found | Failed |
|---|
|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Job states
| Total | Submitted | Started | Processing | Outputting | Finished | Notused | Aborted | Stalled | Jobscript error | Outputting failed | None processed |
|---|
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
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
:<<'EOF'
To use this jobscript to process 5 files from the dataset fardet-hd__fd_mc_2023a_reco2__full-reconstructed__v09_81_00d02__standard_reco2_dune10kt_nu_1x2x6__prodgenie_nu_dune10kt_1x2x6__out1__validation
data and put the output in the $USER namespace (MetaCat) and saves the output in /scratch
Use this command to create the workflow:
justin simple-workflow \
--mql \
"files from fardet-hd:fardet-hd__fd_mc_2023a_reco2__full-reconstructed__v09_81_00d02__standard_reco2_dune10kt_nu_1x2x6__prodgenie_nu_dune10kt_1x2x6__out1__validation limit 5 ordered"\
--jobscript submit_ana.jobscript --rss-mb 4000 \
--scope higuera --output-pattern '*_ana_*.root:$FNALURL/$USERF'
The following optional environment variables can be set when creating the
workflow/stage: FCL_FILE, NUM_EVENTS, DUNE_VERSION, DUNE_QUALIFIER
EOF
# fcl file and DUNE software version/qualifier to be used
FCL_FILE_G4=${FCL_FILE:-$FCL_TAR_DIR_LOCAL/fcls/detsyst_ionandscint_dune10kt_1x2x6.fcl}
FCL_FILE_DS=${FCL_FILE:-$FCL_TAR_DIR_LOCAL/fcls/detsyst_detsim_dune10kt_1x2x6.fcl}
FCL_FILE_R1=${FCL_FILE:-$FCL_TAR_DIR_LOCAL/fcls/detsyst_reco1_dune10kt_1x2x6.fcl}
FCL_FILE_R2=${FCL_FILE:-$FCL_TAR_DIR_LOCAL/fcls/detsyst_reco2_dune10kt_1x2x6.fcl}
FCL_FILE_CF=${FCL_FILE:-cafmaker_atmos_dune10kt_1x2x6_runreco-nuenergy-nuangular_geov5.fcl}
DUNE_VERSION_DS_R1=${DUNE_VERSION:-v09_79_00d02} # used for detsim and reco1 stages in official atmospherics production
DUNE_VERSION_R2=${DUNE_VERSION:-v09_85_00d00} # used for reco2 stage in official atmosperics production
DUNE_VERSION_CF=${DUNE_VERSION:-v10_09_00d00} # cotheta bug fixed
DUNE_QUALIFIER=${DUNE_QUALIFIER:-e26:prof}
# number of events to process from the input file
if [ "$NUM_EVENTS" != "" ] ; then
events_option="-n $NUM_EVENTS"
echo "Events option $events_option"
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"
# Setup DUNE environment
source /cvmfs/dune.opensciencegrid.org/products/dune/setup_dune.sh
setup dunesw "$DUNE_VERSION_DS_R1" -q "$DUNE_QUALIFIER"
# 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_g4=${fname}_${now}_g4.root
outFile_ds=${fname}_${now}_g4_detsim.root
outFile_r1=${fname}_${now}_g4_detsim_reco1.root
outFile_r2=${fname}_${now}_g4_detsim_reco1_reco2.root
outFile_cf=${fname}_${now}_g4_detsim_reco1_reco2_caf.root
campaign="justIN.w${JUSTIN_WORKFLOW_ID}s${JUSTIN_STAGE_ID}"
echo "using fcl file for detsim" ${FCL_FILE_DS}
# 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 $FCL_FILE_G4 $events_option -o $outFile_g4 "$pfn" > ${fname}_ana_${now}.log 2>&1
lar -c $FCL_FILE_DS $events_option -o $outFile_ds $outFile_g4 > ${fname}_ana_${now}.log 2>&1
lar -c $FCL_FILE_R1 $events_option -o $outFile_r1 $outFile_ds > ${fname}_ana_${now}.log 2>&1
)
# Setup DUNE environment for reco2
source /cvmfs/dune.opensciencegrid.org/products/dune/setup_dune.sh
setup dunesw "$DUNE_VERSION_R2" -q "$DUNE_QUALIFIER"
echo "using fcl file for reco2" ${FCL_FILE_R2}
#run reco2
(
# Do the scary preload stuff in a subshell!
export LD_PRELOAD=${XROOTD_LIB}/libXrdPosixPreload.so
echo "$LD_PRELOAD"
lar -c $FCL_FILE_R2 $events_option -o $outFile_r2 $outFile_r1 > ${fname}_ana_${now}.log 2>&1
)
# Setup DUNE environment for cafmaker
source /cvmfs/dune.opensciencegrid.org/products/dune/setup_dune.sh
setup dunesw "$DUNE_VERSION_CF" -q "$DUNE_QUALIFIER"
echo "using fcl file for CAFmaker" ${FCL_FILE_CF}
#run cafmaker
(
# Do the scary preload stuff in a subshell!
export LD_PRELOAD=${XROOTD_LIB}/libXrdPosixPreload.so
echo "$LD_PRELOAD"
lar -c $FCL_FILE_CF $events_option $outFile_r2 > ${fname}_ana_${now}.log 2>&1
test -f caf.root && ifdh cp caf.root $outFile_cf
)
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