Project

General

Profile

ART-based Software Information

Coding Conventions

There are only a few conventions to keep in mind when writing code for GArSoft, and they are

  1. All code must be within the "gar" namespace. Following this rule will ensure the ability to use code from LArSoft or HiSoft if necessary. # Namespaces must be explicit, no "using namespace XXX" statements are allowed. # All packages are a namespace; the names of the namespaces should be kept to 5 letters or less and should indicate the package, ie evd:: for the EventDisplay package # Data members of an object should have variable names that begin with "f", ie fADC # Variable names should be reasonably descriptive for the scope in which they are used - i is ok in a small for loop, not ok in one spanning > 20 lines. # Typedefs for predefined types are discouraged, ie typedef int Int_t, typedef std::vector < double > dubvec. Typedefs should be reserved for legitimate new types, ie Origin_t in SimulationBase/MCTruth.h. # Comments are mandatory - each new object should have a description of its purpose in both the header and implementation file # Comments should be of a format that enables doxygen to interpret them # Use the message facility for output to the screen

Useful C++ practices and C++2011 hints.

Compiler Qualifier Translation Table

ART Cliffs Notes

GArSoft Package Information

Data Products

Detector Information

Event Display

Event Generation

Geant4 Simulation

Geometry

MCCheater

Readout Simulation