LArSoft

Logo

Software for Liquid Argon time projection chambers

View My GitHub Profile

LArSoft repositories packages and dependencies

There are a number of repositories/ups products that are in core LArSoft.

There are three types of core LArSoft repositories:

  1. framework-dependent - depends on art and directly and indirectly on other things. These repositories are depicted in the dependency diagram below as the center column of magenta ovals. These repositories also depend on a variety of external products, depicted in the column on the left, and on framework-independent LArSoft repositories (to be discussed next) shown in the column to the right.
  2. framework-independent - sometimes referred to as “shared” repositories (e.g., in the context of LArLite) because they can be shared directly with external frameworks and packages, and LArSoft. They are designed to have minimal dependencies to other products or repositories beyond other “shared” repositories, as shown in the right column of ovals.
  3. product-interface - provides direct access to a particular package (such as Pandora or LArWireCell) without making any other part of LArSoft dependent on that package. The interface products may depend on other core LArSoft repositories, but none of the other core LArSoft repositories may depend on the interface products. Some examples of these repositories are depicted as the green ovals in the dependency diagram below.

Note that arrows in the dependency diagram point to repositories that resolve direct dependencies in the repository at the tail of the arrow.

structural.png

depend-v10.png

depend-v10.png

depend-v10.png

depend-v10.png

larsoft

larsoftobj

lareventdisplay

larexamples

larg4

larwirecell

larpandora

larana

larreco

larsim

larevt

lardata

larcore

The following repositories have no framework dependencies, and can be built and used in alternate frameworks and development environments

larvecutils

larrecodnn

larsimdnn

larsimrad

lardataalg

lardataobj

larcorealg

larcoreobj

larsoft_data

Experiment Code

The following diagram shows how experiment code fits into the system.

experimentcode.png