8 # ------------------------------------------------------------------------------------------
10 # Utility script to plot JTriggerProcessor CPU requirements.
12 # ------------------------------------------------------------------------------------------
15 if [ -z $JPP_DIR ];
then
16 echo "Variable JPP_DIR undefined."
21 source $JPP_DIR/setenv.sh $JPP_DIR
35 usage "$script [detector file [trigger file [working directory]]]"
53 echo "Detector: $DETECTOR"
54 echo "Trigger parameters:"
59 for RATE_L0_HZ
in 5e3 7e3 9e3 11e3 13e3 15e3 17e3 19e3;
do
66 echo "Generating random background at ${RATE_L0_HZ} Hz."
68 nohup JRandomTimesliceWriter \
71 -B
"$RATE_L0_HZ $RATE_L1_HZ" \
72 -
n $NUMBER_OF_SLICES \
73 -
d $DEBUG > /dev/
null 2>&1 &
75 echo Processing random data.
83 -
d $DEBUG > $LOGGER_FILE 2>&1
97 for RATE_L0_HZ
in 5e3 7e3 9e3 11e3 13e3 15e3 17e3 19e3;
do
103 for KEY
in "Calibration" "L0" "L1" "L2" "Timeslice router" "Trigger" "Trigger router";
do
105 ELAPSED_TIME=`
awk -
v key=
"$KEY" '$0 == key,/CPU/ { if ($3 == "elapsed") print $1 }' $LOGGER_FILE`
107 TOTAL_CPU=$(($TOTAL_CPU + $ELAPSED_TIME / $FRAMETIME_MS))
111 RATE_L0_KHZ=$(($RATE_L0_HZ * 1e-3))
113 echo "$RATE_L0_KHZ $TOTAL_CPU" >> $CPU_TXT
128 -
o cpu.$FORMAT $BATCH
135 if [[ -
f $RATE_TXT ]];
then
139 for RATE_L0_HZ in 5e3 7e3 9e3 11e3 13e3 15e3 17e3 19e3;
do
143 TRIGGER_RATE_HZ=`
awk '/Trigger rate \[Hz\]/ { print $4 }' $LOGGER_FILE`
145 RATE_L0_KHZ=$(($RATE_L0_HZ * 1e-3))
147 echo "$RATE_L0_KHZ $TRIGGER_RATE_HZ" >> $RATE_TXT
160 -\^
"Trigger rate [Hz]" \
162 -
o rate.$FORMAT $BATCH
then JLigier sh continue fi cat
then set_variable singlesRate set_variable doublesRate set_variable numberOfSlices echo Generating random background echo Singles rate
o $QUALITY_ROOT d $DEBUG!JPlot1D f
static const double C
Physics constants.
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
do set_variable STRING_TXT awk
do set_variable OUTPUT_DIRECTORY $WORKDIR T
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 ${TMPDIR:-/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
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable DEBUG set_variable WORKDIR
then JConvertDetectorFormat a $DETECTOR[1] o
then usage $script[detector file[output file[PMT parameters file[number of slices]]]] nAuxiliary script to produce random time slice data fi case set_variable NUMBER_OF_SLICES
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
then set_variable MODULE getModule a $DETECTOR L $STRING $FLOOR JEditDetector a $DETECTOR M $MODULE add $X o $DETECTOR else echo No update of detector $DETECTOR
then usage $script< input_file >< detector_file > fi set_variable OUTPUT_DIR set_variable SELECTOR JDAQTimesliceL1 set_variable DEBUG case set_variable DEBUG
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 CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null