Jpp
 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 attach getModule -a $DETECTOR_FILE
66 
67 for STRING in $STRINGS[*]; do
68  for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
69 
70  GAINS=()
71  RATES=()
72 
73  sput $STRING $FLOOR
74  sget MODULE
75 
76  for (( CHAN = 0; $CHAN < $NUMBER_OF_PMTS; CHAN += 1 )); do
77 
78  rate=`JPrintResult -f ${OUTPUT_JDA}:rate_${MODULE}.${CHAN}$ -F "GetMean"`
79 
80  if [[ $rate == "" ]]; then
81 
82  GAINS+=("NULL")
83  RATES+=("NULL")
84  else
85 
86  GAINS+=(`awk -v mod=$MODULE -v chan=$CHAN '($1=="PMT=" && $2==mod && $3==chan){print $5}' ${PMT_PARAMETERS_FILE}`)
87  RATES+=(`JPrintResult -f ${OUTPUT_JDA}:rate_${MODULE}.${CHAN}$ -F "GetMean"`)
88 
89  JPlot1D \
90  -f ${OUTPUT_JFIT_TOT}:${MODULE}\.${CHAN}\.1ToT \
91  -Y \
92  -y "1.e-7 1.5e-1" \
93  -\> "ToT [ns]" \
94  -T "${MODULE}: ${CHAN}" \
95  -o ${OUTPUT_DIR}/gain_${(l(2)(0))CHAN}.gif -B
96 
97  JPlot1D \
98  -f ${OUTPUT_JDA}:rate_${MODULE}.${CHAN}$ \
99  -Y \
100  -y "1.e-7 1e5" \
101  -X \
102  -\> "Rate [kHz]" \
103  -T "${MODULE}: ${CHAN}" \
104  -o ${OUTPUT_DIR}/rate_${(l(2)(0))CHAN}.gif -B
105 
106  JPlot1D \
107  -f ${OUTPUT_JDA}:time_${MODULE}.${CHAN}$ \
108  -\> "Frame Index" \
109  -\^ "Rate [kHz]" \
110  -O "hist" \
111  -T "${MODULE}: ${CHAN}" \
112  -o ${OUTPUT_DIR}/time_${(l(2)(0))CHAN}.gif -B
113  fi
114 
115 
116  done
117 
118  JSON="{\n\"module\":$MODULE,\n"
119 
120  JSON+="\"gains\":["
121  JSON+=$(IFS=, ; echo "${GAINS[*]}")
122  JSON+="],\n"
123 
124  JSON+="\"rates\":["
125  JSON+=$(IFS=, ; echo "${RATES[*]}")
126  JSON+="]\n}"
127 
128  echo -e ${JSON}
129 
130  montage \
131  -tile 6x6 \
132  -geometry +0+0 \
133  ${OUTPUT_DIR}/gain*.gif \
134  ${OUTPUT_DIR}/${MODULE}_gain.gif
135 
136  montage \
137  -tile 6x6 \
138  -geometry +0+0 \
139  ${OUTPUT_DIR}/rate*.gif \
140  ${OUTPUT_DIR}/${MODULE}_rate.gif
141 
142  montage \
143  -tile 6x6 \
144  -geometry +0+0 \
145  ${OUTPUT_DIR}/time*.gif \
146  ${OUTPUT_DIR}/${MODULE}_time.gif
147  done
148 done
149 
150 rm -f ${OUTPUT_DIR}/gain*.gif
151 rm -f ${OUTPUT_DIR}/rate*.gif
152 rm -f ${OUTPUT_DIR}/time*.gif
153 
154 detach
155 
156 
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
exit
Definition: JPizza.sh:36
do set_array DAQHEADER JPrintDAQHeader f
Definition: JTuneHV.sh:74
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
set_variable DETECTOR_FILE
Definition: JTuneHV.sh:42
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
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:103
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 typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:36
version
Definition: JCalibratePMT.sh:7
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
then $DIR JPlotNPE PDG P
Definition: JPlotNPE-PDG.sh:60
esac done
Definition: JAddHDE.sh:21
&set_variable OUTPUT_DIR