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
28 set_variable: FORMAT GRAPHICS_FORMAT gif
32 usage "$script <working directory> <option>"\
33 "\nPossible options: run fit interpolate"
37 fatal
"Wrong number of arguments."
44 fatal
"Invalid option $OPTION."
57 for (( i = 1;
$i <= $NUMBER_OF_RUNS; ++i ));
do
60 JARCAMuonReconstruction.sh
$DETECTOR $WORKDIR/trigger_efficiency_${i}.root
$WORKDIR/%_${i}.root $JPP_DATA/PMT_parameters.txt
64 if [[ $OPTION ==
"fit" || $OPTION ==
"interpolate" ]];
then
66 if ( ! reuse_file
$WORKDIR/energy_correction.root );
then
71 fatal
"No input file in directory $WORKDIR"
79 if [[ $OPTION ==
"fit" ]];
then
82 -
f "$INPUT_FILES[*]" \
84 -
F "[0] + [1]*x + [2]*x*x + [3]*x*x*x" \
93 elif [[ $OPTION ==
"interpolate" ]];
then
96 -
f "$INPUT_FILES[*]" \
105 -\>
"E_{fit} [GeV]" \
106 -\<
"E_{true} [GeV]" \
112 -
o ExE.$FORMAT $BATCH
120 -\>
"log(E_{fit}/GeV)" \
121 -\^
"log(E_{true}/GeV)" \
then usage $script< detector >< run >< outputfile > fi case set_variable OPTION
*set_variable DETECTOR_ID $argv[1] set_array RUNS $argv[2,-2]
o $QUALITY_ROOT d $DEBUG!JPlot1D f
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
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
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
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
skip elif((BINFRAC< 1.0))
do JSirene sh $DETECTOR $JPP_DATA genhen km3net_wpd_V2_0 evt gz $WORKDIR sirene_
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 MODULE getModule a $WORKDIR detector_a datx L $STRING JEditDetector a $WORKDIR detector_a datx M $MODULE setz o $WORKDIR detector_a datx JEditDetector a $WORKDIR detector_b datx M $MODULE setz o $WORKDIR detector_b datx done echo Output stored at $WORKDIR detector_a datx and $WORKDIR tripod_a txt JDrawDetector2D a $WORKDIR detector_a datx a $WORKDIR detector_b datx L BL o detector $FORMAT $BATCH JDrawDetector2D T $WORKDIR tripod_a txt T $WORKDIR tripod_b txt L BL o tripod $FORMAT $BATCH JCompareDetector a $WORKDIR detector_a datx b $WORKDIR detector_b datx o $WORKDIR abc root &dev null for KEY in X Y Z
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