Jpp  15.0.3
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JCalibrateStrings.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 
11 if do_usage $*; then
12  usage "$script <detector file> <input file>+ <string number>+"
13 fi
14 
15 if (( $# < 3 )); then
16  fatal "Not enough arguments."
17 fi
18 
19 set_variable INDEX_STRING_START -1
20 
21 while [[ ${${argv[${START_INDEX_STRING}]}##*.} != "root" ]]; do
23 done
24 
25 set_variable DETECTOR ${argv[1]}
26 set_array INPUT_FILES ${argv[2, $(( START_INDEX_STRING - 1 )) ]}
27 set_array STRINGS ${argv[ $(( START_INDEX_STRING )), -1 ]}
28 
29 set_variable TRIGGER_PARAMETERS `echo "trigger3DMuon.enabled=1;TMaxEvent_ns=15000;"`
30 set_variable JDAQ_TIMESLICE JDAQTimesliceSN
31 set_variable FORMULA "[0] + ([3]*( ([1]^(2*[4])) / (([1]*[1] + (2^(1/[4])-1) * ((x-[2])*(x-[2])) ) )))^[4]"
33 
34 mkdir -p -- ${WORKDIR}
35 
37 
38 OUTPUT_OFFSETS=""
39 
40 for STRING in "${STRINGS[@]}"; do
41 
42  REMOVE[$REMOVE[(i)$STRING]]=()
43 
44  RM=()
45  for R in "${REMOVE[@]}"; do
46  RM+=("-r ${R}-${R}")
47  done
48 
49  set_variable REDUCED_DETECTOR reduced.detx
50 
51  set_variable GRAPH_TXT graph-time.txt
52  set_variable GRAPH_ROOT graph-time.root
53  set_variable FIT_TXT graph-fit.txt
54  set_variable FIT_ROOT graph-fit.root
55 
56  rm -f ${WORKDIR}/${REDUCED_DETECTOR}
57  rm -f ${WORKDIR}/${GRAPH_TXT}
58 
59  JEditDetector \
60  -a ${DETECTOR} \
61  ${RM} \
62  -o ${WORKDIR}/${REDUCED_DETECTOR} --!
63 
64  for TIME_OFFSET_NS in -200 -100 -20 -5 0 +5 +20 +100 +200; do
65 
66  JEditDetector \
67  -a ${WORKDIR}/${REDUCED_DETECTOR} \
68  -s "$STRING add $TIME_OFFSET_NS" \
69  -o ${WORKDIR}/detector.detx --!
70 
71  set_variable OUTPUT_FILE JTriggerProcessor.root
72 
73  rm -f ${WORKDIR}/${OUTPUT_FILE}
74 
75  JTriggerProcessor \
76  -a ${WORKDIR}/detector.detx \
77  -f ${INPUT_FILES} \
78  -C ${JDAQ_TIMESLICE} \
79  -@ ${TRIGGER_PARAMETERS} \
80  -o ${WORKDIR}/${OUTPUT_FILE} --!
81 
82  set_variable N_TRIGGERS `JPrintTree -f ${WORKDIR}/${OUTPUT_FILE} | awk '/KM3NETDAQ::JDAQEvent/ { print $3} '`
83 
84  printf "%5.3f %12.3f\n" ${TIME_OFFSET_NS} ${N_TRIGGERS} >> ${WORKDIR}/${GRAPH_TXT}
85 
86  done
87 
88  JGraph \
89  -f ${WORKDIR}/${GRAPH_TXT} \
90  -o ${WORKDIR}/${GRAPH_ROOT}
91 
92  JFit \
93  -f ${WORKDIR}/${GRAPH_ROOT}:\.\* \
94  -o ${WORKDIR}/${FIT_ROOT} \
95  -F "$FORMULA" \
96  -@"p0 = 0" \
97  -@"p1 = GetRMS" \
98  -@"p2 = GetMean" \
99  -@"p3 = GetMaximum" \
100  -@"p4 = 1" \
101  -d1 >> ${WORKDIR}/${FIT_TXT} 2>&1
102 
103  set_variable OPTIMAL_OFFSET `JTestFit -f ${WORKDIR}/${FIT_ROOT}:${GRAPH_TXT} -@ "p2 -1000 1000" -d 3 | awk '/p2/ {print $2}'`
104 
105  JEditDetector \
106  -a ${DETECTOR} \
107  -s "$STRING add $OPTIMAL_OFFSET" \
108  -o ${DETECTOR} --!
109 
110  OUTPUT_OFFSETS="${OUTPUT_OFFSETS} JEditDetector -a ${DETECTOR} -S \"$STRING add $OPTIMAL_OFFSET\" -o ${WORKDIR}/${OUTPUT_DETECTOR} --! \n"
111 
112 done
113 
114 echo -e "${OUTPUT_OFFSETS}"
do set_variable START_INDEX_STRING((START_INDEX_STRING-1)) done set_variable DETECTOR $
TPaveText * p1
do REMOVE[$REMOVE[(i)$STRING]]
*fatal Wrong number of arguments esac check_input_file $INPUT_FILE for TIMESLICE in JDAQTimeslice JDAQTimesliceL0 JDAQTimesliceL1 JDAQTimesliceL2 JDAQTimesliceSN
clean eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY set_variable STRING
*fatal Wrong number of arguments esac TRIGGER_PARAMETERS
exit
Definition: JPizza.sh:36
data_type r[M+1]
Definition: JPolint.hh:742
then echo
do JCanberra a $DETECTOR f $INPUT_FILE o $WORKDIR canberra[${EMITTER}\] root T $WORKDIR tripod txt V $WORKDIR sound_velocity txt M $WORKDIR mechanics txt H $WORKDIR hydrophone txt E $EMITTER $DISABLE d $DEBUG!done kill_child_processes_at_exit attach getModule a $DETECTOR typeset Z STRING typeset Z FLOOR for STRING in $STRINGS[*]
Definition: JCanberra.sh:64
do for((RUN=${RANGE%%-*};$RUN<=${RANGE##*-};RUN+=1))
then fatal Invalid string $STRING
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR &dev null set_variable
Definition: JAcoustics.sh:20
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
* usage
then usage $script[distance] fi case set_variable R
Definition: JDrawLED.sh:43
do sput $STRING $FLOOR sget MODULE INPUT_FILES
Definition: JCanberra.sh:73
&set_variable FORMULA
p2
Definition: module-Z:fit.sh:74
do set_variable SIGMA_NS set_variable OUTLIERS set_variable OUTPUT_FILE matrix[${ALPHA_DEG}\deg\] root $JPP JMatrixNZ a $DETECTOR f $INPUT_FILE o $OUTPUT_FILE S
Definition: JMatrixNZ.sh:58
then JCalibrateToT a
Definition: JTuneHV.sh:116
do RM
set_variable 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
script
Definition: JAcoustics.sh:2
p3
Definition: module-Z:fit.sh:74
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null