Jpp 21.0.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
pre-calibration_D0ORCA038.sh
Go to the documentation of this file.
1#!/bin/zsh
2script=${0##*/}
3
4# --------------------------------------------------------------------------------------------
5#
6# Steering script for the global-fit-of-global-fits procedure of the D0ORCA038 (291) detector.
7#
8# --------------------------------------------------------------------------------------------
9
10if [ -z $JPP_DIR ]; then
11 echo "Variable JPP_DIR undefined."
12 exit
13fi
14
15if [ -z $CALIBRATION_ARCHIVE ]; then
16 echo "Variable CALIBRATION_ARCHIVE undefined."
17 exit
18fi
19
20source $JPP_DIR/setenv.sh $JPP_DIR >& /dev/null
21
22set_variable DETECTOR_ID 291
23set_array RUNS 29215-29222
24set_variable: THREADS ACOUSTICS_THREADS 32
25set_variable: CALIBRATION_ARCHIVE CALIBRATION_ARCHIVE
26set_variable SINGULARITY -
27set_variable: WORKDIR ACOUSTICS_WORKDIR ./
28set_variable HOMEDIR $WORKDIR
29
30
31if do_usage $*; then
32 usage "$script"\
33 "\nRequires variable CALIBRATION_ARCHIVE to be set for the user."
34fi
35
36source JAcousticsToolkit.sh
37
38set_variable DETECTOR $WORKDIR/detector.datx
39set_variable TRIPOD $WORKDIR/tripod.txt
40set_variable DETECTOR_INITIAL detector_initial.datx
41set_variable TRIPOD_INITIAL tripod_initial.txt
42expand_array RUNS
43
44
45# Run in HOMEDIR
46
47mkdir -p $HOMEDIR
48cd $HOMEDIR
49
50# retrieve D0ORCA033 detector, tripod from calibration archive
51# MAKE SURE TO USE THE D0ORCA033_fixed BRANCH (NOT YET IN THE CALIBRATION ARCHIVE MAIN BRANCH)
52getFile.sh $CALIBRATION_ARCHIVE 274 1 detector $WORKDIR/D0ORCA033
53getFile.sh $CALIBRATION_ARCHIVE 274 1 tripod $WORKDIR/tripod_D0ORCA033
54
55# retrieve D0ORCA033 mechanics, fit parameters, sound velocity
56getFile.sh $JPP_DIR/inputs/ 274 1 mechanics $WORKDIR/mechanics
57getFile.sh $JPP_DIR/inputs/ 274 1 acoustics_fit_parameters $WORKDIR/acoustics_fit_parameters
58getFile.sh $JPP_DIR/inputs/ 274 1 sound_velocity $WORKDIR/sound_velocity
59
60# Get a initial detector for D0ORCA038 from the JDetectorDB, to be optimised in the global-fit-of-global-fits procedure.
61JDetectorDB \
62 -D $DETECTOR_ID \
63 -r $RUNS[1] \
64 -V "" \
65 -WW \
66 -o $DETECTOR_INITIAL
67
68# Edited tripod 11 and 15 initial positions to adjust for 3.5 m vertical height above sea floor
69cat>$TRIPOD_INITIAL<<EOF
70# Data from D0ORCA038 input_tables
7111 257208.80 4743611.20 -2440.19
7212 257000.30 4743616.80 -2441.30
7315 257222.80 4743333.20 -2438.49
7416 256850.30 4743351.70 -2440.00
75EOF
76
77eval `JPrintDetector -a $DETECTOR_INITIAL -O SUMMARY`; FINAL_STRINGS=($STRINGS[*])
78eval `JPrintDetector -a D0ORCA033.datx -O SUMMARY`; FIXED_STRINGS=($STRINGS[*])
79
80# Apply modifications.
81
82JEditDetector \
83 -a $DETECTOR_INITIAL \
84 -o detector.datx --!
85
86eval `JPrintDetector -a detector.datx -O SUMMARY`
87
88for STRING in ${STRINGS[*]}; do
89
90 set_variable MODULE `getModule -a detector.datx -L "$STRING 0"`
91
92 JEditDetector \
93 -a detector.datx \
94 -M "$MODULE setz -2.9" \
95 -o detector.datx --!
96done
97
98JEditDetector -a detector.datx -r "$FIXED_STRINGS[*]" -o detector.datx --!
99JMergeDetector -a detector.datx -a D0ORCA033.datx -o detector.datx --!
100JEditDetector -a detector.datx -k "$FINAL_STRINGS[*]" -o detector.datx --!
101
102typeset -A TRIPODS
103
104get_tripods $TRIPOD_INITIAL TRIPODS; FINAL_TRIPODS=(${(k)TRIPODS[*]})
105get_tripods $WORKDIR/tripod_D0ORCA033.txt TRIPODS; FIXED_TRIPODS=(${(k)TRIPODS[*]})
106
107cp -p $TRIPOD_INITIAL tripod.txt
108
109JEditTripod -f tripod.txt -r "${FIXED_TRIPODS}" -o tripod.txt
110JMergeTripod -f tripod.txt -f $WORKDIR/tripod_D0ORCA033.txt -o tripod.txt
111JEditTripod -f tripod.txt -k "${FINAL_TRIPODS}" -o tripod.txt
112
113cat>waveform.txt<<EOF
114# Data from D2ORCA024_waveforms.csv
115 35 9
116-36 9
117 34 10
118-35 10
119 28 11
120-29 11
121 48 12
122-49 12
123 49 14
124-50 14
125 16 15
126-17 15
127 27 16
128-28 16
129EOF
130
131# Changed to 500 based on investigation average number of hits per event in D0ORCA038 (around 550-600)
132cat>acoustics_trigger_parameters.txt<<EOF
133# Trigger parameters D0ORCA038
134Q = 0.0;
135TMax_s = 0.020;
136numberOfHits = 500;
137EOF
138
139# Updated disable file for D0ORCA038
140cat>disable.txt<<EOF
141# 78c0dfdb-6bd7-4d56-8d09-0774a88615c4$
142# GIT 20.0.0-195-g190c9e876
143# ROOT 6.32.02
144# application JEditDisable
145# command /pbs/throng/km3net/software/RHEL9/jpp/master/out//Linux/bin//JEditDisable -f new_disable.log -o new_disable.log -a detector.datx -q -d 2 --!
146# namespace KM3NET
147# system Linux cca013 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 7 14:39:16 EDT 2026 x86_64
14811 809161495
14911 809175478
15011 817317552
15111 817331139
15211 819737869
15311 819740066
15412 809161495
15512 809521500
15612 813709200
15712 817320256
15812 817355794
15915 809076040
16015 809161495
16115 817301191
162EOF
163
164cat>transmitter.txt<<EOF
165# Data from D0ORCA033
166 9 27 0 -0.74 -0.64 0.71
16710 41 0 -0.40 -0.89 0.71
16814 50 0 -0.26 -0.94 0.71
169EOF
170
171cat>hydrophone.txt<<EOF
172# Data from D0ORCA038 input_tables
173 2 0 0.02 1.04 0.55
174 3 0 0.46 0.93 0.55
175 9 0 -0.75 -0.72 0.55
176 10 -1 0.11 1.04 0.55
177 12 0 0.46 0.93 0.55
178 4 0 0.20 1.02 0.55
179 18 0 0.61 0.84 0.55
180 28 0 0.69 0.78 0.55
181 11 0 -0.07 1.04 0.55
182 19 0 0.46 0.93 0.55
183 20 0 0.61 0.84 0.55
184 29 0 0.46 0.93 0.55
185 30 0 0.46 0.93 0.55
186 21 0 0.11 1.04 0.55
187 17 0 0.46 0.93 0.55
188 27 0 1.04 0.07 0.55
189 31 0 0.75 0.72 0.55
190 39 0 0.46 0.93 0.55
191 40 0 0.46 0.93 0.55
192 41 0 0.91 0.50 0.55
193 42 0 0.29 1.00 0.55
194 38 0 0.89 -0.54 0.55
195 1 0 -0.25 1.01 0.55
196 49 0 0.32 -0.99 0.55
197 50 0 0.83 0.62 0.55
198 51 0 0.54 0.89 0.55
199 52 0 0.82 0.64 0.55
200 53 0 0.43 0.95 0.55
201 60 0 -0.16 1.03 0.55
202 61 0 -0.42 0.95 0.55
203 62 0 1.01 0.25 0.55
204 63 0 0.20 1.02 0.55
205 64 -1 -0.07 1.04 0.55
206 72 0 -0.25 1.01 0.55
207 73 0 0.46 0.93 0.55
208 74 0 0.38 0.97 0.55
209 48 0 -1.03 -0.16 0.55
210 37 0 -1.01 -0.25 0.55
211 26 0 -1.00 0.27 0.55
212EOF
213
214expand_array RUNS
215
216set_variable: QUALITY_FACTOR ACOUSTICS_QUALITYFACTOR 2.0e3
217
218BUFFER=(`JRuns -D $DETECTOR_ID -F RUN`)
219let "NUMBER_OF_ERRORS = 0"
220for RUN in ${RUNS:*BUFFER}; do
221
222 set_variable INPUT_FILE $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_toa.root
223 set_variable OUTPUT_FILE $WORKDIR/KM3NeT_${(l:8::0::0:)DETECTOR_ID}_${(l:8::0::0:)RUN}_event.root
224
225 if [[ ! -f $INPUT_FILE ]]; then
226
227 JToA \
228 -@ "detid = `getDetector -D $DETECTOR_ID`" \
229 -@ "minrun = $RUN" \
230 -@ "maxrun = $RUN" \
231 -@ "QUALITYFACTOR >= $QUALITY_FACTOR" \
232 -o $INPUT_FILE \
233 -d $DEBUG --!
234
235 if (( $? != 0 )); then
236 let "NUMBER_OF_ERRORS = $NUMBER_OF_ERRORS + 1"
237 fi
238 fi
239
240 if [[ -f $INPUT_FILE ]] && [[ ! -f $OUTPUT_FILE ]]; then
241
242 timer_start
243
244 JAcousticsEventBuilder \
245 -a $DETECTOR \
246 -f $INPUT_FILE \
247 -T $WORKDIR/tripod.txt \
248 -Y $WORKDIR/transmitter.txt \
249 -V $WORKDIR/sound_velocity.txt \
250 -W $WORKDIR/waveform.txt \
251 -@ $WORKDIR/acoustics_trigger_parameters.txt \
252 -H $WORKDIR/hydrophone.txt \
253 -o $OUTPUT_FILE \
254 -d $DEBUG --!
255
256 if (( $? != 0 )); then
257 let "NUMBER_OF_ERRORS = $NUMBER_OF_ERRORS + 1"
258 fi
259
260 timer_stop
261 timer_print
262 fi
263done
264
265if (( $NUMBER_OF_ERRORS != 0 )); then
266 error "Number of errors $NUMBER_OF_ERRORS"
267fi
268
269INPUT_FILES=(`ls KM3NeT_${(l:8::0::0:)DETECTOR_ID}_0*${^RUNS}_event.root`)
270
271# Run in WORKDIR
272
273cd $WORKDIR
274
275if [ ! $HOMEDIR -ef $WORKDIR ]; then
276 cp -p $HOMEDIR/$ACOUSTICS_DETECTOR $WORKDIR
277 cp -p $HOMEDIR/${^ACOUSTICS_KEYS}.txt $WORKDIR
278 cp -p $HOMEDIR/${^ACOUSTICS_AUXS}.txt $WORKDIR
279 cp -p $HOMEDIR/${^INPUT_FILES} $WORKDIR
280fi
281
282cat>script.txt<<EOF
283
284fix string $FIXED_STRINGS[*]
285fix tripod $FIXED_TRIPODS[*]
286
287stage 0 ${SINGULARITY}1 0 100.0e-6 10.0 10 0.5
288stage 1B ${SINGULARITY}1 0 100.0e-6 10.0 0 0.001 0.1
289stage 2A ${SINGULARITY}1 0 100.0e-6 10.0 20 0.2 0.5
290stage 2C ${SINGULARITY}1 0 100.0e-6 10.0 20 0.2
291
292initialise
293
294stage 2a ${SINGULARITY}1 0 100.0e-6 10.0 20 0.2 0.5
295stage 2c ${SINGULARITY}1 0 100.0e-6 10.0 20 0.2
296stage 3a ${SINGULARITY}1 0 50.0e-6 10.0 20 0.2 0.5
297stage 3c ${SINGULARITY}1 0 50.0e-6 10.0 20 0.2
298EOF
299
300JSydney \
301 -a $DETECTOR \
302 -f "$INPUT_FILES[*]" \
303 -T tripod.txt \
304 -Y transmitter.txt \
305 -V sound_velocity.txt \
306 -M mechanics.txt \
307 -@ acoustics_fit_parameters.txt \
308 -! disable.txt \
309 -N $THREADS \
310 -s script.txt \
311 -d $DEBUG --!
312
313
314# copy detector and tripod to align with initial ORCA033 and ROV measurements
315cp -p $DETECTOR $WORKDIR/aligned_detector.datx
316cp -p $TRIPOD $WORKDIR/aligned_tripod.txt
317
318# Align with D0ORCA033
319JAlignDetector \
320 -a $WORKDIR/aligned_detector.datx \
321 -b $WORKDIR/D0ORCA033.datx \
322 -P "x y z phi tx ty" \
323 -O \
324 -T $WORKDIR/aligned_tripod.txt \
325 -A
326
327#Align with ROV
328JAlignDetector \
329 -a $WORKDIR/aligned_detector.datx \
330 -b $WORKDIR/$DETECTOR_INITIAL \
331 -P "x y z" \
332 -O \
333 -T $WORKDIR/aligned_tripod.txt \
334 -A
335
336# copy detector to apply z-adjustment
337cp -p $WORKDIR/aligned_detector.datx $WORKDIR/aligned_detector_z_adjusted.datx
338
339JAdjustZpos \
340 -a $WORKDIR/aligned_detector_z_adjusted.datx \
341 -f $WORKDIR/KM3NeT_00000291_*event.root \
342 -o $WORKDIR/aligned_detector_z_adjusted.datx
343
344if [ ! $HOMEDIR -ef $WORKDIR ]; then
345 cp -vru * $HOMEDIR
346fi