Jpp - 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) WORKDIR=$3;&
36  2) LOGGER_OUTPUT=$2;&
37  1) DETECTOR=$1;;
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=/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
do echo Generating $dir eval D
Definition: JDrawLED.sh:50
event< ev_daq > ev_reset
Definition: JDAQCHSM.chsm:180
then JLigiers sh continue fi cat driver txt<< EOFprocess dfilter $HOST1 ssh\$HOST\$"JDataFilter -H \$SERVER\$ -M \$LOGGER\$ -d $DEBUG &";enterevent ev_init{RC_CMD%< ev_init.txt > from me< ev_init.txt > event ev_configure
do $JPP JMEstimator M
Definition: JMEstimator.sh:37
event< ev_daq > ev_stop
Definition: JDAQCHSM.chsm:179
&set_variable LOGGER_OUTPUT
set_variable INPUT_FILE
static const double H
Planck constant [eV s].
exit
Definition: JPizza.sh:36
&set_variable PIPE
Definition: JRandomEvent.sh:43
event< ev_daq > ev_pause
Definition: JDAQCHSM.chsm:177
then JPizza f
Definition: JPizza.sh:46
do cat driver txt<< EOFevent ev_configure{RC_EVT%< ev_configure.txt > RC_DWRT path
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
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
Definition: JAcoustics.sh:20
then rm i $OUTPUT_FILE fi let RUN
do $DIR JTransitTime o
Definition: JTransitTime.sh:44
* usage
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:45
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
alias put_queue eval echo n
Definition: qlib.csh:19
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:127
event< ev_daq > ev_off
Definition: JDAQCHSM.chsm:182
static const JNET::JTag RC_CMD
Definition: JDAQTags.hh:44
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable DEBUG set_variable WORKDIR tmp set_variable JDAQ_TIMESLICE JDAQTimeslice if do_usage *then usage $script< detector file >< inputfile > fi case set_variable WORKDIR
Definition: JLegolas.sh:23
set_variable DETECTOR
do set_variable INPUT_FILE $WORKDIR KM3NeT_
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:38
version
Definition: JCalibratePMT.sh:7
esac done
Definition: JAddHDE.sh:21