## Introduction

Updates made to the ACS calibration pipeline, CALACS, are documented here. Three times a year, updates to the software packages in the HST calibration pipelines (HSTCAL) are released in an HST data processing (HSTDP) build (e.g. HSTDP 2018.1). After each build is released, it is incorporated into the AstroConda channel and made available to the science community.

#### Current Version Information

ACSTOOLS version: 3.2.0

HSTCAL version: 2.3.1

CALACS version: 10.2.1

## Overview of CALACS

The ACS calibration pipeline, CALACS, is divided up into five main tasks that are run sequentially. In order, these five tasks are: acsccd, acscte, acsrej, acs2d, acssum. The exact path an image takes through the pipeline is controlled by various switches stored in the image's primary header. In the boxes below, we describe each of the processing steps applied in the five main tasks and the relevant header switches that control them. For a complete description of each of these tasks, we refer users to the ACS Data Handbook.

### ACSTOOLS

To facilitate scripting of calibration workflows, the ACS Team developed the python package, ACSTOOLS. This package is a wrapper around the compiled C executables used by the CALACS pipeline. It provides users with an easy-to-use python interface, as well as, access to other utility functions developed by the ACS Team (e.g. the CTE forward modeler). The interface simplifies the process of building up calibration workflows, making it much easier for users to reprocess their data if they so choose. For more information on ACSTOOLS, please see the website.

#### Example Usage

Suppose you wanted to reprocess CR-SPLIT observations while experimenting with the parameters in CRREJTAB. Accomplishing this using the executables is a drawn out process that involves iteratively modifying the parameters stored in the CRREJTAB reference file. A simpler way to do this is by leveraging the python interface provided with ACSTOOLS. In the section above on CALACS, we see that only two tasks are executed before acsrej. We write a simple python script to process our observations through acsccd and acscte to generate intermediate data products with this minimum level of required calibration completed.

from acstools import acsccd, acscte

# Run the acsccd task (*raw.fits -> *blv_tmp.fits)
acsccd.acsccd('*raw.fits', time_stamps=True, verbose=True)

# Run CTE correction (*blv_tmp.fits -> *blc_tmp.fits)
acscte.acscte('*blv_tmp.fits')

Now that we have reached the level of calibration expected before entering the acsrej task, we can experiment with the parameters of CRREJTAB much more easily. The values stored in the CRREJTAB reference file (see Section 2 in ACS ISR 2018-05) can be accessed through keyword arguments in the ACSTOOLS implementation. Instead of updating the reference file, change the values passed in the function call:

from acstools import acsrej

acsrej.acsrej('*blc_tmp.fits',
output='combined_product.fits', # output filename
crsigmas='6,5,4', # specify the rejection threshold
initgues='med') # specify the method for computing the initial guess