Index: trunk/dbconfig/background.md
===================================================================
--- trunk/dbconfig/background.md	(revision 35133)
+++ trunk/dbconfig/background.md	(revision 35134)
@@ -48,4 +48,5 @@
     dist_group          STR     64
     reduction	        STR	64
+    alt_cam_label       STR     64
     note                STR     255
     registered          TAI     NULL
Index: trunk/dbconfig/changes.txt
===================================================================
--- trunk/dbconfig/changes.txt	(revision 35133)
+++ trunk/dbconfig/changes.txt	(revision 35134)
@@ -2266,4 +2266,7 @@
 UPDATE dbversion set schema_version = '1.1.73', updated= CURRENT_TIMESTAMP();
 
+ALTER TABLE warpBackgroundRun ADD COLUMN alt_cam_label VARCHAR(255) AFTER reduction;
+
+UPDATE dbversion set schema_version = '1.1.74', updated= CURRENT_TIMESTAMP();
 
 -- new tables for managing the "release" of ipp data
@@ -2335,3 +2338,5 @@
 ) ENGINE=innodb DEFAULT CHARSET=latin1;
 
-UPDATE dbversion set schema_version = '1.1.74', updated= CURRENT_TIMESTAMP();
+ALTER TABLE warpBackgroundRun ADD COLUMN alt_cam_label VARCHAR(255) AFTER reduction;
+
+UPDATE dbversion set schema_version = '1.1.75', updated= CURRENT_TIMESTAMP();
Index: trunk/ippScripts/scripts/background_warp.pl
===================================================================
--- trunk/ippScripts/scripts/background_warp.pl	(revision 35133)
+++ trunk/ippScripts/scripts/background_warp.pl	(revision 35134)
@@ -39,9 +39,10 @@
 
 my ($warp_bg_id, $skycell_id, $tess_dir, $reduction, $camera, $dbname, $outroot, $threads, $verbose, $no_update, $no_op, $redirect, $save_temps);
-my ($astrometry, $imageName, $maskName, $weightName, $magicked);
+my ($astrometry, $imageName, $maskName, $weightName, $magicked, $exp_tag, $alternate_astrometry_label);
 GetOptions(
     'warp_bg_id|i=s'      => \$warp_bg_id, # Warp identifier
     'skycell_id|s=s'      => \$skycell_id, # Skycell identifier
     'tess_dir|s=s'        => \$tess_dir, # Tesselation identifier
+    'exp_tag|=s'          => \$exp_tag, # exposure tag
     'camera|c=s'          => \$camera, # Camera name
     'dbname|d=s'          => \$dbname, # Database name
@@ -51,4 +52,5 @@
     'mask-list=s'         => \$maskName, # list of input mask files
     'astrometry=s'        => \$astrometry,
+    'alt_cam_label=s'     => \$alternate_astrometry_label,  # camRun.label for alternate astrometry
     'magicked=s'          => \$magicked,
     'threads=s'           => \$threads,   # Number of threads to use for pswarp
@@ -84,4 +86,9 @@
 }
 
+if ($alternate_astrometry_label) {
+    my_die( "--exp_tag is required when using alternate astrometry", $warp_bg_id, $skycell_id, $PS_EXIT_PROG_ERROR )
+        unless defined $exp_tag;
+}
+
 my $ipprc = PS::IPP::Config->new( $camera ) or 
 my_die( "Unable to set up", $warp_bg_id, $skycell_id, $PS_EXIT_CONFIG_ERROR ); # IPP configuration
@@ -119,14 +126,9 @@
 my $tempOutRoot = "/tmp/background.warp.$warp_bg_id.$skycell_id";
 
-# XXX: get this from recipe
-my $alternate_astrometry_label = 'M31.test.20130206.bgsub';
-# XXX: get exp_id from command line
-my $exp_id = 196758;
-
 if (!defined $imageName) {
     # go find our inputs
     my $astrom_path_base;
     if (defined $alternate_astrometry_label) {
-        my $command = "$camtool -processedexp -exp_id $exp_id -label $alternate_astrometry_label";
+        my $command = "$camtool -processedexp -exp_tag $exp_tag -label $alternate_astrometry_label";
         $command .= " -dbname $dbname" if $dbname;
         my ( $success, $error_code, $full_buf, $stdout_buf, $stderr_buf ) =
Index: trunk/ippTasks/background.pro
===================================================================
--- trunk/ippTasks/background.pro	(revision 35133)
+++ trunk/ippTasks/background.pro	(revision 35134)
@@ -394,4 +394,5 @@
     book getword warpBackgroundRuns $pageName dbname -var DBNAME
     book getword warpBackgroundRuns $pageName reduction -var REDUCTION
+    book getword warpBackgroundRuns $pageName alt_cam_label -var ALT_CAM_LABEL
 
     set.host.for.skycell $SKYCELL_ID
@@ -402,7 +403,10 @@
     stderr $LOGDIR/bg.warp.run.log
 
-    $run = background_warp.pl --threads @MAX_THREADS@ --warp_bg_id $WARP_BG_ID --skycell_id $SKYCELL_ID --tess_dir $TESS_DIR --camera $CAMERA --outroot $outroot --redirect-output
+    $run = background_warp.pl --threads @MAX_THREADS@ --warp_bg_id $WARP_BG_ID --skycell_id $SKYCELL_ID --tess_dir $TESS_DIR --camera $CAMERA --exp_tag $EXP_TAG --outroot $outroot --redirect-output
     if ("$REDUCTION" != "NULL")
       $run = $run --reduction $REDUCTION
+    end
+    if ("$ALT_CAM_LABEL" != "NULL")
+      $run = $run --alt_cam_label $ALT_CAM_LABEL
     end
     add_standard_args run
@@ -446,5 +450,4 @@
 
   periods      -poll $LOADPOLL
-#  periods      -exec $LOADEXEC
   periods      -exec 30
   periods      -timeout 60
Index: trunk/ippTools/share/bgtool_towarp.sql
===================================================================
--- trunk/ippTools/share/bgtool_towarp.sql	(revision 35133)
+++ trunk/ippTools/share/bgtool_towarp.sql	(revision 35134)
@@ -24,3 +24,3 @@
     AND (Label.active OR Label.active IS NULL)
 -- WHERE hook %s
-ORDER BY priority DESC, chip_bg_id
+ORDER BY priority DESC, warp_bg_id, skycell_id
Index: trunk/ippTools/share/bgtool_warp.sql
===================================================================
--- trunk/ippTools/share/bgtool_warp.sql	(revision 35133)
+++ trunk/ippTools/share/bgtool_warp.sql	(revision 35134)
@@ -4,4 +4,5 @@
     warpBackgroundRun.workdir,
     warpBackgroundRun.label,
+    warpBackgroundRun.alt_cam_label,
     rawExp.exp_id,
     rawExp.exp_name,
Index: trunk/ippTools/share/pxadmin_create_tables.sql
===================================================================
--- trunk/ippTools/share/pxadmin_create_tables.sql	(revision 35133)
+++ trunk/ippTools/share/pxadmin_create_tables.sql	(revision 35134)
@@ -1843,5 +1843,6 @@
     data_group VARCHAR(64),           -- group for data
     dist_group VARCHAR(64),           -- group for distribution
-    reduction VARCHAR(64),    -- reduction class (for altering recipe)
+    reduction VARCHAR(64),            -- reduction class (for altering recipe)
+    alt_cam_label VARCHAR(64),        -- label for alternate version of astrometry (optional)
     note VARCHAR(255),        -- note
     registered TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- time run was registered
Index: trunk/ippTools/src/bgtool.c
===================================================================
--- trunk/ippTools/src/bgtool.c	(revision 35133)
+++ trunk/ippTools/src/bgtool.c	(revision 35134)
@@ -1310,4 +1310,5 @@
     PXOPT_LOOKUP_STR(dist_group, config->args, "-set_dist_group", false, false);
     PXOPT_LOOKUP_STR(reduction, config->args, "-set_reduction", false, false);
+    PXOPT_LOOKUP_STR(alt_cam_label, config->args, "-set_alt_cam_label", false, false);
     PXOPT_LOOKUP_STR(note, config->args, "-set_note", false, false);
     PXOPT_LOOKUP_TIME(registered, config->args, "-registered", false, false);
@@ -1424,4 +1425,5 @@
                                      dist_group  ? dist_group : row->dist_group,
                                      reduction   ? reduction  : row->reduction,
+                                     alt_cam_label,
                                      note        ? note       : row->note,
                                      NULL, 0)) {
Index: trunk/ippTools/src/bgtoolConfig.c
===================================================================
--- trunk/ippTools/src/bgtoolConfig.c	(revision 35133)
+++ trunk/ippTools/src/bgtoolConfig.c	(revision 35134)
@@ -285,4 +285,5 @@
     psMetadataAddStr(definewarpArgs, PS_LIST_TAIL, "-set_label", 0, "define label", NULL);
     psMetadataAddStr(definewarpArgs, PS_LIST_TAIL, "-set_reduction", 0, "define reduction class", NULL);
+    psMetadataAddStr(definewarpArgs, PS_LIST_TAIL, "-set_alt_cam_label", 0, "define alternate astrometry sources", NULL);
     psMetadataAddStr(definewarpArgs, PS_LIST_TAIL, "-set_data_group", 0, "define data group", NULL);
     psMetadataAddStr(definewarpArgs, PS_LIST_TAIL, "-set_dist_group", 0, "define dist group", NULL);
