Jpp
 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 ${TUNEHV_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_TESTTYPE ${TUNEHV_DB_TESTTYPE:-"HV-TUNING-SEA-GAIN-v1"}
28 set_variable TIMESLICE_SELECTOR ${TUNEHV_TIMESLICE_SELECTOR:-"JDAQTimesliceL0"}
29 
32 
33 if ( do_usage $* ); then
34  usage "$script <detector file> <input files> [output directory] [PMT parameter file]\n"\
35  "Note that if more than one input file is specified, all other arguments must be provided."
36 fi
37 
38 case $# in
41  2) set_array INPUT_FILES $2;
43  *) set_variable DETECTOR_FILE $1
44  set_array INPUT_FILES $argv[2,-3]
45  set_variable WORKDIR $argv[-2]
47 esac
48 
49 
50 # Define directories
51 set_variable PMT_DIR $WORKDIR/PMTfiles
52 set_variable CAL_DIR $WORKDIR/caldata
53 set_variable TOT_DIR $WORKDIR/fitdata
54 
55 # Create directories
56 for DIR in $PMT_DIR $CAL_DIR $TOT_DIR; do
57 
58  if [[ ! -d ${DIR} ]]; then
59  echo "Creating output directory:\t${DIR}"
60  mkdir -p ${DIR}
61  fi
62 done
63 
64 
65 # Retrieve cookie
66 JCookie.sh
67 
68 
69 # Fit gain-values
70 set_variable HVTUNING_INPUT ""
71 
72 for INPUT_FILE in ${INPUT_FILES[@]}; do
73 
74  set_array DAQHEADER `JPrintDAQHeader -f ${INPUT_FILE}`
75  set_variable DETID ${DAQHEADER[1]}
76  set_variable RUNID ${DAQHEADER[2]}
77 
78  if [ -z $RUNID ]; then
79  echo "WARNING: header of ${INPUT_FILE}\n"
80  echo "does not contain run number; skip."
81  continue;
82  fi
83 
85  set_variable OUTPUT_PMT $PMT_DIR/${FILENAME}_PMT.txt
86  set_variable OUTPUT_CALTOT $CAL_DIR/${FILENAME}_calToT.root
87  set_variable OUTPUT_FITTOT $TOT_DIR/${FILENAME}_fitToT.root
88  set_variable LOG_FITTOT $TOT_DIR/${FILENAME}_fitToT.log
89 
90 
91  if [ ! -z $PMT_PARAMETER_FILE ]; then
92  if [ -f $PMT_PARAMETER_FILE ]; then
93  cp $PMT_PARAMETER_FILE $OUTPUT_PMT
94  else
95  echo $PMT_PARAMETER_FILE > $OUTPUT_PMT
96  fi
97  fi
98 
99 
100  if (( 1 )); then
101 
102  JCalibrateToT \
103  -a ${DETECTOR_FILE} \
104  -f ${INPUT_FILE} \
105  -C ${TIMESLICE_SELECTOR} \
106  -o ${OUTPUT_CALTOT} --!
107 
108  fi
109 
110 
111  if (( 1 )); then
112 
113  JFitToT \
114  -w \
115  -a ${DETECTOR_FILE} \
116  -f ${OUTPUT_CALTOT} \
117  -o ${OUTPUT_FITTOT} \
118  -P ${OUTPUT_PMT} \
119  -x ${FIT_RANGE} \
120  -O ${FIT_OPTIONS} \
121  -d ${DEBUG} --! 2>&1 | tee ${LOG_FITTOT}
122  fi
123 
124  HVTUNING_INPUT+=" $RUNID $OUTPUT_FITTOT"
125 done
126 
127 
128 # Fit high-voltage values
129 if (( 1 )); then
130 
131  JTuneHV \
132  -f ${HVTUNING_INPUT} \
133  -O ${WORKDIR}/${OUTPUT_FILE/\%/.json} \
134  -o ${WORKDIR}/${OUTPUT_FILE/\%/.root} \
135  -a ${DETECTOR_FILE} \
136  -T ${DB_TESTTYPE} \
137  -d ${DEBUG} --! 2>&1 | tee ${OUTPUT_DIR}/${OUTPUT_FILE/\%/.log}
138 fi
139 
140 
141 # Print summary
142 if (( 1 )); then
143 
144  JPrintTuneHV \
145  -f ${WORKDIR}/${OUTPUT_FILE/\%/.json} \
146  -D ${DETID} \
147  -d ${DEBUG} --!
148 fi
149 
150 
151 
data_type w[N+1][M+1]
Definition: JPolint.hh:741
do echo Generating $dir eval D
Definition: JDrawLED.sh:50
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:35
void set_variable(const std::string &name, const std::string &value)
Set environment variable.
exit
Definition: JPizza.sh:36
do set_array DAQHEADER JPrintDAQHeader f
Definition: JTuneHV.sh:74
do echo Generating $dir eval DIR
Definition: JPlotNPE1D.sh:52
is
Definition: JDAQCHSM.chsm:167
set_variable DETECTOR_FILE
Definition: JTuneHV.sh:42
then echo
static const double C
Physics constants.
fi set_variable FILENAME
Definition: JTuneHV.sh:84
do set_variable OUTPUT_DIRECTORY $WORKDIR T
&set_variable OUTPUT_FILE
do $DIR JTransitTime o
Definition: JTransitTime.sh:44
* usage
then fatal Not enough arguments fi set_variable DETECTOR $argv[1] INPUT_FILES
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi mv $WORKDIR/fit.root $MODULE_ROOT typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
Definition: module-Z:fit.sh:84
*set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2,-2] set_variable OUTPUT_FILE $argv[-1]
Definition: JDomino.sh:39
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:45
then JCalibrateToT a
Definition: JTuneHV.sh:103
then display $WORKDIR
Definition: plot-Domino.sh:127
then cp
*set_variable DETECTOR_FILE set_array INPUT_FILES $argv[2,-3] set_variable WORKDIR $argv[-2] set_variable PMT_PARAMETER_FILE $argv[-1] esac 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:42
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
set_variable INPUT_FILE
then usage $script< detector file >< inputfile > fi case set_variable WORKDIR
Definition: JLegolas.sh:28
then $DIR JPlotNPE PDG P
Definition: JPlotNPE-PDG.sh:60
esac done
Definition: JAddHDE.sh:21
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62
&set_variable OUTPUT_DIR