Jpp 19.3.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
JCalibrateHeight.sh
Go to the documentation of this file.
1#!/usr/bin/env zsh
2script=${0##*/}
3
4if [ -z $JPP_DIR ]; then
5 echo "Variable JPP_DIR undefined."
6 exit
7fi
8
9source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
10
11set_variable: DEBUG CALIBRATION_DEBUG 1
12set_variable WORKDIR `pwd`
13set_variable QUEUE_NAME ${TMPDIR:-/tmp}/queue
14set_variable QUEUE_SIZE 3
15
16APPLICATIONS=(prefit simplex gandalf) # fit applications
17
18if do_usage $*; then
19 usage "$script <detector file> (input file)+"
20fi
21
22if (( $# < 3 )); then
23 fatal "Not enough arguments."
24fi
25
26set_variable DETECTOR $argv[1]
27
28INPUT_FILES=($argv[2,-1])
29
30if ( ! is_CCLyon ); then
31
32 # local batch processor
33
34 source qlib.sh
35
36 $JPP_DIR/examples/scripts/mkqueue.sh $QUEUE_NAME $QUEUE_SIZE continue
37
38else
39 fatal "The job submission should be changed for running in CC-Lyon."
40fi
41
42if [[ $DETECTOR != *\.detx ]]; then
43 fatal "Invalid detector file <${DETECTOR}>."
44fi
45
46# set path
47
48for (( i=1; i <= ${#INPUT_FILES}; i+=1 )); do
49
50 set_variable INPUT_FILE ${INPUT_FILES[${i}]}
51
52 if [[ -f `pwd`/$INPUT_FILE ]]; then
53 INPUT_FILES[${i}]=`pwd`/$INPUT_FILE
54 fi
55done
56
57
58for TIME_OFFSET_NS in +20.4; do
59 for MULTIPLICATION in 0.94 0.96 0.97 0.98 0.99 1.00 1.01 1.02 1.03 1.04 1.06; do
60
61 set_variable OUTPUT_DIRECTORY $WORKDIR/T=${TIME_OFFSET_NS}:M=${MULTIPLICATION}
62
63 mkdir -p -- $OUTPUT_DIRECTORY
64
65 # detector calibration
66
67 if [[ ! -f $OUTPUT_DIRECTORY/detector.detx ]]; then
68
69 JEditDetector \
70 -a $DETECTOR \
71 -s "1 add $TIME_OFFSET_NS" \
72 -s "1 mul $MULTIPLICATION" \
73 -s "2 mul $MULTIPLICATION" \
74 -o $OUTPUT_DIRECTORY/detector.detx --!
75
76 fi
77
78 for FILE_NAME in $INPUT_FILES[*]; do
79
80 set_variable APP ${APPLICATIONS[-1]}
81 set_variable INPUT_FILE ${FILE_NAME}
82 set_variable OUTPUT_FILE ${OUTPUT_DIRECTORY}/${${FILE_NAME##*/}/\.root/_${APP}.root}
83 set_variable BATCH_FILE ${OUTPUT_DIRECTORY}/${${FILE_NAME##*/}/\.root/.sh}
84
85 rm -f $BATCH_FILE
86
87 echo "#!/usr/bin/env zsh" >> $BATCH_FILE
88
89 if [[ ! -f ${OUPUT_FILE} ]]; then
90
91 # sequentially processing of applications
92
93 for APP in $APPLICATIONS[*]; do
94
95 set_variable OUTPUT_FILE ${OUTPUT_DIRECTORY}/${${FILE_NAME##*/}/\.root/_${APP}.root}
96
97 echo "JARCA${(C)APP}.sh $OUTPUT_DIRECTORY/detector.detx $INPUT_FILE $OUTPUT_FILE >& /dev/null" >> $BATCH_FILE
98
99 set_variable INPUT_FILE ${OUTPUT_FILE}
100
101 done
102
103 # cleanup
104
105 for (( i=1; i < ${#APPLICATIONS}; i+=1 )); do
106
107 set_variable APP ${APPLICATIONS[${i}]}
108 set_variable OUTPUT_FILE ${OUTPUT_DIRECTORY}/${${FILE_NAME##*/}/\.root/_${APP}.root}
109
110 echo "rm -f $OUTPUT_FILE" >> $BATCH_FILE
111
112 done
113
114 echo "rm -f $BATCH_FILE" >> $BATCH_FILE
115
116 # submit job
117
118 chmod +x $BATCH_FILE
119 puts_queue $QUEUE_NAME $BATCH_FILE
120
121 fi
122 done
123 done
124done