Skip to content

recast-hep/recast-atlas

Repository files navigation

RECAST for ATLAS

DOI

CI pre-commit.ci status PyPI version

Ruff

ATLAS tools to facilitate integration of ATLAS analyses into RECAST

Getting Started

Install

recast-atlas is installable from PyPI using pip inside of your Python virtual environment

python -m pip install recast-atlas

CLI API

The recast-atlas CLI API:

$ recast --help
Usage: recast [OPTIONS] COMMAND [ARGS]...

Options:
  -l, --loglevel TEXT
  --help               Show this message and exit.

Commands:
  auth       Authentication Commands (to gain access to internal data)
  backends   The RECAST computational backends.
  catalogue  The RECAST Analysis Catalogue
  ci         Helper Commands for CI systems
  retrieve   Retrieve RECAST Results from asynchronous submissions
  run        Run a RECAST Workflow synchronously
  software   Build Container Images for RECAST
  status     Get the Status of a asynchronous submission
  submit     Submit a RECAST Workflow asynchronously
  tests      Run a test

Running RECAST

recast-atlas aims to enable both local execution as well as asynchronous execution on a REANA cluster.

Docker backend

Example: Run the example from the ATLAS Exotics Rome Workshop 2018 using the (default) docker backend.

Install recast-atlas from PyPI

python -m pip install --upgrade recast-atlas coolname

Submit the RECAST workflow, orchestrated in a recast/recastatlas Docker container

recast run examples/rome --backend docker --tag "docker-$(coolname 2)"

Local backend

Example: Run the example from the ATLAS Exotics Rome Workshop 2018 using the local backend.

Install recast-atlas with the local extra

python -m pip install --upgrade 'recast-atlas[local]' coolname

Submit the RECAST workflow to run locally

PACKTIVITY_DOCKER_CMD_MOD="-u root" recast run examples/rome --backend local --tag "local-$(coolname 2)"

The local backend orchestrates the workflow graph locally, but note that the different workflow steps still run in Linux containers.

REANA cluster backend

Example: Asynchronously run the example from the ATLAS Exotics Rome Workshop 2018 using the reana backend.

Install recast-atlas with the reana extra

python -m pip install --upgrade 'recast-atlas[reana]' coolname

Authenticate to use the REANA cluster (remember to clean up later with eval $(recast auth destroy))

# Set these variables to your personal secret values
export RECAST_AUTH_USERNAME="<your RECAST auth username>"
export RECAST_AUTH_PASSWORD="<your RECAST auth password>"
export RECAST_AUTH_TOKEN="<your RECAST auth token>"

eval "$(recast auth setup -a ${RECAST_AUTH_USERNAME} -a ${RECAST_AUTH_PASSWORD} -a ${RECAST_AUTH_TOKEN} -a default)"
eval "$(recast auth write --basedir authdir)"

export REANA_SERVER_URL=https://reana.cern.ch
export REANA_ACCESS_TOKEN="<your RECAST access token>"

Submit the RECAST workflow to the REANA cluster

reana_tag="reana-$(coolname 2)"
recast submit examples/rome --backend reana --tag "${reana_tag}"
# REANA_WORKON sets the workflow automatically
export REANA_WORKON="recast-${reana_tag}"

Monitor the state of the workflow on REANA

reana-client status
# or if REANA_WORKON not set
# reana-client status --workflow "<the created tag>"

Download the results after the workflow succeeds

reana-client download statanalysis --output-directory output
# or if REANA_WORKON not set
# reana-client download statanalysis --workflow "<the created tag>" --output-directory output

Clean up the environment of personal information in environmental variables

eval $(recast auth destroy)
ssh lxplus9.cern.ch
source ~recast/public/setup.sh
recast catalogue ls
recast run examples/rome