Index: trunk/ippScripts/scripts/detrend_reject_imfile.pl
===================================================================
--- trunk/ippScripts/scripts/detrend_reject_imfile.pl	(revision 14048)
+++ trunk/ippScripts/scripts/detrend_reject_imfile.pl	(revision 14115)
@@ -89,15 +89,16 @@
     [   
 	#          KEYWORD                 STATISTIC          CHIPTOOL FLAG
-	{ name => "bg",             type => "mean",  flag => "-bg" },
-	{ name => "bg_mean_stdev",  type => "stdev", flag => "-bg_mean_stdev" },
-	{ name => "bg_stdev",       type => "rms",   flag => "-bg_stdev" },
-	{ name => "bin_stdev",      type => "rms",   flag => "-bin_stdev" },
-	{ name => "fringe_0",       type => "mean",  flag => "-fringe_0" },
-	{ name => "fringe_1",       type => "rms",   flag => "-fringe_1" },
-	{ name => "fringe_0",       type => "stdev", flag => "-fringe_2" },
-	{ name => "user_1",         type => "mean",  flag => "-user_1" }, # fringe residual
-	{ name => "user_2",         type => "rms",   flag => "-user_2" }, # fringe residual
-	{ name => "user_3",         type => "stdev", flag => "-user_1" }, # fringe residual
+	{ name => "bg",             type => "mean",  flag => "-bg",            dtype => "float" },
+	{ name => "bg_mean_stdev",  type => "stdev", flag => "-bg_mean_stdev", dtype => "float" },
+	{ name => "bg_stdev",       type => "rms",   flag => "-bg_stdev",      dtype => "float" },  
+	{ name => "bin_stdev",      type => "rms",   flag => "-bin_stdev",     dtype => "float" },
+	{ name => "fringe_0",       type => "mean",  flag => "-fringe_0",      dtype => "float" },
+	{ name => "fringe_1",       type => "rms",   flag => "-fringe_1",      dtype => "float" },
+	{ name => "fringe_0",       type => "stdev", flag => "-fringe_2",      dtype => "float" },
+	{ name => "user_1",         type => "mean",  flag => "-user_1",	       dtype => "float" }, # fringe residual
+	{ name => "user_2",         type => "rms",   flag => "-user_2",	       dtype => "float" }, # fringe residual
+	{ name => "user_1",         type => "stdev", flag => "-user_3",	       dtype => "float" }, # fringe residual
 	];
+my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser
 
 # Look for programs we need
@@ -138,5 +139,4 @@
 
     # Parse the statistics on the residual image
-    my $stats = PS::IPP::Metadata::Stats->new($STATS); # Stats parser
     $stats->parse($metadata) or &my_die("Unable to find all values in statistics output.", $det_id, $iter, $exp_id, $PS_EXIT_PROG_ERROR);
 }
@@ -338,14 +338,14 @@
 
 # basic ensemble stats
-my $mean      	       = &STATS_value_for_flag ($STATS, "-bg");
-my $meanStdev 	       = &STATS_value_for_flag ($STATS, "-bg_mean_stdev");
-my $stdev     	       = &STATS_value_for_flag ($STATS, "-bg_stdev");
-my $binStdev  	       = &STATS_value_for_flag ($STATS, "-bin_stdev");
-my $fringe_mean        = &STATS_value_for_flag ($STATS, "-fringe_0");
-my $fringe_err         = &STATS_value_for_flag ($STATS, "-fringe_1");
-my $fringe_mean_stdev  = &STATS_value_for_flag ($STATS, "-fringe_2");
-my $dfringe_mean       = &STATS_value_for_flag ($STATS, "-user_1");
-my $dfringe_err        = &STATS_value_for_flag ($STATS, "-user_2");
-my $dfringe_mean_stdev = &STATS_value_for_flag ($STATS, "-user_3");
+my $mean      	       = $stats->value_for_flag ("-bg");
+my $meanStdev 	       = $stats->value_for_flag ("-bg_mean_stdev");
+my $stdev     	       = $stats->value_for_flag ("-bg_stdev");
+my $binStdev  	       = $stats->value_for_flag ("-bin_stdev");
+my $fringe_mean        = $stats->value_for_flag ("-fringe_0");
+my $fringe_err         = $stats->value_for_flag ("-fringe_1");
+my $fringe_mean_stdev  = $stats->value_for_flag ("-fringe_2");
+my $dfringe_mean       = $stats->value_for_flag ("-user_1");
+my $dfringe_err        = $stats->value_for_flag ("-user_2");
+my $dfringe_mean_stdev = $stats->value_for_flag ("-user_3");
 
 # other stats (flux depends on bg and exp_time)
@@ -469,11 +469,5 @@
 $command .= ' -reject' if $reject;
 $command .= " -dbname $dbname" if defined $dbname;
-
-# add in the elements from the selected stats above
-foreach my $entry (@$STATS) {
-    my $value = $entry->{value};
-    my $flag = $entry->{flag};
-    $command .= " $flag $value";
-}
+$command .= $stats->cmdflags();
 
 unless ($no_update) {
@@ -532,17 +526,4 @@
 
     return $value;
-}
-
-sub STATS_value_for_flag 
-{
-    my $STATS = shift;
-    my $flag  = shift;
-
-    foreach my $entry (@$STATS) {
-	if ($flag eq $entry->{flag}) {
-	    return $entry->{value};
-	}
-    }
-    return 'NAN';
 }
 
