Subs::BATLightCurves (version 0.0)


package Subs::BATLightCurves;
##############################################################################
#
# DESCRIPTION: This subroutine runs extracts light curves from event data
#
# HISTORY: 
# HISTORY: $Log: BATLightCurves.pm,v $
# HISTORY: Revision 1.9  2004/08/16 15:23:09  apsop
# HISTORY: Turn on writing of HISTORY keywords.
# HISTORY:
# HISTORY: Revision 1.8  2004/05/06 20:02:34  dah
# HISTORY: Add version number back into the header comments.
# HISTORY:
# HISTORY: Revision 1.7  2004/04/16 20:21:18  dah
# HISTORY: Begin using embedded history records
# HISTORY:
#
# VERSION: 0.0
#
#
##############################################################################


use Subs::Sub;
use Util::Xanadu;

@ISA = ("Subs::LightCurves");
use strict;

sub new {
    my $proto=shift;
    my $self=$proto->SUPER::new();

    $self->{DESCRIPTION}="Extracting and plotting BAT light curves";

    return $self;
}

##################
# METHODS:
##################

sub extract_lightcurves {
    my $self=shift;

    my $log     =$self->log();
    my $filename=$self->filename();
    my $procpar =$self->procpar();
    my $jobpar  =$self->jobpar();

    $log->entry("Extracting light curves from event data");

    my $bin_size=0.064;
    ###########################################
    # get the master quality map file
    ###########################################
    my $quality = $filename->get("qualcal", "b", 'cb');
    if( ! -f $quality) {
        $log->entry("No master quality map");
	$quality = "NONE";
    }
    
    ##############################################
    # set up batbinevt
    #############################################
    my $binner = Util::HEAdas->new("batbinevt")
                             ->params({outtype    => "LC",
                                       timedel    => $bin_size,
                                       timebinalg => "snr",
                                       energybins => "15-25, 25-40, 40-80, 80-200",
				       gtifile    => "NONE",
                                       ecol       => "PI",
                                       tstart     => "INDEF",
                                       tstop      => "INDEF",
                                       snrthresh  => 6.0,
				       detmask    => $quality,
                                       buffersize => 16384,
                                       clobber    => "yes",
                                       chatter    => 5,
                                       history    => "yes"});


    ############################
    # loop over all event files
    ############################
    my $evt;
    foreach $evt ($filename->get("event", "bat", "*", "*") ) {

        ###############################
        # get the lightcurve file name
        ###############################
        my $lcurve = $filename->corresponding("event", "lightcurve", $evt);
        $log->entry("Extracting $lcurve from $evt");
        unlink $lcurve;

        ###########################
        # extract the lightcurve
        ###########################
        $binner->params({infile  => $evt,
                         outfile => $lcurve });
        $binner->run();  


    } # end of loop over event files


} # end of extract_lightcurves method

#############################################################################
#
#############################################################################
sub list_lightcurves {
    my $self = shift;

    my $filename = $self->filename();

    return ($filename->get("lightcurve", "b", "*", "*") );

}