8 # ------------------------------------------------------------------------------------------
10 # Utility script to determine muon energy correction base on Monte Carlo simulations.
12 # ------------------------------------------------------------------------------------------
14 if [ -z $JPP_DIR ];
then
15 echo "Variable JPP_DIR undefined."
19 source $JPP_DIR/setenv.sh $JPP_DIR
30 usage "$script <working directory> <option>"\
31 "\nPossible options: run fit interpolate"
35 fatal
"Wrong number of arguments."
42 fatal
"Invalid option $OPTION."
55 for (( i = 1;
$i <= $NUMBER_OF_RUNS; ++i ));
do
62 if [[ $OPTION ==
"fit" || $OPTION ==
"interpolate" ]];
then
64 if ( ! reuse_file
$WORKDIR/energy_correction.root );
then
69 fatal
"No input file in directory $WORKDIR"
77 if [[ $OPTION ==
"fit" ]];
then
80 -
f "$INPUT_FILES[*]" \
82 -
F "[0] + [1]*x + [1]*x*x + [3]*x*x*x" \
89 elif [[ $OPTION ==
"interpolate" ]];
then
92 -
f "$INPUT_FILES[*]" \
103 -\>
"log(E_{fit}/GeV)" \
104 -\^
"log(E_{true}/GeV)" \
then usage $script< detector file >< detectorfile > nIf the range of floors is the first detector file is aligned to the second before the comparison nIn only modules within the given range of floors are used fi case set_variable RANGE $argv[3]
then usage $script< detector >< run >< outputfile > fi case set_variable OPTION
do JSirene sh $DETECTOR $JPP_DATA genhen km3net_wpd_V2_0 evt gz $WORKDIR sirene_
o $QUALITY_ROOT d $DEBUG!JPlot1D f
then for HISTOGRAM in h0 h1
fatal Invalid number of arguments esac let YMIN
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
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 if do_usage *then usage $script[(input file)+] fi set_variable DEBUG set_variable WORKDIR TMPDIR
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
skip elif((BINFRAC< 1.0))
do sput $STRING $FLOOR sget MODULE INPUT_FILES
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
do set_variable DETECTOR_TXT $WORKDIR detector
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
*fatal Wrong option $OPTION