Jpp
 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>+"
13 fi
14 
15 if (( $# < 2 )); then
16  fatal "Not enough arguments."
17 fi
18 
20 
22 
23 set_variable TRIGGER_PARAMETERS `echo "trigger3DMuon.enabled=1;TMaxEvent_ns=15000;"`
25 set_variable FORMULA "[0] + ([3]*( ([1]^(2*[4])) / (([1]*[1] + (2^(1/[4])-1) * ((x-[2])*(x-[2])) ) )))^[4]"
27 
28 mkdir -p -- ${WORKDIR}
29 
30 echo "Specify the list of string numbers to calibrate, separated by white spaces (example: <1 2 3>)"
31 
32 read -A STRINGS
33 
35 
36 for STRING in "${STRINGS[@]}"; do
37 
38  REMOVE[$REMOVE[(i)$STRING]]=()
39 
40  RM=()
41  for R in "${REMOVE[@]}"; do
42  RM+=("-r ${R}-${R}")
43  done
44 
45  set_variable REDUCED_DETECTOR reduced.detx
46 
47  set_variable GRAPH_TXT graph-time.txt
48  set_variable GRAPH_ROOT graph-time.root
49  set_variable FIT_TXT graph-fit.txt
50  set_variable FIT_ROOT graph-fit.root
51 
52  rm -f ${WORKDIR}/${REDUCED_DETECTOR}
53  rm -f ${WORKDIR}/${GRAPH_TXT}
54 
55  JEditDetector \
56  -a ${DETECTOR} \
57  ${RM} \
58  -o ${WORKDIR}/${REDUCED_DETECTOR} --!
59 
60  for TIME_OFFSET_NS in -200 -100 -20 -5 0 +5 +20 +100 +200; do
61 
62  JEditDetector \
63  -a ${WORKDIR}/${REDUCED_DETECTOR} \
64  -S "$STRING add $TIME_OFFSET_NS" \
65  -o ${WORKDIR}/detector.detx --!
66 
67  set_variable OUTPUT_FILE JTriggerProcessor.root
68 
69  rm -f ${WORKDIR}/${OUTPUT_FILE}
70 
71  JTriggerProcessor \
72  -a ${WORKDIR}/detector.detx \
73  -f ${INPUT_FILES} \
74  -C ${JDAQ_TIMESLICE} \
75  -@ ${TRIGGER_PARAMETERS} \
76  -o ${WORKDIR}/${OUTPUT_FILE} --!
77 
78  set_variable N_TRIGGERS `JPrintTree -f ${WORKDIR}/${OUTPUT_FILE} | awk '/KM3NETDAQ::JDAQEvent/ { print $3} '`
79 
80  printf "%5.3f %12.3f\n" ${TIME_OFFSET_NS} ${N_TRIGGERS} >> ${WORKDIR}/${GRAPH_TXT}
81 
82  done
83 
84  JGraph \
85  -f ${WORKDIR}/${GRAPH_TXT} \
86  -o ${WORKDIR}/${GRAPH_ROOT}
87 
88  JFit \
89  -f ${WORKDIR}/${GRAPH_ROOT}:\.\* \
90  -o ${WORKDIR}/${FIT_ROOT} \
91  -F "$FORMULA" \
92  -@"p0 = 0" \
93  -@"p1 = GetRMS" \
94  -@"p2 = GetMean" \
95  -@"p3 = GetMaximum" \
96  -@"p4 = 1" \
97  -d1 >> ${WORKDIR}/${FIT_TXT} 2>&1
98 
99  set_variable OPTIMAL_OFFSET `JTestFit -f ${WORKDIR}/${FIT_ROOT}:${GRAPH_TXT} -@ "p2 -1000 1000" -d 3 | awk '/p2/ {print $2}'`
100 
101  echo "JEditDetector -a ${DETECTOR} -S \"$STRING_ID add $OPTIMAL_OFFSET\" -o ${WORKDIR}/${OUTPUT_DETECTOR} --!"
102 
103 done
TPaveText * p1
do REMOVE[$REMOVE[(i)$STRING]]
void set_variable(const std::string &name, const std::string &value)
Set environment variable.
*fatal Wrong number of arguments esac check_input_file $INPUT_FILE for TIMESLICE in JDAQTimeslice JDAQTimesliceL0 JDAQTimesliceL1 JDAQTimesliceL2 JDAQTimesliceSN
set_variable DETECTOR
Definition: JLegolas.sh:31
bool read(Vec &v, std::istream &is)
Read a Vec(tor) from a stream.
Definition: io_ascii.hh:139
esac print_variable DETECTOR INPUT_FILE OUTPUT_FILE CDF for TYPE in
Definition: JSirene.sh:45
exit
Definition: JPizza.sh:36
data_type r[M+1]
Definition: JPolint.hh:709
fi JEventTimesliceWriter a
&set_variable JDAQ_TIMESLICE
Definition: JLegolas.sh:29
then echo
do montage tile geometry tmp
*fatal Invalid number of arguments esac set_variable TYPE F eval JPrintDetector a $DETECTOR O SUMMARY attach getModule a $DETECTOR typeset Z STRING typeset Z FLOOR for STRING in $STRINGS[*]
* usage
then fatal Not enough arguments fi set_variable DETECTOR $argv[1] INPUT_FILES
then usage $script[distance] fi case set_variable R
Definition: JDrawLED.sh:40
*set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2,-2] set_variable OUTPUT_FILE $argv[-1]
Definition: JDomino.sh:39
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:56
do RM
*fatal Wrong number of arguments esac cp v $DETECTOR $WORKDIR detector detx for((i=0;$i!=2;++i))
then usage $script< detector file >< inputfile > fi case set_variable WORKDIR
Definition: JLegolas.sh:28
source $JPP_DIR setenv csh $JPP_DIR eval JShellParser o a A
esac $JPP_BIN JLogger sh $LOGGER until pgrep JGetMessage</dev/null > dev null
esac done
Definition: JAddHDE.sh:21