Last modified: 7 April 2024

How can I tell CIAO to use a different HRMA effective area file?


The default HRMA effective area (EA) file is periodically updated in the CALDB. If you are working on a local network and share a CALDB installation, you may not have control over when this default file is changed. To avoid negatively impacting an analysis in progress, you can use the ardlib.par parameter file to tell CIAO to continue to use the previous version of the HRMA file.

In this example, we want to use the version 7 HRMA EA file, which was released in CALDB 3.2.1 on 15 December 2005:

$CALDB/data/chandra/default/axeffa/hrmaD1996-12-20axeffaN0007.fits

There are five parameters for the EA in ardlib.par:

unix% plist ardlib

Parameters for /soft/ciao/param/ardlib.par

...

#===========================================================================
# AXAF Mission Support
#===========================================================================
AXAF_EFFAREA_FILE_0001 = CALDB            Enter AXAF eff-area file 0001
AXAF_EFFAREA_FILE_0010 = CALDB            Enter AXAF eff-area file 0010
AXAF_EFFAREA_FILE_0100 = CALDB            Enter AXAF eff-area file 0100
AXAF_EFFAREA_FILE_1000 = CALDB            Enter AXAF eff-area file 1000
AXAF_EFFAREA_FILE_1111 = CALDB            Enter AXAF eff-area file 1111
...

First we need to determine which extension of the HRMA EA file is appropriate for each ARDLIB parameter. Note that we create a link to the CALDB file to simplify the commands:

unix% ln -s $CALDB/data/chandra/default/axeffa/hrmaD1996-12-20axeffaN0007.fits .
unix% dmlist hrmaD1996-12-20axeffaN0007.fits blocks
 
--------------------------------------------------------------------------------
Dataset: hrmaD1996-12-20axeffaN0006.fits
--------------------------------------------------------------------------------
 
     Block Name                          Type         Dimensions
--------------------------------------------------------------------------------
Block    1: PRIMARY                        Null        
Block    2: AXAF_AXEFFA1                   Table         4 cols x 1        rows
Block    3: AXAF_AXEFFA2                   Table         4 cols x 1        rows
Block    4: AXAF_AXEFFA3                   Table         4 cols x 1        rows
Block    5: AXAF_AXEFFA4                   Table         4 cols x 1        rows
Block    6: AXAF_AXEFFA5                   Table         4 cols x 1        rows

unix% foreach f (1 2 3 4 5)
foreach? echo "AXAF_AXEFFA$f"
foreach? dmkeypar "hrmaD1996-12-20axeffaN0007.fits[AXAF_AXEFFA$f]" SHELL echo+
foreach? echo ""
foreach? end

AXAF_AXEFFA1
1111

AXAF_AXEFFA2
1000

AXAF_AXEFFA3
0100

AXAF_AXEFFA4
0010

AXAF_AXEFFA5
0001

The foreach command was used to loop through all the file extensions, but you could run each dmkeypar call individually, e.g.

unix% dmkeypar "hrmaD1996-12-20axeffaN0007.fits[AXAF_AXEFFA1]" SHELL echo+
1111

Now we can match the extension in the file to the correct ARDLIB parameter. Note that we also return to using the full path to the CALDB:

unix% pset ardlib AXAF_EFFAREA_FILE_0001="$CALDB/data/chandra/default/axeffa/hrmaD1996-12-20axeffaN0007.fits[AXAF_AXEFFA5]" 

unix% pset ardlib AXAF_EFFAREA_FILE_0010="$CALDB/data/chandra/default/axeffa/hrmaD1996-12-20axeffaN0007.fits[AXAF_AXEFFA4]" 

unix% pset ardlib AXAF_EFFAREA_FILE_0100="$CALDB/data/chandra/default/axeffa/hrmaD1996-12-20axeffaN0007.fits[AXAF_AXEFFA3]" 

unix% pset ardlib AXAF_EFFAREA_FILE_1000="$CALDB/data/chandra/default/axeffa/hrmaD1996-12-20axeffaN0007.fits[AXAF_AXEFFA2]" 

unix% pset ardlib AXAF_EFFAREA_FILE_1111="$CALDB/data/chandra/default/axeffa/hrmaD1996-12-20axeffaN0007.fits[AXAF_AXEFFA1]" 

Check the results by plist-ing the parameter file:

unix% plist ardlib

Parameters for /home/username/cxcds_param4/ardlib.par

...

#===========================================================================
# AXAF Mission Support
#===========================================================================
AXAF_EFFAREA_FILE_0001 = /soft/ciao/CALDB/data/chandra/default/axeffa/hrmaD1996-12-20axeffaN0007.fits[AXAF_AXEFFA5] Enter AXAF eff-area file 0001
AXAF_EFFAREA_FILE_0010 = /soft/ciao/CALDB/data/chandra/default/axeffa/hrmaD1996-12-20axeffaN0007.fits[AXAF_AXEFFA4] Enter AXAF eff-area file 0010
AXAF_EFFAREA_FILE_0100 = /soft/ciao/CALDB/data/chandra/default/axeffa/hrmaD1996-12-20axeffaN0007.fits[AXAF_AXEFFA3] Enter AXAF eff-area file 0100
AXAF_EFFAREA_FILE_1000 = /soft/ciao/CALDB/data/chandra/default/axeffa/hrmaD1996-12-20axeffaN0007.fits[AXAF_AXEFFA2] Enter AXAF eff-area file 1000
AXAF_EFFAREA_FILE_1111 = /soft/ciao/CALDB/data/chandra/default/axeffa/hrmaD1996-12-20axeffaN0007.fits[AXAF_AXEFFA1] Enter AXAF eff-area file 1111
..

Remember to "punlearn" or delete your ardlib.par file when you are ready to start an analysis with the new default CALDB HRMA EA file.