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
24 set_variable WORKDIR ${TMPDIR:-/tmp}/
25 set_variable NUMBER_OF_RUNS 10
26 set_variable NUMBER_OF_BINS 40
27 set_variable RANGE_LOGE 3.0 6.5
28 set_variable: FORMAT GRAPHICS_FORMAT gif
29 set_variable+ BATCH GRAPHICS_BATCH -B
32 usage "$script <working directory> <option>"\
33 "\nPossible options: run fit interpolate"
36 if (( $# != 2 )); then
37 fatal "Wrong number of arguments."
40 set_variable WORKDIR $argv[1]
41 set_variable OPTION $argv[2]
43 if [[ $OPTION != "run" && $OPTION != "fit" && $OPTION != "interpolate" ]]; then
44 fatal "Invalid option $OPTION."
49 if [[ $OPTION == "run" ]]; then
51 set_variable DETECTOR $WORKDIR/detector.detx
53 if [[ ! -f $DETECTOR ]]; then
54 JDetector.sh $DETECTOR
57 for (( i = 1; $i <= $NUMBER_OF_RUNS; ++i )); do
58 JSirene.sh $DETECTOR $JPP_DATA/genhen.km3net_wpd_V2_0.evt.gz $WORKDIR/sirene_${i}.root
59 JTriggerEfficiency.sh $DETECTOR $DETECTOR $WORKDIR/sirene_${i}.root $WORKDIR/trigger_efficiency_${i}.root
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
68 set_array INPUT_FILES `ls $WORKDIR/jchain.arca_*.root`
70 if (( ${#INPUT_FILES} == 0 )); then
71 fatal "No input file in directory $WORKDIR"
76 set_array INPUT_FILES `ls $WORKDIR/energy_correction.root`
79 if [[ $OPTION == "fit" ]]; then
82 -f "$INPUT_FILES[*]" \
83 -o $WORKDIR/energy_correction.root \
84 -F "[0] + [1]*x + [2]*x*x + [3]*x*x*x" \
93 elif [[ $OPTION == "interpolate" ]]; then
96 -f "$INPUT_FILES[*]" \
97 -o $WORKDIR/energy_correction.root \
104 -f $WORKDIR/energy_correction.root:h2 \
106 -< "E_{true} [GeV]" \
112 -o ExE.$FORMAT $BATCH
115 set_variable YMAX `JPrintResult -f $WORKDIR/energy_correction.root:h1 -F "GetMaximum + 0.5"`
118 -f $WORKDIR/energy_correction.root:h1 \
120 -> "log(E_{fit}/GeV)" \
121 -\^ "log(E_{true}/GeV)" \
125 echo result stored in $WORKDIR/energy_correction.root