.. _getting_started: Getting Started =============== .. contents:: :local: Before You Begin ---------------- To use **atlasplots** you will need a working installation of `ROOT `_, a scientific software framework developed at CERN for data analysis in high energy physics. You can install **ROOT** by following the `Installing ROOT `_ guide on their website. If you are a newcomer to ROOT, there are a number of resources available to help get started. A good starting point is the `ROOT Primer `_ beginner's guide. `Courses `_ and `Tutorials `_ are also available. PyROOT ^^^^^^ **atlasplots** uses `PyROOT `_, ROOT's Python-C++ bindings. With **PyROOT** you can access the full ROOT functionality from Python while benefiting from the performance of the ROOT C++ libraries. When ROOT is installed, you can use PyROOT both from the Python prompt and from a Python script. The entry point to PyROOT is the ``ROOT`` module, which you must import first: >>> import ROOT Then you can access the ROOT C++ classes, functions, etc. via the ``ROOT`` module. Installing atlasplots --------------------- .. code-block:: console $ pip install atlasplots You can also install directly from the source repository: .. code-block:: console $ pip install https://github.com/joeycarter/atlas-plots Replace ``https://github.com/joeycarter/atlas-plots`` with ``git@github.com:joeycarter/atlas-plots.git`` if you have GitHub ``ssh`` keys set up. To uninstall: .. code-block:: console $ pip uninstall atlasplots Installing on lxplus ^^^^^^^^^^^^^^^^^^^^ .. note:: Fellow ATLAS members: follow these instructions to set up **atlasplots** on ``lxplus``. Other CERN folk, you may have to fill in some of the gaps to set up your preferred versions of ROOT and Python. If you want to use **atlasplots** on ``lxplus`` (to avoid copying over potentially large ROOT files to your local machine), there are a few extra steps involved to install it. As of writing these docs, the default versions of ROOT and Python installed on ``lxplus`` should be sufficient to install **atlasplots**. However, if you wish to use a more complete, stable release of ROOT, Python, and a number of useful Python packages, you can use an `LCG Release `_, such as `LCG_98python3 `_. To set up the environment on ``lxplus``, run: .. code-block:: bash $ setupATLAS $ lsetup "views LCG_98python3 x86_64-centos7-gcc9-opt" You can replace ``LCG_98python3`` and ``x86_64-centos7-gcc9-opt`` with your preferred LCG release and OS/compiler architecture. .. warning:: Careful here: setting up ROOT in this way might interfere with certain environment and ``PATH`` variables if you have an ``Athena`` release set up in your current shell. The LCG release should come with ``pip`` out of the box. In general, to install a package on ``lxplus``, use the ``--user`` flag in your ``pip`` command: .. code-block:: console $ pip install --user This tells ``pip`` to install packages to ``~/.local/lib/`` (which is necessary since you don't have ``sudo`` privileges on ``lxplus``). Finally, install **atlasplots** with: .. code-block:: console $ pip install --user https://github.com/joeycarter/atlas-plots Basic Usage ----------- **Behold, the simplicity of atlasplots:** .. code-block:: python import atlasplots as aplt import ROOT as root aplt.set_atlas_style() hist = root.TH1F("hist", "", 64, -4, 4) hist.FillRandom("gaus") fig, ax = aplt.subplots(1, 1) ax.plot(hist) ax.set_ylim(0, 280) ax.set_xlabel("X [GeV]") ax.set_ylabel("Events") fig.savefig("figure.svg") .. image:: _static/examples/figure.svg :align: center :alt: figure.svg For a collection of complete examples, see the :ref:`examples` section.