Index: trunk/ippScripts/scripts/ipp_simulation_data.pl
===================================================================
--- trunk/ippScripts/scripts/ipp_simulation_data.pl	(revision 12935)
+++ trunk/ippScripts/scripts/ipp_simulation_data.pl	(revision 13020)
@@ -8,6 +8,6 @@
 
 use IPC::Cmd 0.36 qw( can_run run );
+use Math::Trig;
 use File::Spec;
-use Math::Trig;
 use Getopt::Long qw( GetOptions :config auto_help auto_version gnu_getopt );
 use Pod::Usage qw( pod2usage );
@@ -26,4 +26,7 @@
 my ($name,			# Base name for output images
     $camera,			# Name of camera to use
+    $telescope,			# Telesceope name
+    $dbname,			# Database name
+    $workdir,			# Working directory for data
     $no_update			# Don't update the database
     );
@@ -32,4 +35,7 @@
 	   'name=s'        => \$name,
 	   'camera=s'      => \$camera,
+	   'telescope=s'   => \$telescope,
+	   'dbname=s'      => \$dbname,
+	   'workdir=s'     => \$workdir,
 	   'no-update'     => \$no_update,
 	   ) or pod2usage( 2 );
@@ -38,9 +44,11 @@
 
 pod2usage(
-          -msg => "Required options: --name --camera",
+          -msg => "Required options: --name --camera --telescope --dbname",
 	    -exitval => 3,
 	  ) unless
     defined $name and
-    defined $camera;
+    defined $camera and
+    defined $telescope and
+    defined $dbname;
 
 
@@ -49,4 +57,6 @@
 my $ppSim = can_run('ppSim')
     or (warn "Can't find ppSim" and $missing_tools = 1);
+my $inject = can_run('ipp_serial_inject_mosaic.pl')
+    or (warn "Can't find ipp_serial_inject_mosaic.pl" and $missing_tools = 1);
 
 if ($missing_tools) { 
@@ -54,4 +64,6 @@
     exit($PS_EXIT_CONFIG_ERROR); 
 }
+
+$workdir = $ipprc->convert_filename_absolute( $workdir );
 
 # Number of bias images
@@ -106,16 +118,24 @@
 # Generate bias images
 for (my $i = 0; $i < BIAS; $i++) {
-    my $file;			# Output filename
-    ($file, $counter) = filename($name, $counter);
-    run( command => "$ppSim -camera $camera -type BIAS $file",
+    my $basename;		# Output base filename
+    ( $basename, $counter ) = filename( $name, $counter );
+    my $filename = File::Spec->catfile( $workdir, $basename ) if defined $workdir; # File name
+    run( command => "$ppSim -camera $camera -type BIAS $filename",
 	 verbose => 1 ) or die "Unable to run ppSim";
+    run( command => "$inject --camera $camera --telescope $telescope --workdir $workdir " .
+	 "--dbname $dbname $basename",
+	  verbose => 1 ) or die "Unable to inject file.";
 }
 
 # Generate dark images
 foreach my $exptime ( @{DARK()} ) {
-    my $file;			# Output filename
-    ($file, $counter) = filename($name, $counter);
-    run ( command => "$ppSim -camera $camera -type DARK -exptime $exptime $file",
+    my $basename;		# Output base filename
+    ( $basename, $counter ) = filename( $name, $counter );
+    my $filename = File::Spec->catfile( $workdir, $basename ) if defined $workdir; # File name
+    run ( command => "$ppSim -camera $camera -type DARK -exptime $exptime $filename",
 	  verbose => 1 ) or die "Unable to run ppSim";
+    run( command => "$inject --camera $camera --telescope $telescope --workdir $workdir " .
+	 "--dbname $dbname $basename",
+	 verbose => 1 ) or die "Unable to inject file.";
 }
 
@@ -124,10 +144,15 @@
     my $filter = $set->{filter}; # Name of filter
     foreach my $exptime ( @{$set->{exptime}} ) {
-	my $file;			# Output filename
-	($file, $counter) = filename($name, $counter);
-	run( command => "$ppSim -camera $camera -type FLAT -filter $filter -exptime $exptime $file",
+	my $basename;		# Output base filename
+	( $basename, $counter ) = filename( $name, $counter );
+	my $filename = File::Spec->catfile( $workdir, $basename ) if defined $workdir; # File name
+	run( command => "$ppSim -camera $camera -type FLAT -filter $filter -exptime $exptime $filename",
 	     verbose => 1 ) or die "Unable to run ppSim";
+        run( command => "$inject --camera $camera --telescope $telescope --workdir $workdir " .
+	     "--dbname $dbname $basename",
+	     verbose => 1 ) or die "Unable to inject file.";
     }
 }
+
 
 # Generate object images
@@ -148,9 +173,13 @@
 	my $dec = $dec0 + (2*rand() - 1) * $dither; # Dec with dither
 
-	my $file;			# Output filename
-	($file, $counter) = filename($name, $counter);
+	my $basename;		# Output base filename
+	( $basename, $counter ) = filename( $name, $counter );
+	my $filename = File::Spec->catfile( $workdir, $basename ) if defined $workdir; # File name
 	run( command => "$ppSim -camera $camera -type OBJECT -filter $filter -exptime $exptime " .
-	     "-skyrate $sky -ra $ra -dec $dec -pa $pa -scale $scale -zp $zp -seeing $seeing $file",
+	     "-skyrate $sky -ra $ra -dec $dec -pa $pa -scale $scale -zp $zp -seeing $seeing $filename",
 	     verbose => 1 ) or die "Unable to run ppSim";
+	run( command => "$inject --camera $camera --telescope $telescope --workdir $workdir " .
+	     "--dbname $dbname $basename ",
+	     verbose => 1 ) or die "Unable to inject file.";
     }
 }
@@ -165,4 +194,5 @@
     my $base = shift;		# Base name
     my $num = shift;		# Number
+    my $workdir = shift;	# Working directory
     my $name = sprintf("$base%04d", $num);
     $num++;
