Jpp  15.0.3
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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
19 set_variable RANGE 0-18
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
29  3) set_variable RANGE $argv[3];&
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 source JAcoustics.sh $DETECTOR_ID
42 
43 CHECK_EXIT_CODE
44 
45 typeset -Z 4 STRING
46 typeset -Z 2 FLOOR
47 
48 typeset -A TRIPODS
49 
50 get_tripods $WORKDIR/tripod.txt TRIPODS
51 
52 for EMITTER in ${(@k)TRIPODS}; do
53 
54  JCanberra \
55  -a $DETECTOR \
56  -f $INPUT_FILE \
57  -o "$WORKDIR/canberra[${EMITTER}].root" \
58  -T $WORKDIR/tripod.txt \
59  -V $WORKDIR/sound_velocity.txt \
60  -M $WORKDIR/mechanics.txt \
61  -H $WORKDIR/hydrophone.txt \
62  -E $EMITTER \
63  -d $DEBUG --!
64 done
65 
66 kill_child_processes_at_exit
67 
68 attach getModule -a $DETECTOR
69 
70 for STRING in $STRINGS[*]; do
71 
72  echo -n "Creating graphics for string $STRING.."
73 
75 
76  for EMITTER in ${(@k)TRIPODS}; do
77 
78  set_variable STRING_TXT $WORKDIR/string_${STRING}\[${EMITTER}\].txt
79  set_variable STRING_ROOT $WORKDIR/string_${STRING}\[${EMITTER}\].root
80 
81  rm -f $STRING_TXT
82 
83  for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
84 
85  sput $STRING $FLOOR
86  sget MODULE
87 
88  set_variable N `JPrintResult -f $WORKDIR/canberra\[$EMITTER\].root:${MODULE} -F GetEntries`
89 
90  if [[ -n "$N" ]] && (( $N >= $NUMBER_OF_ENTRIES )); then
91 
92  set_array Q `JPrintQuantiles -f $WORKDIR/canberra\[$EMITTER\].root:${MODULE} -Q "0.33 0.50 0.66"`
93 
94  let XMIN="$Q[2] - 5.0*($Q[3] - $Q[1])"
95  let XMAX="$Q[2] + 5.0*($Q[3] - $Q[1])"
96 
97  JFit \
98  -f $WORKDIR/canberra\[$EMITTER\].root:${MODULE} \
99  -F "$FORMULA" \
100  -@ "p0 = GetMaximum" \
101  -@ "p1 = $Q[2]" \
102  -@ "p2 = 0.5*($Q[3] - $Q[1])" \
103  -x "$XMIN $XMAX" \
104  -O L \
105  -o $WORKDIR/fit.root \
106  -d $DEBUG
107 
108  if ( `JPrintFit -f $WORKDIR/fit.root:\.\* -@p0 >& /dev/null` ); then
109 
110  set_array P1 `JPrintFit -f $WORKDIR/fit.root:\.\* -@p1`
111  set_array P2 `JPrintFit -f $WORKDIR/fit.root:\.\* -@p2`
112 
113  ((P1[1] = $P1[1] * 1.0e3)) # [ms]
114  ((P2[1] = abs($P2[1]) * 1.0e3)) # [ms]
115 
116  printf "%2d %9.6f %9.6f\n" $FLOOR $P1[1] $P2[1] >> $STRING_TXT
117  fi
118 
119  rm -f $WORKDIR/fit.root
120  fi
121  done
122 
123  JGraph \
124  -f $STRING_TXT \
125  -o $STRING_ROOT
126 
127  HISTOGRAMS+=(${STRING_ROOT})
128  done
129 
130  JPlot1D \
131  -f${^HISTOGRAMS}":.*" \
132  -w 800x400 \
133  -x "-0.5 18.5" \
134  -y "$TMIN_MS $TMAX_MS" \
135  -\> "floor" \
136  -\^ "#Deltat [ms]" \
137  -N "X 505" \
138  -T "[$STRING]" \
139  -L TR \
140  -o $WORKDIR/string_${STRING}.$FORMAT $BATCH
141 
142  echo " -> $WORKDIR/string_${STRING}.$FORMAT"
143 
144 done
145 
146 detach
147 
148 # summary plots
149 
150 HISTOGRAMS=()
151 
152 for EMITTER in ${(@k)TRIPODS}; do
153  HISTOGRAMS+=("$WORKDIR/canberra[${EMITTER}].root")
154 done
155 
156 JOpera1D \
157  -f${^HISTOGRAMS}":.*toa" \
158  -u Add \
159  -o $WORKDIR/sum.root >& /dev/null
160 
161 set_array Q `JPrintQuantiles -f $WORKDIR/sum.root:\.\* -Q "0.33 0.50 0.66"`
162 
163 JFit \
164  -f $WORKDIR/sum.root:\.\* \
165  -F "$FORMULA" \
166  -@ "p0 = GetMaximum" \
167  -@ "p1 = $Q[2]" \
168  -@ "p2 = 0.5*($Q[3] - $Q[1])" \
169  -o $WORKDIR/fit.root \
170  -d $DEBUG
171 
172 let XMIN="$TMIN_MS * 1.0e-3"
173 let XMAX="$TMAX_MS * 1.0e-3"
174 
175 JPlot1D \
176  -f $WORKDIR/fit.root:\.\* \
177  -\> "#Deltat [s]" \
178  -x "$XMIN $XMAX" \
179  -N "X 505" \
180  -T "" \
181  -s 0 \
182  -o $WORKDIR/canberra.$FORMAT $BATCH
183 
184 rm -f $WORKDIR/p1.{txt,root}
185 rm -f $WORKDIR/p2.{txt,root}
186 
187 for STRING in $STRINGS[*]; do
188  for EMITTER in ${(@k)TRIPODS}; do
189 
190  set_variable STRING_TXT
191 
192  awk '{ print $2 }' $WORKDIR/string_${STRING}\[${EMITTER}\].txt >> $WORKDIR/p1.txt
193  awk '{ print $3 }' $WORKDIR/string_${STRING}\[${EMITTER}\].txt >> $WORKDIR/p2.txt
194 
195  done
196 done
197 
198 $JPP_DIR/examples/JGizmo/JHistogram1D \
199  -x "200 $TMIN_MS $TMAX_MS" \
200  -f $WORKDIR/p1.txt \
201  -o $WORKDIR/p1.root
202 
203 $JPP_DIR/examples/JGizmo/JHistogram1D \
204  -x "200 0.0 0.2" \
205  -f $WORKDIR/p2.txt \
206  -o $WORKDIR/p2.root
207 
208 typeset -A X_LABEL
209 
210 X_LABEL[p1]="#Deltat [ms]"
211 X_LABEL[p2]="#sigma [ms]"
212 
213 for P in p1 p2; do
214 
215  JPlot1D \
216  -f $WORKDIR/${P}.root:\.\* \
217  -\> "$X_LABEL[${P}]" \
218  -\^ "number of modules" \
219  -N "X 505" \
220  -T "" \
221  -s 1110 \
222  -o $WORKDIR/${P}.$FORMAT $BATCH
223 done
224 
225 rm -f $WORKDIR/p1.{txt,root}
226 rm -f $WORKDIR/p2.{txt,root}
227 rm -f $WORKDIR/fit.root
do echo n Creating graphics for string $STRING HISTOGRAMS
then usage $script< detector file >< detectorfile > nIf the range of floors is the first detector file is aligned to the second before the comparison nIn only modules within the given range of floors are used fi case set_variable RANGE $argv[3]
data_type w[N+1][M+1]
Definition: JPolint.hh:741
then fatal No hydrophone data file $HYDROPHONE_TXT fi sort gr k
Q(UTCMax_s-UTCMin_s)-livetime_s
TPaveText * p1
do $JPP JMEstimator M
Definition: JMEstimator.sh:37
clean eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY set_variable STRING
then usage $script< directory A >< directoryB > nIn each there should be a file detector datx and tripod txt
set_variable INPUT_FILE
do set_variable STRING_TXT $WORKDIR string_
o $QUALITY_ROOT d $DEBUG!JPlot1D f
Definition: JDataQuality.sh:66
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
static const double H
Planck constant [eV s].
exit
Definition: JPizza.sh:36
V(JDAQEvent-JTriggerReprocessor)*1.0/(JDAQEvent+1.0e-10)
then usage E
Definition: JMuonPostfit.sh:35
then echo
do JCanberra a $DETECTOR f $INPUT_FILE o $WORKDIR canberra[${EMITTER}\] root T $WORKDIR tripod txt V $WORKDIR sound_velocity txt M $WORKDIR mechanics txt H $WORKDIR hydrophone txt E $EMITTER $DISABLE d $DEBUG!done kill_child_processes_at_exit attach getModule a $DETECTOR typeset Z STRING typeset Z FLOOR for STRING in $STRINGS[*]
Definition: JCanberra.sh:64
const int n
Definition: JPolint.hh:660
then fatal Invalid string $STRING
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
Definition: JAcoustics.sh:20
do set_variable STRING_TXT awk
*fatal Wrong number of arguments esac eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY set_variable FIRST_FLOOR
do set_variable OUTPUT_DIRECTORY $WORKDIR T
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 ${TMPDIR:-/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
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 JConvertDetectorFormat a $DETECTOR[1] o
then JFileTuna f $INPUT_FILE
Definition: file-Tuna.sh:66
&set_variable FORMULA
p2
Definition: module-Z:fit.sh:74
do JPlot2D f $WORKDIR detector root
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:47
then P1
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
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
then let XMIN
set_variable DETECTOR
double u[N+1]
Definition: JPolint.hh:739
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:42
source $JPP_DIR setenv csh $JPP_DIR &dev null eval JShellParser o a A
script
Definition: JAcoustics.sh:2
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
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 $DIR JPlotNPE PDG P
Definition: JPlotNPE-PDG.sh:62