int ReadRMFMatrix(char *filename, long RMFnumber, struct RMF *rmf)
Read the RMF matrix from a FITS file - if there are multiple RMF extensions then read the RMFnumber instance.
int WriteRMFMatrix(char *filename, struct RMF *rmf)
Write the RMF matrix to a FITS file.
int ReadRMFEbounds(char *filename, long EBDnumber, struct RMF *rmf).
Read the RMF ebounds from a FITS file - if there are multiple EBOUNDS extensions then read the EBDnumber instance.
int WriteRMFEbounds(char *filename, struct RMF *rmf)
Write the RMF ebounds to a FITS file.
void DisplayRMF(struct RMF *rmf)
Write information about RMF to stdout.
void ReturnChannel(struct RMF *rmf, float energy, int NumberPhotons, long *channel)
Return the channel for a photon of the given input energy - draws random numbers to return NumberPhotons entries in the channel array.
void NormalizeRMF(struct RMF *rmf)
Normalize the response to unity in each energy.
void CompressRMF(struct RMF *rmf, float threshold)
Compress the response to remove all elements below the threshold value.
int RebinRMFChannel(struct RMF *rmf, struct BinFactors *bins)
Rebin the RMF in channel space.
int RebinRMFEnergy(struct RMF *rmf, struct BinFactors *bins)
Rebin the RMF in energy space.
void TransposeRMF(struct RMF *rmf, struct RMFchan *rmfchan)
Transpose the matrix.
float ReturnRMFElement(struct RMF *rmf, long channel, long energybin)
Return a single value from the matrix.
float ReturnRMFchanElement(struct RMFchan *rmfchan, long channel, long energybin)
Return a single value from the transposed matrix.
int AddRMF(struct RMF *rmf1, struct RMF *rmf2)
Add rmf2 onto rmf1.