source: trunk/Mars/hawc/processing/run-star.sh

Last change on this file was 20034, checked in by tbretz, 4 years ago
Using the power of bash to do the splitting.
File size: 2.2 KB
Line 
1#!/bin/bash
2
3# File containing the access credentials for the database
4CREDENTIALS=credentials-read-only.cnf
5
6# Specify the telescope for which to run the script. Replace '1'
7# by $1 if the telesocpe number is supplied as an option to the script
8TELESCOPE=1
9
10# The data is expected to be found in /data/raw and data/callisto
11DATA="/data"
12CALLISTO=callisto
13# output is written to data/star
14STAR=star
15# Directory to Mars environment (usually Mars/build)
16MARS=~/Mars/build
17# Relative path to macros
18MACROS=../hawc
19
20# Get all runs that can (and should) be calibrated
21# Pipe the output to mysql and read the
22# mysql output line-by-libe
23echo \
24"\
25SELECT
26 NIGHT, RUNID
27FROM
28 Calibration
29WHERE
30 Telescope=${TELESCOPE}
31ORDER BY
32 NIGHT, RUNID\
33"\
34 | mysql \
35 --defaults-file=${CREDENTIALS} \
36 --skip-column-names \
37 --batch --raw \
38 --compress \
39 | \
40while read -r -a LINE
41do
42 # Get NIGHT and RUNID of all files
43 NIGHT=${LINE[0]}
44 RUNID=${LINE[1]}
45
46 # Formatting of the file paths and names
47 DATPATH=${NIGHT:0:4}/${NIGHT:4:2}/${NIGHT:6:2}
48
49 PREFIX=`printf ${NIGHT}_%03d ${RUNID}`
50
51 DATNAME=`printf ${PREFIX}_Y.root ${RUNID}`
52
53 OUT=${DATA}/${STAR}/${DATPATH}
54 IN=${DATA}/${CALLISTO}/${DATPATH}
55
56 echo ""
57 echo ${DATNAME}
58 echo ${IN} " => " ${OUT}
59
60 # Check if not yet successfully processed but sucessfully calibrated
61 if [[ -f "${IN}/.${PREFIX}.success" && ! -f "${IN}/.${PREFIX}.running" && ! -f "${OUT}/.${PREFIX}.success" ]]
62 then
63
64 cd ${MARS}
65
66 mkdir -p ${OUT}
67
68 # Flag that a process is running
69 rm -f ${OUT}/.${PREFIX}.done
70 rm -f ${OUT}/.${PREFIX}.success
71
72 touch ${OUT}/.${PREFIX}.running
73
74 # Execute image parameter calculation and write log-file
75 root -b -q -l ${MACROS}/star.C'("'${IN}/${DATNAME}'","'${OUT}'")' \
76 2>&1 | tee ${OUT}/${PREFIX}.log
77
78 # Remember exit status of callisto
79 RC=${PIPESTATUS[0]}
80
81 echo RC=${RC} | tee -a ${OUT}/${PREFIX}.log
82 echo ${RC} > ${OUT}/.${PREFIX}.done
83
84 # Flag that processing is finished
85 rm -f ${OUT}/.${PREFIX}.running
86
87 # If processing was successfull write coresponding flag
88 if [ "${RC}" == "0" ]
89 then
90 touch ${OUT}/.${PREFIX}.success
91 fi
92
93 cd -
94
95 else
96 echo Skipped.
97 fi
98
99done
Note: See TracBrowser for help on using the repository browser.