Jpp  15.0.4
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 set_variable DEFAULT_VALUE \"NULL\"
15 set_variable: FORMAT GRAPHICS_FORMAT gif
16 set_variable+ BATCH GRAPHICS_BATCH -B
17 
18 if do_usage $*; then
19  usage "$script <daq file> <detector file> <output directory>"
20 fi
21 
22 if (( $# != 3)); then
23  fatal "Wrong number of arguments."
24 fi
25 
26 set_variable OUTPUT_DIR $argv[3]
27 set_variable DETECTOR_FILE $argv[2]
28 set_variable DAQ_FILE $argv[1]
29 
30 set_variable OUTPUT_JC_TOT ${OUTPUT_DIR}/$(basename $DAQ_FILE .root)_JC_TOT.root
31 set_variable OUTPUT_JMERGE_TOT ${OUTPUT_DIR}/$(basename $DAQ_FILE .root)_JMerge_TOT.root
32 set_variable OUTPUT_JFIT_TOT ${OUTPUT_DIR}/$(basename $DAQ_FILE .root)_JFit_TOT.root
33 set_variable PMT_PARAMETERS_FILE ${OUTPUT_DIR}/$(basename $DAQ_FILE .root)_TOT.txt
34 set_variable OUTPUT_JDA ${OUTPUT_DIR}/$(basename $DAQ_FILE .root)_JDA.root
35 
36 
37 set_variable SELECTOR JDAQTimesliceL0
38 set_variable NUMBER_OF_PMTS 31
39 
40 JCalibrateToT \
41  -a ${DETECTOR_FILE} \
42  -C ${SELECTOR} \
43  -O filter \
44  -f ${DAQ_FILE} \
45  -o ${OUTPUT_JC_TOT} \
46  --!
47 
48 JMergeCalibrateToT \
49  -f ${OUTPUT_JC_TOT} \
50  -o ${OUTPUT_JMERGE_TOT} \
51  --!
52 
53 JFitToT \
54  -P ${PMT_PARAMETERS_FILE} \
55  -a ${DETECTOR_FILE} \
56  -f ${OUTPUT_JMERGE_TOT} \
57  -o ${OUTPUT_JFIT_TOT} \
58  -x "0.0 -1.0" \
59  -w \
60  --!
61 
62 JDomAnalyser \
63  -f ${DAQ_FILE} \
64  -o ${OUTPUT_JDA} \
65  -C ${SELECTOR} \
66  --!
67 
68 #---- loop over DOMs and for each print the gains (for copying into DIA interface)
69 
70 eval `JPrintDetector -a $DETECTOR_FILE -O SUMMARY`
71 
72 kill_child_processes_at_exit
73 
74 attach getModule -a $DETECTOR_FILE
75 
76 for STRING in $STRINGS[*]; do
77  for (( FLOOR = $FIRST_FLOOR; $FLOOR <= $LAST_FLOOR; FLOOR += 1 )); do
78 
79  GAINS=()
80  RATES=()
81 
82  sput $STRING $FLOOR
83  sget MODULE
84 
85  for (( PMT = 0; $PMT < $NUMBER_OF_PMTS; PMT += 1 )); do
86 
87  set_array PMTparameters $(JPrintPMTParameters -P ${PMT_PARAMETERS_FILE} -p "$MODULE.$PMT" -k "gain")
88  set_variable gain ${PMTparameters[2]}
89 
90  set_variable rate $(JPrintResult -f ${OUTPUT_JDA}:rate_${MODULE}.${PMT}$ -F "GetMean")
91 
92  if [[ -z $rate ]]; then
93  rate=$DEFAULT_VALUE
94  fi
95  if [[ -z $gain ]]; then
96  gain=$DEFAULT_VALUE
97  fi
98 
99  GAINS+=($gain)
100  RATES+=($rate)
101 
102  JPlot1D \
103  -f ${OUTPUT_JFIT_TOT}:${MODULE}\.${(l(2)(0))PMT}\.1ToT \
104  -> "ToT [ns]" \
105  -T "${MODULE}:${(l(2)(0))PMT}" \
106  -o ${OUTPUT_DIR}/gain_${(l(2)(0))PMT}.$FORMAT $BATCH
107 
108  JPlot1D \
109  -f ${OUTPUT_JDA}:rate_${MODULE}.${PMT}$ \
110  -X \
111  -> "Rate [kHz]" \
112  -T "${MODULE}:${(l(2)(0))PMT}" \
113  -o ${OUTPUT_DIR}/rate_${(l(2)(0))PMT}.$FORMAT $BATCH
114 
115  JPlot1D \
116  -f ${OUTPUT_JDA}:time_${MODULE}.${PMT}$ \
117  -> "Frame Index" \
118  -\^ "Rate [kHz]" \
119  -O "hist" \
120  -T "${MODULE}:${(l(2)(0))PMT}" \
121  -o ${OUTPUT_DIR}/time_${(l(2)(0))PMT}.$FORMAT $BATCH
122 
123  done
124 
125  JSON="{\n\"module\":$MODULE,\n"
126 
127  JSON+="\"gains\":["
128  JSON+=$(IFS=, ; echo "${GAINS[*]}")
129  JSON+="],\n"
130 
131  JSON+="\"rates\":["
132  JSON+=$(IFS=, ; echo "${RATES[*]}")
133  JSON+="]\n}"
134 
135  echo -e ${JSON}
136 
137  montage \
138  -tile 6x6 \
139  -geometry +0+0 \
140  ${OUTPUT_DIR}/gain*.$FORMAT \
141  ${OUTPUT_DIR}/${MODULE}_gain.$FORMAT >& /dev/null
142 
143  montage \
144  -tile 6x6 \
145  -geometry +0+0 \
146  ${OUTPUT_DIR}/rate*.$FORMAT \
147  ${OUTPUT_DIR}/${MODULE}_rate.$FORMAT >& /dev/null
148 
149  montage \
150  -tile 6x6 \
151  -geometry +0+0 \
152  ${OUTPUT_DIR}/time*.$FORMAT \
153  ${OUTPUT_DIR}/${MODULE}_time.$FORMAT >& /dev/null
154  done
155 done
156 
157 rm -f ${OUTPUT_DIR}/gain*.$FORMAT
158 rm -f ${OUTPUT_DIR}/rate*.$FORMAT
159 rm -f ${OUTPUT_DIR}/time*.$FORMAT
160 
161 detach
162 
163 
then JMuonPostfit f
static const JPBS_t PMT(3, 4, 2, 3)
PBS of photo-multiplier tube (PMT)
then set_variable singlesRate set_variable doublesRate set_variable numberOfSlices echo Generating random background echo Singles rate
exit
Definition: JPizza.sh:36
then echo
const int n
Definition: JPolint.hh:660
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
Definition: JAcoustics.sh:20
*fatal Wrong number of arguments
then $JPP_DIR examples JDetector JToT o $OUTPUT_FILE n N $NPE P gain
Definition: JToT.sh:47
Template Frame for ARS data.
Definition: frame.hh:12
then echo Creating output directory
Definition: JTuneHV.sh:83
do set_variable DETECTOR_TXT $WORKDIR detector
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/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
version
Definition: JCalibratePMT.sh:7
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null
then usage $script< string identifier >< detectorfile > event file(toashort file)+" "\nNote that the event files and toashort files should be one-to-one related." fi if (( $
&set_variable OUTPUT_DIR