#!/bin/bash

#-----------------------------
display_help()
{
    echo "Used to apply selection to ntuples"
    echo ""
    echo "-p: Process e.g. sign, ctrl, psi2, bp_x, bd_x, bs_x"
    echo "-v: Version of input ntuples e.g. v10.10tf, v10.14, v10.17"
    echo "-d: Year e.g. 2011, ... 2018"
    echo "-t: Trigger e.g. ETOS, MTOS, GTIS"
    echo "-q: q2 bin e.g. central, jpsi, psi2, high"
    echo "-r: Cuts that are skipped e.g. nspd, rich, cascade, ghost, kinematics, acceptance, jpsi_misid, q2, pid, ETOS, MTOS, GTIS, hlt1, hlt2, bdt, mass"
    echo "-f: Directory where ntuples go, e.g. my_project_name"
    echo "-b: Will skip prec BDT branch, e.g. 0/1 to skip/add PRec BDT to ntuple"
    echo "-n: Number of jobs to send , e.g. 10 seems to be reasonable"
    echo "-w: Wall time              , e.g. test (5m), short (30m), mid (10h)"
    echo "-s: Add sweights from old file, e.g. 0, 1"
    echo "-e: Version of config file with paths to extra BDT, e.g. v1,v2,v3..."
}
#-----------------------------
get_args()
{
    if [[ $# -eq 0 ]]; then
	display_help
	exit 1
    fi  

    PBDT=1
    SWGT=0
    RCUT=none
    MEMO=4000
    DRUN=0
    EXBD="none"
    while getopts :hf:p:v:d:t:q:r:f:b:s:n:w:m:D:e: option
    do
	case "${option}"
	    in
	    p)PROC=${OPTARG};;
	    v)VERS=${OPTARG};;
	    d)DSET=${OPTARG};;
	    t)TRIG=${OPTARG};;
	    q)QBIN=${OPTARG};;
	    r)RCUT=${OPTARG};;
	    f)DNAM=${OPTARG};;
	    b)PBDT=${OPTARG};;
	    s)SWGT=${OPTARG};;
	    n)NJOB=${OPTARG};;
	    w)QUEU=${OPTARG};;
	    m)MEMO=${OPTARG};;
	    D)DRUN=${OPTARG};;
	    e)EXBD=${OPTARG};;
            h)  
                display_help
                exit 0
                ;;
           \?)  echo "Invalid option: -${OPTARG}"
                display_help
                exit 1
                ;;  
            :)  echo "$0: Arguments needed"
                display_help
                exit 1
                ;;
	esac
    done
}
#-----------------------------
prepare()
{
    JOBDIR=/publicfs/ucas/user/campoverde/Jobs/selection
    DATE=$(date | sed "s|\s|_|g" | sed "s|:|_|g")
    JOBDIR=$JOBDIR"_"$DATE
    mkdir -p $JOBDIR
    rm    -f $JOBDIR/*.out
    rm    -f $JOBDIR/*.err
}
#-----------------------------
submit()
{
    cd $JOBDIR
    OFILE=selection_%{ClusterId}_%{ProcId}

    echo "PROC: $PROC"
    echo "VERS: $VERS"
    echo "DSET: $DSET"
    echo "TRIG: $TRIG"
    echo "QBIN: $QBIN"
    echo "RCUT: $RCUT"
    echo "DNAM: $DNAM"
    echo "PBDT: $PBDT"
    echo "SWGT: $SWGT"
    echo "NJOB: $NJOB"
    echo "QUEU: $QUEU"
    echo "MEMO: $MEMO"
    echo "DRUN: $DRUN"
    echo "EXBD: $EXBD"

    hep_sub -n $NJOB -g lhcb -e $OFILE".err" -o $OFILE".out" -argu %{ProcId} $PROC $VERS $DSET $TRIG $QBIN "$RCUT" $DNAM $PBDT $SWGT $NJOB $DRUN $EXBD -mem $MEMO $(which submit_sel) -wt $QUEU 
}
#-----------------------------
get_args "$@"
prepare
submit

