Jpp  18.0.0-rc.3
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
examples/JDataWriter/JDataWriter.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author mdejong
4 #
5 version=1.0
6 script=${0##*/}
7 
8 # ------------------------------------------------------------------------------------------
9 #
10 # Utility script to run JDataWriter and JEventGenerator.
11 #
12 # ------------------------------------------------------------------------------------------
13 
14 
15 if [ -z $JPP_DIR ]; then
16  echo "Variable JPP_DIR undefined."
17  exit
18 fi
19 
20 
21 source $JPP_DIR/setenv.sh $JPP_DIR
22 
23 
25 set_variable WORKDIR $JPP_DATA
26 set_variable DETECTOR $JPP_DATA/km3net_reference.detx
27 set_variable LOGGER_OUTPUT logger.txt
28 
29 
30 if do_usage $*; then
31  usage "$script [detector file] [logger file [working directory]]]"
32 fi
33 
34 case $# in
35  3) set_variable WORKDIR $3;&
38 esac
39 
40 
41 set_variable INPUT_FILE $WORKDIR/trigger_processor.root
42 
43 set_variable MESSAGE_SERVER localhost
44 set_variable MESSAGE_LOGGER localhost
45 
47 
48 set_variable RUN_1 1001
49 set_variable RUN_2 1002
50 set_variable TIMEOUT_S 10
51 set_variable RUNTIME_S 20
52 
53 set_variable DWRITER_HOST $HOSTNAME
54 
55 print_variable MESSAGE_SERVER MESSAGE_SERVER TIMEOUT_S RUNTIME_S
56 
57 
58 if [[ ! -f $DETECTOR ]]; then
59 
61  numberOfLines=115
62  numberOfFloors=18
63  floorDistance_m=36
64  lineDistance_m=90
65  heightOfFirstFloor=100
66 
67  echo "Creating detector $DETECTOR, with parameters:"
68 
69  JDetector \
70  -D 1000 \
71  -@detectorType=$detectorType \
72  -@numberOfLines=$numberOfLines \
73  -@numberOfFloors=$numberOfFloors \
74  -@floorDistance_m=$floorDistance_m \
75  -@lineDistance_m=$lineDistance_m \
76  -z $heightOfFirstFloor \
77  -f footprint_extended.txt \
78  -V V2 \
79  -o $DETECTOR -d 1 --!
80 fi
81 
82 
83 if [[ ! -f $INPUT_FILE ]]; then
84 
86  doublesRate=2e3
87  numberOfSlices=10
88 
89  echo "Generating random background."
90  echo "Singles rate: $singlesRate [Hz]."
91  echo "Doubles rate: $doublesRate [Hz]."
92 
93  PIPE=${TMPDIR:-/tmp}/pipe.dat
94 
95  rm -f $PIPE
96  mkfifo $PIPE
97 
98  nohup JRandomTimesliceWriter \
99  -a $DETECTOR \
100  -o $PIPE \
101  -B "$singlesRate $doublesRate" \
102  -n $numberOfSlices \
103  -d1 > timeslice.log 2>&1 &
104 
105  echo Processing random data.
106 
107  JTriggerProcessor \
108  -a $DETECTOR \
109  -f $PIPE \
110  -@trigger3DShower.enabled=1 \
111  -@trigger3DMuon.enabled=1 \
112  -o $INPUT_FILE \
113  -d1 > trigger.log 2>&1
114 
115  rm -f $PIPE
116 
117  JPrintTree \
118  -f $INPUT_FILE
119 
120 fi
121 
122 
123 let RUN=RUN_1
124 
125 while (( $RUN <= $RUN_2 )); do
126 
127  OUTPUT_FILE=`printf %s/KM3NeT_%08d.root $WORKDIR $RUN`
128 
129  if [[ -f $OUTPUT_FILE ]]; then;
130  rm -i $OUTPUT_FILE
131  fi
132 
133  let RUN=$RUN+1
134 done
135 
136 
137 # Event generation configure data.
138 
139 if [[ ! -f ev_configure.txt ]]; then
140 
141 cat>ev_configure.txt<<EOF
142 datawriter = $DWRITER_HOST;
143 inputFile = $INPUT_FILE;
144 eventRate_Hz = 100.0;
145 EOF
146 
147 fi
148 
149 # Driver input.
150 
151 if [[ ! -f driver.txt ]]; then
152 
153 cat>driver.txt<<EOF
154 
155 # To avoid unnecessary shell processes, the process I/O is redirected to /dev/null and the ssh command is quoted.
156 
157 process JEventGenerator $HOSTNAME ssh \$HOST\$ "JEventGenerator -u \$NAME\$ -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG </dev/null >&/dev/null &";
158 process JDataWriter $HOSTNAME ssh \$HOST\$ "JDataWriter -u \$NAME\$ -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG </dev/null >&/dev/null &";
159 
160 enter
161 
162 event ev_init { RC_CMD }
163 EOF
164 
165 let RUN=RUN_1
166 
167 while (( $RUN <= $RUN_2 )); do
168 
169 cat>>driver.txt<<EOF
170 
171 event ev_configure {
172  RC_EVT %<ev_configure.txt>%
173  RC_DWRT path=$WORKDIR; update_s=10; logger_s=5;
174 }
175 
176 event ev_start { RC_CMD $RUN }
177 
178 sleep $RUNTIME_S
179 
180 event ev_pause { RC_CMD }
181 event ev_stop { RC_CMD }
182 EOF
183 
184 let RUN=$RUN+1
185 done
186 
187 cat>>driver.txt<<EOF
188 
189 event ev_reset { RC_CMD }
190 event ev_off { RC_CMD }
191 EOF
192 
193 fi
194 
195 
196 if (( 1 )); then
197 
198  JLigier.sh $MESSAGE_SERVER continue
199 
200 fi
201 
202 
203 if (( 1 )); then
204 
205  JLogger.sh $MESSAGE_LOGGER $LOGGER_OUTPUT
206 
207 fi
208 
209 
210 if (( 1 )); then
211 
212  JDAQDriver \
213  -H $MESSAGE_SERVER \
214  -M $MESSAGE_LOGGER \
215  -t $TIMEOUT_S \
216  -f driver.txt \
217  -d $DEBUG \
218  -c
219 
220 fi
221 
222 
223 if (( 1 )); then
224 
225  JStopDAQ.sh $MESSAGE_SERVER $MESSAGE_LOGGER
226 
227 fi
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
remove to overwrite exit fi JDetector D $ID detectorType
event< ev_daq > ev_reset
Definition: JDAQCHSM.chsm:180
event< ev_daq > ev_stop
Definition: JDAQCHSM.chsm:179
version
Definition: JEditTuneHV.sh:5
&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
V(JDAQEvent-JTriggerReprocessor)*1.0/(JDAQEvent+1.0e-10)
then fatal Wrong number of arguments fi JConvertDetectorFormat a o
const int n
Definition: JPolint.hh:697
then rm
Definition: sftpput.zsh:30
&set_variable PIPE
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
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
then JFileTuna f $INPUT_FILE
Definition: file-Tuna.sh:66
&set_variable OUTPUT_FILE
set_variable INPUT_FILE
$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
static const JNET::JTag RC_CMD
Definition: JDAQTags.hh:58
set_variable DETECTOR
then echo
Definition: JQAQC.sh:90
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
do echo Generating $dir eval D
Definition: JDrawLED.sh:53
esac done
Definition: JAddHDE.sh:21
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62