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
 
do set_variable INPUT_FILE $WORKDIR KM3NeT_
 
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
 
static const double H
Planck constant [eV s]. 
 
do set_array DAQHEADER JPrintDAQHeader f
 
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
 
then rm i $OUTPUT_FILE fi let RUN
 
&set_variable OUTPUT_FILE
 
then JFileTuna f $INPUT_FILE
 
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
 
then $JPP_DIR software JCalibrate JCalibrateToT a
 
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
 
do set_variable DETECTOR_TXT $WORKDIR detector
 
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
 
$WORKDIR driver txt done let HALF_RUNTIME_S
 
then usage $script< detector file >< inputfile > fi case set_variable WORKDIR
 
#define DEBUG(A)
Message macros.