Index: /trunk/PS-IPP-Config/lib/PS/IPP/Metadata/Stats.pm
===================================================================
--- /trunk/PS-IPP-Config/lib/PS/IPP/Metadata/Stats.pm	(revision 8742)
+++ /trunk/PS-IPP-Config/lib/PS/IPP/Metadata/Stats.pm	(revision 8743)
@@ -1,5 +1,5 @@
 # Copyright (c) 2006  Paul Price, Joshua Hoblitt
 #
-# $Id: Stats.pm,v 1.7 2006-09-06 01:53:49 jhoblitt Exp $
+# $Id: Stats.pm,v 1.8 2006-09-06 02:45:46 jhoblitt Exp $
 
 package PS::IPP::Metadata::Stats;
@@ -61,4 +61,67 @@
     # count of parse errors
     my $errors = 0;
+
+    $self->_parse_megacam($md);
+
+    # Check that we found everything for the constants
+    my $constants = $self->constants();        # Array of constants
+    if (defined $constants) {
+        foreach my $constant (@$constants) {
+            if (not defined $self->{data}->{$constant}->{value}) {
+                carp "Unable to find value for ", $constant, "\n";
+                $errors++;
+            }
+        }
+    }
+
+    # Get mean, stdev for the variables
+    my $variables = $self->variables();        # Array of variables
+    if (defined $variables) {
+        foreach my $variable (@$variables) {
+            my $info = $self->{data}->{$variable}; # The information about this particular variable
+            my $array = $info->{data}; # The array of values collected
+            if (scalar @$array == 0) {
+                carp "Unable to find any values for ", $variable, "\n";
+                $errors++;
+                next;
+            }
+
+            # Get statistics on the value
+            my $stats = Statistics::Descriptive::Sparse->new(); # Statistics calculator
+            $stats->add_data(@$array);
+            $info->{mean} = $stats->mean();
+            $info->{stdev} = $stats->standard_deviation();
+        }
+    }
+    
+    # Get mean, stdev, mean stdev for the background
+    if (scalar @{$self->{bg_data}} > 0) {
+        my $meanStats = Statistics::Descriptive::Sparse->new(); # Statistics for mean
+        $meanStats->add_data(@{$self->{bg_data}});
+        $self->bg_mean($meanStats->mean());
+        $self->bg_stdev($meanStats->standard_deviation());
+    } else {
+        $self->bg_mean(undef);
+        $self->bg_stdev(undef);
+    }
+    if (scalar @{$self->{bg_stdev_data}} > 0) {
+        my $stdevStats = Statistics::Descriptive::Sparse->new(); # Statistics for standard deviation
+        $stdevStats->add_data(@{$self->{bg_stdev_data}});
+        $self->bg_mean_stdev($stdevStats->mean());
+    } else {
+        $self->bg_mean_stdev(undef);
+    }
+
+    if ($errors) {
+        carp "a total of $errors parse errors occured";
+        return;
+    }
+
+    return $self;
+}
+
+sub _parse_megacam
+{
+    my ($self, $md) = @_;
 
     # Descend the FPA hierarchy
@@ -105,59 +168,5 @@
         }
     }
-
-    # Check that we found everything for the constants
-    my $constants = $self->constants();        # Array of constants
-    if (defined $constants) {
-        foreach my $constant (@$constants) {
-            if (not defined $self->{data}->{$constant}->{value}) {
-                carp "Unable to find value for ", $constant, "\n";
-                $errors++;
-            }
-        }
-    }
-
-    # Get mean, stdev for the variables
-    my $variables = $self->variables();        # Array of variables
-    if (defined $variables) {
-        foreach my $variable (@$variables) {
-            my $info = $self->{data}->{$variable}; # The information about this particular variable
-            my $array = $info->{data}; # The array of values collected
-            if (scalar @$array == 0) {
-                carp "Unable to find any values for ", $variable, "\n";
-                $errors++;
-                next;
-            }
-
-            # Get statistics on the value
-            my $stats = Statistics::Descriptive::Sparse->new(); # Statistics calculator
-            $stats->add_data(@$array);
-            $info->{mean} = $stats->mean();
-            $info->{stdev} = $stats->standard_deviation();
-        }
-    }
     
-    # Get mean, stdev, mean stdev for the background
-    if (scalar @{$self->{bg_data}} > 0) {
-        my $meanStats = Statistics::Descriptive::Sparse->new(); # Statistics for mean
-        $meanStats->add_data(@{$self->{bg_data}});
-        $self->bg_mean($meanStats->mean());
-        $self->bg_stdev($meanStats->standard_deviation());
-    } else {
-        $self->bg_mean(undef);
-        $self->bg_stdev(undef);
-    }
-    if (scalar @{$self->{bg_stdev_data}} > 0) {
-        my $stdevStats = Statistics::Descriptive::Sparse->new(); # Statistics for standard deviation
-        $stdevStats->add_data(@{$self->{bg_stdev_data}});
-        $self->bg_mean_stdev($stdevStats->mean());
-    } else {
-        $self->bg_mean_stdev(undef);
-    }
-
-    if ($errors) {
-        carp "a total of $errors parse errors occured";
-        return;
-    }
-
     return $self;
 }
