Jpp - the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JAcceptanceTest.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 
3 version=1.0
4 script=${0##*/}
5 
6 
7 if [ -z $JPP_DIR ]; then
8  echo "Variable JPP_DIR undefined."
9  exit
10 fi
11 
12 source $JPP_DIR/setenv.sh $JPP_DIR
13 
14 if ( do_usage $* ); then
15  usage "$script <daq file> <detector file> <output directory>"
16 fi
17 
18 if (( $# < 3 )); then
19  fatal "Not enough arguments."
20 fi
21 
25 
26 set_variable OUTPUT_JC_TOT ${OUTPUT_DIR}/$(basename $DAQ_FILE .root)_JC_TOT.root
27 set_variable OUTPUT_JMERGE_TOT ${OUTPUT_DIR}/$(basename $DAQ_FILE .root)_JMerge_TOT.root
28 set_variable OUTPUT_JFIT_TOT ${OUTPUT_DIR}/$(basename $DAQ_FILE .root)_JFit_TOT.root
29 set_variable PMT_PARAMETERS_FILE ${OUTPUT_DIR}/$(basename $DAQ_FILE .root)_TOT.txt
30 set_variable OUTPUT_JDA ${OUTPUT_DIR}/$(basename $DAQ_FILE .root)_JDA.root
31 
32 
33 set_variable SELECTOR JDAQTimesliceL0
35 
36 JCalibrateToT \
37  -a ${DETECTOR_FILE} \
38  -C ${SELECTOR} \
39  -O filter \
40  -f ${DAQ_FILE} \
41  -o ${OUTPUT_JC_TOT} --!
42 
43 JMergeCalibrateToT \
44  -f ${OUTPUT_JC_TOT} \
45  -o ${OUTPUT_JMERGE_TOT} --!
46 
47 JFitToT \
48  -P ${PMT_PARAMETERS_FILE} \
49  -a ${DETECTOR_FILE} \
50  -f ${OUTPUT_JMERGE_TOT} \
51  -o ${OUTPUT_JFIT_TOT} \
52  -x "0.0 -1.0" \
53  -w --!
54 
55 ${JPP_DIR}/examples/JDOMProduction/JDomAnalyser \
56  -f ${DAQ_FILE} \
57  -o ${OUTPUT_JDA} \
58  -C ${SELECTOR} \
59  --!
60 
61 #---- loop over DOMs and for each print the gains (for copying into DIA interface)
62 
63 eval `JPrintDetector -a $DETECTOR_FILE -O SUMMARY`
64 
65 kill_child_processes_at_exit
66 
67 attach getModule -a $DETECTOR_FILE
68 
69 for STRING in $STRINGS[*]; do
70  for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
71 
72  GAINS=()
73  RATES=()
74 
75  sput $STRING $FLOOR
76  sget MODULE
77 
78  for (( CHAN = 0; $CHAN < $NUMBER_OF_PMTS; CHAN += 1 )); do
79 
80  rate=`JPrintResult -f ${OUTPUT_JDA}:rate_${MODULE}.${CHAN}$ -F "GetMean"`
81 
82  if [[ $rate == "" ]]; then
83 
84  GAINS+=("NULL")
85  RATES+=("NULL")
86  else
87 
88  GAINS+=(`awk -v mod=$MODULE -v chan=$CHAN '($1=="PMT=" && $2==mod && $3==chan){print $5}' ${PMT_PARAMETERS_FILE}`)
89  RATES+=(`JPrintResult -f ${OUTPUT_JDA}:rate_${MODULE}.${CHAN}$ -F "GetMean"`)
90 
91  JPlot1D \
92  -f ${OUTPUT_JFIT_TOT}:${MODULE}\.${CHAN}\.1ToT \
93  -Y \
94  -y "1.e-7 1.5e-1" \
95  -\> "ToT [ns]" \
96  -T "${MODULE}: ${CHAN}" \
97  -o ${OUTPUT_DIR}/gain_${(l(2)(0))CHAN}.gif -B
98 
99  JPlot1D \
100  -f ${OUTPUT_JDA}:rate_${MODULE}.${CHAN}$ \
101  -Y \
102  -y "1.e-7 1e5" \
103  -X \
104  -\> "Rate [kHz]" \
105  -T "${MODULE}: ${CHAN}" \
106  -o ${OUTPUT_DIR}/rate_${(l(2)(0))CHAN}.gif -B
107 
108  JPlot1D \
109  -f ${OUTPUT_JDA}:time_${MODULE}.${CHAN}$ \
110  -\> "Frame Index" \
111  -\^ "Rate [kHz]" \
112  -O "hist" \
113  -T "${MODULE}: ${CHAN}" \
114  -o ${OUTPUT_DIR}/time_${(l(2)(0))CHAN}.gif -B
115  fi
116 
117 
118  done
119 
120  JSON="{\n\"module\":$MODULE,\n"
121 
122  JSON+="\"gains\":["
123  JSON+=$(IFS=, ; echo "${GAINS[*]}")
124  JSON+="],\n"
125 
126  JSON+="\"rates\":["
127  JSON+=$(IFS=, ; echo "${RATES[*]}")
128  JSON+="]\n}"
129 
130  echo -e ${JSON}
131 
132  montage \
133  -tile 6x6 \
134  -geometry +0+0 \
135  ${OUTPUT_DIR}/gain*.gif \
136  ${OUTPUT_DIR}/${MODULE}_gain.gif
137 
138  montage \
139  -tile 6x6 \
140  -geometry +0+0 \
141  ${OUTPUT_DIR}/rate*.gif \
142  ${OUTPUT_DIR}/${MODULE}_rate.gif
143 
144  montage \
145  -tile 6x6 \
146  -geometry +0+0 \
147  ${OUTPUT_DIR}/time*.gif \
148  ${OUTPUT_DIR}/${MODULE}_time.gif
149  done
150 done
151 
152 rm -f ${OUTPUT_DIR}/gain*.gif
153 rm -f ${OUTPUT_DIR}/rate*.gif
154 rm -f ${OUTPUT_DIR}/time*.gif
155 
156 detach
157 
158 
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.
clean eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY set_variable STRING
then set_variable singlesRate set_variable doublesRate set_variable numberOfSlices echo Generating random background echo Singles rate
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 E $EMITTER d $DEBUG!done kill_child_processes_at_exit attach getModule a $DETECTOR typeset Z STRING typeset Z FLOOR set_variable FIRST_FLOOR for STRING in $STRINGS[*]
Definition: JCanberra.sh:60
exit
Definition: JPizza.sh:36
then fatal Wrong number of arguments fi set_variable STRING $argv[1] set_variable DETECTORXY_TXT $WORKDIR $DETECTORXY_TXT tail read X Y CHI2 RMS printf optimum n $X $Y $CHI2 $RMS awk v Y
then JPizza f
Definition: JPizza.sh:46
set_variable DETECTOR_FILE
Definition: JTuneHV.sh:43
then echo
static const double C
Physics constants.
then fatal Invalid string $STRING
then fatal Not enough arguments fi set_variable DAQ_FILE $argv[1] set_variable DETECTOR_FILE $argv[2] set_variable OUTPUT_DIR $argv[3] set_variable OUTPUT_JC_TOT
do set_variable OUTPUT_DIRECTORY $WORKDIR T
then break fi done getCenter read X Y Z let X
do $DIR JTransitTime o
Definition: JTransitTime.sh:44
then awk F
&set_variable SELECTOR
* usage
&set_variable DETECTOR_FILE set_variable DAQ_FILE
do GAINS
*set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2,-2] set_variable OUTPUT_FILE $argv[-1]
Definition: JDomino.sh:39
then $JPP_DIR examples JDetector JToT o $OUTPUT_FILE n N $NPE P gain
Definition: JToT.sh:45
then JCalibrateToT a
Definition: JTuneHV.sh:116
data_type v[N+1][M+1]
Definition: JPolint.hh:740
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh: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 CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:38
version
Definition: JCalibratePMT.sh:7
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:60
esac done
Definition: JAddHDE.sh:21
&set_variable OUTPUT_DIR