Jpp  17.3.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JARCAEnergyCorrection.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 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
30 
31 if do_usage $*; then
32  usage "$script <working directory> <option>"\
33  "\nPossible options: run fit interpolate"
34 fi
35 
36 if (( $# != 2 )); then
37  fatal "Wrong number of arguments."
38 fi
39 
42 
43 if [[ $OPTION != "run" && $OPTION != "fit" && $OPTION != "interpolate" ]]; then
44  fatal "Invalid option $OPTION."
45 fi
46 
47 mkdir -p $WORKDIR
48 
49 if [[ $OPTION == "run" ]]; then
50 
52 
53  if [[ ! -f $DETECTOR ]]; then
54  JDetector.sh $DETECTOR
55  fi
56 
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
61  done
62 fi
63 
64 if [[ $OPTION == "fit" || $OPTION == "interpolate" ]]; then
65 
66  if ( ! reuse_file $WORKDIR/energy_correction.root ); then
67 
68  set_array INPUT_FILES `ls $WORKDIR/jchain.arca_*.root`
69 
70  if (( ${#INPUT_FILES} == 0 )); then
71  fatal "No input file in directory $WORKDIR"
72  fi
73 
74  else
75 
76  set_array INPUT_FILES `ls $WORKDIR/energy_correction.root`
77  fi
78 
79  if [[ $OPTION == "fit" ]]; then
80 
81  JEnergyCorrection \
82  -f "$INPUT_FILES[*]" \
83  -o $WORKDIR/energy_correction.root \
84  -F "[0] + [1]*x + [2]*x*x + [3]*x*x*x" \
85  -@ "p0 = 0.0" \
86  -@ "p1 = 1.0" \
87  -@ "p2 = 0.0" \
88  -@ "p3 = 0.0" \
89  -N $NUMBER_OF_BINS \
90  -x "$RANGE_LOGE" \
91  -d $DEBUG --!
92 
93  elif [[ $OPTION == "interpolate" ]]; then
94 
95  JEnergyCorrection \
96  -f "$INPUT_FILES[*]" \
97  -o $WORKDIR/energy_correction.root \
98  -N $NUMBER_OF_BINS \
99  -x "$RANGE_LOGE" \
100  -d $DEBUG --!
101  fi
102 
103  JPlot2D \
104  -f $WORKDIR/energy_correction.root:h2 \
105  -\> "E_{fit} [GeV]" \
106  -\< "E_{true} [GeV]" \
107  -XX \
108  -YY \
109  -Z \
110  -O COLZ \
111  -T "" \
112  -o ExE.$FORMAT $BATCH
113 
115  set_variable YMAX `JPrintResult -f $WORKDIR/energy_correction.root:h1 -F "GetMaximum + 0.5"`
116 
117  JPlot1D \
118  -f $WORKDIR/energy_correction.root:h1 \
119  -y "$YMIN $YMAX" \
120  -\> "log(E_{fit}/GeV)" \
121  -\^ "log(E_{true}/GeV)" \
122  -T "" \
123  -o E.$FORMAT $BATCH
124 
125  echo result stored in $WORKDIR/energy_correction.root
126 fi
then usage $script< detector >< run >< outputfile > fi case set_variable OPTION
Definition: JTuna.sh:26
then usage $script< detector identifier >< startdate\"YYYY-MM-DDHH:MM:SS\"><finaldate\"YYYY-MM-DDHH:MM:SS\"><QA/QCfile> fi case set_variable QAQC_TXT $argv[4]
Definition: JDataMonitor.sh:24
then usage E
Definition: JMuonPostfit.sh:35
version
Definition: JEditTuneHV.sh:5
o $QUALITY_ROOT d $DEBUG!CHECK_EXIT_CODE JPlot1D f
Definition: JDataQuality.sh:76
then JShowerPostfit f $INPUT_FILE o $OUTPUT_FILE N
usr share Modules init zsh export TMPDIR
exit
Definition: JPizza.sh:36
set_variable LOGY YY
Definition: JMuonPostfit.sh:73
then fatal Wrong number of arguments fi JConvertDetectorFormat a o
fatal Invalid number of arguments esac let YMIN
Definition: testToT.sh:39
then echo
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
Definition: JAcoustics.sh:21
return result
Definition: JPolint.hh:764
do set_variable OUTPUT_DIRECTORY $WORKDIR T
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable DEBUG set_variable WORKDIR
Definition: JLegolas.sh:20
then awk F
* usage
set_variable LOG XX
Definition: JMuonPostfit.sh:71
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
Definition: JCanberra.sh:77
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 display $WORKDIR
Definition: plot-Domino.sh:128
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
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 JAcoustics sh $DETECTOR_ID source JAcousticsToolkit sh CHECK_EXIT_CODE typeset A EMITTERS get_tripods $WORKDIR tripod txt EMITTERS get_transmitters $WORKDIR transmitter txt EMITTERS for EMITTER in
Definition: JCanberra.sh:46
*fatal Wrong option $OPTION
esac done
Definition: JAddHDE.sh:21
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62
do alias $i