8 # ------------------------------------------------------------------------------------------------
10 # Utility script for finding PMT supply voltages corresponding to the nominal gain setting.
12 # ------------------------------------------------------------------------------------------------
15 if [ -z $JPP_DIR ];
then
16 echo "Variable JPP_DIR undefined."
21 source $JPP_DIR/setenv.sh $JPP_DIR
25 set_variable FIT_RANGE 0.0 -1.0 # Invalid fit-range such that ToT-fit
is conducted around histogram maximum (see JFitToT.hh)
37 usage "
$script <
detector file> <input files> [output directory] [
json output] [
root output] [test type] [test product] [timeslice selector] [default
PMT parameter file]"
50 *) fatal
"Wrong number of arguments.";;
60 OUTPUT_DIRS=(
$PMT_DIR $K40_DIR $TOT_DIR )
61 for DIR in $OUTPUT_DIRS;
do
63 echo "Creating output directory: ${DIR}"
71 for FILEPATH
in "${FILEPATHS[@]}";
do
77 if [ -z $PREFIX ] || [ -z $DETID ] || [ -z $RUNID ];
then
78 echo "WARNING: $FILEPATH does not contain correct prefix (i.e. KM3NeT_{DETID}_{RUNID}); skip."
83 set_variable OUTPUT_CALTOT $K40_DIR/${PREFIX}_calToT.root
84 set_variable OUTPUT_FITTOT $TOT_DIR/${PREFIX}_fitToT.root
86 if ( ! reuse_file $OUTPUT_PMT );
then
88 echo "Removing ${OUTPUT_PMT}"
91 if [ ! -z $PMT_DEFAULT ];
then
92 if [ -
f $PMT_DEFAULT ];
then
93 cp $PMT_DEFAULT $OUTPUT_PMT
95 echo $PMT_DEFAULT > $OUTPUT_PMT
103 -
a ${DETECTOR_FILE} \
106 -o ${OUTPUT_CALTOT} --!
115 -
a ${DETECTOR_FILE} \
116 -
f ${OUTPUT_CALTOT} \
117 -o ${OUTPUT_FITTOT} \
120 -O
"${FIT_OPTIONS}" \
124 HVTUNING_INPUT+=
"$RUNID $OUTPUT_FITTOT "
128 # Fit high-voltage values
131 set_variable OUTPUT_LOG
"${OUTPUT_DIR}/${OUTPUT_JSON%.*}.log"
134 -
f ${HVTUNING_INPUT} \
135 -O
"${OUTPUT_DIR}/${OUTPUT_JSON}" \
136 -o
"${OUTPUT_DIR}/${OUTPUT_ROOT}" \
139 -
P "${TESTPRODUCT}" \
140 -
d ${
DEBUG} --! 2>&1 | tee ${OUTPUT_LOG}
144 # Create transfer file
147 echo "Creating transfer file..."
148 set_variable OUTPUT_TRANSFER
"${OUTPUT_DIR}/${OUTPUT_JSON%.*}.transfer"
150 if ( ! reuse_file $OUTPUT_TRANSFER );
then
152 if [ -
f $OUTPUT_TRANSFER ];
then
156 set_variable CONTENT_STRING
"Content-Disposition: form-data; name="
165 echo "${SEPARATOR}\n${CONTENT_STRING}\"usr\"\n\n${USRNAME}" >> $OUTPUT_TRANSFER
166 echo "${SEPARATOR}\n${CONTENT_STRING}\"pwd\"\n\n${PASSWRD}" >> $OUTPUT_TRANSFER
167 echo "${SEPARATOR}\n${CONTENT_STRING}\"mode\"\n\nsrv" >> $OUTPUT_TRANSFER
168 echo "${SEPARATOR}\n${CONTENT_STRING}\"jsonfile\"; filename=\"data.json\"\n" >> $OUTPUT_TRANSFER
170 cat
"${OUTPUT_DIR}/${OUTPUT_JSON}" >> $OUTPUT_TRANSFER
171 echo "\n${SEPARATOR}" >> $OUTPUT_TRANSFER
173 unix2dos $OUTPUT_TRANSFER
do echo Generating $dir eval D
void set_variable(const std::string &name, const std::string &value)
Set environment variable.
bool read(Vec &v, std::istream &is)
Read a Vec(tor) from a stream.
then usage for INPUT_FILE in $INPUT_FILES[*]
then JPlot1D f $WORKDIR postfit[prefit\] root
esac print_variable DETECTOR INPUT_FILE OUTPUT_FILE CDF for TYPE in
fi set_variable OUTPUT_PMT $PMT_DIR
do echo Generating $dir eval DIR
fi JEventTimesliceWriter a
*fatal Wrong number of arguments esac if[!-d ${OUTPUT_DIR}]
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR set_variable DEBUG set_variable NPE set_variable FIT_RANGE set_variable OUTPUT_DIR tmp set_variable OUTPUT_JSON $OUTPUT_DIR HVtuning json set_variable OUTPUT_ROOT $OUTPUT_DIR HVtuning root set_variable FIT_OPTIONS RME set_variable PMT_DEFAULT gain
then usage $script(input file)+" fi if (( $ fatal "Invalid number of arguments." fi JCookie.sh set_array INPUT_FILES $argv[1
do montage tile geometry tmp
do set_variable OUTPUT_DIRECTORY $WORKDIR T
then print_variable DETECTOR INPUT_FILE INTERMEDIATE_FILE check_input_file $DETECTOR $INPUT_FILE check_output_file $INTERMEDIATE_FILE $OUTPUT_FILE JMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
then fatal Not enough arguments fi set_variable DETECTOR $argv[1] INPUT_FILES
JDAQPMTIdentifier PMT
Command line options.
#define DEBUG(A)
Message macros.