Index: /branches/eam_branches/ipp-20120905/dbconfig/changes.txt
===================================================================
--- /branches/eam_branches/ipp-20120905/dbconfig/changes.txt	(revision 34746)
+++ /branches/eam_branches/ipp-20120905/dbconfig/changes.txt	(revision 34747)
@@ -2255,2 +2255,9 @@
 --update addRun set stage_extra1 = -1 where stage = 'cam' <= 483624; 
 
+ALTER TABLE warpSkyfile add column background_model SMALLINT after maskfrac_advisory;
+ALTER TABLE stackSumSkyfile add column background_model SMALLINT after software_ver;
+
+ALTER TABLE skycalResult ADD column n_detections INT after n_astrom;
+ALTER TABLE skycalResult ADD column n_extended INT after n_detections;
+
+UPDATE dbversion set schema_version = '1.1.72', updated= CURRENT_TIMESTAMP();
Index: /branches/eam_branches/ipp-20120905/dbconfig/stack.md
===================================================================
--- /branches/eam_branches/ipp-20120905/dbconfig/stack.md	(revision 34746)
+++ /branches/eam_branches/ipp-20120905/dbconfig/stack.md	(revision 34747)
@@ -53,4 +53,5 @@
     fault              S16    0       # Key
     software_ver    STR         16
+    background_model   S16    0
     quality            S16    0
 END
Index: /branches/eam_branches/ipp-20120905/dbconfig/staticsky.md
===================================================================
--- /branches/eam_branches/ipp-20120905/dbconfig/staticsky.md	(revision 34746)
+++ /branches/eam_branches/ipp-20120905/dbconfig/staticsky.md	(revision 34747)
@@ -54,4 +54,6 @@
     sigma_dec      F32    0.0
     n_astrom       S32    0
+    n_detections   S32    0
+    n_extended     S32    0
     zpt_obs        F32    0.0
     zpt_stdev      F32    0.0
Index: /branches/eam_branches/ipp-20120905/dbconfig/warp.md
===================================================================
--- /branches/eam_branches/ipp-20120905/dbconfig/warp.md	(revision 34746)
+++ /branches/eam_branches/ipp-20120905/dbconfig/warp.md	(revision 34747)
@@ -74,4 +74,5 @@
     maskfrac_magic  F32     0.0
     maskfrac_advisory F32   0.0
+    background_model  S16   0
 END
 
Index: /branches/eam_branches/ipp-20120905/ippMonitor/scripts/skycellplot.dvo
===================================================================
--- /branches/eam_branches/ipp-20120905/ippMonitor/scripts/skycellplot.dvo	(revision 34746)
+++ /branches/eam_branches/ipp-20120905/ippMonitor/scripts/skycellplot.dvo	(revision 34747)
@@ -27,9 +27,9 @@
  1.1
  0.3
- 0.3
- 0.3
- 0.3
- 0.3
- 0.3
+ 0.3001
+ 0.3002
+ 0.3003
+ 0.3004
+ 0.3005
 end
 
Index: /branches/eam_branches/ipp-20120905/ippScripts/scripts/skycalibration.pl
===================================================================
--- /branches/eam_branches/ipp-20120905/ippScripts/scripts/skycalibration.pl	(revision 34746)
+++ /branches/eam_branches/ipp-20120905/ippScripts/scripts/skycalibration.pl	(revision 34747)
@@ -33,4 +33,5 @@
 my $psastro = can_run('psastro') or (warn "Can't find psastro" and $missing_tools = 1);
 my $fhead = can_run('fhead') or (warn "Can't find fhead" and $missing_tools = 1);
+my $fields = can_run('fields') or (warn "Can't find fields" and $missing_tools = 1);
 my $ppStatsFromMetadata = can_run('ppStatsFromMetadata') or (warn "Can't find ppStatsFromMetadata" and $missing_tools = 1);
 my $ppConfigDump = can_run('ppConfigDump') or (warn "Can't find ppConfigDump" and $missing_tools = 1);
@@ -191,4 +192,33 @@
 }
 
+my $resolved = $ipprc->file_resolve($file);
+if (!$resolved) {
+    &my_die("Unable to find input file: $file", $skycal_id, $PS_EXIT_SYS_ERROR);
+}
+
+# read the input header to find the number of detections and the number of detections
+# with extended model
+my $n_detections = 0;
+my $n_extended = 0;
+{
+    my $command = "echo $resolved | $fields -n SkyChip.psf NAXIS2";
+    my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
+            run(command => $command, verbose => 0);
+        # fields does not return 0 on success
+    (undef, $n_detections)  = split " ", join "", @$stdout_buf;
+    chomp $n_detections;
+    &my_die("Unable to find number of detections from $file: ", $skycal_id, $PS_EXIT_SYS_ERROR)
+        unless defined $n_detections;
+
+    $command = "echo $resolved | $fields -n SkyChip.hdr NDET_EXT";
+    ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
+            run(command => $command, verbose => 0);
+    (undef, $n_extended)  = split " ", join "", @$stdout_buf;
+    chomp $n_extended;
+    &my_die("Unable to find number of extended objects from $file: ", $skycal_id, $PS_EXIT_SYS_ERROR)
+        unless defined $n_extended;
+}
+
+
 # Perform psastro analysis
 my $output_sources_filerule =  'PSASTRO.OUTPUT.CMF';
@@ -246,4 +276,6 @@
 {
     my $command = "$staticskytool -skycal_id $skycal_id";
+    $command .= " -n_detections $n_detections";
+    $command .= " -n_extended $n_extended";
     $command .= " -addskycalresult -path_base $outroot";
     $command .= " $cmdflags";
Index: /branches/eam_branches/ipp-20120905/ippScripts/scripts/staticsky.pl
===================================================================
--- /branches/eam_branches/ipp-20120905/ippScripts/scripts/staticsky.pl	(revision 34746)
+++ /branches/eam_branches/ipp-20120905/ippScripts/scripts/staticsky.pl	(revision 34747)
@@ -124,5 +124,5 @@
 my $nInputs = @$files;
 
-if ($nInputs > 1) {
+if (1) {
         my $recipe_psphot  = $ipprc->reduction($reduction, 'STACKPHOT_PSPHOT'); # Recipe to use for psphot
         my $recipe_ppsub   = $ipprc->reduction($reduction, 'STACKPHOT_PPSUB'); # Recipe to use for ppsub
@@ -266,4 +266,5 @@
         }
 } else {
+    # XXX This mode is no longer used. We run psphotStack even if there is only one filter
         # single input. Run psphot
         # find the recipe
Index: /branches/eam_branches/ipp-20120905/ippTools/share/pxadmin_create_tables.sql
===================================================================
--- /branches/eam_branches/ipp-20120905/ippTools/share/pxadmin_create_tables.sql	(revision 34746)
+++ /branches/eam_branches/ipp-20120905/ippTools/share/pxadmin_create_tables.sql	(revision 34747)
@@ -996,4 +996,5 @@
     maskfrac_magic FLOAT,
     maskfrac_advisory FLOAT,
+    background_model SMALLINT,
     PRIMARY KEY(warp_id, skycell_id, tess_id),
     KEY(good_frac),
@@ -1078,7 +1079,8 @@
         good_frac FLOAT,
         mjd_obs DOUBLE,
-        quality SMALLINT NOT NULL DEFAULT 0,
         fault SMALLINT,
         software_ver VARCHAR(16),
+	background_model SMALLINT,
+        quality SMALLINT NOT NULL DEFAULT 0,
         PRIMARY KEY(stack_id),
         KEY(dtime_stack),
@@ -2115,4 +2117,6 @@
       sigma_dec FLOAT,
       n_astrom INT,
+      n_detections INT,
+      n_extended INT,
       zpt_obs FLOAT,
       zpt_stdev FLOAT,
Index: /branches/eam_branches/ipp-20120905/ippTools/share/staticskytool_pendingskycalrun.sql
===================================================================
--- /branches/eam_branches/ipp-20120905/ippTools/share/staticskytool_pendingskycalrun.sql	(revision 34746)
+++ /branches/eam_branches/ipp-20120905/ippTools/share/staticskytool_pendingskycalrun.sql	(revision 34747)
@@ -6,5 +6,5 @@
     staticskyResult.path_base,
     rawExp.camera,
-    staticskyResult.num_inputs = 1 AS singlefilter
+    0 AS  singlefilter
 FROM skycalRun
 JOIN staticskyRun USING (sky_id)
Index: /branches/eam_branches/ipp-20120905/ippTools/src/stacktool.c
===================================================================
--- /branches/eam_branches/ipp-20120905/ippTools/src/stacktool.c	(revision 34746)
+++ /branches/eam_branches/ipp-20120905/ippTools/src/stacktool.c	(revision 34747)
@@ -1006,4 +1006,6 @@
     PXOPT_LOOKUP_STR(ver_streaks, config->args, "-ver_streaks", false, false);
 
+    PXOPT_LOOKUP_S16(background_model, config->args, "-background_model", false, false);
+    
     psTrace("czw.test",1,"Received versions: pslib %s psmodules %s psphot %s ppstats %s ppstack %s streaks %s\n",
             ver_pslib,ver_psmodules,ver_psphot,ver_ppstats,ver_ppstack,ver_streaks);
@@ -1067,4 +1069,5 @@
                                fault,
                                software_ver,
+			       background_model,
                                quality
           )) {
@@ -1121,5 +1124,5 @@
     PXOPT_COPY_F64(config->args, where, "-mjd_obs_begin", "stackSumSkyfile.mjd_obs", ">=");
     PXOPT_COPY_F64(config->args, where, "-mjd_obs_end", "stackSumSkyfile.mjd_obs", "<=");
-
+    PXOPT_COPY_S16(config->args, where, "-background_model","stackSumSkyfile.background_model", "==");
 
 //  The following three selectors are incompatible with the sql so omit them
Index: /branches/eam_branches/ipp-20120905/ippTools/src/stacktoolConfig.c
===================================================================
--- /branches/eam_branches/ipp-20120905/ippTools/src/stacktoolConfig.c	(revision 34746)
+++ /branches/eam_branches/ipp-20120905/ippTools/src/stacktoolConfig.c	(revision 34747)
@@ -190,4 +190,6 @@
     psMetadataAddStr(addsumskyfileArgs, PS_LIST_TAIL, "-ver_streaks", 0, "define streaksremove version", NULL);
 
+    psMetadataAddS16(addsumskyfileArgs, PS_LIST_TAIL, "-background_model", 0, "define background model version", 0);
+    
     // -sumskyfile
     psMetadata *sumskyfileArgs= psMetadataAlloc();
@@ -201,4 +203,5 @@
     psMetadataAddStr(sumskyfileArgs, PS_LIST_TAIL, "-exp_name", 0,          "search by exposure name", NULL);
 #endif
+    psMetadataAddS16(sumskyfileArgs, PS_LIST_TAIL, "-background_model", 0, "search by background model version", 0);
     psMetadataAddStr(sumskyfileArgs, PS_LIST_TAIL, "-label", PS_META_DUPLICATE_OK,             "search by stackRun.label", NULL);
     psMetadataAddStr(sumskyfileArgs, PS_LIST_TAIL, "-data_group", PS_META_DUPLICATE_OK,        "search by stackRun.data_group (LIKE comparison)", NULL);
Index: /branches/eam_branches/ipp-20120905/ippTools/src/staticskytool.c
===================================================================
--- /branches/eam_branches/ipp-20120905/ippTools/src/staticskytool.c	(revision 34746)
+++ /branches/eam_branches/ipp-20120905/ippTools/src/staticskytool.c	(revision 34747)
@@ -132,6 +132,18 @@
     pxAddLabelSearchArgs(config, whereMD, "-select_data_group",    "stackRun.data_group",       "LIKE");
     pxAddLabelSearchArgs(config, whereMD, "-select_filter",        "stackRun.filter",           "LIKE");
+#ifdef notdef
     PXOPT_COPY_F32(config->args, whereMD, "-select_glat_min",      "skycell.glat",              ">=");
     PXOPT_COPY_F32(config->args, whereMD, "-select_glat_max",      "skycell.glat",              "<=");
+    PXOPT_COPY_F32(config->args, whereMD, "-select_rahours_min",   "skycell.radeg/15",          ">=");
+    PXOPT_COPY_F32(config->args, whereMD, "-select_rahours_max",   "skycell.radeg/15",          "<=");
+    PXOPT_COPY_F32(config->args, whereMD, "-select_radeg_min",     "skycell.radeg",             ">=");
+    PXOPT_COPY_F32(config->args, whereMD, "-select_radeg_max",     "skycell.radeg",             "<=");
+    PXOPT_COPY_F32(config->args, whereMD, "-select_decdeg_min",    "skycell.decdeg",             ">=");
+    PXOPT_COPY_F32(config->args, whereMD, "-select_decdeg_max",    "skycell.decdeg",             "<=");
+#endif
+    if (!pxskycellAddWhere(config, whereMD)) {
+        psError(PXTOOLS_ERR_CONFIG, false, "failed to add skycell search arguments");
+        return false;
+    }
 
     // find the number of requested filters:
@@ -1263,6 +1275,7 @@
 
     PXOPT_LOOKUP_STR(hostname, config->args,    "-hostname", false, false);
-//    PXOPT_LOOKUP_S32(n_stars, config->args,     "-n_stars", false, false);
     PXOPT_LOOKUP_S32(n_astrom, config->args,    "-n_astrom", false, false);
+    PXOPT_LOOKUP_S32(n_detections, config->args,    "-n_detections", false, false);
+    PXOPT_LOOKUP_S32(n_extended, config->args,    "-n_extended", false, false);
 
     PXOPT_LOOKUP_STR(path_base, config->args,   "-path_base", false, false);
@@ -1303,4 +1316,6 @@
         sigma_dec,
         n_astrom,
+        n_detections,
+        n_extended,
         zpt_obs,
         zpt_stdev,
Index: /branches/eam_branches/ipp-20120905/ippTools/src/staticskytoolConfig.c
===================================================================
--- /branches/eam_branches/ipp-20120905/ippTools/src/staticskytoolConfig.c	(revision 34746)
+++ /branches/eam_branches/ipp-20120905/ippTools/src/staticskytoolConfig.c	(revision 34747)
@@ -55,6 +55,15 @@
     psMetadataAddStr(definebyqueryArgs,  PS_LIST_TAIL, "-select_data_group", PS_META_DUPLICATE_OK, "search by stackRun data_group (LIKE comparison, multiple OK)", NULL);
     psMetadataAddStr(definebyqueryArgs,  PS_LIST_TAIL, "-select_filter", PS_META_DUPLICATE_OK, "search by filter (LIKE comparison, multiple OK)", NULL);
+    pxskycellAddArguments(definebyqueryArgs);
+#ifdef notdef
     psMetadataAddF32(definebyqueryArgs,  PS_LIST_TAIL, "-select_glat_min", 0, "define min galactic latitude", NAN);
     psMetadataAddF32(definebyqueryArgs,  PS_LIST_TAIL, "-select_glat_max", 0, "define max galactic latitude", NAN);
+    psMetadataAddF32(definebyqueryArgs,  PS_LIST_TAIL, "-select_rahours_min", 0, "define min RA in hours", NAN);
+    psMetadataAddF32(definebyqueryArgs,  PS_LIST_TAIL, "-select_rahours_max", 0, "define max RA in hours", NAN);
+    psMetadataAddF32(definebyqueryArgs,  PS_LIST_TAIL, "-select_radeg_min", 0, "define min RA in degrees", NAN);
+    psMetadataAddF32(definebyqueryArgs,  PS_LIST_TAIL, "-select_radeg_max", 0, "define max RA in degrees", NAN);
+    psMetadataAddF32(definebyqueryArgs,  PS_LIST_TAIL, "-select_decdeg_min", 0, "define min DEC in degrees", NAN);
+    psMetadataAddF32(definebyqueryArgs,  PS_LIST_TAIL, "-select_decdeg_max", 0, "define max DEC in degrees", NAN);
+#endif
     psMetadataAddStr(definebyqueryArgs,  PS_LIST_TAIL, "-set_workdir", 0, "define workdir (required)", NULL);
     psMetadataAddStr(definebyqueryArgs,  PS_LIST_TAIL, "-set_label", 0, "define label (required)", NULL);
@@ -204,4 +213,6 @@
     // psMetadataAddS32(addskycalresultArgs, PS_LIST_TAIL, "-n_stars", 0,            "define number of stars", 0);
     psMetadataAddS32(addskycalresultArgs, PS_LIST_TAIL, "-n_astrom", 0,            "define number of astrometry reference objects", 0);
+    psMetadataAddS32(addskycalresultArgs, PS_LIST_TAIL, "-n_detections", 0,        "define number of detections", 0);
+    psMetadataAddS32(addskycalresultArgs, PS_LIST_TAIL, "-n_extended", 0,          "define number of extended detections", 0);
 
     psMetadataAddStr(addskycalresultArgs, PS_LIST_TAIL, "-path_base", 0,            "define base output location", NULL);
Index: /branches/eam_branches/ipp-20120905/ippTools/src/warptool.c
===================================================================
--- /branches/eam_branches/ipp-20120905/ippTools/src/warptool.c	(revision 34746)
+++ /branches/eam_branches/ipp-20120905/ippTools/src/warptool.c	(revision 34747)
@@ -1101,4 +1101,6 @@
     PXOPT_LOOKUP_F32(maskfrac_advisory, config->args, "-maskfrac_advisory", false, false);
 
+    PXOPT_LOOKUP_S16(background_model, config->args, "-background_model", false, false);
+    
     psTrace("czw.test",1,"Received versions: pslib %s psmodules %s psphot %s ppstats %s pswarp %s streaks %s\n",
 	    ver_pslib,ver_psmodules,ver_psphot,ver_ppstats,ver_pswarp,ver_streaks);
@@ -1159,5 +1161,6 @@
 			   maskfrac_dynamic,
 			   maskfrac_magic,
-			   maskfrac_advisory
+			   maskfrac_advisory,
+			   background_model
         )) {
         if (!psDBRollback(config->dbh)) {
@@ -1392,4 +1395,5 @@
     PXOPT_COPY_STR(config->args, where, "-filter",    "rawExp.filter", "LIKE");
     PXOPT_COPY_S64(config->args, where, "-magicked", "warpSkyfile.magicked", "==");
+    PXOPT_COPY_S16(config->args, where, "-background_model", "warpSkyfile.background_model", "==");
     pxAddLabelSearchArgs (config, where, "-label",   "warpRun.label", "LIKE");
     pxAddLabelSearchArgs (config, where, "-data_group",   "warpRun.data_group", "LIKE");
Index: /branches/eam_branches/ipp-20120905/ippTools/src/warptoolConfig.c
===================================================================
--- /branches/eam_branches/ipp-20120905/ippTools/src/warptoolConfig.c	(revision 34746)
+++ /branches/eam_branches/ipp-20120905/ippTools/src/warptoolConfig.c	(revision 34747)
@@ -237,4 +237,5 @@
     psMetadataAddF32(addwarpedArgs, PS_LIST_TAIL, "-maskfrac_advisory", 0, "define advisory mask fraction", NAN);
 
+    psMetadataAddS16(addwarpedArgs, PS_LIST_TAIL, "-background_model", 0, "define background model version", 0);
     
     // -warped
@@ -254,4 +255,5 @@
     psMetadataAddStr(warpedArgs, PS_LIST_TAIL,  "-data_group",  PS_META_DUPLICATE_OK, "search by warpRun data_group", NULL);
     psMetadataAddStr(warpedArgs, PS_LIST_TAIL,  "-dist_group",  PS_META_DUPLICATE_OK, "search by warpRun dist_group", NULL);
+    psMetadataAddS16(warpedArgs, PS_LIST_TAIL,  "-background_model", 0, "search by background model version", 0);
     // add magic related arguments
     pxmagicAddArguments(warpedArgs);
