Jpp  18.0.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JTuneHV.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author bjung
4 #
5 version=1.0
6 script=${0##*/}
7 
8 # ------------------------------------------------------------------------------------------------
9 #
10 # Utility script for finding PMT supply voltages corresponding to the nominal gain setting.
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 set_variable: DEBUG CALIBRATION_DEBUG 2
24 set_variable: FIT_OPTIONS TUNEHV_GAINFIT_OPTIONS "RME"
25 set_variable: FIT_RANGE TUNEHV_GAINFIT_RANGE "0.0 -1.0" # Invalid fit-range such that ToT-fit is conducted around histogram maximum (see JFitToT.hh)
26 set_variable: OUTPUT_FILE TUNEHV_OUTPUT_FILE "HVtuning%"
27 set_variable: DB_APIVERSION TUNEHV_DB_APIVERSION "2.0.0"
28 set_variable: DB_TESTTYPE TUNEHV_DB_TESTTYPE "HV-TUNING-GAIN-v3"
29 set_variable: TIMESLICE_SELECTOR TUNEHV_TIMESLICE_SELECTOR "JDAQTimesliceL0"
30 
31 set_variable WORKDIR ${TMPDIR:-/tmp}
33 
34 if do_usage $*; then
35  usage "$script <detector file> <input files> [output directory] [PMT parameter file]\n"\
36  "Note that if more than one input file is specified, all other arguments must be provided."
37 fi
38 
39 case $# in
42  2) set_array INPUT_FILES $2;
45  set_array INPUT_FILES $argv[2,-3]
48 esac
49 
51 
52 
53 # Define directories
54 
55 set_variable PMT_DIR $WORKDIR/PMTfiles
56 set_variable CAL_DIR $WORKDIR/caldata
57 set_variable TOT_DIR $WORKDIR/fitdata
58 
59 # Create directories
60 
61 for DIR in $PMT_DIR $CAL_DIR $TOT_DIR; do
62 
63  if [[ ! -d ${DIR} ]]; then
64  echo "Creating output directory:\t${DIR}"
65  mkdir -p ${DIR}
66  fi
67 done
68 
69 
70 # Retrieve cookie
71 
72 JCookie.sh
73 
74 set_variable COOKIE $(cat ~/.km3netdb_cookie)
75 set_variable LOGIN ${${COOKIE#*_}%%_*}
76 set_variable LOCATIONID $(getLocationID -L ${LOGIN})
77 
78 # Fit gain-values
79 
80 set_array RUN_NUMBERS ""
81 set_array OUTPUT_FITS ""
82 
83 for INPUT_FILE in ${INPUT_FILES[@]}; do
84 
85  set_array DAQHEADER $(JPrintDAQHeader -f ${INPUT_FILE})
88 
89  if [ -z $RUNID ]; then
90  echo "WARNING: header of ${INPUT_FILE}\n"
91  echo "does not contain run number; skip."
92  continue;
93  fi
94 
95  set_array RUN_NUMBERS ${RUN_NUMBERS[@]} ${RUNID}
96 
97  set_variable FILENAME ${${INPUT_FILE##*/}%.*}
98  set_variable OUTPUT_PMT $PMT_DIR/${FILENAME}_PMT.txt
99  set_variable OUTPUT_CALTOT $CAL_DIR/${FILENAME}_calToT.root
100  set_variable OUTPUT_FITTOT $TOT_DIR/${FILENAME}_fitToT.root
101  set_variable LOG_FITTOT $TOT_DIR/${FILENAME}_fitToT.log
102 
103 
104  if [ ! -z $PMT_PARAMETER_FILE ]; then
105  if [ -f $PMT_PARAMETER_FILE ]; then
106  cp $PMT_PARAMETER_FILE $OUTPUT_PMT
107  else
108  echo $PMT_PARAMETER_FILE > $OUTPUT_PMT
109  fi
110  fi
111 
112 
113  if (( 1 )); then
114 
115  JCalibrateToT \
117  -f ${INPUT_FILE} \
118  -C ${TIMESLICE_SELECTOR} \
119  -o ${OUTPUT_CALTOT} --!
120  fi
121 
122 
123  if (( 1 )); then
124 
125  JFitToT \
126  -w \
127  -a ${DETECTOR_FILE} \
128  -f ${OUTPUT_CALTOT} \
129  -o ${OUTPUT_FITTOT} \
130  -P ${OUTPUT_PMT} \
131  -x "${FIT_RANGE}" \
132  -O ${FIT_OPTIONS} \
133  -d ${DEBUG} --! 2>&1 | tee ${LOG_FITTOT}
134  fi
135 
136  set_array OUTPUT_FITS ${OUTPUT_FITS[@]} ${RUNID} ${OUTPUT_FITTOT}
137 done
138 
139 
140 # Retrieve high-voltage data
141 
142 if (( 1 )); then
143 
144  JGetInputTuneHV \
145  -f "${OUTPUT_FITS[*]}" \
146  -o ${WORKDIR}/${OUTPUT_FILE/\%/.root} \
147  -a ${DETECTOR_FILE} \
148  -d ${DEBUG} --! 2>&1 | tee ${WORKDIR}/${OUTPUT_FILE/\%/.log}
149 fi
150 
151 
152 # Fit high-voltage values
153 
154 if (( 1 )); then
155 
156  JAsciiDB \
157  -q upi \
158  -@ "pbs = 3.4.2.3" \
159  -d ${DEBUG} -- > ${WORKDIR}/upi.txt
160 
161  timer_stop
162 
163  JTuneHV \
164  -f ${WORKDIR}/${OUTPUT_FILE/\%/.root} \
165  -o ${WORKDIR}/${OUTPUT_FILE/\%/.json} \
166  -a ${DETECTOR_FILE} \
167  -b ${WORKDIR}/upi.txt \
168  -# "APIversion = ${DB_APIVERSION}" \
169  -# "testType = ${DB_TESTTYPE}" \
170  -# "login = ${LOGIN}" \
171  -# "locationID = ${LOCATIONID}" \
172  -# "runNumbers = ${RUN_NUMBERS[*]}" \
173  -# "elapsedTime = ${TIMER}" \
174  -d ${DEBUG} --! 2>&1 | tee -a ${WORKDIR}/${OUTPUT_FILE/\%/.log}
175 
176  rm -f ${WORKDIR}/upi.txt
177 fi
178 
179 
180 # Print summary
181 
182 if (( 1 )); then
183 
184  JPrintTuneHV \
185  -f ${WORKDIR}/${OUTPUT_FILE/\%/.json} \
186  -a ${DETECTOR_FILE} \
187  -d ${DEBUG} --!
188 fi
189 
190 
191 
then usage $script< input file > nFor possible input see
Definition: JMechanics.sh:23
data_type w[N+1][M+1]
Definition: JPolint.hh:778
then usage $script< detector identifier >< startdate\"YYYY-MM-DDHH:MM:SS\"><finaldate\"YYYY-MM-DDHH:MM:SS\"><QA/QCfile> fi case set_variable QAQC_TXT $argv[4]
Definition: JDataMonitor.sh:24
then usage $script< detector file >< inputfiles > n Note that if more than one input file is all other arguments must be provided fi case set_variable PMT_PARAMETER_FILE
Definition: JTuneHV.sh:36
set_variable LOCATIONID(getLocationID-L ${LOGIN}) if(($
Definition: JEditTuneHV.sh:80
version
Definition: JEditTuneHV.sh:5
*set_variable DETECTOR_FILE set_array INPUT_FILES $argv[2,-3] set_variable WORKDIR $argv[-2] set_variable PMT_PARAMETER_FILE $argv[-1] esac timer_start set_variable PMT_DIR $WORKDIR PMTfiles set_variable CAL_DIR $WORKDIR caldata set_variable TOT_DIR $WORKDIR fitdata for DIR in $PMT_DIR $CAL_DIR $TOT_DIR
Definition: JTuneHV.sh:43
then JLigier sh continue fi cat
Definition: JDAQDriver.sh:51
TFitResultPtr Fit(TH1D *h)
Definition: JNanobeacon.hh:14
fi set_array RUN_NUMBERS
Definition: JTuneHV.sh:95
o $QUALITY_ROOT d $DEBUG!CHECK_EXIT_CODE JPlot1D f
Definition: JDataQuality.sh:76
usr share Modules init zsh export TMPDIR
exit
Definition: JPizza.sh:36
do set_array DAQHEADER(JPrintDAQHeader-f ${INPUT_FILE}) set_variable DETID $
Definition: JTuneHV.sh:85
is
Definition: JDAQCHSM.chsm:167
then fatal Wrong number of arguments fi JConvertDetectorFormat a o
then fatal Wrong number of arguments fi DIR
set_variable DETECTOR_FILE
Definition: JTuneHV.sh:43
static const double C
Physics constants.
then set_variable DETID
Definition: JEditTuneHV.sh:63
then timer_start(JRandomTimesliceWriter-a ${DETECTOR}-o ${PIPE}-n ${NUMBER_OF_SLICES}-P ${PMT_FILE}-d ${DEBUG}-S ${SEED}-B"$BACKGROUND_HZ"-N"$RECYCLING"--!&&for((i=0;$i!=10;++i));do;echo 'EOF' > $PIPE;usleep 100000;done &&rm-f $PIPE)&JTimesliceReprocessor-a $
then rm
Definition: sftpput.zsh:30
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
Definition: JAcoustics.sh:21
then JCalibrateToT a
Definition: JTuneHV.sh:116
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable DEBUG set_variable WORKDIR
Definition: JLegolas.sh:20
* usage
&set_variable OUTPUT_FILE
set_variable INPUT_FILE
then set_variable RUNID
Definition: JEditTuneHV.sh:67
do sput $STRING $FLOOR sget MODULE INPUT_FILES
Definition: JCanberra.sh:77
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
then $JPP_DIR examples JDetector JToT o $OUTPUT_FILE n N $NPE P gain
Definition: JToT.sh:47
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:47
then display $WORKDIR
Definition: plot-Domino.sh:128
then cp
possible values
esac timer_start JCookie sh set_variable COOKIE(cat~/.km3netdb_cookie) set_variable LOGIN $
Definition: JEditTuneHV.sh:78
then eval ls $DIR $ID $TYPE _
Definition: getArchive.sh:104
then echo
Definition: JQAQC.sh:90
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 JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Definition: JCanberra.sh:46
then $DIR JPlotNPE PDG P
Definition: JPlotNPE-PDG.sh:62
esac done
Definition: JAddHDE.sh:21
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62