Introduction and example

Spectrum files can be manipulated using the pha and phaII classes. The latter is simply a vector of pha classes and is useful for handling type II PHA files. The grouping class and utility routines are also useful for some tasks. As an example the code below reads in a type II PHA file, bins up all the spectra by a factor of 2, then writes out the result. Note that the data types Integer and Real are defined in heasp.h.

#include "grouping.h"
#include "phaII.h"

using namespace std;
using namespace heasp;

int main(int argc, char* argv[])
{
  const string infile("testin.pha");
  const string outfile("testout.pha");

  Integer Status(0);

  // read in all the spectra

  phaII inputSpectra(infile);

  Integer Nspectra = inputSpectra.getNumberSpectra();

  // loop round the spectra

  for (size_t i=0; i<(size_t)Nspectra; i++) {

    // set up the grouping object to rebin by a factor of 2

    grouping groupInfo;
    groupInfo.load(2, inputSpectra.phas[i].NumberChannels());

    // rebin this spectrum

    pha thisSpectrum = inputSpectra.get(i);
    Status = thisSpectrum.rebinChannels(groupInfo,"PROPAGATE");
    Status = inputSpectra.setphasElement(i, thisSpectrum);

  }

  // write the new spectra out copying the primary HDU, other HDUs,
  // keywords and columns
 
  Status = inputSpectra.write(outfile, infile);

  exit(Status);
}




HEASARC Home | Observatories | Archive | Calibration | Software | Tools | Students/Teachers/Public

Last modified: Wednesday, 28-Aug-2024 16:49:29 EDT

HEASARC Staff Scientist Position - Applications are now being accepted for a Staff Scientist with significant experience and interest in the technical aspects of astrophysics research, to work in the High Energy Astrophysics Science Archive Research Center (HEASARC) at NASA Goddard Space Flight Center (GSFC) in Greenbelt, MD. Refer to the AAS Job register for full details.