The documentation of ICARUS is spread mainly between:
- ICARUS wiki in GitHub at https://sbnsoftware.github.io/icaruscode_wiki/Wiki; there is also an older Fermilab Redmine wiki
- automatically generated (Doxygen) code documentation at https://icarus-exp.fnal.gov/at_work/software/doc/icaruscode/versionlist.html (requires authentication)
ICARUS software is spread across several repositories under GitHub SBNSoftware. Help yourself:
- icaruscodeis the main entry point (code based on art)
- icarusalgincludes art-independent code
- icarus_signal_processingincludes art-independent code
- icarus_datadistributes large data files
- icarusutilmostly contains experiment customization of- larbatchutilities
- sbncodeis code shared with other SBN experiments
- sbnobjcontains data object definitions shared with SBN
- sbndaq_artdaq_coreinterfaces with DAQ and holds data objects definitions for ICARUS "raw" data
ICARUS software is in great part based on LArSoft. Here are some shortcuts to its GitHub repositories:
- larsoft(umbrella repository)
- data product repositories:
- larcoreobj, basic geometry data products
- lardataobj, most simulation and reconstruction data products (not the- simbnamespace)
 
- larcorealg, geometry code and some bsic utilities
- lardataalg, some basic service providers (- LArProperties,- DetectorClocks,- DetectorProperties) and utilities
- larevt, with database code
- larsim, detector simulation (esp. GEANT4)
- larana, including calorimetry and optical reconstruction
- larreco, most reconstruction algorithms and modules
- art, framework underpinning data processing (many support libraries are also in art-framework-suite)
