Jpp  18.2.1-ARCA-DF-PATCH
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
footprint.sh
Go to the documentation of this file.
1 #!/bin/zsh
2 script=${0##*/}
3 
4 if [ -z $JPP_DIR ]; then
5  echo "Variable JPP_DIR undefined."
6  exit
7 fi
8 
9 source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
10 
12 set_variable: WORKDIR ACOUSTICS_WORKDIR ./
13 set_variable FORMULA "[0] * exp(-0.5 * (x-[1])*(x-[1]) / ([2]*[2])) * exp(-0.5 * (y-[3])*(y-[3]) / ([4]*[4]))"
14 set_variable: FORMAT GRAPHICS_FORMAT gif
15 set_variable+ BATCH GRAPHICS_BATCH -B
16 
17 if do_usage $*; then
18  usage "$script <detector file> <Tx> <Ty> (input file)+"\
19  "\nThe tilt angles should be given in units [rad]."
20 fi
21 
22 if (( $# < 4 )); then
23  fatal "Wrong number of arguments."
24 fi
25 
27 set_variable TX $argv[2]
28 set_variable TY $argv[3]
29 set_array INPUT_FILES $argv[4,-1]
30 
31 eval `JPrintDetector -a $DETECTOR -O IDENTIFIER`
32 
33 JAcoustics.sh $DETECTOR_ID
34 
36 mkdir -p $TMPDIR
37 
38 cp \
39  $WORKDIR/tripod.txt \ $TMPDIR/tripod.txt
40 
41 JConvertDetectorFormat \
42  -a $DETECTOR \
43  -o $TMPDIR/detector.datx --!
44 
45 JFootprint.sh \ $TMPDIR/detector.datx \ $TMPDIR/tripod.txt \ $TX \ $TY
46 
47 JKatoomba \
48  -a $TMPDIR/detector.datx \
49  -f "$INPUT_FILES[*]" \
50  -o $TMPDIR/katoomba.root \
51  -T $TMPDIR/tripod.txt \
52  -V $WORKDIR/sound_velocity.txt \
53  -@ $WORKDIR/acoustics_fit_parameters.txt \
54  -C -JEvent \
55  -d $DEBUG --!
56 
57 JFootprint \
58  -f $TMPDIR/katoomba.root \
59  -o $TMPDIR/footprint.root
60 
61 JPlot2D \
62  -f $TMPDIR/footprint.root:% \
63  -\> "Tx [mrad]" \
64  -\< "Ty [mrad]" \
65  -O COLZ \
66  -N "X 505" \
67  -N "Y 505" \
68  -T "" \
69  -o footprint.$FORMAT $BATCH
70 
71 JProject2D -f $TMPDIR/footprint.root:% -P X -y "-1e3 +1e3" -o $TMPDIR/px.root
72 JProject2D -f $TMPDIR/footprint.root:% -P Y -x "-1e3 +1e3" -o $TMPDIR/py.root
73 
74 set_array X `JPrintQuantiles -f $TMPDIR/px.root:% -Q "0.45 0.55"`
75 set_array Y `JPrintQuantiles -f $TMPDIR/py.root:% -Q "0.45 0.55"`
76 
77 let "XMIN = $X[1] - $((2.0 * ($X[2] - $X[1])))"
78 let "XMAX = $X[2] + $((2.0 * ($X[2] - $X[1])))"
79 let "YMIN = $Y[1] - $((2.0 * ($X[2] - $X[1])))"
80 let "YMAX = $Y[2] + $((2.0 * ($X[2] - $X[1])))"
81 
82 JFit2D \
83  -f $TMPDIR/footprint.root:% \
84  -o $TMPDIR/fit.root \
85  -F "$FORMULA" \
86  -x "$XMIN $XMAX" \
87  -y "$YMIN $YMAX" \
88  -@ "p0 = GetMaximum" \
89  -@ "p1 = $((0.5 * ($X[1] + $X[2])))" \
90  -@ "p2 = $((2.0 * ($X[2] - $X[1])))" \
91  -@ "p3 = $((0.5 * ($Y[1] + $Y[2])))" \
92  -@ "p4 = $((2.0 * ($Y[2] - $Y[1])))" \
93  -d $DEBUG --!
94 
95 JPlot2D \
96  -f $TMPDIR/fit.root:% \
97  -x "$XMIN $XMAX" \
98  -y "$YMIN $YMAX" \
99  -\> "Tx [mrad]" \
100  -\< "Ty [mrad]" \
101  -O CONT3 \
102  -N "X 505" \
103  -N "Y 505" \
104  -T "" \
105  -o fit.$FORMAT $BATCH
106 
107 set_array CHI2 `JPrintResult -f $TMPDIR/katoomba.root:chi2 -F "GetMean" -F "GetRMS / sqrt(GetEntries)"`
108 set_array TX `JPrintFit -f $TMPDIR/fit.root:% -@ p1`
109 set_array TY `JPrintFit -f $TMPDIR/fit.root:% -@ p3`
110 
111 TX[1]=$(($TX[1]*1.0e-3))
112 TY[1]=$(($TY[1]*1.0e-3))
113 
114 printf "Tx = %9.6f Ty = %9.6f chi2 = %7.3f %7.3f\n" $TX[1] $TY[1] ${CHI2[*]}
115 
116 #rm -rf $TMPDIR
117 
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
Q(UTCMax_s-UTCMin_s)-livetime_s
TPaveText * p1
o $QUALITY_ROOT d $DEBUG!CHECK_EXIT_CODE JPlot1D f
Definition: JDataQuality.sh:76
then usage $script(input file)+< QA/QC file >" "\nAuxiliary script to produce the following QA/QC data then fatal Wrong number of arguments fi set_array INPUT_FILES $argv[1,-2] set_variable QAQC_FILE $argv[-1] mkdir p $WORKDIR set_variable ACOUSTICS_DEBUG
Definition: JQAQC.sh:80
usr share Modules init zsh export TMPDIR
exit
Definition: JPizza.sh:36
then fatal Wrong number of arguments fi set_variable STRING $argv[1] set_variable DETECTORXY_TXT $WORKDIR $DETECTORXY_TXT tail read X Y CHI2 RMS printf optimum n $X $Y $CHI2 $RMS awk v Y
V(JDAQEvent-JTriggerReprocessor)*1.0/(JDAQEvent+1.0e-10)
then
Definition: datalogs.sh:31
then fatal Wrong number of arguments fi JConvertDetectorFormat a o
static const double C
Physics constants.
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
Definition: JAcoustics.sh:21
then JCalibrateToT a
Definition: JTuneHV.sh:113
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
do sput $STRING $FLOOR sget MODULE INPUT_FILES
Definition: JCanberra.sh:77
&set_variable FORMULA
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
Definition: JMuonPostfit.sh:40
fi set_variable FILENAME $WORKDIR
Definition: datalogs.sh:34
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 if[[!-f $DETECTOR]] then JDetector sh $DETECTOR fi cat $WORKDIR trigger_parameters txt<< EOFtrigger3DMuon.enabled=1;trigger3DMuon.numberOfHits=5;trigger3DMuon.gridAngle_deg=1;ctMin=0.0;TMaxLocal_ns=15.0;EOF set_variable TRIGGEREFFICIENCY_TRIGGERED_EVENTS_ONLY INPUT_FILES=() for((i=1;$i<=$NUMBER_OF_RUNS;++i));do JSirene.sh $DETECTOR $JPP_DATA/genhen.km3net_wpd_V2_0.evt.gz $WORKDIR/sirene_ ${i}.root JTriggerEfficiency.sh $DETECTOR $DETECTOR $WORKDIR/sirene_ ${i}.root $WORKDIR/trigger_efficiency_ ${i}.root $WORKDIR/trigger_parameters.txt $JPP_DATA/PMT_parameters.txt INPUT_FILES+=($WORKDIR/trigger_efficiency_ ${i}.root) done for ANGLE_DEG in $ANGLES_DEG[*];do set_variable SIGMA_NS 3.0 set_variable OUTLIERS 3 set_variable OUTPUT_FILE $WORKDIR/matrix\[${ANGLE_DEG}\deg\].root $JPP_DIR/examples/JReconstruction-f"$INPUT_FILES[*]"-o $OUTPUT_FILE-S ${SIGMA_NS}-A ${ANGLE_DEG}-O ${OUTLIERS}-d ${DEBUG}--!fiif[[$OPTION=="plot"]];then if((0));then for H1 in h0 h1;do JPlot1D-f"$WORKDIR/matrix["${^ANGLES_DEG}" deg].root:${H1}"-y"1 2e3"-Y-L TR-T""-\^"number of events [a.u.]"-> o chi2
Definition: JMatrixNZ.sh:106
no fit printf nominal n $STRING awk v X
set_variable DETECTOR
do set_variable DETECTOR_TXT $WORKDIR detector
then echo
Definition: JQAQC.sh:90
static JNullStream null
Null I/O stream.
Definition: JNullStream.hh:51
script
Definition: JAcoustics.sh:2
p3
Definition: module-Z:fit.sh:74
Data structure for start_event tag.
Definition: JProperties.cc:14
then $DIR JPlotNPE PDG P
Definition: JPlotNPE-PDG.sh:62
#define DEBUG(A)
Message macros.
Definition: JMessage.hh:62