Jpp 19.3.0-rc.2
the software that should make you happy
Loading...
Searching...
No Matches
JCalibratePosition.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> <string identifier> (input file)+"
20fi
21
22if (( $# < 3 )); then
23 fatal "Not enough arguments."
24fi
25
26set_variable DETECTOR $argv[1]
27set_variable STRING_ID $argv[2]
28
29INPUT_FILES=($argv[3,-1])
30
31if ( ! is_CCLyon ); then
32
33 # local batch processor
34
35 source qlib.sh
36
37 $JPP_DIR/examples/scripts/mkqueue.sh $QUEUE_NAME $QUEUE_SIZE continue
38
39else
40 fatal "The job submission should be changed for running in CC-Lyon."
41fi
42
43if [[ $DETECTOR != *\.detx ]]; then
44 fatal "Invalid detector file <${DETECTOR}>."
45fi
46
47# set path
48
49for (( i=1; i <= ${#INPUT_FILES}; i+=1 )); do
50
51 set_variable INPUT_FILE ${INPUT_FILES[${i}]}
52
53 if [[ -f `pwd`/$INPUT_FILE ]]; then
54 INPUT_FILES[${i}]=`pwd`/$INPUT_FILE
55 fi
56done
57
58for TIME_OFFSET_NS in 0; do
59 for X_OFFSET_M in 0; do
60 for Y_OFFSET_M in 0; do
61 for Z_OFFSET_M in 0; do
62
63 set_variable OUTPUT_DIRECTORY $WORKDIR/T=${TIME_OFFSET_NS}:X=${X_OFFSET_M}:Y=${Y_OFFSET_M}:Z=${Z_OFFSET_M}
64
65 mkdir -p -- $OUTPUT_DIRECTORY
66
67 # detector calibration
68
69 if [[ ! -f $OUTPUT_DIRECTORY/detector.detx ]]; then
70
71 JEditDetector \
72 -a $DETECTOR \
73 -S "$STRING_ID add $X_OFFSET_M $Y_OFFSET_M $Z_OFFSET_M" \
74 -s "$STRING_ID add $TIME_OFFSET_NS" \
75 -o $OUTPUT_DIRECTORY/detector.detx --!
76
77 fi
78
79 for FILE_NAME in $INPUT_FILES[*]; do
80
81 set_variable APP ${APPLICATIONS[-1]}
82 set_variable INPUT_FILE ${FILE_NAME}
83 set_variable OUTPUT_FILE ${OUTPUT_DIRECTORY}/${${FILE_NAME##*/}/\.root/_${APP}.root}
84 set_variable BATCH_FILE ${OUTPUT_DIRECTORY}/${${FILE_NAME##*/}/\.root/.sh}
85
86 rm -f $BATCH_FILE
87
88 echo "#!/usr/bin/env zsh" >> $BATCH_FILE
89
90 if [[ ! -f ${OUPUT_FILE} ]]; then
91
92 # sequentially processing of applications
93
94 for APP in $APPLICATIONS[*]; do
95
96 set_variable OUTPUT_FILE ${OUTPUT_DIRECTORY}/${${FILE_NAME##*/}/\.root/_${APP}.root}
97
98 echo "JARCA${(C)APP}.sh $OUTPUT_DIRECTORY/detector.detx $INPUT_FILE $OUTPUT_FILE >& /dev/null" >> $BATCH_FILE
99
100 set_variable INPUT_FILE ${OUTPUT_FILE}
101
102 done
103
104 # cleanup
105
106 for (( i=1; i < ${#APPLICATIONS}; i+=1 )); do
107
108 set_variable APP ${APPLICATIONS[${i}]}
109 set_variable OUTPUT_FILE ${OUTPUT_DIRECTORY}/${${FILE_NAME##*/}/\.root/_${APP}.root}
110
111 echo "rm -f $OUTPUT_FILE" >> $BATCH_FILE
112
113 done
114
115 echo "rm -f $BATCH_FILE" >> $BATCH_FILE
116
117 # submit job
118
119 chmod +x $BATCH_FILE
120 puts_queue $QUEUE_NAME $BATCH_FILE
121
122 fi
123 done
124 done
125 done
126 done
127done