Jpp  17.3.1
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
examples/JDataFilter/JDataFilter.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author rbruijn
4 #
5 script=${0##*/}
6 
7 # ------------------------------------------------------------------------------------------
8 #
9 # Example script to run JDataFilter and JDataWriter using JDQSimulator(s)
10 #
11 # ------------------------------------------------------------------------------------------
12 
13 
14 if [ -z $JPP_DIR ]; then
15  echo "Variable JPP_DIR undefined."
16  exit
17 fi
18 
19 source $JPP_DIR/setenv.sh $JPP_DIR
20 
23 set_variable IP_ADDRESS `get_ip_address`
24 
25 set_variable MESSAGE_SERVER localhost
26 set_variable MESSAGE_LOGGER localhost
27 
28 set_variable TIMEOUT_S 10
29 set_variable RUNTIME_S 30
30 set_variable PORT 5551
31 set_array SOURCE_HOST $IP_ADDRESS $IP_ADDRESS $IP_ADDRESS
32 set_variable FILTER_HOST $IP_ADDRESS
33 set_variable WRITER_HOST $IP_ADDRESS
34 set_variable DATAFILTER F001/F001
35 set_variable DATAWRITER W000/W000
36 set_variable SINGLESRATE_HZ 0e3
37 set_variable DOUBLESRATE_HZ 2e3
39 
40 set_variable DETECTOR $JPP_DATA/km3net_reference.detx
42 
43 if do_usage $*; then
44  usage "$script [detector file [logger file [working directory]]]"
45 fi
46 
47 case $# in
48  3) set_variable WORKDIR $3;&
51  0) ;;
52  *) fatal "Wrong number of arguments."
53 esac
54 
55 set_variable ID `JPrintDetector -a $JPP_DATA/km3net_reference.detx -O identifier | sed 's/Detector//'`
56 set_variable RUN 1001
57 
58 typeset -Z 8 ID
59 typeset -Z 8 RUN
60 
61 set_variable INPUT_FILE $WORKDIR/timeslice.root
63 
64 
65 # Create detector
66 
67 if [[ ! -f $DETECTOR ]]; then
68  JDetector.sh $DETECTOR
69 fi
70 
71 
72 # Create input data
73 
74 if ( ! reuse_file $INPUT_FILE ); then
75 
76  JRandomTimesliceWriter \
77  -a $DETECTOR \
78  -o $INPUT_FILE \
79  -B "$SINGLESRATE_HZ $DOUBLESRATE_HZ" \
80  -n $NUMBER_OF_SLICES \
81  -d1 --!
82 fi
83 
84 
85 # Remove output data
86 
87 if [[ -f $OUTPUT_FILE ]]; then;
88  rm -i $OUTPUT_FILE
89 fi
90 
91 
92 set_variable DQ_SIMULATOR JDQSimulator
94 set_variable NUMBER_OF_FRAMES `JPrintDetector -a $DETECTOR -O modules | awk '/Module/ {if ($4 != 0) {print $0}}' | wc -l`
95 
96 
97 # JDataFilter configure data
98 
99 cat>$WORKDIR/ev_configure_datafilter.txt<<EOF
100 logger_s = 5;
101 update_s = 10;
102 dataWriter = ${WRITER_HOST};
103 numberOfFramesPerSlice = ${NUMBER_OF_FRAMES};
105 triggerParameters = trigger3DMuon.enabled = 1;
106 triggerParameters = trigger3DShower.enabled = 1;
107 triggerParameters = writeSummary = 1;
108 triggerParameters = writeSN = 1;
109 triggerParameters = SN.numberOfHits = 4; SN.TMaxLocal_ns = 10.0; SN.ctMin = 0.0;
110 c_sizeL1 = 10;
111 queueSize = 100000000;
113 JDataFilter = ${DATAFILTER} ${FILTER_HOST}:${PORT};
114 JDataWriter = ${DATAWRITER} ${WRITER_HOST};
115 EOF
116 
117 # JDQSimulator configure data.
118 
119 cat>$WORKDIR/ev_configure_dqsimulator.txt<<EOF
120 numberOfFrames = ${NUMBER_OF_FRAMES};
121 numberOfEvents = 1;
122 inputFile = ${INPUT_FILE};
123 target = 0 ${FILTER_HOST}:${PORT};
124 EOF
125 
126 
127 # Driver input.
128 
129 rm -f $WORKDIR/driver.txt
130 
131 for (( i = 1; $i <= $NUMBER_OF_DQ_SIMULATORS ; ++i )); do
132 
133  let "index = ${#SOURCE_HOST} - $i % ${#SOURCE_HOST}"
134 
135  echo "source = 0 $DQ_SIMULATOR/$i;" >> $WORKDIR/ev_configure_dqsimulator.txt
136 
137  echo "process $DQ_SIMULATOR/$i $SOURCE_HOST[$index] \
138  (setenv ROOTSYS $ROOTSYS && source $JPP_DIR/setenv.csh $JPP_DIR && ($DQ_SIMULATOR \
139  -u \$NAME\$ \
140  -H \$SERVER\$ \
141  -M \$LOGGER\$ \
142  -d $DEBUG \
143  </dev/null >&/dev/null &));" >> $WORKDIR/driver.txt
144 done
145 
146 let "HALF_RUNTIME_S = ${RUNTIME_S} / 2 + 1"
147 
148 cat>>$WORKDIR/driver.txt<<EOF
149 
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 &))";
152 
153 print
154 
155 enter
156 
157 event ev_init { RC_CMD }
158 
159 event ev_configure {
160  RC_DFLTR %<$WORKDIR/ev_configure_datafilter.txt>%
161  RC_DQSIM %<$WORKDIR/ev_configure_dqsimulator.txt>%
162  RC_DWRT path=$WORKDIR; update_s=10; logger_s=5;
163 }
164 
165 event ev_start { RC_CMD $RUN $ID }
166 
167 sleep $HALF_RUNTIME_S
168 message RC_ALRT Test;
169 sleep $HALF_RUNTIME_S
170 
171 event ev_pause { RC_CMD }
172 event ev_stop { RC_CMD }
173 event ev_reset { RC_CMD }
174 event ev_off { RC_CMD }
175 
176 EOF
177 
178 
179 JLigier.sh $MESSAGE_SERVER continue
180 JLigier.sh $MESSAGE_LOGGER continue
181 JLigier.sh $WRITER_HOST continue
182 
183 
184 if [[ -n "$LOGGER_OUTPUT" ]]; then
185  JLogger.sh $MESSAGE_LOGGER $LOGGER_OUTPUT
186 fi
187 
188 
189 # Go!
190 
191 JDAQDriver \
192  -H $MESSAGE_SERVER \
193  -M $MESSAGE_LOGGER \
194  -t $TIMEOUT_S \
195  -f $WORKDIR/driver.txt \
196  -d $DEBUG \
197  -c
198 
199 
200 # Tests
201 
202 JPrintTree \
203  -f $OUTPUT_FILE
204 
205 
206 # Clean
207 
208 JStopDAQ.sh $MESSAGE_SERVER $MESSAGE_LOGGER
209 
210 
211 ssh $WRITER_HOST "killall JDataWriter"
212 ssh $FILTER_HOST "killall JDataFilter"
213 killall JDQSimulator
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
event< ev_daq > ev_reset
Definition: JDAQCHSM.chsm:180
event< ev_daq > ev_stop
Definition: JDAQCHSM.chsm:179
&set_variable LOGGER_OUTPUT
then JLigier sh continue fi cat
Definition: JDAQDriver.sh:51
o $QUALITY_ROOT d $DEBUG!CHECK_EXIT_CODE JPlot1D f
Definition: JDataQuality.sh:76
usr share Modules init zsh export TMPDIR
static const double H
Planck constant [eV s].
exit
Definition: JPizza.sh:36
event< ev_daq > ev_pause
Definition: JDAQCHSM.chsm:177
then fatal Wrong number of arguments fi JConvertDetectorFormat a o
then echo
const int n
Definition: JPolint.hh:697
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
Definition: JDAQCHSM.chsm:175
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
Definition: JAcoustics.sh:21
do set_variable STRING_TXT awk
then JCalibrateToT a
Definition: JTuneHV.sh:116
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
Definition: JLegolas.sh:20
$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
* usage
print
Definition: JConvertDusj.sh:44
then JFileTuna f $INPUT_FILE
Definition: file-Tuna.sh:66
rm i $OUTPUT_FILE fi set_variable DQ_SIMULATOR JDQSimulator set_variable NUMBER_OF_DQ_SIMULATORS
&set_variable OUTPUT_FILE
set_variable INPUT_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
Definition: JMuonPath.sh:47
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 display $WORKDIR
Definition: plot-Domino.sh:128
event< ev_daq > ev_off
Definition: JDAQCHSM.chsm:182
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
Definition: JDAQTags.hh:44
set_variable DETECTOR
do set_variable DETECTOR_TXT $WORKDIR detector
triggerParameters
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
Definition: JCanberra.sh:46
script
Definition: JAcoustics.sh:2
esac done
Definition: JAddHDE.sh:21
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62
do alias $i