justIN           Dashboard       Workflows       Jobs       AWT       Sites       Storages       Docs       Login

Workflow 2363, Stage 1

Priority50
Processors1
Wall seconds80000
RSS bytes4193255424 (3999 MiB)
Max distance for inputs100.0
Enabled input RSEs CERN_PDUNE_EOS, DUNE_CERN_EOS, DUNE_ES_PIC, DUNE_FR_CCIN2P3_DISK, DUNE_IN_TIFR, DUNE_IT_INFN_CNAF, DUNE_UK_LANCASTER_CEPH, DUNE_US_BNL_SDCC, DUNE_US_FNAL_DISK_STAGE, FNAL_DCACHE, FNAL_DCACHE_STAGING, FNAL_DCACHE_TEST, MANCHESTER, MONTECARLO, NIKHEF, PRAGUE, QMUL, RAL-PP, RAL_ECHO, SURFSARA, T3_US_NERSC
Enabled output RSEs CERN_PDUNE_EOS, DUNE_CERN_EOS, DUNE_ES_PIC, DUNE_FR_CCIN2P3_DISK, DUNE_IN_TIFR, DUNE_IT_INFN_CNAF, DUNE_UK_LANCASTER_CEPH, DUNE_US_BNL_SDCC, DUNE_US_FNAL_DISK_STAGE, FNAL_DCACHE, FNAL_DCACHE_STAGING, FNAL_DCACHE_TEST, MANCHESTER, NIKHEF, PRAGUE, QMUL, RAL-PP, RAL_ECHO, SURFSARA, T3_US_NERSC
Enabled sites 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_Imperial, UK_Lancaster, UK_Liverpool, UK_Manchester, UK_Oxford, UK_QMUL, UK_RAL-Tier1, UK_Sheffield, US_BNL, 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
Scopevd-protodune
Events for this stage

Output patterns

 DestinationPatternLifetimeFor next stage
1Rucio vd-protodune:vd-protodune-reco_2363*reco.root5184000False

Environment variables

NameValue
INPUT_DIR/cvmfs/fifeuser2.opensciencegrid.org/sw/dune/1eda8a4ae6da0378b3150f8da76b587f12b53fe8

File states

Total filesFindingUnallocatedAllocatedOutputtingProcessedNot foundFailed
500000050000

Job states

TotalSubmittedStartedProcessingOutputtingFinishedNotusedAbortedStalledJobscript errorOutputting failedNone processed
71700006670490037
Files processed002020404060608080100100120120140140160160180180200200220220240240260260280280300300Jun-20 07:00Jun-20 08:00Jun-20 09:00Jun-20 10:00Jun-20 11:00Jun-20 12:00Files processedBin start timesNumber per binCERNFR_CCIN2P3US_UChicagoNL_NIKHEFUS_FNAL-T1US_FNAL-FermiG…US_FNAL-FermiGridUS_ColoradoUK_BrunelUS_UCSDUS_PuertoRicoES_PICUS_BNLNL_SURFsaraUK_RAL-Tier1UK_QMULCA_SFUUK_ImperialUK_ManchesterUK_Sheffield

RSEs used

NameInputsOutputs
MONTECARLO5080
DUNE_US_FNAL_DISK_STAGE0251
DUNE_CERN_EOS084
RAL-PP078
NIKHEF040
DUNE_FR_CCIN2P3_DISK015
QMUL013
DUNE_ES_PIC07
RAL_ECHO06
DUNE_US_BNL_SDCC04
SURFSARA02

Stats of processed input files as CSV or JSON, and of uploaded output files as CSV or JSON (up to 10000 files included)

File reset events, by site

SiteAllocatedOutputting
CERN80

Jobscript

#!/bin/bash
#
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

#Setup recent lar software suite
setup dunesw \
   "${DUNE_VERSION:-v09_88_00d00}" \
   -q "${DUNE_QUALIFIER:-e26:prof}"
echo "printing env"


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}  

env

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' '` 

if [ -z ${LINENUMBER} ] ; then
  LINENUMBER=$pfn
fi

# echo "linenumber " $LINENUMBER
ex_code=0
wstep=0 
i_pstep=10000
i_tstep=1000 

now=$(date -u +"%Y%m%dT%H%M%SZ")
namespace=${JUSTIN_SCOPE:-"usertests"}
  

# Run Generator
echo "generator" 
#prodname="prod_cosmics_protodunevd_${now}_gen_${pfn}"
prodname="prod_beam_protodunevd_${now}_${pfn}_gen"
wstep=$((wstep+1))  
istep=1

pstep=$(($wstep*$i_pstep)) 
tstep=$(($istep*$i_tstep)) 
 lar -c gen_protodunevd_electron_1GeV.fcl -o ${prodname}.root -n 20
#  lar -c gen_protodunevd_electron_1GeV.fcl -o ${prodname}.root -n 1
   ex_code=$?
if [ $ex_code -ne 0 ]; then 
  c_ex_code=$(($pstep+$tstep+$ex_code))
  echo "ERROR: lar (generation) exit code: $c_ex_code " 
  files=`ls *_${now}_*`
  for f in $files 
    do
      size=`stat -c %s $f`
      echo "written output file: $f $size"
    done 
else
  istep=$((istep+1))
   tstep=$(($tstep*$istep))

rm -fr all-input-dids.txt
echo "noparents:noparents.root" > all-input-dids.txt

extractor_prod.py --infile ${prodname}.root  --appfamily art --appname gen --appversion  v09_88_00d00  --no_crc --requestid ritm1998918  --input_json ${INPUT_DIR}/pdvd_input_nop.json >    ${prodname}.root.ext.json && sed -i -e 's/stepfcl/gen_protodunevd_cosmics/g' ${prodname}.root.ext.json
 
python ${INPUT_DIR}/pdjson2metadata ${prodname}.root.ext.json all-input-dids.txt usertests > ${prodname}.root.json
 
    ex_code=$?
  if [ $ex_code -ne 0 ] ; then 
      c_ex_code=$(($pstep+$tstep+$ex_code))
      echo "ERROR: metadata extraction (generation) exit code: $c_ex_code"
      files=`ls *_${now}_*`
      for f in $files 
         do
           size=`stat -c %s $f`
           echo "written output file: $f $size"
       done 
   fi
fi 


echo "=====checking generation MD"

jq . ${prodname}.root.json


  awk '/"core.runs/,/],/ { print;f=1} f&&/],/{ exit}' ${prodname}.root.json > run.json
  awk '/"core.runs_subruns/,/],/ { print;f=1} f&&/],/{ exit}' ${prodname}.root.json >> run.json
  awk 'NR==1 {print; exit}' ${INPUT_DIR}/pdvd_input.json > pdvd_run_input.json
  cat run.json >> pdvd_run_input.json
  tail -n +2 ${INPUT_DIR}/pdvd_input.json  >> pdvd_run_input.json 
#echo "generation exit code " $ex_code   
if [ $ex_code -ne 0 ]; then exit $c_ex_code ; fi
 
# Stage 1 G4
echo "G4 stage 1" 
g4stage1_name="${prodname}_g4_stage1"

wstep=$((wstep+1))  
istep=1
pstep=$(($wstep*$i_pstep)) 
tstep=$(($istep*$i_tstep))  

 lar -c protodunevd_refactored_g4_stage1.fcl ${prodname}.root -o ${g4stage1_name}.root
 
   ex_code=$?

if [ $ex_code -ne 0 ]; then
  c_ex_code=$(($pstep+$tstep+$ex_code))
  echo "ERROR: lar (geant step1) exit code: $c_ex_code"
  files=`ls *_${now}_*`
    for f in $files 
       do
         size=`stat -c %s $f`
         echo "written output file: $f $size"
       done 
else
  istep=$((istep+1))
   tstep=$(($tstep*$istep))

rm -fr all-input-dids.txt
echo "noparents:noparents.root" > all-input-dids.txt


extractor_prod.py --infile ${g4stage1_name}.root --appfamily art --appname g4-stage1 --appversion  v09_88_00d00  --no_crc --requestid ritm1998918  --input_json pdvd_run_input.json > ${g4stage1_name}.root.ext.json && sed -i -e 's/unknown/mc/g;s/stepfcl/protodunevd_refactored_g4_stage1/g' ${g4stage1_name}.root.ext.json    

python ${INPUT_DIR}/pdjson2metadata ${g4stage1_name}.root.ext.json all-input-dids.txt usertests > ${g4stage1_name}.root.json 

     ex_code=$?
  if [ $ex_code -ne 0 ] ; then 
     c_ex_code=$(($pstep+$tstep+$ex_code)) 
     echo "ERROR: metadata extraction (geant step1) exit code: $c_ex_code" 
     files=`ls *_${now}_*`
     for f in $files 
        do
          size=`stat -c %s $f`
          echo "written output file: $f $size"
        done 
    fi	
fi 
 
 
if [ $ex_code -ne 0 ]; then exit $c_ex_code ; fi

echo "=============checking g4stage1 MD"

jq . ${g4stage1_name}.root.json


# Stage 2 G4  
echo "G4 stage 2"
g4stage2_name="${g4stage1_name}_g4_stage2"

wstep=$((wstep+1))  
istep=1
pstep=$(($wstep*$i_pstep)) 
tstep=$(($istep*$i_tstep))  

 lar -c  protodunevd_refactored_g4_stage2_pureAr.fcl ${g4stage1_name}.root -o ${g4stage2_name}.root

   ex_code=$?

if [ $ex_code -ne 0 ]; then
  c_ex_code=$(($pstep+$tstep+$ex_code))
  echo "ERROR: lar (geant step2) exit code: $c_ex_code"
  files=`ls *_${now}_*`
    for f in $files 
      do
        size=`stat -c %s $f`
        echo "written output file: $f $size"
      done 
else
   istep=$((istep+1))
   tstep=$(($tstep*$istep))

rm -fr all-input-dids.txt 
echo ${namespace}":"${g4stage1_name}.root > all-input-dids.txt

extractor_prod.py --infile ${g4stage2_name}.root  --appfamily art --appname g4-stage2 --appversion  v09_88_00d00  --no_crc --requestid ritm1998918  --input_json pdvd_run_input.json > ${g4stage2_name}.root.ext.json && sed -i -e's/unknown/mc/g;s/stepfcl/protodunevd_refactored_g4_stage2_pureAr/g' ${g4stage2_name}.root.ext.json 

python ${INPUT_DIR}/pdjson2metadata ${g4stage2_name}.root.ext.json all-input-dids.txt usertests > ${g4stage2_name}.root.json 


     ex_code=$?
  if [ $ex_code -ne 0 ] ; then 
     c_ex_code=$(($pstep+$tstep+$ex_code)) 
       echo "ERROR: metadata extraction (geant step2) exit code: $c_ex_code"
       files=`ls *_${now}_*`
        for f in $files 
          do
            size=`stat -c %s $f`
            echo "written output file: $f $size"
          done 
    fi
fi 
if [ $ex_code -ne 0 ]; then exit $c_ex_code ; fi


echo "========== checking g4stage2 MD"

jq . ${g4stage2_name}.root.json 
 
# Detsim
echo "detsim"
detsim_name="${g4stage2_name}_detsim"
wstep=$((wstep+1))  
istep=1
pstep=$(($wstep*$i_pstep)) 
tstep=$(($istep*$i_tstep))  

 lar -c protodunevd_refactored_detsim_pureAr.fcl ${g4stage2_name}.root  -o ${detsim_name}.root 

  ex_code=$?

if [ $ex_code -ne 0 ]; then
  c_ex_code=$(($pstep+$tstep+$ex_code))
  echo "ERROR: lar (detsim) exit code: $c_ex_code"
  files=`ls *_${now}_*`
    for f in $files 
      do
        size=`stat -c %s $f`
        echo "written output file: $f $size"
      done   
else    
 istep=$((istep+1))
   tstep=$(($tstep*$istep))
    

rm -fr all-input-dids.txt 
echo ${namespace}":"${g4stage2_name}.root > all-input-dids.txt

extractor_prod.py --infile ${detsim_name}.root  --appfamily art --appname detsim --appversion  v09_88_00d00  --no_crc --requestid ritm1998918  --input_json ${INPUT_DIR}/pdvd_input.json > ${detsim_name}.root.ext.json  && sed -i -e 's/stepfcl/protodunevd_refactored_detsim_pureAr/g' ${detsim_name}.root.ext.json
python ${INPUT_DIR}/pdjson2metadata ${detsim_name}.root.ext.json all-input-dids.txt usertests >  ${detsim_name}.root.json

     ex_code=$?
  if [ $ex_code -ne 0 ] ; then 
     c_ex_code=$(($pstep+$tstep+$ex_code)) 
       echo "ERROR: metadata extraction (detsim) exit code: $c_ex_code" 
       files=`ls *_${now}_*` 
         for f in $files 
           do
            size=`stat -c %s $f`
            echo "written output file: $f $size"
          done         
    fi
fi 

if [ $ex_code -ne 0 ]; then exit $c_ex_code ; fi


echo "============= checking detsim MD "

jq . ${detsim_name}.root.json 
 


# Reco
echo "reco"
reco_name="${detsim_name}_reco"

wstep=$((wstep+1))  
istep=1
pstep=$(($wstep*$i_pstep)) 
tstep=$(($istep*$i_tstep))  


 lar -c protodunevd_reco.fcl ${detsim_name}.root -o ${reco_name}.root

 ex_code=$?

if [ $ex_code -ne 0 ]; then
  c_ex_code=$(($pstep+$tstep+$ex_code)) 
   echo "ERROR: lar (reco) exit code: $c_ex_code"
   files=`ls *_${now}_*` 
     for f in $files 
       do
        size=`stat -c %s $f`
        echo "written output file: $f $size"
      done   
else     
   istep=$((istep+1))
   tstep=$(($tstep*$istep))     
 
rm -fr all-input-dids.txt  
# echo ${namespace}":"${detsim_name}.root > all-input-dids.txt 
echo "noparents:noparents.root" > all-input-dids.txt


 
extractor_prod.py --infile ${reco_name}.root  --appfamily art --appname reco --appversion  v09_88_00d00  --no_crc --requestid ritm1998918  --strip_parents --input_json ${INPUT_DIR}/pdvd_input_nop.json > ${reco_name}.root.ext.json  && sed -i -e 's/stepfcl/protodunevd_reco/g' ${reco_name}.root.ext.json   
python ${INPUT_DIR}/pdjson2metadata ${reco_name}.root.ext.json all-input-dids.txt usertests > ${reco_name}.root.json 

    ex_code=$?
  if [ $ex_code -ne 0 ] ; then 
     c_ex_code=$(($pstep+$tstep+$ex_code)) 
       echo "ERROR: metadata extraction (reco) exit code: $c_ex_code" 
       files=`ls *_${now}_*` 
         for f in $files 
           do
            size=`stat -c %s $f`
            echo "written output file: $f $size"
          done                 
    fi
fi 
#overrides=""
#python ${INPUT_DIR}/pdhd_meta_writer.py \
#       --json ${INPUT_DIR}/pdhd_base_meta.json \
#       --overrides ${overrides} \
#       --parent ${prodname}.root \
#       -o ${reco_name}.root.ext.json

echo "===========checking reco MD"

jq . ${reco_name}.root.json 
 


if [ $? -ne 0 ]
then
  echo "Exiting with error"
  exit 1
else
  files=`ls *_${now}_*` 
   for f in $files 
      do
       size=`stat -c %s $f`
       echo "written output file: $f $size"
      done  

  echo "$pfn" > justin-processed-pfns.txt
fi
justIN time: 2024-09-29 09:27:03 UTC       justIN version: 01.01.08