Jpp  pmt_effective_area_update
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
software/JReconstruction/JEnergyCorrection.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 #
3 # \author mdejong
4 #
5 version=1.0
6 script=${0##*/}
7 
8 # ------------------------------------------------------------------------------------------
9 #
10 # Utility script to determine muon energy correction base on Monte Carlo simulations.
11 #
12 # ------------------------------------------------------------------------------------------
13 
14 if [ -z $JPP_DIR ]; then
15  echo "Variable JPP_DIR undefined."
16  exit
17 fi
18 
19 source $JPP_DIR/setenv.sh $JPP_DIR
20 
21 zmodload zsh/mathfunc
22 
25 set_variable NUMBER_OF_RUNS 10
26 set_variable: FORMAT GRAPHICS_FORMAT gif
27 set_variable+ BATCH GRAPHICS_BATCH -B
28 
29 if do_usage $*; then
30  usage "$script <working directory> <option>"\
31  "\nPossible options: run fit interpolate"
32 fi
33 
34 if (( $# != 2 )); then
35  fatal "Wrong number of arguments."
36 fi
37 
40 
41 if [[ $OPTION != "run" && $OPTION != "fit" && $OPTION != "interpolate" ]]; then
42  fatal "Invalid option $OPTION."
43 fi
44 
45 mkdir -p $WORKDIR
46 
47 if [[ $OPTION == "run" ]]; then
48 
50 
51  if [[ ! -f $DETECTOR ]]; then
52  JDetector.sh $DETECTOR
53  fi
54 
55  for (( i = 1; $i <= $NUMBER_OF_RUNS; ++i )); do
56  JSirene.sh $DETECTOR $JPP_DATA/genhen.km3net_wpd_V2_0.evt.gz $WORKDIR/sirene_${i}.root
57  JTriggerEfficiency.sh $DETECTOR $DETECTOR $WORKDIR/sirene_${i}.root $WORKDIR/trigger_efficiency_${i}.root
58  JARCAMuonReconstruction.sh $DETECTOR $WORKDIR/trigger_efficiency_${i}.root $WORKDIR/%_${i}.root
59  done
60 fi
61 
62 if [[ $OPTION == "fit" || $OPTION == "interpolate" ]]; then
63 
64  if ( ! reuse_file $WORKDIR/energy_correction.root ); then
65 
66  set_array INPUT_FILES `ls $WORKDIR/jchain.arca_*.root`
67 
68  if (( ${#INPUT_FILES} == 0 )); then
69  fatal "No input file in directory $WORKDIR"
70  fi
71 
72  else
73 
74  set_array INPUT_FILES `ls $WORKDIR/energy_correction.root`
75  fi
76 
77  if [[ $OPTION == "fit" ]]; then
78 
79  JEnergyCorrection \
80  -f "$INPUT_FILES[*]" \
81  -o $WORKDIR/energy_correction.root \
82  -F "[0] + [1]*x + [1]*x*x + [3]*x*x*x" \
83  -@ "p0 = 0.0" \
84  -@ "p1 = 1.0" \
85  -@ "p2 = 0.0" \
86  -@ "p3 = 0.0" \
87  -d $DEBUG --!
88 
89  elif [[ $OPTION == "interpolate" ]]; then
90 
91  JEnergyCorrection \
92  -f "$INPUT_FILES[*]" \
93  -o $WORKDIR/energy_correction.root \
94  -d $DEBUG --!
95  fi
96 
98  set_variable YMAX `JPrintResult -f $WORKDIR/energy_correction.root:h1 -F "GetMaximum + 0.5"`
99 
100  JPlot1D \
101  -f $WORKDIR/energy_correction.root:h1 \
102  -y "$YMIN $YMAX" \
103  -\> "log(E_{fit}/GeV)" \
104  -\^ "log(E_{true}/GeV)" \
105  -T "" \
106  -o E.$FORMAT
107 
108  echo result stored in $WORKDIR/energy_correction.root
109 fi
then usage $script< detector >< run >< outputfile > fi case set_variable OPTION
Definition: JTuna.sh:26
do JSirene sh $DETECTOR $JPP_DATA genhen km3net_wpd_V2_0 evt gz $WORKDIR sirene_
then usage $script< detector file >< inputfile > nUtility script to create PDF and CDF of transition time distribution fi case set_variable WORKDIR
Definition: JLegolas.sh:31
exit
Definition: JPizza.sh:36
then for HISTOGRAM in h0 h1
Definition: JMatrixNZ.sh:71
fatal Invalid number of arguments esac let YMIN
Definition: testToT.sh:39
then JPizza f
Definition: JPizza.sh:46
then echo
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
Definition: JAcoustics.sh:20
return result
Definition: JPolint.hh:727
do set_variable OUTPUT_DIRECTORY $WORKDIR T
do $DIR JTransitTime o
Definition: JTransitTime.sh:44
then awk F
* usage
set_array INPUT_FILES
*set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2,-2] set_variable OUTPUT_FILE $argv[-1]
Definition: JDomino.sh:39
then JMuonMCEvt f $INPUT_FILE o $INTERMEDIATE_FILE d
Definition: JMuonPath.sh:47
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 display $WORKDIR
Definition: plot-Domino.sh:128
set_variable DETECTOR
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
Definition: JCanberra.sh:40
version
Definition: JCalibratePMT.sh:7
*fatal Wrong option $OPTION
then usage $script[input file[working directory[option]]] nWhere option can be E
Definition: JMuonPostfit.sh:36
esac done
Definition: JAddHDE.sh:21
do alias $i