Newer
Older
#!/bin/bash
#
# TriDAS launcher
#
# This script allows the launch the TriDAS processes on the machine
#
# Author: Carmelo Pellegrino <carmelo.pellegrino@bo.infn.it>
#
echo "Syntax: $0 <run_number> <detector_id> <run_start_time> <run_duration_in_sec> <ip of the DAQ server> <username> <writetimeslices>"
exit -1
fi
RUN_NUMBER=$1
DETECTOR_ID=$2
RUN_START_TIME=$3
RUN_DURATION=$4
DAQ_SERVER=$5
DAQ_USER=$6
WRITE_TIMESLICES=$7
SERVER=${DAQ_SERVER} # JLigier for StateMachine
LOGGER=${DAQ_SERVER} # JLigier for logging
DEBUG=3 # 3 is highest
TIMEOUT_S=20 # timeout arbitrarily set to 20 seconds
NUMBER_OF_FRAMES=18 # 18 doms
DIR=. # where to write the data
DATAFILTER=${DAQ_SERVER} # hostname of oDataFilter
DATAQUEUE=${DAQ_SERVER} # hostname of DataQueue
PORT=5556 # port to which the dataqueue will send the frames
DATAWRITER=${DAQ_SERVER} # hostname of the DataWriter
DETECTOR=du1cppm.detx # position of the detector file
ROOT_FILE=`printf "${DIR}/KM3NeT_%08d.root" ${RUN_NUMBER}`
# Run number formatted for filenames
RNUMB_FNAMES=`printf "%08d" ${RUN_NUMBER}`
if [ -f ${ROOT_FILE} ] ; then
echo "The file ${ROOT_FILE} already exists, please rename or remove it first, then restart this script"
exit -1
fi
# Below starts ligier (put if to 1), but you'd better have it running already
fi
cat>ev_configure_dfilter_dqdf.txt<<EOF
numberOfFramesPerSlice = ${NUMBER_OF_FRAMES};
dataWriter = ${DATAWRITER}
detector = %<${DETECTOR}>%;
triggerParameters = trigger3DMuon.enabled = 1;
triggerParameters = trigger3DShower.enabled = 1;
triggerParameters = writeSummary = 1;
triggerParameters = writeTimeslices = ${WRITE_TIMESLICES};
bufferSize = 1073741824;
EOF
cp ev_configure_dfilter_dqdf.txt ${HOME}/.km3_private/ev_configure_dfilter_dqdf_R${RNUMB_FNAMES}.txt
cat>ev_configure_dqueue_dqdf.txt<<EOF
timeslice_duration=100;
run_start_time=${RUN_START_TIME};
max_dump_size=1073741824;
dump_file_prefix=dump_;
dump_file_postfix=.dqd;
opto_ports=56015;
acou_ports=56016;
opto_recipients=127.0.0.1:5556;
acou_recipient=127.0.0.1:5800;
EOF
cp ev_configure_dqueue_dqdf.txt ${HOME}/.km3_private/ev_configure_dqueue_dqdf_R${RNUMB_FNAMES}.txt
# Driver input
cat>driver.txt<<EOF
process DataQueue/1 $DATAQUEUE ssh $DAQ_USER@\$HOST\$ "DataQueue -u \$NAME\$ -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG -o -a </dev/null >&/dev/null &";
process JDataFilter/1 $DATAFILTER ssh $DAQ_USER@\$HOST\$ "JDataFilter -u \$NAME\$ -P $PORT -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG </dev/null >&/dev/null &";
process JDataWriter $DATAWRITER ssh $DAQ_USER@\$HOST\$ "JDataWriter -u \$NAME\$ -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG </dev/null >&/dev/null &";
enter
print
event ev_init { RC_CMD }
event ev_configure {
RC_DQUE %<ev_configure_dqueue_dqdf.txt>%
RC_DFLTR %<ev_configure_dfilter_dqdf.txt>%
RC_DWRT path=$DIR; update_s=10; logger_s=5;
}
event ev_start { RC_CMD ${RUN_NUMBER} ${DETECTOR_ID} }
sleep ${RUN_DURATION}
event ev_pause { RC_CMD }
event ev_stop { RC_CMD }
event ev_reset { RC_CMD }
event ev_off { RC_CMD }
EOF
cp driver.txt ${HOME}/.km3_private/driver_R${RNUMB_FNAMES}.txt
JDAQDriver -H $SERVER -M $LOGGER -d $DEBUG -t $TIMEOUT_S -f driver.txt -c
exit 0