package Subs::SW0Header; ############################################################################## # # DESCRIPTION: This subroutine runs the XRT tools delivered in build 1 # # HISTORY: # HISTORY: $Log: SW0Header.pm,v $ # HISTORY: Revision 1.10 2008/05/16 14:28:10 apsop # HISTORY: Add a good attitude fraction to the header. # HISTORY: # HISTORY: Revision 1.9 2005/09/28 17:36:12 apsop # HISTORY: Write processing time into summary file. # HISTORY: # HISTORY: Revision 1.8 2005/09/26 21:12:16 apsop # HISTORY: Set the production date as well as the production time. # HISTORY: # HISTORY: Revision 1.7 2004/05/06 20:02:34 dah # HISTORY: Add version number back into the header comments. # HISTORY: # HISTORY: Revision 1.6 2004/04/28 13:50:02 dah # HISTORY: Fix attitude file instrument type. # HISTORY: # HISTORY: Revision 1.5 2004/04/16 20:21:18 dah # HISTORY: Begin using embedded history records # HISTORY: # # VERSION: 0.0 # # ############################################################################## use Subs::Header; use Subs::SwiftSub; @ISA = ("Subs::Header"); use strict; ######################### # constructor ######################### sub new { my $proto=shift; my $self=$proto->SUPER::new(@_); my $proctime= Util::Date->new(); $self->jobpar->set({procdate => $proctime->date(), proctime => $proctime->time()}); return $self; } ################## # METHODS: ################## sub body { my $self=shift; my $log =$self->log(); my $filename=$self->filename(); my $procpar =$self->procpar(); my $jobpar =$self->jobpar(); ########################## # observation information ########################## $self->begin_section("Observation Information"); $self->item("Nominal Pointing", "(degrees)" ); $self->begin_list(); my $attitude = $filename->get('attitude', 's'); if( -f $attitude ) { ###################################################### # we have attitude data, so list the nominal pointing ###################################################### $self->item("R.A.=",$jobpar->read("ra" ,0.001), "Dec.=",$jobpar->read("dec",0.001) ); $self->item("Lii=",$jobpar->read("glon",0.001), "Bii=",$jobpar->read("glat",0.001) ); } else { ############################ # no attitude data ############################ $self->item("No attitude data available"); } $self->end_list(); $self->item("Observation Date:", Util::Date->new($jobpar->read("obsdate"))->in_words(), "Time:", $jobpar->read("obstime") ); my $good_att = Subs::SwiftSub::good_attitude_fraction($self, $jobpar->read('tstart'), $jobpar->read('tstop')); $self->item("Good Attitude Fraction:", sprintf("%.2f", $good_att)); $self->end_section(); ########################## # processing information ########################## $self->begin_section("Processing Information"); $self->item("Processing Date:", Util::Date->new($jobpar->read("procdate"))->in_words(), "Time:", $jobpar->read("proctime") ); $self->item("Version of Data:" ,$jobpar->read("seqprocnum") ); $self->item("Processing Script Version:",$jobpar->read("procscriptver")); $self->item("FTOOLS Version:",Util::Ftool->version() ); $self->item("HEAdas Version:",Util::HEAdas->version() ); ################ # xrt2fits ################ my $xrt2fits = $procpar->read("xrt2fits"); $xrt2fits =~ s/^.*XRT2FITS//i; $self->item("XRT2FITS Version:", $xrt2fits); ################ # bat2fits ################ my $bat2fits = $procpar->read("bat2fits"); $bat2fits =~ s/^.*BAT2FITS//i; $self->item("BAT2FITS Version:", $bat2fits); ################ # uvot2fits ################ my $uvot2fits = $procpar->read("uvot2fits"); $uvot2fits =~ s/^.*UVOT2FITS//i; $self->item("UVOT2FITS Version:", $uvot2fits); $self->end_section(); } # end of body method ################################################################### # generate the links to other pages which are found at the top of the page. # Sub-classes should override this method to add more links. ################################################################### sub link_text { my $self = shift; $self->SUPER::link_text(); my $url; my $filename=$self->filename(); my $text=$self->SUPER::link_text(); $url=$filename->get("report", "uvot"); $text .= "<LI><A HREF=\"$url\">UVOT exposure report</A>\n"; $url=$filename->get("report", "xrt"); $text .= "<LI><A HREF=\"$url\">XRT exposure report</A>\n"; $url=$filename->get("report", "bat"); $text .= "<LI><A HREF=\"$url\">BAT exposure report</A>\n"; return $text; } # end of link_text method