Skip to content

LDMX-Software/ldmx-sw

Repository files navigation

Simulation and reconstruction framework for the Light Dark Matter eXperiment.

Quick Start

  • Install the docker engine
  • (on Linux systems) Manage docker as non-root user
  • Clone the repo: git clone --recursive git@github.com:LDMX-Software/ldmx-sw.git
  • Setup the environment (in bash): source ldmx-sw/scripts/ldmx-env.sh
    • Note: If you are working with ldmx-sw at SLAC's SDF, you will need to set the TMPDIR environment variable so that program running the container has more than ~5GB of space to write intermediate files. The default temporary space (/tmp) is often full of other files already. A decent replacement is TMPDIR=${SCRATCH} which gives the program plenty of room for the files it needs to manipulate.
  • Configure and compile: ldmx compile
  • Now you can run any processor in ldmx-sw through ldmx fire myconfig.py
  • If you are developing and need to recompile and run ldmx fire, you can use ldmx recompFire myconfig.py

Documentation

The full documentation for ldmx-sw is available on github pages. A brief description of common commands is given below.

Common Commands inside Container

Command Purpose
ldmx cmake .. Configure the ldmx-sw build
ldmx make Compile/build ldmx-sw
ldmx make install Install ldmx-sw
ldmx compile Configure and compile ldmx-sw
ldmx fire config.py Use ldmx-sw application and processors with input python configuration
ldmx recompFire config.py Recompile and run fire on a config file
ldmx python3 analysis.py Run python-based analysis
ldmx ./bin/mg5_aMC Run MadGraph5 inside (ubuntu-based) container

Other Container Configuration Commands

The environment script defines several other shell commands to help configure and debug the container environment.

  • ldmx list repo : List the container tags that you could use with the input repository: dev, pro, or local
  • ldmx use repo tag : Setup the environment for the container 'ldmx/repo:tag' and pull down the newest version if the repo is remote
  • ldmx config : Print out how the container environment is currently configured
  • ldmx clean all : Reset environment to a blank state

Use ldmx help for a full listing of these commands. If we don't define a command outside of the container, then the command is given to the container to run inside the current directory.

Maintainer

Contributors