Index: /trunk/ippScripts/scripts/permcheck.pl
===================================================================
--- /trunk/ippScripts/scripts/permcheck.pl	(revision 39968)
+++ /trunk/ippScripts/scripts/permcheck.pl	(revision 39969)
@@ -266,7 +266,7 @@
 		  'warp'   => ['PSWARP.OUTPUT','PSWARP.OUTPUT.MASK','PSWARP.OUTPUT.VARIANCE'],
 		  'stack'  => ['PPSTACK.UNCONV.COMP','PPSTACK.UNCONV.MASK.COMP','PPSTACK.UNCONV.VARIANCE.COMP',
-			       'PPSTACK.UNCONV.EXP','PPSTACK.UNCONV.EXPNUM','PPSTACK.UNCONV.EXPWT.COMP'],
-		  'skycal' => ['PSASTRO.OUTPUT.CMF','PSPHOT.OUTPUT.CFF'],
-		  'ff'     => ['PSPHOT.OUT.CMF.MEF','PSPHOT.OUTPUT.CFF','PSPHOT.FULLFORCE.OUTPUT'],
+			       'PPSTACK.UNCONV.EXP','PPSTACK.UNCONV.EXPNUM','PPSTACK.UNCONV.EXPWT.COMP','PPSTACK.TARGET.PSF'],
+		  'skycal' => ['PSASTRO.OUTPUT.CMF','PSPHOT.OUTPUT.CFF','PSPHOT.PSF.SKY.SAVE','PSPHOT.BACKMDL.MEF'],
+		  'ff'     => ['PSPHOT.OUT.CMF.MEF','PSPHOT.OUTPUT.CFF','PSPHOT.FULLFORCE.OUTPUT','PSPHOT.PSF.SKY.SAVE'],
 		  'diff'   => ['PPSUB.OUTPUT.SOURCES','PPSUB.INVERSE.SOURCES','PSPHOT.PSF.SKY.SAVE','PSPHOT.BACKMDL.MEF','PPSUB.OUTPUT.KERNELS'],
 		  'burntool' => ['BURN.TABLE.DOESNT.HAVE.A.PRODUCT']
@@ -279,4 +279,12 @@
     my $hostname = $entry->{hostname};
     my $quality  = $entry->{quality};
+    
+    # Fixes burntool issues.
+    unless(defined($path_base)) { 
+	$path_base = 'NO_PB';
+    }
+    unless(defined($data_state)) {
+	$data_state = $entry->{data_state};
+    }
 
     $timer = time() - $timer_start;
@@ -337,5 +345,24 @@
 		foreach my $ff_entry (@$ff_files) {
 		    my $ff_path_base = $ff_entry->{path_base};
-		    push @keys, $ipprc->filename($product,$ff_path_base);
+		    my $ff_skycell   = $ff_entry->{skycell_id};
+		    my $warp_id      = $ff_entry->{warp_id};
+		    if ($product ne 'PSPHOT.PSF.SKY.SAVE') {
+			push @keys, $ipprc->filename($product,$ff_path_base);
+		    }
+		    else {
+			my $warptool_cmd = "$warptool -warped -skycell_id $ff_skycell -warp_id $warp_id -dbname $dbname";
+			($success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 
+			    run(command => $warptool_cmd, verbose => 0);
+			unless ($success) {
+			    $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
+			    &my_die("Unable to perform stagetool: $error_code", $stage_id);
+			}
+			my $warp_files = $mdcParser->parse_list(join "", @$stdout_buf) or
+			    &my_die("Unable to parse metadata from stagetool", $stage_id);
+			foreach my $wt_entry (@$warp_files) {
+			    my $wt_path_base = $wt_entry->{path_base};
+			    push @keys, $ipprc->filename($product,$wt_path_base,$ff_skycell);
+			}
+		    }		    
 		}
 		$is_done = 1;
@@ -344,10 +371,36 @@
 	elsif ($stage eq 'burntool') {
 	    if ($product eq 'BURN.TABLE.DOESNT.HAVE.A.PRODUCT') {
-		my $bt_file = $imfiles->{uri};
+		my $bt_state = $entry->{burntool_state};
+		if ($bt_state != -14) { next; }
+		my $bt_file = $entry->{uri};
 		$bt_file    =~ s/fits$/burn.tbl/;
 		push @keys, $bt_file;
-	    }
-	    $is_done = 1;
-	}
+
+		$is_done = 1;
+	    }
+
+	}
+	elsif ($stage eq 'skycal') {
+	    if (($product eq 'PSPHOT.PSF.SKY.SAVE')||($product eq 'PSPHOT.BACKMDL.MEF')) {
+		my $sky_id = $entry->{sky_id};
+		my $stack_id = $entry->{stack_id};
+		
+		my $ss_cmd = "$staticskytool -result -sky_id $sky_id -dbname $dbname";
+		my ($success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) = 
+		    run(command => $ss_cmd, verbose => 0);
+		unless ($success) {
+		    $error_code = (($error_code >> 8) or $PS_EXIT_PROG_ERROR);
+		    &my_die("Unable to perform stagetool: $error_code", $stage_id);
+		}
+		my $stack_files = $mdcParser->parse_list(join "", @$stdout_buf) or
+		    &my_die("Unable to parse metadata from stagetool", $stage_id);
+		foreach my $ss_entry (@$stack_files) {
+		    my $ss_path_base = $ss_entry->{path_base};
+		    push @keys, $ipprc->filename($product,$ss_path_base,$stack_id);
+		}
+		$is_done = 1;
+	    }
+
+	}		
 
 	if ($is_done == 0) {
