ldmx-sw
ldmx-sw copied to clipboard
The Light Dark Matter eXperiment simulation and reconstruction framework.
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 [email protected]:LDMX-Software/ldmx-sw.git
- Note: You need to setup an SSH-key with your GitHub account on the computer you are using.
- 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 isTMPDIR=${SCRATCH}
which gives the program plenty of room for the files it needs to manipulate.
-
Note: If you are working with ldmx-sw at SLAC's SDF, you will need to set the
- 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 useldmx 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
, orlocal
-
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.