7 # ------------------------------------------------------------------------------------------ 
    9 #         Example script to run JDataFilter and JDataWriter using JDOMSimulator(s) 
   11 # ------------------------------------------------------------------------------------------ 
   14 if [ -z $JPP_DIR ]; 
then 
   15     echo "Variable JPP_DIR undefined." 
   19 source $JPP_DIR/setenv.sh $JPP_DIR
 
   32 set_array      SOURCE_HOST       $IP_ADDRESS       $IP_ADDRESS  $IP_ADDRESS
 
   43     usage "$script [working directory]" 
   49     *) fatal 
"Wrong number of arguments." 
   74     killall JDOMSimulator  >& /dev/
null 
   82 debug "IP address $IP_ADDRESS" 
   96 JLigier-local.sh 
continue 
  109     echo "Detector $DETECTOR aleady exists; remove to overwrite." 
  115     -@ 
"detectorType    = $detectorType"     \
 
  116     -@ 
"numberOfLines   = $numberOfLines"    \
 
  117     -@ 
"numberOfFloors  = $numberOfFloors"   \
 
  118     -@ 
"floorDistance_m = $floorDistance_m"  \
 
  119     -@ 
"lineDistance_m  = $lineDistance_m"   \
 
  120     -z $heightOfFirstFloor_m                 \
 
  127 JRandomTimesliceWriter \
 
  130     -B 
"$SINGLESRATE_HZ $DOUBLESRATE_HZ"   \
 
  131     -
n $NUMBER_OF_SLICES                   \
 
  140 # JDataFilter configure data 
  157 # JDOMSimulator configure data. 
  160 numberOfFrames         = ${NUMBER_OF_FRAMES};
 
  163 target                 = 0 ${FILTER_HOST}:${
PORT};
 
  169 for (( i = 1; 
$i <= $NUMBER_OF_DOM_SIMULATORS ; ++i )); 
do 
  171     let index=
"${#SOURCE_HOST}  -  $i % ${#SOURCE_HOST}" 
  173     echo "source = 0 $DOM_SIMULATOR/$i;"                           >> 
$WORKDIR/ev_configure_domsimulator.txt
 
  175     echo "process  $DOM_SIMULATOR/$i  $SOURCE_HOST[$index]         \ 
  176         csh -c '(setenv ROOTSYS $ROOTSYS && source $JPP_DIR/setenv.csh $JPP_DIR && ($DOM_SIMULATOR     \ 
  181         </dev/null >&/dev/null &))';"                              >> 
$WORKDIR/driver.txt
 
  186 process  ${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 &))';
 
  187 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 &))';
 
  198     RC_DFLTR  %<
$WORKDIR/ev_configure_datafilter.txt>%
 
  199     RC_DOM    %<
$WORKDIR/ev_configure_domsimulator.txt>% 
 
  234     if [[ -
n "$PID" ]] 
then 
  235         error 
"$PROCESS still running (${PID})." 
  243 echo -
n "clean [Y/N]? " 
  246 if [[ $ANSWER == 
"Y" || $ANSWER == 
"y" ]]; 
then 
remove to overwrite exit fi JDetector D $ID detectorType
 
then usage $script[port]< option > nPossible restart fi case set_variable OPTION set_variable PORT
 
std::istream & read(std::istream &in, JTestSummary &summary, const char delimiter= ' ')
Read test summary. 
 
then JLigier sh continue fi cat
 
o $QUALITY_ROOT d $DEBUG!JPlot1D f
 
static const double H
Planck constant [eV s]. 
 
do set_variable PID ps h o p C $PROCESS debug Check $PROCESS(${PID})." if [[ -n "$PID" ]] then error "$PROCESS still running($
 
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
 
static const double C
Physics constants. 
 
event< ev_daq > ev_configure
 
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
 
case $OPTION in clean clean
 
then rm i $OUTPUT_FILE fi let RUN
 
set_variable NUMBER_OF_ITERATIONS set_variable EPSILON cat acoustics_fit_parameters txt<< EOF $CONFIGURATION[*]Nmin=3;sigma_s=100.0e-6;stdev=10.0;mestimator=0;fixStrings=0;EOF for STRING in $STRINGS[*];do#fit stretching and(z) position of given string set_variable DETECTOR_TMP ${TMPDIR:-/tmp}/detector_A.datx JEditDetector-a $DETECTOR-o $DETECTOR_TMP-r $STRING JEditDetector-a $DETECTOR-o $DETECTOR-k $STRING for MUL in 0.005 0.001;do DX_M=0.2 for((N=0;$N< $NUMBER_OF_ITERATIONS;++N));do CHI2[3]=$CHI2[1] fitPositionOfString $STRING Z $DX_M fitStretchingOfString $STRING $MUL if(($CHI2[3]-$CHI2[1]< $EPSILON));then break fi done if(($N >=$NUMBER_OF_ITERATIONS));then printf"warning: reached maximum number of iterations %d - converenge %7.3f\n"$N $(($CHI2[3]-$CHI2[1])) fi done JMergeDetector-a $DETECTOR-a $DETECTOR_TMP-o $DETECTOR rm-f $DETECTOR_TMP JConvertDetectorFormat-a $DETECTOR-o $DETECTOR-r-d 0 > &dev null done
 
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR if do_usage *then usage $script[(input file)+] fi set_variable DEBUG set_variable WORKDIR TMPDIR
 
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_DOM<$WORKDIR/ev_configure_domsimulator.txt > RC_DWRT path
 
then JConvertDetectorFormat a $DETECTOR[1] o
 
then JFileTuna f $INPUT_FILE
 
&set_variable OUTPUT_FILE
 
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
 
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
 
rm i $OUTPUT_FILE fi set_variable DOM_SIMULATOR JDOMSimulator set_variable NUMBER_OF_DOM_SIMULATORS
 
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
 
$WORKDIR ev_configure_domsimulator txt echo process $DOM_SIMULATOR $i $SOURCE_HOST[$index] csh c(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&($DOM_SIMULATOR\-u\$NAME\$\-H\$SERVER\$\-M\$LOGGER\$\-d $DEBUG</dev/null > &/dev/null &))'
 
do set_variable INPUT_FILE $WORKDIR KM3NeT_
 
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 CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
 
do echo Generating $dir eval D
 
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null