Jpp  15.0.3
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 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
Definition: JTuna.sh:26
do JSirene sh $DETECTOR $JPP_DATA genhen km3net_wpd_V2_0 evt gz $WORKDIR sirene_
o $QUALITY_ROOT d $DEBUG!JPlot1D f
Definition: JDataQuality.sh:66
exit
Definition: JPizza.sh:36
then for HISTOGRAM in h0 h1
Definition: JMatrixNZ.sh:71
then usage E
Definition: JMuonPostfit.sh:35
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:20
return result
Definition: JPolint.hh:727
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
Definition: JLegolas.sh:20
then awk F
* usage
then JConvertDetectorFormat a $DETECTOR[1] o
skip elif((BINFRAC< 1.0))
do sput $STRING $FLOOR sget MODULE INPUT_FILES
Definition: JCanberra.sh:73
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:42
version
Definition: JCalibratePMT.sh:7
*fatal Wrong option $OPTION
do alias $i