7 # ------------------------------------------------------------------------------------------
9 # Utility script to run JDataFilter and JDOMSimulator(s)
11 # ------------------------------------------------------------------------------------------
14 if [ -z $JPP_DIR ];
then
15 echo "Variable JPP_DIR undefined."
19 source $JPP_DIR/setenv.sh $JPP_DIR
31 set_array SOURCE_HOST $IP_ADDRESS $IP_ADDRESS $IP_ADDRESS
43 if ( do_usage $* );
then
44 usage "$script [detector file [logger file [working directory]]]"
52 *) fatal
"Wrong number of arguments."
55 set_variable ID `JPrintDetector -
a $JPP_DATA/km3net_reference.detx -O identifier | sed
's/Detector//'`
67 if [[ ! -
f $DETECTOR ]];
then
68 JDetector.sh $DETECTOR
76 JRandomTimesliceWriter \
79 -B
"$SINGLESRATE_HZ $DOUBLESRATE_HZ" \
80 -
n $NUMBER_OF_SLICES \
94 set_variable NUMBER_OF_FRAMES `JPrintDetector -
a $DETECTOR -O modules | egrep Module | wc -l`
97 # JDataFilter configure data
99 cat>
$WORKDIR/ev_configure_datafilter.txt<<EOF
117 # JDOMSimulator configure data.
119 cat>
$WORKDIR/ev_configure_domsimulator.txt<<EOF
120 numberOfFrames = ${NUMBER_OF_FRAMES};
123 target = 0 ${FILTER_HOST}:${PORT};
131 for (( i = 1;
$i <= $NUMBER_OF_DOM_SIMULATORS ; ++i ));
do
133 let index=
"${#SOURCE_HOST} - $i % ${#SOURCE_HOST}"
135 echo "source = 0 $DOM_SIMULATOR/$i;" >>
$WORKDIR/ev_configure_domsimulator.txt
137 echo "process $DOM_SIMULATOR/$i $SOURCE_HOST[$index] \
138 (setenv ROOTSYS $ROOTSYS && source $JPP_DIR/setenv.csh $JPP_DIR && $DOM_SIMULATOR \
143 </dev/null >&/dev/null) &;" >>
$WORKDIR/driver.txt
150 process ${DATAFILTER} $FILTER_HOST ssh $FILTER_HOST
"(setenv ROOTSYS $ROOTSYS && source $JPP_DIR/setenv.csh $JPP_DIR && JDataFilter -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG -u ${DATAFILTER} -P $PORT </dev/null >&/dev/null) &";
151 process ${DATAWRITER} $WRITER_HOST ssh $FILTER_HOST
"(setenv ROOTSYS $ROOTSYS && source $JPP_DIR/setenv.csh $JPP_DIR && JDataWriter -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG -u ${DATAWRITER} </dev/null >&/dev/null) &";
160 RC_DFLTR %<
$WORKDIR/ev_configure_datafilter.txt>%
161 RC_DOM %<
$WORKDIR/ev_configure_domsimulator.txt>%
167 sleep $HALF_RUNTIME_S
168 message RC_ALRT Test;
169 sleep $HALF_RUNTIME_S
179 JLigier.sh $MESSAGE_SERVER
continue
180 JLigier.sh $MESSAGE_LOGGER
continue
181 JLigier.sh $WRITER_HOST
continue
184 if [[ -
n "$LOGGER_OUTPUT" ]];
then
185 JLogger.sh $MESSAGE_LOGGER $LOGGER_OUTPUT
208 JStopDAQ.sh $MESSAGE_SERVER $MESSAGE_LOGGER
211 ssh $WRITER_HOST
"killall JDataWriter"
212 ssh $FILTER_HOST
"killall JDataFilter"
213 killall JDOMSimulator
then JLigiers sh continue fi cat driver txt<< EOFprocess dfilter $HOST1 ssh\$HOST\$"JDataFilter -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG &";enterevent ev_init{RC_CMD%< ev_init.txt > from me< ev_init.txt > event ev_configure
void set_variable(const std::string &name, const std::string &value)
Set environment variable.
&set_variable LOGGER_OUTPUT
esac print_variable DETECTOR INPUT_FILE OUTPUT_FILE CDF for TYPE in
fi JEventTimesliceWriter a
*fatal Wrong number of arguments esac set_variable ID JPrintDetector a $JPP_DATA km3net_reference detx O identifier sed s Detector set_variable RUN typeset Z ID typeset Z RUN set_variable INPUT_FILE $WORKDIR timeslice root set_variable OUTPUT_FILE $WORKDIR KM3NeT_
do cat driver txt<< EOFevent ev_configure{RC_EVT%< ev_configure.txt > RC_DWRT path
then cat ev_configure txt<< EOFdatawriter=$DWRITER_HOST;inputFile=$INPUT_FILE;eventRate_Hz=100.0;EOFfiif[[!-f driver.txt]];thencat > driver txt<< EOFprocess JEventGenerator $HOST ssh\$HOST\$"$JPP_BIN/JEventGenerator -u \$NAME\$ -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG </dev/null >& dev null& process JDataWriter $HOST ssh $HOST $JPP_BIN JDataWriter u $NAME H $SERVER M $LOGGER d $DEBUG</dev/null >& dev null& enter event ev_init
do montage tile geometry tmp
then print_variable DETECTOR INPUT_FILE INTERMEDIATE_FILE check_input_file $DETECTOR $INPUT_FILE check_output_file $INTERMEDIATE_FILE $OUTPUT_FILE JMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
then rm i $OUTPUT_FILE fi let RUN
then JFileTuna f $INPUT_FILE
alias put_queue eval echo n
rm i $OUTPUT_FILE fi set_variable DOM_SIMULATOR JDOMSimulator set_variable NUMBER_OF_DOM_SIMULATORS
static const JNET::JTag RC_CMD
$WORKDIR driver txt done let HALF_RUNTIME_S
then usage $script< detector file >< inputfile > fi case set_variable WORKDIR
#define DEBUG(A)
Message macros.