Jpp  19.0.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
examples/JAcoustics/plot-canberra.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 script=${0##*/}
3 
4 zmodload zsh/mathfunc
5 
6 if [ -z $JPP_DIR ]; then
7  echo "Variable JPP_DIR undefined."
8  exit
9 fi
10 
11 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
12 
13 set_variable: DEBUG ACOUSTICS_DEBUG 2
14 set_variable: WORKDIR ACOUSTICS_WORKDIR ./
15 set_variable FORMULA "[0] * exp(-0.5 * (x-[1])*(x-[1]) / ([2]*[2]))"
16 set_variable NUMBER_OF_ENTRIES 100
17 set_variable TMIN_MS -1.0
18 set_variable TMAX_MS +1.0
20 set_variable: FORMAT GRAPHICS_FORMAT gif
21 set_variable+ BATCH GRAPHICS_BATCH -B
22 
23 if do_usage $*; then
24  usage "$script <detector file> <input file> [<lower floor>-<upper floor>]"\
25  "\nInput file corresponds to the output of JKatoomba[.sh]."
26 fi
27 
28 case $# in
32  *) fatal "Wrong number of arguments."
33 esac
34 
35 eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
36 eval `JPrintDetector -a $DETECTOR -O SUMMARY`
37 
39 set_variable LAST_FLOOR ${RANGE##*-}
40 
41 JAcoustics.sh $DETECTOR_ID
42 
43 JCanberra.sh $DETECTOR $INPUT_FILE $WORKDIR/canberra\[%\].root
44 
45 source JAcousticsToolkit.sh
46 
47 CHECK_EXIT_CODE
48 
49 typeset -Z 4 STRING
50 typeset -Z 2 FLOOR
51 
52 typeset -A EMITTERS
53 
54 get_tripods+ $WORKDIR/tripod.txt EMITTERS
55 get_transmitters+ $WORKDIR/transmitter.txt EMITTERS
56 
57 kill_child_processes_at_exit
58 
59 attach getModule -a $DETECTOR
60 
61 for STRING in $STRINGS[*]; do
62 
63  echo -n "Creating graphics for string $STRING.."
64 
66 
67  for EMITTER in ${(@k)EMITTERS}; do
68 
69  set_variable STRING_TXT $WORKDIR/string_${STRING}\[${EMITTER}\].txt
70  set_variable STRING_ROOT $WORKDIR/string_${STRING}\[${EMITTER}\].root
71 
72  rm -f $STRING_TXT
73 
74  for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
75 
76  sput $STRING $FLOOR
77  sget MODULE
78 
79  set_variable N `JPrintResult -f $WORKDIR/canberra\[$EMITTER\].root:${MODULE} -F GetEntries`
80 
81  if [[ -n "$N" ]] && (( $N >= $NUMBER_OF_ENTRIES )); then
82 
83  set_array Q `JPrintQuantiles -f $WORKDIR/canberra\[$EMITTER\].root:${MODULE} -Q "0.33 0.50 0.66"`
84 
85  let "XMIN = $Q[2] - 5.0*($Q[3] - $Q[1])"
86  let "XMAX = $Q[2] + 5.0*($Q[3] - $Q[1])"
87 
88  JFit \
89  -f $WORKDIR/canberra\[$EMITTER\].root:${MODULE} \
90  -F "$FORMULA" \
91  -@ "p0 = GetMaximum" \
92  -@ "p1 = $Q[2]" \
93  -@ "p2 = 0.5*($Q[3] - $Q[1])" \
94  -x "$XMIN $XMAX" \
95  -O L \
96  -o $WORKDIR/fit.root \
97  -d $DEBUG
98 
99  if ( `JPrintFit -f $WORKDIR/fit.root:\.\* -@p0 >& /dev/null` ); then
100 
101  set_array P1 `JPrintFit -f $WORKDIR/fit.root:\.\* -@p1`
102  set_array P2 `JPrintFit -f $WORKDIR/fit.root:\.\* -@p2`
103 
104  ((P1[1] = $P1[1] * 1.0e3)) # [ms]
105  ((P2[1] = abs($P2[1]) * 1.0e3)) # [ms]
106 
107  printf "%2d %9.6f %9.6f\n" $FLOOR $P1[1] $P2[1] >> $STRING_TXT
108  fi
109 
110  rm -f $WORKDIR/fit.root
111  fi
112  done
113 
114  rm -f $STRING_TXT
115 
116  JGraph \
117  -f $STRING_TXT \
118  -o $STRING_ROOT
119 
120  HISTOGRAMS+=(${STRING_ROOT})
121  done
122 
123  JPlot1D \
124  -f${^HISTOGRAMS}":.*" \
125  -w 800x400 \
126  -x "-0.5 18.5" \
127  -y "$TMIN_MS $TMAX_MS" \
128  -\> "floor" \
129  -\^ "#Deltat [ms]" \
130  -N "X 505" \
131  -T "[$STRING]" \
132  -L TR \
133  -o $WORKDIR/string_${STRING}.$FORMAT $BATCH
134 
135  echo " -> $WORKDIR/string_${STRING}.$FORMAT"
136 
137  rm -f $HISTOGRAMS[*]
138 done
139 
140 detach
141 
142 # summary plots
143 
144 HISTOGRAMS=()
145 
146 for EMITTER in ${(@k)EMITTERS}; do
147  HISTOGRAMS+=("$WORKDIR/canberra[${EMITTER}].root")
148 done
149 
150 JOpera1D \
151  -f${^HISTOGRAMS}":.*toa" \
152  -u Add \
153  -o $WORKDIR/sum.root >& /dev/null
154 
155 set_array Q `JPrintQuantiles -f $WORKDIR/sum.root:\.\* -Q "0.33 0.50 0.66"`
156 
157 JFit \
158  -f $WORKDIR/sum.root:\.\* \
159  -F "$FORMULA" \
160  -@ "p0 = GetMaximum" \
161  -@ "p1 = $Q[2]" \
162  -@ "p2 = 0.5*($Q[3] - $Q[1])" \
163  -o $WORKDIR/fit.root \
164  -d $DEBUG
165 
166 let "XMIN = $TMIN_MS * 1.0e-3"
167 let "XMAX = $TMAX_MS * 1.0e-3"
168 
169 JPlot1D \
170  -f $WORKDIR/fit.root:\.\* \
171  -\> "#Deltat [s]" \
172  -x "$XMIN $XMAX" \
173  -N "X 505" \
174  -T "" \
175  -s 0 \
176  -o $WORKDIR/canberra.$FORMAT $BATCH
177 
178 rm -f $WORKDIR/sum.root $WORKDIR/fit.root
179 rm -f $WORKDIR/p1.{txt,root}
180 rm -f $WORKDIR/p2.{txt,root}
181 
182 for STRING in $STRINGS[*]; do
183  for EMITTER in ${(@k)EMITTERS}; do
184 
185  set_variable STRING_TXT
186 
187  awk '{ print $2 }' $WORKDIR/string_${STRING}\[${EMITTER}\].txt >> $WORKDIR/p1.txt
188  awk '{ print $3 }' $WORKDIR/string_${STRING}\[${EMITTER}\].txt >> $WORKDIR/p2.txt
189  done
190 done
191 
192 $JPP_DIR/examples/JGizmo/JHistogram1D \
193  -x "200 $TMIN_MS $TMAX_MS" \
194  -f $WORKDIR/p1.txt \
195  -o $WORKDIR/p1.root
196 
197 $JPP_DIR/examples/JGizmo/JHistogram1D \
198  -x "200 0.0 0.2" \
199  -f $WORKDIR/p2.txt \
200  -o $WORKDIR/p2.root
201 
202 typeset -A X_LABEL
203 
204 X_LABEL[p1]="#Deltat [ms]"
205 X_LABEL[p2]="#sigma [ms]"
206 
207 for P in p1 p2; do
208 
209  JPlot1D \
210  -f $WORKDIR/${P}.root:\.\* \
211  -\> "$X_LABEL[${P}]" \
212  -\^ "number of modules" \
213  -N "X 505" \
214  -T "" \
215  -s 1110 \
216  -o $WORKDIR/${P}.$FORMAT $BATCH
217 done
218 
219 rm -f $WORKDIR/p1.{txt,root}
220 rm -f $WORKDIR/p2.{txt,root}
data_type w[N+1][M+1]
Definition: JPolint.hh:867
*fatal Wrong number of arguments esac source JAcousticsToolkit sh mkdir p $WORKDIR post calibration pushd $WORKDIR post calibration post calibration_D0ARCA021 sh $DIR popd set_variable DETECTOR $WORKDIR post calibration detector datx set_variable TRIPOD $WORKDIR post calibration tripod txt set_variable DETECTOR_INITIAL detector_initial datx expand_array RUNS mkdir p $HOMEDIR cd $HOMEDIR JDetectorDB D $DETECTOR_ID r $RUNS[1] V WW o $DETECTOR_INITIAL JEditDetector a $DETECTOR r o detector_tmp datx!eval JPrintDetector a $DETECTOR_INITIAL O SUMMARY
then usage $script< detector identifier >< startdate\"YYYY-MM-DDHH:MM:SS\"><finaldate\"YYYY-MM-DDHH:MM:SS\"><QA/QCfile> fi case set_variable QAQC_TXT $argv[4]
Definition: JDataMonitor.sh:24
then fatal No hydrophone data file $HYDROPHONE_TXT fi sort gr k
Q(UTCMax_s-UTCMin_s)-livetime_s
TPaveText * p1
clean eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY set_variable STRING
then usage eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY JAcoustics sh $DETECTOR_ID JCanberra sh $DETECTOR $INPUT_FILES[*] $WORKDIR canberra[%\] root source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS kill_child_processes_at_exit attach getModule a $DETECTOR typeset Z STRING typeset Z FLOOR for STRING in $STRINGS[*]
then usage $script< directory A >< directoryB > nIn each there should be a file detector datx and tripod txt
exit
Definition: JPizza.sh:36
then
Definition: datalogs.sh:34
do JPlot2D f $WORKDIR canberra[${EMITTER}\] root
then fatal Wrong number of arguments fi JConvertDetectorFormat a o
const int n
Definition: JPolint.hh:786
then rm
Definition: sftpput.zsh:30
then fatal Invalid string $STRING
then JCalibrateToT a
Definition: JTuneHV.sh:107
do echo n Creating graphics for string $STRING HISTOGRAMS
do set_variable OUTPUT_DIRECTORY $WORKDIR T
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
do set_variable STRING_TXT awk
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
then awk F
* usage
then JFileTuna f $INPUT_FILE
Definition: file-Tuna.sh:66
set_variable INPUT_FILE
&set_variable FORMULA
p2
Definition: module-Z:fit.sh:74
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonStart.sh:47
then usage $script[energy[distance[z of PMT]]] fi case set_variable z
Definition: JDrawPDF.sh:45
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
Definition: JMuonPostfit.sh:40
then P1
then fatal The output file must have the wildcard in the e g root fi 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:48
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 JHobbit a $DETECTOR f
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
*fatal Wrong number of arguments esac eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY set_variable FIRST_FLOOR
set_variable DETECTOR
double u[N+1]
Definition: JPolint.hh:865
then echo
Definition: JQAQC.sh:92
source $JPP_DIR setenv csh $JPP_DIR &dev null eval JShellParser o a A
then usage eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY kill_child_processes_at_exit attach getModule a $DETECTOR typeset Z STRING typeset Z FLOOR typeset A X_LABEL typeset A YMAX X_LABEL[twist]
Definition: plot-compass.sh:45
then getFile sh $JPP_ARCHIVE $DETECTOR_ID $RUNS[1] $KEY $VERSION $WORKDIR
do set_variable STRING_TXT $WORKDIR string_
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null
const JModule & getModule(const JDetector &detector, const JModuleLocation &location)
find module with a given string and floor number
then fatal Invalid detector identifier $DETECTOR_ID fi set_variable RUNSETUPID typeset a RANGE RANGE[1]
then $DIR JPlotNPE PDG P
Definition: JPlotNPE-PDG.sh:62
esac done
Definition: JAddHDE.sh:21
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62