Jpp  15.0.1-rc.1-highQE
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
software/JDataFilter/JDataFilter.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author mdejong
4 #
5 script=${0##*/}
6 
7 # ------------------------------------------------------------------------------------------
8 #
9 # Example script to run JDataFilter and JDataWriter using JDOMSimulator(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 
21 
22 set_variable: DEBUG TEST_DEBUG 3
23 set_variable: WORKDIR TEST_WORKDIR /tmp/
24 set_variable IP_ADDRESS `get_ip_address`
25 
26 set_variable MESSAGE_SERVER localhost
27 set_variable MESSAGE_LOGGER localhost
28 
29 set_variable TIMEOUT_S 30
30 set_variable RUNTIME_S 60
31 set_variable PORT 5551
32 set_array SOURCE_HOST $IP_ADDRESS $IP_ADDRESS $IP_ADDRESS
33 set_variable FILTER_HOST $IP_ADDRESS
34 set_variable WRITER_HOST $IP_ADDRESS
35 set_variable DATAFILTER F001/F001
36 set_variable DATAWRITER W000/W000
37 set_variable SINGLESRATE_HZ 10e3
38 set_variable DOUBLESRATE_HZ 0e3
39 set_variable NUMBER_OF_SLICES 10
40 
41 
42 if do_usage $*; then
43  usage "$script [working directory]"
44 fi
45 
46 case $# in
48  0) ;;
49  *) fatal "Wrong number of arguments."
50 esac
51 
52 
54 set_variable ID 1000
55 set_variable RUN 1001
56 
57 typeset -Z 8 ID
58 typeset -Z 8 RUN
59 
60 set_variable INPUT_FILE $WORKDIR/timeslice.root
62 
63 
64 function clean()
65 {
66  rm -f $DETECTOR
68  rm -f $OUTPUT_FILE
69 
70  rm -f $WORKDIR/ev_configure_datafilter.txt
71  rm -f $WORKDIR/ev_configure_domsimulator.txt
72  rm -f $WORKDIR/driver.txt
73 
74  killall JDOMSimulator >& /dev/null
75  killall JDataFilter >& /dev/null
76  killall JDataWriter >& /dev/null
77 
78  return 0;
79 }
80 
81 
82 debug "IP address $IP_ADDRESS"
83 
84 JDataFilter -h!
85 JDOMSimulator -h!
86 JDataWriter -h!
87 
88 
89 # Clean
90 
91 clean
92 
93 
94 # Continue server
95 
96 JLigier-local.sh continue
97 
98 
99 # Create detector
100 
101 set_variable numberOfLines 1
102 set_variable numberOfFloors 4
103 set_variable floorDistance_m 36
104 set_variable lineDistance_m 90
105 set_variable heightOfFirstFloor_m 72
107 
108 if [[ -f $DETECTOR ]]; then
109  echo "Detector $DETECTOR aleady exists; remove to overwrite."
110  exit
111 fi
112 
113 JDetector \
114  -D $ID \
115  -@ "detectorType = $detectorType" \
116  -@ "numberOfLines = $numberOfLines" \
117  -@ "numberOfFloors = $numberOfFloors" \
118  -@ "floorDistance_m = $floorDistance_m" \
119  -@ "lineDistance_m = $lineDistance_m" \
120  -z $heightOfFirstFloor_m \
121  -f footprint.txt \
122  -o $DETECTOR -d 1 --!
123 
124 
125 # Create input data
126 
127 JRandomTimesliceWriter \
128  -a $DETECTOR \
129  -o $INPUT_FILE \
130  -B "$SINGLESRATE_HZ $DOUBLESRATE_HZ" \
131  -n $NUMBER_OF_SLICES \
132  -d1 --!
133 
134 
135 set_variable DOM_SIMULATOR JDOMSimulator
137 set_variable NUMBER_OF_FRAMES `JPrintDetector -a $DETECTOR -O modules | egrep Module | wc -l`
138 
139 
140 # JDataFilter configure data
141 
142 cat>$WORKDIR/ev_configure_datafilter.txt<<EOF
143 logger_s = 5;
144 update_s = 10;
145 dataWriter = ${WRITER_HOST};
146 numberOfFramesPerSlice = ${NUMBER_OF_FRAMES};
147 detector = %<${DETECTOR}>%;
148 triggerParameters = writeSummary = 1;
149 triggerParameters = writeL0 = 1;
150 queueSize = 100000000;
151 path = $WORKDIR;
152 JDataFilter = ${DATAFILTER} ${FILTER_HOST}:${PORT};
153 JDataWriter = ${DATAWRITER} ${WRITER_HOST};
154 EOF
155 
156 
157 # JDOMSimulator configure data.
158 
159 cat>$WORKDIR/ev_configure_domsimulator.txt<<EOF
160 numberOfFrames = ${NUMBER_OF_FRAMES};
161 numberOfEvents = 1;
162 inputFile = ${INPUT_FILE};
163 target = 0 ${FILTER_HOST}:${PORT};
164 EOF
165 
166 
167 # Driver input.
168 
169 for (( i = 1; $i <= $NUMBER_OF_DOM_SIMULATORS ; ++i )); do
170 
171  let index="${#SOURCE_HOST} - $i % ${#SOURCE_HOST}"
172 
173  echo "source = 0 $DOM_SIMULATOR/$i;" >> $WORKDIR/ev_configure_domsimulator.txt
174 
175  echo "process $DOM_SIMULATOR/$i $SOURCE_HOST[$index] \
176  (setenv ROOTSYS $ROOTSYS && source $JPP_DIR/setenv.csh $JPP_DIR && $DOM_SIMULATOR \
177  -u \$NAME\$ \
178  -H \$SERVER\$ \
179  -M \$LOGGER\$ \
180  -d $DEBUG \
181  </dev/null >&/dev/null) &;" >> $WORKDIR/driver.txt
182 done
183 
184 cat>>$WORKDIR/driver.txt<<EOF
185 
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) &';
188 
189 print
190 
191 enter
192 
193 event ev_init { RC_CMD }
194 event ev_reset { RC_CMD }
195 event ev_init { RC_CMD }
196 
197 event ev_configure {
198  RC_DFLTR %<$WORKDIR/ev_configure_datafilter.txt>%
199  RC_DOM %<$WORKDIR/ev_configure_domsimulator.txt>%
200  RC_DWRT path=$WORKDIR; update_s=10; logger_s=5;
201 }
202 
203 event ev_start { RC_CMD $RUN $ID }
204 
205 sleep $RUNTIME_S
206 
207 event ev_pause { RC_CMD }
208 event ev_stop { RC_CMD }
209 event ev_reset { RC_CMD }
210 event ev_off { RC_CMD }
211 
212 EOF
213 
214 
215 # Go!
216 
217 JDAQDriver \
218  -H $MESSAGE_SERVER \
219  -M $MESSAGE_LOGGER \
220  -t $TIMEOUT_S \
221  -f $WORKDIR/driver.txt \
222  -d $DEBUG \
223  -c
224 
225 
226 # Check processes
227 
228 for PROCESS in JDOMSimulator JDataFilter JDataWriter; do
229 
230  set_variable PID `ps h -o "%p" -C $PROCESS`
231 
232  debug "Check $PROCESS (${PID})."
233 
234  if [[ -n "$PID" ]] then
235  error "$PROCESS still running (${PID})."
236  kill -9 $PID
237  fi
238 done
239 
240 
241 # Clean
242 
243 echo -n "clean [Y/N]? "
244 read ANSWER
245 
246 if [[ $ANSWER == "Y" || $ANSWER == "y" ]]; then
247  clean
248 fi
remove to overwrite exit fi JDetector D $ID detectorType
then usage $script[port]< option > nPossible restart fi case set_variable OPTION set_variable PORT
event< ev_daq > ev_reset
Definition: JDAQCHSM.chsm:180
do $JPP JMEstimator M
Definition: JMEstimator.sh:37
event< ev_daq > ev_stop
Definition: JDAQCHSM.chsm:179
std::istream & read(std::istream &in, JTestSummary &summary, const char delimiter= ' ')
Read test summary.
then JMuonPostfit f
then usage $script< detector file >< inputfile > nUtility script to create PDF and CDF of transition time distribution fi case set_variable WORKDIR
Definition: JLegolas.sh:31
set_variable INPUT_FILE
static const double H
Planck constant [eV s].
exit
Definition: JPizza.sh:36
event< ev_daq > ev_pause
Definition: JDAQCHSM.chsm:177
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
then echo
static const double C
Physics constants.
const int n
Definition: JPolint.hh:660
then PID
Definition: mkqueue.sh:67
$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
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:20
case $OPTION in clean clean
then rm i $OUTPUT_FILE fi let RUN
do $DIR JTransitTime o
Definition: JTransitTime.sh:44
int debug
debug level
Definition: JSirene.cc:63
* usage
print
Definition: JConvertDusj.sh:44
then JFileTuna f $INPUT_FILE
Definition: file-Tuna.sh:66
&set_variable OUTPUT_FILE
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:47
then JCalibrateToT a
Definition: JTuneHV.sh:116
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
then display $WORKDIR
Definition: plot-Domino.sh:128
rm i $OUTPUT_FILE fi set_variable DOM_SIMULATOR JDOMSimulator set_variable NUMBER_OF_DOM_SIMULATORS
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 INPUT_FILE $WORKDIR KM3NeT_
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 source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:41
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/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
script
Definition: JAcoustics.sh:2
do echo Generating $dir eval D
Definition: JDrawLED.sh:53
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null
do alias $i