Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
plot-compass.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 #
4 # \author mdejong
5 #
6 version=1.0
7 script=${0##*/}
8 
9 if [ -z $JPP_DIR ]; then
10  echo "Variable JPP_DIR undefined."
11  exit
12 fi
13 
14 source $JPP_DIR/setenv.sh $JPP_DIR
15 
16 set_variable DEBUG ${COMPASS_DEBUG:-2}
17 set_variable WORKDIR ${COMPASS_WORKDIR:-./}
18 set_variable BACKGROUND ${COMPASS_BACKGROUND:+-B}
19 
20 if ( do_usage $* ); then
21  usage "$script <detector file> (input file)+"
22 fi
23 
24 if (( $# < 2 )); then
25  fatal "Wrong number of parameters."
26 fi
27 
29 set_array INPUT_FILES $argv[2,-1]
30 
31 eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
32 eval `JPrintDetector -a $DETECTOR -O SUMMARY`
33 
34 attach getModule -a $DETECTOR
35 
36 typeset -Z 4 STRING
37 typeset -Z 2 FLOOR
38 
39 typeset -A X_LABEL
40 typeset -A YMAX
41 
42 X_LABEL[twist]="#Delta#theta [deg]"
43 X_LABEL[swing]="#Delta#theta [deg]"
44 X_LABEL[count]="number of hits"
45 
46 YMAX[twist]=2.0
47 YMAX[swing]=0.5
48 YMAX[count]=100
49 
50 if (( ${#INPUT_FILES} == 1 )); then
51  set_variable OPTION -s 110110
52 else
53  set_variable OPTION -L TR
54 fi
55 
56 for key value in "${(@kv)X_LABEL}"; do
57 
58  for STRING in $STRINGS[*]; do
59 
60  echo -n "Creating $key graphics for string $STRING.."
61 
62  rm -f /tmp/${key}_${STRING}_*.gif
63 
64  set_variable FIRST_FLOOR 1
65 
66  for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
67 
68  sput $STRING $FLOOR
69  sget MODULE
70 
71  JPlot1D \
72  -f "${INPUT_FILES//\.root/.root:${MODULE}.${key}}" \
73  -\> "${value}" \
74  -\^ "number of events [a.u.]" \
75  $OPTION \
76  -T "(${STRING},${FLOOR})" \
77  -o /tmp/${key}_${STRING}_${FLOOR}.gif -B >& /dev/null
78  done
79 
80  montage \
81  -tile 6x3 \
82  -geometry +0+0 \
83  /tmp/${key}_${STRING}_*.gif \ $WORKDIR/${key}_${STRING}.gif >& /dev/null
84 
85  echo " -> $WORKDIR/${key}_${STRING}.gif"
86  done
87 done
88 
89 if (( ${#INPUT_FILES} == 1 )); then
90 
91  JPlot2D \
92  -f "${INPUT_FILES[1]}:h2" \
93  -\> "string" \
94  -\< "floor" \
95  -z "1.0e-8 1.0" -Z \
96  -O COLZ \
97  -T "outliers" \
98  -o $WORKDIR/out.gif $BACKGROUND
99 
100  for key value in "${(@kv)X_LABEL}"; do
101 
102  echo -n "Creating summary graphics for $key.."
103 
104  HISTOGRAMS=()
105 
106  for STRING in $STRINGS[*]; do
107 
108  set_variable STRING_TXT $WORKDIR/string_${STRING}.${key}.txt
109  set_variable STRING_ROOT $WORKDIR/string_${STRING}.${key}.root
110 
111  rm -f $STRING_TXT
112 
113  for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
114 
115  sput $STRING $FLOOR
116  sget MODULE
117 
118  set_variable X `JPrintResult -f "${INPUT_FILES[1]}:${MODULE}.${key}" -F GetMean`
119 
120  printf "%2d %9.6f\n" $FLOOR $X >> $STRING_TXT
121 
122  done
123 
124  JGraph \
125  -f $STRING_TXT \
126  -o $STRING_ROOT \
127  -T "[${STRING}]" -d0
128 
129  HISTOGRAMS+="${STRING_ROOT}:.*"
130 
131  rm -f $STRING_TXT
132  done
133 
134  JPlot1D \
135  -f "$HISTOGRAMS[*]" \
136  -w 800x400 \
137  -x "0.5 18.5" \
138  -y "0.0 $YMAX[${key}]" \
139  -\> "floor" \
140  -\^ "${value}" \
141  -N "X 505" \
142  -L TR \
143  -T "[$key]" \
144  -o $WORKDIR/summary_${key}.gif $BACKGROUND
145 
146  rm -f ${HISTOGRAMS[*]//:*/}
147 
148  echo " -> $WORKDIR/summary_${key}.gif"
149  done
150 fi
151 
152 detach
153 
set_variable DETECTOR
data_type w[N+1][M+1]
Definition: JPolint.hh:741
void set_variable(const std::string &name, const std::string &value)
Set environment variable.
do eval JCanberra a $DETECTOR f $INPUT_FILE o $WORKDIR canberra[${EMITTER}\] root T print_tripods V print_velocity E $EMITTER d $DEBUG!done HISTOGRAMS
clean eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY set_variable STRING
do set_variable STRING_TXT $WORKDIR string_
exit
Definition: JPizza.sh:36
do set_array DAQHEADER JPrintDAQHeader f
Definition: JTuneHV.sh:74
then echo
then fatal Invalid string $STRING
do set_variable OUTPUT_DIRECTORY $WORKDIR T
do $DIR JTransitTime o
Definition: JTransitTime.sh:44
then awk F
* usage
then fatal Not enough arguments fi set_variable DETECTOR $argv[1] INPUT_FILES
then usage eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY attach getModule a $DETECTOR typeset Z STRING typeset Z FLOOR typeset A X_LABEL typeset A YMAX X_LABEL[twist]
Definition: plot-compass.sh:42
*set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2,-2] set_variable OUTPUT_FILE $argv[-1]
Definition: JDomino.sh:39
std::vector< int > count
Definition: JAlgorithm.hh:184
then JCalibrateToT a
Definition: JTuneHV.sh:103
alias put_queue eval echo n
Definition: qlib.csh:19
then display $WORKDIR
Definition: plot-Domino.sh:127
then usage $script< detector >< run >< outputfile > fi case set_variable OPTION
Definition: JTuna.sh:26
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 typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:36
then usage $script[input file[working directory[option]]] nWhere option can be N
Definition: JMuonPostfit.sh:37
version
Definition: JCalibratePMT.sh:7
*fatal Wrong option $OPTION
then usage $script< detector file >< inputfile > fi case set_variable WORKDIR
Definition: JLegolas.sh:28
source $JPP_DIR setenv csh $JPP_DIR eval JShellParser o a A
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
do eval JCanberra a $DETECTOR f $INPUT_FILE o $WORKDIR canberra[${EMITTER}\] root T print_tripods V print_velocity E $EMITTER d $DEBUG!done attach getModule a $DETECTOR typeset Z STRING typeset Z FLOOR set_variable FIRST_FLOOR for STRING in $STRINGS[*]
Definition: JCanberra.sh:55
esac done
Definition: JAddHDE.sh:21
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62