- Table of contents
- LArSoftWiki
- Preliminaries
- Releases
- Documentation
- How-to
- Walk-through exercises
- LArSoft code management and distribution
- LArSoft continuous integration system
- Legacy Redmine project sites
- Working areas
LArSoftWiki¶
The LArSoft software is designed to work for all planned and running liquid argon experiments at Fermilab. It is written in C++ and built on the ROOT data analysis software, and the art analysis framework supported by the Fermilab Scientific Computing Division for intensity frontier experiments.
Preliminaries¶
- Fermilab computing accounts: see the [[larsoftsvn:Fermilab Computing Access]] page if you need an account.
- See [[larsoftsvn:Load Balanced Access to General Purpose VMs]] for information on accessing experiment VMs at Fermilab (e.g., lbnegpvm0X, uboonegpvm0X, etc., collectively known as GPCF.).
- See the documentation section for information on working with LArSoft, and using git, git flow, mrb and other tools you will need.
- Supported platforms
- To join the LArSoft mailing list, please follow these instructions using the list name LARSOFT
- To get write access to the repositories, send email to rs@fnal.gov, echurch@fnal.gov, greenlee@fnal.gov, trj@fnal.gov.
Where to find the software¶
- What are the repository names and what is in them?
- LArSoft module authors and librarians
- The core LArSoft installation at Fermilab
- Experiment-specific code and re-factoring
- Sub-package locations (e.g., in which repository can I find the
HitFinder
sub-package?) - Download instructions
- LArSoft cvmfs
LArSoft Doxygen - comments in the code are incorporated into documentation by Doxygen¶
Releases¶
List of LArSoft releases. (Temporarily includes lbnecode and uboonecode)
LArSoft release management (instructions for the release manager)
Breaking Changes (or "after the update my code shows 179 compiling errors! HEEELP!!")
Documentation¶
Overview of the user and developer environment¶
Working with LArSoft¶
How to use the repositories and the build system¶
- Quick-start guide to using and developing LArSoft code * LArSoft repositories, packages and dependencies * Coding guidelines
The framework and the LArSoft suite¶
- [[larsoftsvn:Using the Framework]] * ART Tutorial * [[larsoftsvn:NuSoft and LArSoft|nutools and LArSoft]] * Using LArSoft on the GPVM nodes * [[larsoftsvn:Package Documentation]] * [[larsoftsvn:Geometry]] * [[larsoftsvn:Reconstruction]] * [[larsoftsvn:Simulation]] * [[larsoftsvn:Space Points]] * [[larsoftsvn:Seed Finding and Bezier Tracking]] * [[larsoftsvn:Optical Simulations]]
Links to the tools used to work with the software¶
git and git flow:- git flow quick start (edited 2/4/2013).
- Git Tips and Tricks (Note that "git help" works, but "man git" and "git help <command>" does not on any of the gpvm machines. Nor do any of the "git <command> -h" commands.) For the purposes of LArSoft development, please please ignore the workflow advice as anything other than an example of how to use various git commands to do specific tasks.
- Cetbuildtools cmake modules: such as
cet_make
andcet_add_compiler_flags
. Used inCMakeLists.txt
files throughout LArSoft - Art cmake modules: such as
art_make
andsimple_plugin
. Used inCMakeLists.txt
files throughout LArSoft - Defining products in the CET build environment: explains the
product_deps
file - Adding Product Dependencies: how to edit the
product_deps
andCMakeLists.txt
files to add dependencies - Various helpful tips for coding in the CET C++ environment: things you hope you never need to know
- Building your own code with cmake: pointer to a really simple example
- mrb : the multi-repository build tool
- mrb reference guide
- mrb calls
buildtool
(from thecetbuildtools
product) to perform the build. Documentation for buildtool
- "Re-locatable" ups. (Documentation in preparation)
- About qualifiers: the things after "-q" in setup <prod> <ver> -q <qual>
How-to¶
Advanced technical how-to's¶
Release procedures¶
LArSoft cvmfs ¶
Walk-through exercises¶
LArSoft code management and distribution¶
- Adding / removing users
- Admin scripts
- LArSoft release management
- LArSoft release naming policy
- Procedure to create a new version of larsoft_data
- Installation procedures
- Nightly builds
- Integration build and test system
- Release notes template
LArSoft continuous integration system¶
Legacy Redmine project sites¶
These were the sites used when LArSoft was developed under cvs and svn + SoftRelTools, respectively:
LArSoft-cvs wiki for the legacy cvs-based LArSoft project
[[larsoftsvn:| LArSoft-svn wiki for the legacy svn-based LArSoft project]]
As of Jan 24, 2014, LArSoft transitioned from svn / SRT to git / mrb / ups, but we retain the legacy projects for historical reasons.
Working areas¶
Detailed documentation on using and developing LArSoft code : under development -- not a resource
Random number generators in art
Old pages that are no longer relevant or maintainted: