7 # ------------------------------------------------------------------------------------------
9 # Example script to run JDataFilter and JDataWriter using JDQSimulator(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
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//'`
76 JRandomTimesliceWriter \
79 -B
"$SINGLESRATE_HZ $DOUBLESRATE_HZ" \
80 -
n $NUMBER_OF_SLICES \
97 # JDataFilter configure data
117 # JDQSimulator configure data.
120 numberOfFrames = ${NUMBER_OF_FRAMES};
123 target = 0 ${FILTER_HOST}:${
PORT};
131 for ((
i = 1;
$i <= $NUMBER_OF_DQ_SIMULATORS ; ++
i ));
do
133 let
"index = ${#SOURCE_HOST} - $i % ${#SOURCE_HOST}"
135 echo "source = 0 $DQ_SIMULATOR/$i;" >>
$WORKDIR/ev_configure_dqsimulator.txt
137 echo "process $DQ_SIMULATOR/$i $SOURCE_HOST[$index] \
138 (setenv ROOTSYS $ROOTSYS && source $JPP_DIR/setenv.csh $JPP_DIR && ($DQ_SIMULATOR \
143 </dev/null >&/dev/null &));" >>
$WORKDIR/driver.txt
146 let
"HALF_RUNTIME_S = ${RUNTIME_S} / 2 + 1"
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_DQSIM %<
$WORKDIR/ev_configure_dqsimulator.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"
EOF cat ev_configure_dqueue_dqdf txt<< EOFtimeslice_duration=100;run_start_time=0;max_dump_size=0;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;EOFcat > driver txt<< EOFprocess DataQueue $DATAQUEUE"DataQueue -u \$NAME\$ -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG -o -a </dev/null >& dev null& process JDataWriter $DATAWRITER JDataWriter u $NAME H $SERVER M $LOGGER d $DEBUG</dev/null >& dev null& process JDataFilter $DATAFILTER JDataFilter u $NAME P $PORT H $SERVER M $LOGGER d $DEBUG</dev/null >& dev null& enter event ev_init
then usage $script[port]< option > nPossible restart fi case set_variable OPTION set_variable PORT
&set_variable LOGGER_OUTPUT
then JLigier sh continue fi cat
o $QUALITY_ROOT d $DEBUG!CHECK_EXIT_CODE JPlot1D f
usr share Modules init zsh export TMPDIR
static const double H
Planck constant [eV s].
then fatal Wrong number of arguments fi JConvertDetectorFormat a o
do JPrintDAQHeader f $INPUT_FILE d read DETECTOR_ID RUN FRAME_INDEX TIMESLICE_START set_variable OUTPUT_FILE $WORKDIR KM3NeT_
event< ev_daq > ev_configure
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
do set_variable STRING_TXT awk
then rm i $OUTPUT_FILE fi let RUN
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable DEBUG set_variable WORKDIR
$WORKDIR driver txt done cat $WORKDIR driver txt<< EOFprocess ${DATAFILTER}$FILTER_HOST csh-c '(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 &))';process ${DATAWRITER}$WRITER_HOST csh-c '(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&(JDataWriter-H\$SERVER\$-M\$LOGGER\$-d $DEBUG-u ${DATAWRITER}</dev/null > &/dev/null &))';print enterevent ev_init{RC_CMD}event ev_reset{RC_CMD}event ev_init{RC_CMD}event ev_configure{RC_DFLTR%<$WORKDIR/ev_configure_datafilter.txt > RC_DQSIM<$WORKDIR/ev_configure_dqsimulator.txt > RC_DWRT path
then JFileTuna f $INPUT_FILE
rm i $OUTPUT_FILE fi set_variable DQ_SIMULATOR JDQSimulator set_variable NUMBER_OF_DQ_SIMULATORS
&set_variable OUTPUT_FILE
then usage $script[detector file[output file[PMT parameters file[number of slices]]]] nAuxiliary script to produce random time slice data fi case set_variable NUMBER_OF_SLICES
$WORKDIR ev_configure_dqsimulator txt echo process $DQ_SIMULATOR $i $SOURCE_HOST[$index] csh c(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&($DQ_SIMULATOR\-u\$NAME\$\-H\$SERVER\$\-M\$LOGGER\$\-d $DEBUG</dev/null > &/dev/null &))'
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
then set_variable MODULE getModule a $DETECTOR L $STRING $FLOOR JEditDetector a $DETECTOR M $MODULE add $X o $DETECTOR else echo No update of detector $DETECTOR
do set_variable MODULE getModule a $WORKDIR detector_a datx L $STRING JEditDetector a $WORKDIR detector_a datx M $MODULE setz o $WORKDIR detector_a datx JEditDetector a $WORKDIR detector_b datx M $MODULE setz o $WORKDIR detector_b datx done echo Output stored at $WORKDIR detector_a datx and $WORKDIR tripod_a txt JDrawDetector2D a $WORKDIR detector_a datx a $WORKDIR detector_b datx L BL o detector $FORMAT $BATCH JDrawDetector2D T $WORKDIR tripod_a txt T $WORKDIR tripod_b txt L BL o tripod $FORMAT $BATCH JCompareDetector a $WORKDIR detector_a datx b $WORKDIR detector_b datx o $WORKDIR abc root &dev null for KEY in X Y Z
static const JNET::JTag RC_CMD
then eval ls $DIR $ID $TYPE _
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 JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
#define DEBUG(A)
Message macros.