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 usage $script< detector file >< inputfile > nUtility script to create PDF and CDF of transition time distribution fi case set_variable WORKDIR
 
then set_variable singlesRate set_variable doublesRate set_variable numberOfSlices echo Generating random background echo Singles rate
 
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 OUTPUT_DIRECTORY $WORKDIR T
 
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
 
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
 
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null