#!/bin/bash

nprocess=$1
nhist=$2
ndims=$3
nbins=$4

usage() {
   echo "parallelMergeTest.sh nprocess nhist [ndims] [nbins]"
}

if [ "x$nprocess" == "x" ] ; then
  echo "Must specify the number of client process."
  usage
  exit 1;
fi

if [ "x$nhist" == "x" ] ; then
  echo "Must specify the number of histograms."
  usage
  exit 1;
fi

if [ "x$ndims" == "x" ] ; then
   ndims=1
fi

if [ "x$nbins" == "x" ] ; then
   nbins=100
fi

# make sure the script is compiled
echo '.L  parallelMergeTest.C+' | root.exe -b -l
res=$?
if [ $res -ne 0 ] ; then 
  exit $res;
fi

echo '.L  parallelMergeServer.C+' | root.exe -b -l
res=$?
if [ $res -ne 0 ] ; then 
  exit $res;
fi

root.exe -b -l -q $ROOTSYS/tutorials/net/parallelMergeServer.C+ &
res=$?
if [ $res -ne 0 ] ; then 
  exit $res;
fi
# give sometimes to start
sleep 2

if type seq > /dev/null 2>&1 ; then
   sequence=`seq ${nprocess}`
elif type jot > /dev/null 2>&1 ; then 
   sequence=`jot ${nprocess} 1`
else
   echo "Neither seq nor jot is available, we can't count"
   exit 1
fi 

for index in ${sequence}
do
  root.exe -b -l -q "parallelMergeTest.C+($nhist,$ndims,$nbins)" & # > output.$index &
done  

wait
