Index: branches/tap_branches/tools/diff_outputs.pl
===================================================================
--- branches/tap_branches/tools/diff_outputs.pl	(revision 25900)
+++ branches/tap_branches/tools/diff_outputs.pl	(revision 27838)
@@ -8,4 +8,5 @@
 use strict;
 
+use Carp;
 use DBI;
 use constant DB_SOCKET => '/var/run/mysqld/mysqld.sock'; # Socket for mysql
@@ -15,13 +16,15 @@
 use constant PRODUCTS => { 'REGULAR' => [ 'IMAGE', 'MASK', 'VARIANCE',
                                           'SOURCES', 'JPEG1', 'JPEG2',
-                                          'KERNEL' ],
+                                          'KERNEL', 'LOG' ],
                            'ALL' => [ 'IMAGE', 'MASK', 'VARIANCE', 'SOURCES', 'JPEG1', 'JPEG2', 'KERNEL',
                                       'INVERSE.IMAGE', 'INVERSE.MASK', 'INVERSE.VARIANCE', 'INVERSE.SOURCES',
-                                      'INCONV.IMAGE', 'INCONV.MASK', 'INCONV.VARIANCE',
-                                      'REFCONV.IMAGE', 'REFCONV.MASK', 'REFCONV.VARIANCE',
+#                                      'INCONV.IMAGE', 'INCONV.MASK', 'INCONV.VARIANCE',
+#                                      'REFCONV.IMAGE', 'REFCONV.MASK', 'REFCONV.VARIANCE',
+                                      'LOG',
                                ],
                            'INVERSE' => [ 'INVERSE.IMAGE', 'INVERSE.MASK',
                                           'INVERSE.VARIANCE',
-                                          'INVERSE.SOURCES' ],
+                                          'INVERSE.SOURCES',
+                                          'LOG', ],
                        };
 
@@ -44,5 +47,18 @@
                              'REFCONV.MASK' => '.refConv.mk.fits', # Convolved reference mask
                              'REFCONV.VARIANCE' => '.refConv.wt.fits', # Convolved reference variance
+                             'LOG' => '.log', # Log file
                          };
+
+# Products that get magicked
+use constant MAGIC => { 'IMAGE' => 1,
+                        'MASK' => 1,
+                        'VARIANCE' => 1,
+                        'SOURCES' => 1,
+                        'INVERSE.IMAGE' => 1,
+                        'INVERSE.MASK' => 1,
+                        'INVERSE.VARIANCE' => 1,
+                        'INVERSE.SOURCES' => 1,
+};
+
 
 my ($db_host, $db_name, $db_user, $db_pw); # Database details
@@ -50,4 +66,5 @@
 my ($input);                    # Input list
 my ($products);                 # Products of interest
+my ($muggle);                   # Not magicked?
 
 GetOptions(
@@ -59,4 +76,5 @@
            'skycell_id=s' => \$skycell_id, # Skycell identifier
            'products=s' => \$products, # Products of interest
+           'muggle'   => \$muggle, # Not magicked?
            ) or die "Unable to parse arguments.\n";
 die "Unknown option: @ARGV\n" if @ARGV;
@@ -102,5 +120,12 @@
     foreach my $product ( @products ) {
         next if (not defined $diff->{bothways} or $diff->{bothways} eq 'NULL' or not $diff->{bothways}) and $product =~ /INVERSE/;
-        copy_extension( $diff->{path_base}, ${EXTENSIONS()}{$product} );
+        my $path = $diff->{path_base};
+        if (defined $muggle and defined ${MAGIC()}{$product}) {
+            my @path = split /\//, $path;
+            my $last = pop @path;
+            push @path, "SR_$last";
+            $path = join '/', @path;
+        }
+        copy_extension( $path, ${EXTENSIONS()}{$product} );
     }
 }
@@ -116,7 +141,7 @@
 
     my $file = "$path$ext";     # File
-    my $source = `ipp_datapath.pl $file` or die "Unable to locate $file\n"; # Actual file
+    my $source = `ipp_datapath.pl $file` or (carp "Unable to locate $file\n" and return); # Actual file
     chomp $source;
     my ($target) = $source =~ m|^.*[:/](.*)|; # Target name
-    !system "cp $source $target" or die "Unable to copy $source\n";
+    !system "cp $source $target" or carp "Unable to copy $source\n";
 }
