Index: trunk/Mars/hawc/processing/DiskToDB/extract-aux-data2.sh
===================================================================
--- trunk/Mars/hawc/processing/DiskToDB/extract-aux-data2.sh	(revision 20093)
+++ trunk/Mars/hawc/processing/DiskToDB/extract-aux-data2.sh	(revision 20103)
@@ -12,4 +12,5 @@
 {
 	echo "ERROR: Line `caller`: ${BASH_COMMAND}" >&2
+	rm -f ${TMPOUT}
 	exit 1
 }
@@ -19,4 +20,5 @@
 	echo " "
 	echo "$0 was forcefully terminated" >&2
+	rm -f ${TMPOUT}
 	exit 1
 }
@@ -28,9 +30,10 @@
 # File to which the queries are written
 OUTPUT="insert-aux.sql"
+TMPOUT="./tmpAuxOut.sql"
 # The Mars build directory
-readonly MARS="/home/frankm/Dateien/Mars/build/"
+readonly MARS="/home/frankm/Dateien/Mars-6.24.00/build4/"
 # The path to your Mars/build directory where the processing macros are stored
 # MACROS="/home/frankm/Dateien/Mars/hawc/processing"
-readonly MACROS="/home/frankm/Dateien/Mars/build/Masterarbeit/Datenbank/HE01/Mexico/Cfiles/"
+readonly MACROS="/home/frankm/Dateien/Mars-6.24.00/build/Masterarbeit/Datenbank/HE01/Mexico/Cfiles/"
 readonly PROGRAM=$0
 INSERT="INSERT INTO"
@@ -93,5 +96,5 @@
 NIGHT="${4}"
 
-
+ERRCODE=
 
 # Open the query-file with the create table statement
@@ -140,4 +143,12 @@
 "\ > ${OUTPUT}
 
+# Set previous fail stats to also be fail here
+echo "UPDATE DataOnDisk" 			>> ${OUTPUT}
+echo "SET DataOnDisk.auxiliary = 6" 		>> ${OUTPUT}
+echo "WHERE (DataOnDisk.calibration != 0" 	>> ${OUTPUT}
+echo "OR DataOnDisk.header != 0)"		>> ${OUTPUT}
+echo "AND DataOnDisk.Telescope = ${TEL}"	>> ${OUTPUT}
+echo "AND DataOnDisk.NIGHT = ${NIGHT};"		>> ${OUTPUT}
+
 if [ ${DELETE} = "true" ]
 then
@@ -159,12 +170,18 @@
 echo \
 "\
-SELECT 
-    	NIGHT, RUNID, TSTARTI+TSTARTF, TSTOPI+TSTOPF
-FROM 
-    	RawData
-WHERE
-    	Telescope=${TEL}
-AND
-	NIGHT=${NIGHT}\
+SELECT RawData.NIGHT,
+	RawData.RUNID,
+	RawData.TSTARTI + RawData.TSTARTF,
+	RawData.TSTOPI + RawData.TSTOPF
+FROM RawData
+INNER JOIN DataOnDisk
+ON DataOnDisk.Telescope = RawData.Telescope
+AND DataOnDisk.NIGHT = RawData.NIGHT
+AND DataOnDisk.RUNID = RawData.RUNID
+WHERE RawData.Telescope=${TEL}
+AND RawData.NIGHT=${NIGHT}
+AND DataOnDisk.ISDRSFILE = 0
+AND DataOnDisk.header = 0
+AND DataOnDisk.calibration = 0\
 "\
  |  mysql \
@@ -176,61 +193,125 @@
 while read -r -a LINE
 do
-  # Extract night, runid, begin and end
-  NIGHT=${LINE[0]}
-  RUNID=${LINE[1]}
-  BEG=${LINE[2]}
-  END=${LINE[3]}
-
-  # Split night into year, month, day
-  # Base path for the night
-  FNAME="${DIR}"/${NIGHT:0:4}/${NIGHT:4:2}/${NIGHT:6:2}/${NIGHT}
-
-  echo ${FNAME}
-
-  cd ${MARS}
-
-  # Return corresponding data for DRS temperatures from FAD_CONTROL_TEMPEREATURE
-  DRS_TEMP=`root -b -q -l "${MACROS}"/drstemp.C\(\""${FNAME}".FAD_CONTROL_TEMPERATURE.fits\","${BEG}","${END}"\) | grep result | cut -f2- -d" "`
-  if [ ! -n "${DRS_TEMP}" ]
-  then
-  	DRS_TEMP="NULL, NULL"
-  fi
-  echo ${DRS_TEMP}
-
-  # Return corresponding data for currents from BIAS_CONTROL_DYNAMIC_DATA
-  BIAS_DATA=`root -b -q -l "${MACROS}"/currents.C\(\""${FNAME}".BIAS_CONTROL_DYNAMIC_DATA.fits\","${BEG}","${END}"\) | grep result | cut -f2- -d" "`
-  if [ ! -n "${BIAS_DATA}" ]
-  then  
-  	BIAS_DATA="NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL"
-  fi
-  echo ${BIAS_DATA}
-
-  # Return corresponding data for trigger information from FTM_CONTROL_DATA
-  FTM_DATA=`root -b -q -l "${MACROS}"/trigger.C\(\""${FNAME}".FTM_CONTROL_DATA.fits\","${BEG}","${END}"\) | grep result | cut -f2- -d" "`
-  if [ ! -n "${FTM_DATA}" ]
-  then
-  	FTM_DATA="NULL, NULL, NULL, NULL"
-  fi
-  echo ${FTM_DATA}
-
-  # Return corresponding data for threshold seeting from FTU_CONTROL_DATA
-  FTU_DATA=`root -b -q -l "${MACROS}"/threshold.C\(\""${FNAME}".FTU_CONTROL_DATA.fits\","${BEG}","${END}"\) | grep result | cut -f2- -d" "`
-  if [ ! -n "${FTU_DATA}" ]
-  then
-	FTU_DATA="NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL"
-  fi
-  echo ${FTU_DATA}
-
-  cd -
-
-  # Write the result as one row to the query file
-  echo "/* "${FNAME}" */"          	>> ${OUTPUT}
-  echo "ROW("      			>> ${OUTPUT}
-  echo " "${TEL}, ${NIGHT}, ${RUNID},	>> ${OUTPUT}
-  echo " "${DRS_TEMP},              	>> ${OUTPUT}
-  echo " "${BIAS_DATA},          	>> ${OUTPUT}
-  echo " "${FTM_DATA},              	>> ${OUTPUT}
-  echo " "${FTU_DATA}                	>> ${OUTPUT}
-  echo "),"                         	>> ${OUTPUT}
+	# Extract night, runid, begin and end
+	NIGHT=${LINE[0]}
+	RUNID=${LINE[1]}
+	BEG=${LINE[2]}
+	END=${LINE[3]}
+
+  	# Split night into year, month, day
+	# Base path for the night
+	FNAME="${DIR}"/${NIGHT:0:4}/${NIGHT:4:2}/${NIGHT:6:2}/${NIGHT}
+
+	echo ${FNAME}
+
+	cd ${MARS}
+
+	TNAME="${FNAME}".FAD_CONTROL_TEMPERATURE.fits
+	if [ ! -f "${TNAME}" ]
+	then
+		DRS_TEMP="NULL, NULL"
+		DRS_TEMP_ERR=2
+	else
+		# Return corresponding data for DRS temperatures from 
+		# FAD_CONTROL_TEMPEREATURE
+		DRS_TEMP=`root -b -q -l \
+			"${MACROS}"/drstemp.C\(\""${TNAME}"\","${BEG}","${END}"\) \
+			| grep result \
+			| cut -f2- -d" "`
+
+		if [ ! -n "${DRS_TEMP}" ]
+		then
+			DRS_TEMP="NULL, NULL"
+			DRS_TEMP_ERR=1
+		else
+			DRS_TEMP_ERR=0
+		fi
+		echo ${DRS_TEMP}
+	fi
+
+  	# Return corresponding data for currents from BIAS_CONTROL_DYNAMIC_DATA
+	BNAME="${FNAME}".BIAS_CONTROL_DYNAMIC_DATA.fits
+	if [ ! -f "${BNAME}" ]
+	then
+		BIAS_DATA="NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL"
+		BIAS_DATA_ERR=20
+	else
+		BIAS_DATA=`root -b -q -l \
+			"${MACROS}"/currents.C\(\""${BNAME}"\","${BEG}","${END}"\) \
+			| grep result \
+			| cut -f2- -d" "`
+
+		if [ ! -n "${BIAS_DATA}" ]
+		then  
+			BIAS_DATA="NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL"
+			BIAS_DATA_ERR=10
+		else
+			BIAS_DATA_ERR=0
+		fi
+		echo ${BIAS_DATA}
+	fi
+
+  	# Return corresponding data for trigger information from FTM_CONTROL_DATA
+	MNAME="${FNAME}".FTM_CONTROL_DATA.fits
+	if [ ! -f "${MNAME}" ]
+	then
+			FTM_DATA="NULL, NULL, NULL, NULL"
+			FTM_DATA_ERR=200
+	else
+		FTM_DATA=`root -b -q -l \
+			"${MACROS}"/trigger.C\(\""${MNAME}"\","${BEG}","${END}"\) \
+			| grep result \
+			| cut -f2- -d" "`
+
+		if [ ! -n "${FTM_DATA}" ]
+		then
+			FTM_DATA="NULL, NULL, NULL, NULL"
+			FTM_DATA_ERR=100
+		else
+			FTM_DATA_ERR=0
+		fi
+		echo ${FTM_DATA}
+	fi
+
+  	# Return corresponding data for threshold seeting from FTU_CONTROL_DATA
+	UNAME="${FNAME}".FTU_CONTROL_DATA.fits
+	if [ ! -f "${UNAME}" ]
+	then
+			FTU_DATA="NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL"
+			FTU_DATA_ERR=2000
+	else
+		FTU_DATA=`root -b -q -l \
+			"${MACROS}"/threshold.C\(\""${UNAME}"\","${BEG}","${END}"\) \
+			| grep result \
+			| cut -f2- -d" "`
+
+		if [ ! -n "${FTU_DATA}" ]
+		then
+			FTU_DATA="NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL"
+			FTU_DATA_ERR=1000
+		else
+			FTU_DATA_ERR=0
+		fi
+		echo ${FTU_DATA}
+	fi
+
+	cd -
+
+  	# Write the result as one row to the query file
+	echo "/* "${FNAME}" */"          	>> ${OUTPUT}
+	echo "ROW("      			>> ${OUTPUT}
+	echo " "${TEL}, ${NIGHT}, ${RUNID},	>> ${OUTPUT}
+	echo " "${DRS_TEMP},              	>> ${OUTPUT}
+	echo " "${BIAS_DATA},          		>> ${OUTPUT}
+	echo " "${FTM_DATA},              	>> ${OUTPUT}
+	echo " "${FTU_DATA}                	>> ${OUTPUT}
+	echo "),"                         	>> ${OUTPUT}
+
+	ERRCODE=$((DRS_TEMP_ERR + BIAS_DATA_ERR + FTM_DATA_ERR + FTU_DATA_ERR))
+
+	echo "UPDATE DataOnDisk SET auxiliary=${ERRCODE}" 	>> ${TMPOUT}
+	echo "WHERE NIGHT=${NIGHT}" 				>> ${TMPOUT}
+	echo "AND Telescope=${TEL}" 				>> ${TMPOUT}
+	echo "AND RUNID=${RUNID};" 				>> ${TMPOUT}
 
 done
@@ -255,2 +336,6 @@
    );
 "\ >> ${OUTPUT}
+
+cat ${TMPOUT} >> ${OUTPUT}
+
+rm -f ${TMPOUT}
Index: trunk/Mars/hawc/processing/DiskToDB/extract-raw-header2.sh
===================================================================
--- trunk/Mars/hawc/processing/DiskToDB/extract-raw-header2.sh	(revision 20093)
+++ trunk/Mars/hawc/processing/DiskToDB/extract-raw-header2.sh	(revision 20103)
@@ -45,8 +45,8 @@
 usage()
 {
-	echo "usage: $PROGRAM [-hir] [-o outfile] [Telescope Directory Night]"
+	echo "usage: $PROGRAM [-hird] [-o outfile] [Telescope Directory Night]"
 	echo "	-h 		display help"
 	echo "	-i 		query ignores already existing rows"
-	echo "	-r 		query replaces already existing rows(overwrites -i)"
+	echo "	-r 		query replaces already existing rows (overwrites -i)"
 	echo "	-d 		delete all entries for a given Night and Telescope"
 	echo "	-o outfile	name of the SQL query file"
@@ -92,4 +92,28 @@
 readonly CNTLONG=35
 
+function InsertRaw()
+{
+	local res="${1}"
+
+	echo "${INSERT} RawData SET" 		>> ${OUTPUT}
+	echo Telescope=${TEL},   		>> ${OUTPUT}
+	echo "${res}"                 		>> ${OUTPUT}
+	echo ";"                       		>> ${OUTPUT}
+}
+
+function SetRawStatus()
+{
+	local root="${1}"
+	local runid="${2}"
+	local stat="${3}"
+
+	echo "${root} header not valid!"
+	echo "UPDATE DataOnDisk SET"		>> ${OUTPUT}
+	echo "header=${stat} "			>> ${OUTPUT}
+	echo "WHERE NIGHT = ${NIGHT}"		>> ${OUTPUT}
+	echo "AND Telescope = ${TEL}"		>> ${OUTPUT}
+	echo "AND RUNID = ${runid}"		>> ${OUTPUT}
+	echo ";"				>> ${OUTPUT}
+}
 
 echo \
@@ -156,8 +180,10 @@
 	then
 		echo "${ROOT}"
+		RUNID=`basename "${ROOT}" .fits.fz | cut -f2 -d "_"`
 	else
 		echo "${ROOT} has wrong file extension and will not be processed."
 		continue
 	fi
+	EXT=0
 
 	# Extract the header from the fits file with fitsdump, 
@@ -183,5 +209,11 @@
 		| sed 's/^DATE[^-]/\`DATE\`/' \
 		| sed "s/^\(.*\)'\(0x[0-9a-f]*\)'\(.*\)$/\1\2\3/g" \
-		| sed '$!s/$/,/'`
+		| sed '$!s/$/,/'` || EXT=1
+
+	if [ $EXT -ne 0 ]
+	then
+		SetRawStatus "${ROOT}" ${RUNID} "1"
+		continue
+	fi
 
 	# compare to refference header and count commas
@@ -194,17 +226,13 @@
 		[ "${CNTCHECK}" == "${CNTLONG}" ]
 	then
-		echo "${INSERT} RawData SET" 		>> ${OUTPUT}
-		echo Telescope=${TEL},   		>> ${OUTPUT}
-		echo ${RESULT}                 		>> ${OUTPUT}
-		echo ";"                       		>> ${OUTPUT}
+		InsertRaw "${RESULT}"
+		SetRawStatus "${ROOT}" ${RUNID} "0"
 	elif [ "${CHECKSHORT}" == "${REFSHORT}" ] && 
 		[ "${CNTCHECK}" == "${CNTSHORT}" ]
 	then
-		echo "${INSERT} RawData SET" 		>> ${OUTPUT}
-		echo Telescope=${TEL},   		>> ${OUTPUT}
-		echo ${RESULT}                 		>> ${OUTPUT}
-		echo ";"                       		>> ${OUTPUT}
+		InsertRaw "${RESULT}"
+		SetRawStatus "${ROOT}" ${RUNID} "0"
 	else
-		echo "${ROOT} header not valid!"
+		SetRawStatus "${ROOT}" ${RUNID} "2"
 	fi
 
Index: trunk/Mars/hawc/processing/DiskToDB/run-callisto2.sh
===================================================================
--- trunk/Mars/hawc/processing/DiskToDB/run-callisto2.sh	(revision 20093)
+++ trunk/Mars/hawc/processing/DiskToDB/run-callisto2.sh	(revision 20103)
@@ -32,7 +32,7 @@
 readonly STAR=star
 # Directory to Mars environment (usually Mars/build)
-readonly MARS="/home/frankm/Dateien/Mars/build/"
+readonly MARS="/home/frankm/Dateien/Mars-6.24.00/build4/"
 # Absolut path to macros
-readonly MACROS="/home/frankm/Dateien/Mars/hawc"
+readonly MACROS="/home/frankm/Dateien/Mars-6.24.00/hawc"
 readonly PROGRAM=$0
 REPLACE=false
@@ -60,5 +60,5 @@
 if [ ! -d "${MARS}" ]
 then
-	echo "Mars does not exists at ${MARS}. Please change in \
+	echo "Mars does not exists at ${MARS}. Please change in \\
 		script ${PROGRAM}."
 	exit 1
@@ -68,5 +68,5 @@
 if [ ! -d "${MACROS}" ]
 then
-	echo "Macros directorey does not exists at ${MACROS}. Please change in \
+	echo "Macros directorey does not exists at ${MACROS}. Please change in \\
 		script ${PROGRAM}."
 	exit 1
@@ -88,4 +88,20 @@
 NIGHT="${4}"
 
+function UpdateStatus()
+{
+	local tel="${1}"
+	local night="${2}"
+	local runid="${3}"
+	local stat="${4}"
+
+	mysql --defaults-file=${CRED} \
+		--compress \
+		-e "UPDATE DataOnDisk \
+		SET DataOnDisk.callisto = ${stat} \
+		WHERE DataOnDisk.Telescope = ${tel} \
+		AND DataOnDisk.NIGHT = ${night} \
+		AND DataOnDisk.RUNID = ${runid};"
+}
+
 # Get all runs that can (and should) be calibrated
 # Pipe the output to mysql and read the
@@ -94,13 +110,26 @@
 "\
 SELECT 
-    	NIGHT, RUNID, DrsNight, DrsRunID
+    	Calibration.NIGHT,
+	Calibration.RUNID,
+	Calibration.DrsNight,
+	Calibration.DrsRunID
 FROM 
 	Calibration
+INNER JOIN
+	DataOnDisk
+ON
+	DataOnDisk.Telescope = Calibration.Telescope
+AND
+	DataOnDisk.NIGHT = Calibration.NIGHT
+AND
+	DataOnDisk.RUNID = Calibration.RUNID
 WHERE
-    	Telescope=${TEL}
+    	Calibration.Telescope = ${TEL}
 AND	
-	NIGHT=${NIGHT}
+	Calibration.NIGHT = ${NIGHT}
+AND
+	DataOnDisk.calibration = 0
 ORDER BY
-    	NIGHT, RUNID\
+    	Calibration.NIGHT, Calibration.RUNID\
 "\
 |  mysql \
@@ -161,5 +190,5 @@
 
 		       # Execute the calibration and write output to log-file
-		       root -b -q -l ${MACROS}/callisto.C'("'"${DATA}"/${DATPATH}/${DATNAME}'","'"${DATA}"/${DRSPATH}/${DRSNAME}'","'"${OUT}"'")' \
+		       root -b -q -l ${MACROS}/callisto.C'("'"${DATA}"/${DATPATH}/${DATNAME}'","'"${DATA}"/${DRSPATH}/${DRSNAME}'", 0 ,"'"${OUT}"'")' \
 			       2>&1 | tee "${OUT}"/${PREFIX}.log
 
@@ -176,5 +205,7 @@
 		       if [ "${RC}" == "0" ]
 		       then
-			       touch "${OUT}"/.${PREFIX}.success
+				touch "${OUT}"/.${PREFIX}.success
+		       else
+				UpdateStatus ${TEL} ${NIGHT} ${DATRUNID} 1
 		       fi
 
Index: trunk/Mars/hawc/processing/DiskToDB/run-root2sql2.sh
===================================================================
--- trunk/Mars/hawc/processing/DiskToDB/run-root2sql2.sh	(revision 20093)
+++ trunk/Mars/hawc/processing/DiskToDB/run-root2sql2.sh	(revision 20103)
@@ -89,4 +89,61 @@
 fi
 
+function UpdateStatus()
+{
+	local tel="${1}"
+	local night="${2}"
+	local runid="${3}"
+	local suf="${4}"
+	local stat="${5}"
+
+	if [ $suf = I ]
+	then
+		local col=star
+	elif [ $suf = Y ]
+	then
+		local col=callisto
+	fi
+
+	mysql --defaults-file=${CRED} \
+		--compress \
+		-e "UPDATE DataOnDisk \
+		SET DataOnDisk.${col} = ${stat} \
+		WHERE DataOnDisk.Telescope = ${tel} \
+		AND DataOnDisk.NIGHT = ${night} \
+		AND DataOnDisk.RUNID = ${runid};"
+}
+
+function PropagateStatus()
+{
+	local tel="${1}"
+	local night="${2}"
+	local suf="${3}"
+
+	if [ $suf = I ]
+	then
+		local col=star
+	elif [ $suf = Y ]
+	then
+		local col=callisto
+	fi
+
+	mysql --defaults-file=${CRED} \
+		--compress \
+		-e "UPDATE DataOnDisk \
+		SET DataOnDisk.${col} = 6 \
+		WHERE DataOnDisk.Telescope = ${tel} \
+		AND DataOnDisk.NIGHT = ${night} \
+		AND DataOnDisk.calibration != 0;"
+
+	mysql --defaults-file=${CRED} \
+		--compress \
+		-e "UPDATE DataOnDisk \
+		SET DataOnDisk.${col} = 3 \
+		WHERE DataOnDisk.Telescope = ${tel} \
+		AND DataOnDisk.NIGHT = ${night} \
+		AND DataOnDisk.calibration = 0 \
+		AND DataOnDisk.${col} IS NULL;"
+}
+
 # Get all runs that can (and should) be calibrated
 # Pipe the output to mysql and read the
@@ -95,14 +152,24 @@
 "\
 SELECT 
-	NIGHT, RUNID
+    	Calibration.NIGHT,
+	Calibration.RUNID
 FROM 
 	Calibration
+INNER JOIN
+	DataOnDisk
+ON
+	DataOnDisk.Telescope = Calibration.Telescope
+AND
+	DataOnDisk.NIGHT = Calibration.NIGHT
+AND
+	DataOnDisk.RUNID = Calibration.RUNID
 WHERE
-	Telescope = ${TEL}
+    	Calibration.Telescope = ${TEL}
+AND	
+	Calibration.NIGHT = ${NIGHT}
 AND
-	NIGHT = ${NIGHT}
+	DataOnDisk.calibration = 0
 ORDER BY
-	NIGHT, RUNID\
-
+    	Calibration.NIGHT, Calibration.RUNID;\
 "\
  |  mysql \
@@ -139,7 +206,13 @@
 
 		echo RC=${PIPESTATUS[0]} >> "${DIR}"/${PREFIX}-root2sql.log
+
+		UpdateStatus ${TEL} ${NIGHT} ${RUNID} ${SUFFIX} 0
+
 	else
 		echo Skipped.
+		UpdateStatus ${TEL} ${NIGHT} ${RUNID} ${SUFFIX} 2
 	fi
 
 done
+
+PropagateStatus ${TEL} ${NIGHT} ${SUFFIX}
Index: trunk/Mars/hawc/processing/DiskToDB/run-scripts.sh
===================================================================
--- trunk/Mars/hawc/processing/DiskToDB/run-scripts.sh	(revision 20093)
+++ trunk/Mars/hawc/processing/DiskToDB/run-scripts.sh	(revision 20103)
@@ -77,8 +77,8 @@
 readonly DATE=`date +%Y%m%d_%H%M`
 readonly LOG="./log/${SCRPTN}_${DATE}.log"
-exec 3>&1 1>>${LOG}
-exec 4>>${LOG}
-# exec 3>&1
-# exec 4>&1
+# exec 3>&1 1>>${LOG}
+# exec 4>>${LOG}
+exec 3>&1
+exec 4>&1
 
 echo "Start processing data"
@@ -88,51 +88,104 @@
 	# Delete entries form table ${3} for a given Telescope and Night
 	# Arguments: Credentials Telescope Table Night
-	mysql --defaults-file="${1}" \
+	local cred="${1}"
+	local tel="${2}"
+	local table="${3}"
+	local night="${4}"
+
+	mysql --defaults-file="${cred}" \
 		--skip-column-names \
 		--batch \
 		--raw \
 		--compress \
-		-e "DELETE FROM ${3} WHERE Telescope = ${2} AND NIGHT = ${4};"
+		-e "DELETE FROM ${table} WHERE Telescope = ${tel} \
+		AND NIGHT = ${night};"
 }
 
 function SetStatus()
 {
-	# Query with process update
-	# Arguments: Credentials Telescope Status Night
-	mysql --defaults-file="${1}" \
+	# Status update for one Column, Night and Telescope
+	# Arguments: Credentials Telescope Column Value Night
+	local cred="${1}"
+	local tel="${2}"
+	local col="${3}"
+	local val="${4}"
+	local night="${5}"
+
+	# Check if a valid Column was selected
+	if [ ${col} != "header" ] \
+		&& [ ${col} != "calibration" ] \
+		&& [ ${col} != "auxiliary" ] \
+		&& [ ${col} != "callisto" ] \
+		&& [ ${col} != "star" ]
+	then
+		echo "ERROR: ${col} is not a valid column."
+		exit 1
+	fi
+
+	mysql --defaults-file="${cred}" \
 		--skip-column-names \
 		--batch \
 		--raw \
 		--compress \
-		-e "UPDATE DataOnDisk SET STATUS = ${3} WHERE NIGHT = ${4} \
-		AND Telescope = ${2};"
+		-e "UPDATE DataOnDisk SET ${col} = ${val}\
+		WHERE NIGHT = ${night} AND Telescope = ${tel};"
 }
 
 function GetStatus()
 {
-	# Return status of Night from database
-	# Arguments: Credentials Telescope Night
-	local STATUS=`mysql --defaults-file="${1}" \
+	# Return status of Night for a given Column and Telescope
+	# Arguments: Credentials Telescope Column Night
+	local cred="${1}"
+	local tel="${2}"
+	local col="${3}"
+	local night="${4}"
+
+	# Check if a valid Column was selected
+	if [ ${col} != "header" ] \
+		&& [ ${col} != "calibration" ] \
+		&& [ ${col} != "auxiliary" ] \
+		&& [ ${col} != "callisto" ] \
+		&& [ ${col} != "star" ]
+	then
+		echo "ERROR: ${col} is not a valid column."
+		exit 1
+	fi
+
+	local STATUS=`mysql --defaults-file="${cred}" \
 		--skip-column-names \
 		--batch \
 		--raw \
 		--compress \
-		-e "SELECT DISTINCT STATUS FROM DataOnDisk WHERE NIGHT = ${3} \
-		AND Telescope = ${2};"`
-
-	if [ -z ${STATUS} ]
-	then
-		echo "ERROR: Status does not exist for telescope: ${2} and night: ${3}" >&2
+		-e "SELECT DISTINCT ${col} FROM DataOnDisk \
+		WHERE NIGHT = ${night} \
+		AND Telescope = ${tel} \
+		AND ${col} IS NULL;"`
+
+	echo "${STATUS}"
+}
+
+
+function DoesDirExists()
+{
+	local thing="${1}"
+	# Check if thing exists
+	if [ ! -d "${thing}" ]
+	then
+		echo "${thing} is not a valid Path. Please change variable in script ${SCRPTN}."
 		exit 1
 	fi
-
-	if [ `echo "${STATUS}" | wc -l` -ne "1" ]
-	then
-		echo "ERROR: Not all status values are the same for the night: ${3}!" >&2
+}
+
+function DoesFileExists()
+{
+	local thing="${1}"
+	# Check if thing exists
+	if [ ! -f "${thing}" ]
+	then
+		echo "${thing} is not a valid File. Please change variable in script ${SCRPTN}."
 		exit 1
 	fi
-
-	echo "${STATUS}"
-}
+}
+
 
 # Define variables
@@ -147,4 +200,11 @@
 # Credentials for root2sql for star
 readonly STARRC='../root2sql-star.rc'
+
+# Check if variable paths point to something sensible
+DoesDirExists "${DIR}"
+DoesFileExists "${CRED}"
+DoesFileExists "${CALLISTORC}"
+DoesFileExists "${STARRC}"
+
 # SQL outputs
 mkdir -p ./queries
@@ -156,5 +216,5 @@
 # Create Database of existing files
 # Create SQL query with:
-# (Telescope, Night, RUNID, ISDRSFILE, ISPROCESSED).
+# (Telescope, Night, RUNID, ISDRSFILE).
 echo "Updating file table"
 bash ./update-file-table2.sh -i -o "${ONDISK}" "${TEL}" "${DIR}/raw"
@@ -170,5 +230,10 @@
 	--raw \
 	--compress \
-	-e "SELECT DISTINCT NIGHT FROM DataOnDisk WHERE STATUS != 5 \
+	-e "SELECT DISTINCT NIGHT FROM DataOnDisk \
+	WHERE header IS NULL \
+	OR calibration IS NULL \
+	OR auxiliary IS NULL \
+	OR callisto IS NULL \
+	OR star IS NULL \
 	AND Telescope = ${TEL};"`
 
@@ -182,4 +247,6 @@
 echo "Updating database"
 
+NIGHTS=20201111
+
 echo "Nights to process:"
 echo "${NIGHTS}"
@@ -191,9 +258,15 @@
 for NIGHT in ${NIGHTS}
 do
-	STATUS=`GetStatus ${CRED} ${TEL} ${NIGHT}`
-	echo "Status = ${STATUS} for night = ${NIGHT}"
-	echo " "
-
-	if [ ${STATUS} -lt "1" ]
+	HEAD_S=`GetStatus ${CRED} ${TEL} "header" ${NIGHT}`
+	CALI_S=`GetStatus ${CRED} ${TEL} "calibration" ${NIGHT}`
+	AUXI_S=`GetStatus ${CRED} ${TEL} "auxiliary" ${NIGHT}`
+	CALL_S=`GetStatus ${CRED} ${TEL} "callisto" ${NIGHT}`
+	STAR_S=`GetStatus ${CRED} ${TEL} "star" ${NIGHT}`
+
+	echo "header = ${HEAD_S} for night = ${NIGHT}"
+	echo " "
+
+	# If header is null
+	if [ ! -z ${HEAD_S} ] && [ ${HEAD_S} = "NULL" ]
 	then
 		# Get raw data headers
@@ -205,10 +278,14 @@
 		echo "Uploading raw headers for night: ${NIGHT}"
 		mysql --defaults-file="${CRED}" < "${RAW}"
-		SetStatus ${CRED} ${TEL} "1" ${NIGHT}
 		echo "Finished uploading raw headers for night: ${NIGHT}"
 		echo " "
 	fi
 
-	if [ ${STATUS} -lt "2" ]
+	echo "calibration = ${CALI_S} for night = ${NIGHT}"
+	echo " "
+
+	# If header is null and or calibration is null
+	if ([ ! -z ${HEAD_S} ] && [ ${HEAD_S} = "NULL" ]) \
+		|| ([ ! -z ${CALI_S} ] && [ ${CALI_S} = "NULL" ])
 	then
 		# Get calibration files
@@ -219,10 +296,15 @@
 		echo "Uploading calibration for night: ${NIGHT}"
 		mysql --defaults-file="${CRED}" < "${CALIB}"
-		SetStatus ${CRED} ${TEL} "2" ${NIGHT}
 		echo "Finished uploading calibration for night: ${NIGHT}"
 		echo " "
 	fi
 
-	if [ ${STATUS} -lt "3" ]
+	echo "auxiliary = ${AUXI_S} for night = ${NIGHT}"
+	echo " "
+
+	# If header is null and or calibration is null and or auxiliary is null
+	if ([ ! -z ${HEAD_S} ] && [ ${HEAD_S} = "NULL" ]) \
+		|| ([ ! -z ${CALI_S} ] && [ ${CALI_S} = "NULL" ]) \
+		|| ([ ! -z ${AUXI_S} ] && [ ${AUXI_S} = "NULL" ])
 	then
 		# Get aux data
@@ -235,10 +317,15 @@
 		echo "Uploading aux data for night: ${NIGHT}"
 		mysql --defaults-file="${CRED}" < "${AUX}"
-		SetStatus ${CRED} ${TEL} "3" ${NIGHT}
 		echo "Finished uploading aux data for night: ${NIGHT}"
 		echo " "
 	fi
 
-	if [ ${STATUS} -lt "4" ]
+	echo "callisto = ${CALL_S} for night = ${NIGHT}"
+	echo " "
+
+	# If header is null and or calibration is null and or callisto is null
+	if ([ ! -z ${HEAD_S} ] && [ ${HEAD_S} = "NULL" ]) \
+		|| ([ ! -z ${CALI_S} ] && [ ${CALI_S} = "NULL" ]) \
+		|| ([ ! -z ${CALL_S} ] && [ ${CALL_S} = "NULL" ])
 	then
 		# Get callisto data
@@ -260,10 +347,17 @@
 			"${DIR}"/callisto \
 			${NIGHT}
-		SetStatus ${CRED} ${TEL} "4" ${NIGHT}
 		echo "Finished uploading callisto entries for night: ${NIGHT}"
 		echo " "
 	fi
 
-	if [ ${STATUS} -lt "5" ]
+	echo "star = ${STAR_S} for night = ${NIGHT}"
+	echo " "
+
+	# If header is null and or calibration is null and or callisto is null
+	# and or star is null
+	if ([ ! -z ${HEAD_S} ] && [ ${HEAD_S} = "NULL" ]) \
+		|| ([ ! -z ${CALI_S} ] && [ ${CALI_S} = "NULL" ]) \
+		|| ([ ! -z ${CALL_S} ] && [ ${CALL_S} = "NULL" ]) \
+		|| ([ ! -z ${STAR_S} ] && [ ${STAR_S} = "NULL" ])
 	then
 		# Get star data
@@ -281,5 +375,4 @@
 			"${DIR}"/star \
 			${NIGHT}
-		SetStatus ${CRED} ${TEL} "5" ${NIGHT}
 		echo "Finished uploading star entries for night: ${NIGHT}"
 		echo " "
Index: trunk/Mars/hawc/processing/DiskToDB/run-star2.sh
===================================================================
--- trunk/Mars/hawc/processing/DiskToDB/run-star2.sh	(revision 20093)
+++ trunk/Mars/hawc/processing/DiskToDB/run-star2.sh	(revision 20103)
@@ -32,7 +32,7 @@
 readonly STAR=star
 # Directory to Mars environment (usually Mars/build)
-readonly MARS="/home/frankm/Dateien/Mars/build/"
+readonly MARS="/home/frankm/Dateien/Mars-6.24.00/build4/"
 # Absolut path to macros
-readonly MACROS="/home/frankm/Dateien/Mars/hawc"
+readonly MACROS="/home/frankm/Dateien/Mars-6.24.00/hawc"
 readonly PROGRAM=$0
 REPLACE=false
@@ -87,4 +87,20 @@
 DATA="${3}"
 NIGHT="${4}"
+
+function UpdateStatus()
+{
+	local tel="${1}"
+	local night="${2}"
+	local runid="${3}"
+	local stat="${4}"
+
+	mysql --defaults-file=${CRED} \
+		--compress \
+		-e "UPDATE DataOnDisk \
+		SET DataOnDisk.star = ${stat} \
+		WHERE DataOnDisk.Telescope = ${tel} \
+		AND DataOnDisk.NIGHT = ${night} \
+		AND DataOnDisk.RUNID = ${runid};"
+}
 
 # Get all runs that can (and should) be calibrated
@@ -166,4 +182,6 @@
 			then
 				touch "${OUT}"/.${PREFIX}.success
+			else
+				UpdateStatus ${TEL} ${NIGHT} ${DATRUNID} 1
 			fi
 
Index: trunk/Mars/hawc/processing/DiskToDB/update-file-table2.sh
===================================================================
--- trunk/Mars/hawc/processing/DiskToDB/update-file-table2.sh	(revision 20093)
+++ trunk/Mars/hawc/processing/DiskToDB/update-file-table2.sh	(revision 20103)
@@ -3,5 +3,6 @@
 # Recursively finds all .fits.fz and .drs.fits files in DIR and extract 
 # NIGHT, RUNID and if the file is a DRS file and writes an SQL query with the 
-# columns: (Telescope, NIGHT, RUNID, ISDRSFILE, ISPRECESSED) to OUTPUT.
+# columns: (Telescope, NIGHT, RUNID, ISDRSFILE, 
+# header, calibration, auxiliary, callisto, star) to OUTPUT.
 #
 # Example:
@@ -77,5 +78,9 @@
 	RUNID mediumint UNSIGNED NOT NULL,
 	ISDRSFILE tinyint(1) NOT NULL,
-	STATUS tinyint UNSIGNED NOT NULL,
+	header tinyint UNSIGNED,
+	calibration tinyint UNSIGNED,
+	auxiliary smallint UNSIGNED,
+	callisto tinyint UNSIGNED,
+	star tinyint UNSIGNED,
 	Updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP 
 		ON UPDATE CURRENT_TIMESTAMP,
@@ -89,5 +94,9 @@
 	RUNID mediumint UNSIGNED NOT NULL,
 	ISDRSFILE tinyint(1) NOT NULL,
-	STATUS tinyint UNSIGNED NOT NULL,
+	header tinyint UNSIGNED,
+	calibration tinyint UNSIGNED,
+	auxiliary smallint UNSIGNED,
+	callisto tinyint UNSIGNED,
+	star tinyint UNSIGNED,
 	Updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP 
 		ON UPDATE CURRENT_TIMESTAMP,
@@ -95,5 +104,5 @@
 ); 
 
-INSERT INTO DataOnDisk_tmp (Telescope, NIGHT, RUNID, ISDRSFILE, STATUS)
+INSERT INTO DataOnDisk_tmp (Telescope, NIGHT, RUNID, ISDRSFILE)
 VALUES
 "\ > ${OUTPUT}
@@ -106,10 +115,9 @@
 	| cut -f1 -d "."`
 
-# Format to (Telescope, NIGHT, RUNID, ISDRSFILE, ISPROCESSED),
+# Format to (Telescope, NIGHT, RUNID, ISDRSFILE),
 FZQUERY=`paste <(for i in ${NRID}; do echo ${TEL}; done) \
 	<(echo "${NRID}" | cut -f1 -d "_") \
 	<(echo "${NRID}" | cut -f2 -d "_") \
 	<(for i in ${NRID}; do echo "false"; done) \
-	<(for i in ${NRID}; do echo "0"; done) \
 	--delimiters "," \
 	| sed 's/^/(/' \
@@ -123,10 +131,9 @@
 	| cut -f1 -d "."`
 
-# Format to (Telescope, NIGHT, RUNID, ISDRSFILE, ISPROCESSED),
+# Format to (Telescope, NIGHT, RUNID, ISDRSFILE),
 DRSQUERY=`paste <(for i in ${DNRID}; do echo ${TEL}; done) \
 	<(echo "${DNRID}" | cut -f1 -d "_") \
 	<(echo "${DNRID}" | cut -f2 -d "_") \
 	<(for i in ${DNRID}; do echo "true"; done) \
-	<(for i in ${DNRID}; do echo "0"; done) \
 	--delimiters "," \
 	| sed 's/^/(/' \
@@ -140,5 +147,5 @@
 sed -i '$s/,$/;/' "${OUTPUT}"
 
-# 1) If there is data in the database that is not on disk then set status = 0
+# 1) If there is data in the database that is not on disk then set star = 0
 #    for that night
 # 2) Delete all entries from the database that are not on disk
@@ -152,5 +159,9 @@
 	RUNID mediumint UNSIGNED NOT NULL,
 	ISDRSFILE tinyint(1) NOT NULL,
-	STATUS tinyint UNSIGNED NOT NULL,
+	header tinyint UNSIGNED,
+	calibration tinyint UNSIGNED,
+	auxiliary smallint UNSIGNED,
+	callisto tinyint UNSIGNED,
+	star tinyint UNSIGNED,
 	Updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP 
 		ON UPDATE CURRENT_TIMESTAMP,
@@ -160,5 +171,5 @@
 	(SELECT Telescope, NIGHT, RUNID, ISDRSFILE FROM DataOnDisk_tmp);
 
-UPDATE DataOnDisk SET STATUS = 0 WHERE NIGHT IN 
+UPDATE DataOnDisk SET star = NULL WHERE NIGHT IN 
 	(SELECT NIGHT FROM TableNotDisk);
 
Index: trunk/Mars/hawc/processing/DiskToDB/write-calibration-query.sh
===================================================================
--- trunk/Mars/hawc/processing/DiskToDB/write-calibration-query.sh	(revision 20093)
+++ trunk/Mars/hawc/processing/DiskToDB/write-calibration-query.sh	(revision 20103)
@@ -14,5 +14,5 @@
 function ErrExit()
 {
-	echo "ERROR: Line `caller`: ${BASH_COMMAND}" >&2
+	echo "ERROR: Line \`caller\`: ${BASH_COMMAND}" >&2
 	exit 1
 }
@@ -94,79 +94,120 @@
 echo \
 "\
+-- Set Status to 6 if there was an error is the extraction of RawData
+UPDATE DataOnDisk 
+SET DataOnDisk.calibration = 6
+WHERE DataOnDisk.header != 0;
+
 CREATE TEMPORARY TABLE Calibration_tmp
 (
-   WITH Table1 AS
-   (
-      SELECT
-         -- NIGHT and RUNID of the data file
-         R1.Telescope AS Telescope,
-	 R1.NIGHT     AS NIGHT,
-         R1.RUNID     AS RUNID,
-         -- NIGHT and RUNID of the DRS file
-         R2.NIGHT     AS DrsNight,
-         R2.RUNID     AS DrsRunID,
-         -- Time difference between the two
-         LEAST(
-             ABS(UNIX_TIMESTAMP(R2.\`DATE-OBS\`)-UNIX_TIMESTAMP(R1.\`DATE-OBS\`)),
-             ABS(UNIX_TIMESTAMP(R2.\`DATE-OBS\`)-UNIX_TIMESTAMP(R1.\`DATE-END\`)),
-             ABS(UNIX_TIMESTAMP(R2.\`DATE-END\`)-UNIX_TIMESTAMP(R1.\`DATE-OBS\`)),
-             ABS(UNIX_TIMESTAMP(R2.\`DATE-END\`)-UNIX_TIMESTAMP(R1.\`DATE-END\`))
-         ) AS DeltaT,
-         -- Assign a row number to each combination of data-file and drs-file
-         -- after sorting them by time difference
-         ROW_NUMBER() OVER(PARTITION BY R1.NIGHT, R1.RUNID, R1.Telescope ORDER BY
-            LEAST(
-            ABS(UNIX_TIMESTAMP(R2.\`DATE-OBS\`)-UNIX_TIMESTAMP(R1.\`DATE-OBS\`)),
-            ABS(UNIX_TIMESTAMP(R2.\`DATE-OBS\`)-UNIX_TIMESTAMP(R1.\`DATE-END\`)),
-            ABS(UNIX_TIMESTAMP(R2.\`DATE-END\`)-UNIX_TIMESTAMP(R1.\`DATE-OBS\`)),
-            ABS(UNIX_TIMESTAMP(R2.\`DATE-END\`)-UNIX_TIMESTAMP(R1.\`DATE-END\`))
-            )
-         ) AS RowNumber
-      FROM
-         RawData R1
-      -- Join the table with itself to get all possible combinations of runs
-      CROSS JOIN
-         RawData R2
-      -- Join the DRS files with the table that tells you whether they can be used
-      -- if the table does not (yet) exists, this can be omitted
-      -- LEFT JOIN
-      --    DoNotUse ON (R2.NIGHT=DoNotUse.NIGHT AND R2.RUNID=DoNotUse.RUNID)
-      WHERE
-         -- Of course claibration must be from the same telescope
-         R1.Telescope=R2.Telescope
-      AND
-         -- Select all combinations that have a data file in R1 and a drs file (at step 1) in R2
-         ISNULL(R1.DRSSTEP) AND R2.DRSSTEP=1
-      AND 
-         -- Only DRS files with 100 events and the correct ROI are considered
-         R2.ZNAXIS2=1000 AND R1.NROI=R2.NROI 
-	 AND R1.NIGHT = ${NIGHT}
-	 AND R1.NIGHT = ${NIGHT}
-	 AND R1.Telescope = ${TEL}
-      -- AND
-         -- Check if they are valid
-         -- IFNULL(DoNotUse.WrongVoltage,false)!=true
-      -- This can be used to restrict the number of combinations     
-      -- AND ABS(UNIX_TIMESTAMP(R2.\`DATE-OBS\`)-UNIX_TIMESTAMP(R1.\`DATE-OBS\`))<78*3600
-      ORDER BY
-         R1.Telescope,
-         R1.NIGHT,
-         R1.RUNID,
-         DeltaT
-    )
-    SELECT
-       Telescope,
-       NIGHT,
-       RUNID,
-       DrsNight,
-       DrsRunId,
-       DeltaT/3600e0 AS DeltaT
-    FROM
-       Table1
-    WHERE
-       -- Select only the rows with the smallest DeltaT
-       RowNumber = 1
+	WITH Table1 AS
+	(
+		SELECT
+		-- NIGHT and RUNID of the data file
+		R1.Telescope AS Telescope,
+		R1.NIGHT     AS NIGHT,
+		R1.RUNID     AS RUNID,
+		-- NIGHT and RUNID of the DRS file
+		R2.NIGHT     AS DrsNight,
+		R2.RUNID     AS DrsRunID,
+		-- Time difference between the two
+		LEAST(
+			ABS(UNIX_TIMESTAMP(R2.\`DATE-OBS\`)
+				- UNIX_TIMESTAMP(R1.\`DATE-OBS\`)),
+			ABS(UNIX_TIMESTAMP(R2.\`DATE-OBS\`)
+				- UNIX_TIMESTAMP(R1.\`DATE-END\`)),
+			ABS(UNIX_TIMESTAMP(R2.\`DATE-END\`)
+				- UNIX_TIMESTAMP(R1.\`DATE-OBS\`)),
+			ABS(UNIX_TIMESTAMP(R2.\`DATE-END\`)
+				- UNIX_TIMESTAMP(R1.\`DATE-END\`))
+		) AS DeltaT,
+		-- Assign a row number to each combination of data-file and 
+		-- drs-file after sorting them by time difference
+		ROW_NUMBER() OVER(PARTITION BY R1.NIGHT, R1.RUNID, R1.Telescope 
+			ORDER BY
+			LEAST(
+				ABS(UNIX_TIMESTAMP(R2.\`DATE-OBS\`)
+					- UNIX_TIMESTAMP(R1.\`DATE-OBS\`)),
+				ABS(UNIX_TIMESTAMP(R2.\`DATE-OBS\`)
+					- UNIX_TIMESTAMP(R1.\`DATE-END\`)),
+				ABS(UNIX_TIMESTAMP(R2.\`DATE-END\`)
+					- UNIX_TIMESTAMP(R1.\`DATE-OBS\`)),
+				ABS(UNIX_TIMESTAMP(R2.\`DATE-END\`)
+					- UNIX_TIMESTAMP(R1.\`DATE-END\`))
+			)
+		) AS RowNumber
+		FROM (
+			SELECT RawData.* FROM RawData 
+			INNER JOIN DataOnDisk 
+			ON DataOnDisk.Telescope = RawData.Telescope
+			AND DataOnDisk.NIGHT = RawData.NIGHT
+			AND DataOnDisk.RUNID = RawData.RUNID
+			AND DataOnDisk.ISDRSFILE = 0
+			WHERE DataOnDisk.header = 0
+		) AS R1
+		-- Join the table with itself to get all possible combinations 
+		-- of runs
+		CROSS JOIN (
+			SELECT RawData.* FROM RawData 
+			INNER JOIN DataOnDisk 
+			ON DataOnDisk.Telescope = RawData.Telescope
+			AND DataOnDisk.NIGHT = RawData.NIGHT
+			AND DataOnDisk.RUNID = RawData.RUNID
+			AND DataOnDisk.ISDRSFILE = 0
+			WHERE DataOnDisk.header = 0
+		) AS R2
+		-- Join the DRS files with the table that tells you whether
+		-- they can be used if the table does not (yet) exists, this
+		-- can be omitted
+		WHERE
+		-- Of course claibration must be from the same telescope
+		R1.Telescope=R2.Telescope
+		AND
+		-- Select all combinations that have a data file in R1 and a
+		-- drs file (at step 1) in R2
+		ISNULL(R1.DRSSTEP) AND R2.DRSSTEP=1
+		AND 
+		-- Only DRS files with 100 events and the correct ROI are
+		-- considered
+		R2.ZNAXIS2=1000 AND R1.NROI=R2.NROI 
+		AND R1.NIGHT = ${NIGHT}
+		AND R2.NIGHT = ${NIGHT}
+		AND R1.Telescope = ${TEL}
+		-- AND
+		-- Check if they are valid
+		-- IFNULL(DoNotUse.WrongVoltage,false)!=true
+		-- This can be used to restrict the number of combinations     
+		-- AND ABS(UNIX_TIMESTAMP(R2.\`DATE-OBS\`)-UNIX_TIMESTAMP(R1.\`DATE-OBS\`))<78*3600
+		ORDER BY
+		R1.Telescope,
+		R1.NIGHT,
+		R1.RUNID,
+		DeltaT
+	)
+	SELECT
+	Telescope,
+	NIGHT,
+	RUNID,
+	DrsNight,
+	DrsRunId,
+	DeltaT/3600e0 AS DeltaT
+	FROM
+	Table1
+	WHERE
+	-- Select only the rows with the smallest DeltaT
+	RowNumber = 1
 );
 
-${INSERT} Calibration SELECT * FROM Calibration_tmp;
+-- Insert Calibration data into Database
+INSERT INTO Calibration SELECT * FROM Calibration_tmp;
+
+-- Set Status to 0 for all valid headers
+UPDATE DataOnDisk 
+SET DataOnDisk.calibration = 0
+WHERE DataOnDisk.header = 0;
+
+-- Set Status to 2 if there was no drs file with step = 1 in the NIGHT
+UPDATE DataOnDisk
+SET DataOnDisk.calibration = 2
+WHERE EXISTS(SELECT * FROM Calibration WHERE NIGHT=${NIGHT}) = 0;
 "\ >> ${OUTPUT}
