Code
Jump to navigation
Jump to search
mu2e simulation, reconstruction, and analysis code is available as one git repository. The code is primarily c++, built with scons, with bash scripting, and some perl and python. Our code depends heavily on external packages such as art and root. Executables, assembled from shared objects and plug-in modules, are controlled by fcl scripts. Pre-built releases are published and available world-wide on cvmfs. |
Building code
- For quick cut and paste...
checking out the main repository, with kerberos authentication for committing:
git clone ssh://p-mu2eofflinesoftwaremu2eoffline@cdcvs.fnal.gov/cvs/projects/mu2eofflinesoftwaremu2eoffline/Offline.git
checking out the main repository, readonly:
git clone http://cdcvs.fnal.gov/projects/mu2eofflinesoftwaremu2eoffline/Offline.git
- git
- scons
- Satellite Releases - building only the part of the code base you need
- Base releases and test releases.
References and How-to's
- Mu2e Geometry: The Big Picture
- Notes on the geometry files
- Using random numbers:
- Basic Instructions
- Complete Instructions
- Magnetic Field Maps.
- Conditions Data
- products and modules
- Which names need to match each other.
- The Mantra for making data products.
- listing products and printing their contents
- What are Services?
- Services distributed with the framework.
- Deprecated art services
- About handles.
- Filter Modules.
- Inter-Product References: art::Ptr, art::PtrVector, art::Assns
- cet::map_vector: a new class template
- Exceptions: Mu2e policy, CMS guide to managing exceptions.
Code Management
- The Mu2e git page
- Jenkins - a central build platform
- CVMFS - a distributed disk system to serve tagged, static code builds and products
- Download - pull a local copy to remote institutions or laptops
- BTrk - the KalMan fitter code is in this non-standard product
Standards and Practices
- Editors: Emacs, vim; policy of not using tab characters.
- CMS code references: Home Offline WorkBook SW Guide
- Units and Coordinate Systems
Tutorials
- Testing the ROOT display
- Testing the Geant4 based event display
- Notes on dynamic libraries
- The First Step: the art workbook
- Running G4 within art: The first examples.
- Mu2e maintained FAQs: C++ FAQ, Unix/Linux FAQ, ROOT FAQ, Geant4 Notes
External Packages
- UPS/UPD as used by Mu2e
- Setting up ROOT by itself
- Mu2e code
- art
- CMS Framework
- Root (v5.28)
- Geant4 DOxygen(v9.4.p01)
- Geant4 LXR
- CLHEP(v.2.2.0.4)
- HepPDT
- fhicl-cpp
- cetlib
- Message Facility
- cpp0x
- BTrk
- LXR browsers for many Fermilab projects
- The art redmine wiki, art-users archive
- Other external software used by Mu2e with links to documentation.