Index: trunk/pstamp/scripts/detect_query_read
===================================================================
--- trunk/pstamp/scripts/detect_query_read	(revision 29130)
+++ trunk/pstamp/scripts/detect_query_read	(revision 29157)
@@ -36,5 +36,6 @@
 
 my $regtool = can_run('regtool') or (die "Can't find regtool");
-my $camtool = can_run('camtool') or (die "Can't find regtool");
+my $camtool = can_run('camtool') or (die "Can't find camtool");
+my $difftool = can_run('difftool') or (die "Can't find difftool");
 
 
@@ -210,4 +211,5 @@
 	}
     }
+    # Calculate a MJD
     if (($colData{'MJD-OBS'}[$i] eq "Not_Set")&&($colData{FPA_ID}[$i] ne "Not_Set")) {
 	# HACK!
@@ -217,4 +219,5 @@
 	$colData{'MJD-OBS'}[$i] = $mjd;
     }
+    # Calculate an exp_id
     if (($colData{FPA_ID}[$i] eq "Not_Set")&&(($colData{'FILTER'}[$i] ne "Not_Set")&&
 					      ($colData{'MJD-OBS'}[$i] ne "Not_Set"))) {
@@ -224,9 +227,27 @@
 	my $dec = $colData{'DEC1_DEG'}[$i];
 	my $filter = $colData{'FILTER'}[$i] . ".00000";
-	my $cmd = "$camtool -processedexp -dbname $dbname -filter $filter ";
-	$cmd .= " -dateobs_begin $dateobs_begin -dateobs_end $dateobs_end ";
-	$cmd .= " -ra $ra -decl $dec -radius 1.5 -limit 1";
+	my $cmd;
+	if ($colData{STAGE}[$i] eq 'SSdiff') {
+	    $cmd = "$difftool -listrun -dbname $dbname -filter $filter ";
+	    $cmd .= " -dateobs_begin $dateobs_begin -dateobs_end $dateobs_end ";
+	    $cmd .= " -ra $ra -decl $dec -radius 1.5 -limit 1 -diff_mode 4";
+	}
+	elsif ($colData{STAGE}[$i] eq 'WSdiff') {
+	    $cmd = "$difftool -listrun -dbname $dbname -filter $filter ";
+	    $cmd .= " -dateobs_begin $dateobs_begin -dateobs_end $dateobs_end ";
+	    $cmd .= " -ra $ra -decl $dec -radius 1.5 -limit 1 -diff_mode 2";
+	}
+	elsif ($colData{STAGE}[$i] eq 'diff') {
+	    $cmd = "$difftool -listrun -dbname $dbname -filter $filter ";
+	    $cmd .= " -dateobs_begin $dateobs_begin -dateobs_end $dateobs_end ";
+	    $cmd .= " -ra $ra -decl $dec -radius 1.5 -limit 1";
+	}
+	else {
+	    $cmd = "$camtool -processedexp -dbname $dbname -filter $filter ";
+	    $cmd .= " -dateobs_begin $dateobs_begin -dateobs_end $dateobs_end ";
+	    $cmd .= " -ra $ra -decl $dec -radius 1.5 -limit 1";
+	}
 	my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
-	    run(command => $cmd, verbose => 0);
+	    run(command => $cmd, verbose => 1);
 	unless ($success) {
 	    # This is a problem, because I'm not sure how we handle a failure to read something.
@@ -243,8 +264,22 @@
 	    my ($key,$type,$value) = @line;
 #		print "$entry => $key / $type / $value \n";
-	    if ($key =~ /exp_name/i) {
-		$colData{FPA_ID}[$i] = $value;
-	    }
-	}
+	    if ($colData{STAGE}[$i] =~ /diff/) {
+		if ($key =~ /diff_id/i) {
+		    $colData{FPA_ID}[$i] = $value;
+		}
+	    }
+	    else {
+		if ($key =~ /exp_name/i) {
+		    $colData{FPA_ID}[$i] = $value;
+		}
+	    }
+	}
+    }
+    # Correct diff modes
+    if ($colData{STAGE}[$i] eq 'WSdiff') {
+	$colData{STAGE}[$i] = 'diff';
+    }
+    elsif ($colData{STAGE}[$i] eq 'SSdiff') {
+	$colData{STAGE}[$i] = 'diff';
     }
 }
