#!/usr/bin/env bash #------------------------------------------------------------------------------ # usage: cdfopr/scripts/submit_stnfit dataset[:book] job sec1:sec2 [caf[:queue]] [mode] # # edit the script to put in # - right location of the tarball # - queue # - logic defining output directory # - user email address for CAF # # examples: # --------- # # ./submit_stnfit gjt10d_533nt:stntuple/dev_242 strip_em_object 1:28 caf # ./submit_stnfit gjt10d_533nt:stntuple/dev_242 strip_mjr2010 1:28 cafcondor:short debug # # mode: "submit" : just submit # "debug" : produce debug output, submit # "debug_submit_stnfit" : produce debug output, do not submit #------------------------------------------------------------------------------ dataset=`echo $1 | awk -F : '{print $1}'` book=`echo $1 | awk -F : '{print $2}'` ; if [ .$book == "." ] ; then book="stntuple/dev_242" ; fi root_script="undefined" job=`echo $2 | awk -F : '{print $1}'` ; echo [submit_stnfit]: job=$job x=`echo $2 | awk -F : '{$1=""; print $0}'` ; echo [submit_stnfit]: x=$x job1=`echo $3 | awk -F : '{print $1}'` job2=`echo $3 | awk -F : '{print $2}'` caf="local"; queue="undefined" if [ .$4 != "." ] ; then caf=`echo $4 | awk -F : '{print $1}'` if [ $caf == "cafcondor" ] ; then queue=medium ; else queue=medium ; fi x=`echo $4 | awk -F : '{print $2}'`; if [ .$x != "." ] ; then queue=$x ; fi fi mode="submit"; if [ .$5 != "." ] ; then mode=$5 ; fi echo book=$book dataset=$dataset mode=$mode caf=$caf tcl_file= host=`hostname -f` tar=stnfit_5.3.3_dev_242_17.tgz user=`klist | grep Default | awk '{print $3}' | awk -F @ '{print $1}'` #----------------------------------------------------------------------- # determine which tarball to use #----------------------------------------------------------------------- if [ $tarball == "undefined" ] ; then x=`cat .rootrc | grep Stnfit.Tarball | awk '{print $2}'` if [ ."$x" != "." ] ; then tarball=$x; else if [ .$tarball_dir == "." ] ; then if [ `hostname -f` == "fcdflnx3.fnal.gov" ] ; then tarball_dir=/cdf/opr/cdfopr/tarballs fi fi tarball=$tarball_dir/stnmaker_${release}.tgz ; fi fi if [ ".$CDF_TARBALL_DIR" != "." ] ; then tarball_dir=$CDF_TARBALL_DIR else case $host in "ncdf131.fnal.gov" ) tarball_dir=/cdf/data01/tarballs ;; "fcdflnx3.fnal.gov" ) tarball_dir=/cdf/opr/cdfopr/tarballs ;; * ) tarball_dir= ;; esac fi tarball=$tarball_dir/$tar dsid=`echo $dataset | sed 's#/#_#g'` output_node=murat@ncdf131.fnal.gov output_dir=/cdf/data37a/s1/datasets/$book/$dsid/tmp if [ .$book == "." ] ; then book="cdfpewk" ; fi fs_base=$dataset:4 # if [ $dataset == "gjt10d_533nt" ] ; then fs_base=gjt10d:3 ; fi # if [ $dataset == "wewk9t" ] ; then fs_base=sewk2d:4 ; fi case $dataset in "gjt10d_533nt" ) fs_base=gjt10d:3 ; ;; "gjt10d_533nt/emobj" ) fs_base=gjt10d:4 ; ;; "gjt10d_533nt/mjr2010") fs_base=gjt10d:4 ; ;; "tmet0d" ) fs_base=sewk6d:4 ; ;; "tmet0d/v2" ) fs_base=sewk6d:4 ; ;; "sewkad" ) fs_base=fs:4 ; ;; "wewk9t" ) fs_base=sewk2d:4 ; ;; "zewk0d/v3" ) fs_base=zewk0d:4 ; ;; * ) fs_base=$dataset:4 ; ;; esac ruser=$USER rhost=`hostname -f` rdir=$PWD case $job in "fake1_1") # strip events with tau, MET and recoil root_script="fake_fake1(1)/save=" ruser=ewk rhost=fcdfdata030.fnal.gov rdir=/cdf/scratch/ewk/datasets/cdfpewk/$dataset/tmp ;; "fake1_2") # strip events with tau, MET and recoil root_script="fake_fake1(2)/save=" ruser=ewk rhost=fcdfdata030.fnal.gov rdir=/cdf/scratch/ewk/datasets/cdfpewk/$dataset/tmp ;; "strip_mjr2010") # strip events with tau, MET and recoil root_script="strip_tau_recoil(20,10,1)/output=/save=" ruser=ewk rhost=fcdfdata030.fnal.gov rdir=/cdf/scratch/ewk/datasets/cdfpewk/$dsid/mjr2010/tmp ;; "zee_1") # Z->ee events root_script="zee(1,0)/grl=DQM_V7:100,1,200000/save=" ruser=murat rhost=ncdf131.fnal.gov rdir=/cdf/data37a/s1/exotic/zewk0d/tmp_1 ;; "zee_2") # Z->ee events root_script="zee(2,0)/grl=DQM_V7:100,1,200000/save=" ruser=murat rhost=ncdf131.fnal.gov rdir=/cdf/data37a/s1/exotic/zewk0d/tmp ;; "strip_em_object") # Z->ee events root_script="strip_em_object()/grl=none,1,200000/output=/save=" ruser=ewk rhost=fcdfdata030.fnal.gov rdir=/cdf/scratch/ewk/datasets/cdfpewk/$dsid/em_object/tmp ;; "strip_eletau") # Z->ee events root_script="strip_eletau()/grl=none,1,200000/output=/save=" ruser=ewk rhost=fcdfdata030.fnal.gov rdir=/cdf/scratch/ewk/datasets/cdfpewk/$dataset/eletau/tmp ;; "strip_ele_recoil") # root_script="strip_ele_recoil(20,10,1)/grl=none,1,200000/output=/save=" ruser=ewk rhost=fcdfdata030.fnal.gov rdir=/cdf/scratch/ewk/datasets/cdfpewk/$dsid/mjr2010/tmp ;; * ) echo [submit_stnfit]: undefined job=$job ;; esac if [ $queue == "undefined" ] ; then queue=short ; fi parameters="-e bin/$BFARCH/stnfit.exe -j $job:tau_ana -b $book -d $dataset -f $fs_base" parameters=${parameters}" -R $root_script" echo [submit_stnfit]: rdir=$rdir if [ $caf == "local" ] && [ `hostname -f` == $rhost ] ; then index=`printf "%04i" $job1` parameters=${parameters}" -o $rdir/results/stnfit-${root_script}-${dataset}.$index" else parameters=${parameters}" -o ${ruser}@${rhost}:${rdir}" fi echo [submit_stnfit]: parameters=$parameters parameters=${parameters}" -x CAF=$caf" output_tarball=${ruser}@${rhost}:${rdir}/stnfit_${dsid}.$.tgz if [ .$tcl_file != "." ] ; then parameters=${parameters}" -i $tcl_file " fi echo [submit_stnfit]: queue=$queue if [ $queue == "test" ] ; then if [ $caf == "local" ] ; then #----------------------------------------------------------------------- # local test job #----------------------------------------------------------------------- cmd="./cdfopr/scripts/run.sh -v -J $job1 $parameters -n 1000 &" echo [submit_stnfit]: local:test $cmd else #----------------------------------------------------------------------- # test remote job #----------------------------------------------------------------------- setup cdfsoft2 development if [ $caf == "caf" ] ; then queue=test ; fi if [ $caf == "cafcondor" ] ; then queue=test ; fi cmd="CafSubmit --tarFile=$tarball \ --outLocation=$output_tarball \ --dhaccess=None \ --dataset=$dataset \ --procType=$queue \ --email=${user}@fnal.gov \ --farm=$caf \ --start=$job1 --end=$job2 \ ./cdfopr/scripts/run.sh -V debug -J $ $parameters -n 1000" fi else #----------------------------------------------------------------------- # remote job #----------------------------------------------------------------------- if [ $caf == "local" ] ; then #----------------------------------------------------------------------- # local job #----------------------------------------------------------------------- cmd="./cdfopr/scripts/run.sh -v -J $job1 $parameters &" else setup cdfsoft2 development cmd="CafSubmit --tarFile=$tarball \ --outLocation=$output_tarball \ --dhaccess=None \ --dataset=$dataset \ --procType=$queue \ --email=${user}@fnal.gov \ --farm=$caf \ --start=$job1 --end=$job2 \ ./cdfopr/scripts/run.sh -V debug -J $ $parameters" fi fi #----------------------------------------------------------------------- # make sure output directory exists and submit the job, use ssh for that #----------------------------------------------------------------------- ssh -l $ruser $rhost mkdir -p $rdir if [ .`echo $mode | grep debug` != "." ] ; then echo [submit_stnfit]: $cmd ; fi if [ $mode != "debug_submit_stnfit" ] ; then $cmd ; fi