Jpp  master_rocky-37-gf0c5bc59d
the software that should make you happy
JMatrixNZ.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 test JMatrixNZ on Monte Carlo true muons.
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 
24 set_variable DEBUG 2
25 set_variable WORKDIR ${TMPDIR:-/tmp}/
26 set_variable DETECTOR $WORKDIR/km3net_reference.detx
27 set_variable NUMBER_OF_RUNS 10
28 set_variable: FORMAT GRAPHICS_FORMAT gif
29 set_variable+ BATCH GRAPHICS_BATCH -B
30 set_array ANGLES_DEG 0 1 2 3 4 5
31 
32 if do_usage $*; then
33  usage "$script <option>"\
34  "\nPossible options: run, plot, clean."
35 
36 fi
37 
38 if (( $# != 1 )); then
39  fatal "Wrong number of arguments."
40 fi
41 
42 set_variable OPTION $argv[1]
43 
44 if [[ $OPTION != "run" && $OPTION != "plot" && $OPTION != "clean" ]]; then
45  fatal "Invalid option $OPTION."
46 fi
47 
48 if [[ $OPTION == "run" ]]; then
49 
50  if [[ ! -f $DETECTOR ]] then
51  JDetector.sh $DETECTOR
52  fi
53 
54 cat>$WORKDIR/trigger_parameters.txt<<EOF
55 trigger3DMuon.enabled = 1;
56 trigger3DMuon.numberOfHits = 5;
57 trigger3DMuon.gridAngle_deg = 1;
58 ctMin = 0.0;
59 TMaxLocal_ns = 15.0;
60 EOF
61 
62  set_variable TRIGGEREFFICIENCY_TRIGGERED_EVENTS_ONLY
63 
64  INPUT_FILES=()
65 
66  for (( i = 1; $i <= $NUMBER_OF_RUNS; ++i)); do
67 
68  JSirene.sh $DETECTOR $JPP_DATA/genhen.km3net_wpd_V2_0.evt.gz $WORKDIR/sirene_${i}.root
69  JTriggerEfficiency.sh $DETECTOR $DETECTOR $WORKDIR/sirene_${i}.root $WORKDIR/trigger_efficiency_${i}.root $WORKDIR/trigger_parameters.txt $JPP_DATA/PMT_parameters.txt
70 
71  INPUT_FILES+=($WORKDIR/trigger_efficiency_${i}.root)
72  done
73 
74  for ANGLE_DEG in $ANGLES_DEG[*]; do
75 
76  set_variable SIGMA_NS 3.0
77  set_variable OUTLIERS 3
78 
79  set_variable OUTPUT_FILE $WORKDIR/matrix\[${ANGLE_DEG}\ deg\].root
80 
81  $JPP_DIR/examples/JReconstruction//JMatrixNZ \
82  -a $DETECTOR \
83  -f"$INPUT_FILES[*]" \
84  -o $OUTPUT_FILE \
85  -S ${SIGMA_NS} \
86  -A ${ANGLE_DEG} \
87  -O ${OUTLIERS} \
88  -d ${DEBUG} --!
89 # -U \
90  done
91 fi
92 
93 if [[ $OPTION == "plot" ]]; then
94 
95  if (( 0 )); then
96 
97  for H1 in h0 h1; do
98 
99  JPlot1D \
100  -f"$WORKDIR/matrix["${^ANGLES_DEG}" deg].root:${H1}" \
101  -y "1 2e3" -Y \
102  -L TR \
103  -T "" \
104  -\^ "number of events [a.u.]" \
105  -> "#chi^{2}/NDF" \
106  -o chi2-${H1}.$FORMAT $BATCH
107  done
108  fi
109 
110  if (( 1 )); then
111 
112  for H1 in p0 p1; do
113 
114  JPlot1D \
115  -f"$WORKDIR/matrix["${^ANGLES_DEG}" deg].root:${H1}" \
116  -y "1e0 1e5" -Y \
117  -L TR \
118  -T "" \
119  -\^ "number of events [a.u.]" \
120  -> "probability" \
121  -o prob-${H1}.$FORMAT --! $BATCH
122  done
123  fi
124 fi
125 
126 if [[ $OPTION == "clean" ]]; then
127  rm -f $WORKDIR/sirene_*.root
128  rm -f $WORKDIR/trigger_efficiency_*.root
129  rm -f $WORKDIR/matrix\[*\].root
130 fi