Code: Difference between revisions
Jump to navigation
Jump to search
Line 53: | Line 53: | ||
* [[ConditionsData|Conditions Data]] | * [[ConditionsData|Conditions Data]] | ||
* [[Services|Services]] | * [[Services|Services]] | ||
** | ** [[ArtServices|Framework services]] | ||
* [[Exceptions|Exceptions]]: Mu2e policy, CMS guide to managing exceptions. | * [[Exceptions|Exceptions]]: Mu2e policy, CMS guide to managing exceptions. | ||
Revision as of 21:31, 23 March 2017
example page for git documentation
Building code
- Basic recipe for creating a satellite release
source /cvmfs/fermilab.opensciencegrid.org/products/common/etc/setups setup mu2e /cvmfs/mu2e.opensciencegrid.org/Offline/v6_0_0/SLF6/prof/Offline/bin/createSatelliteRelease cd Offline source setup.sh [add content] scons -j 4
- Basic recipe for setup, checkout and build
source /cvmfs/fermilab.opensciencegrid.org/products/common/etc/setups setup mu2e git clone http://cdcvs.fnal.gov/projects/mu2eofflinesoftwaremu2eoffline/Offline.git - or - git clone ssh://p-mu2eofflinesoftwaremu2eoffline@cdcvs.fnal.gov/cvs/projects/mu2eofflinesoftwaremu2eoffline/Offline.git cd Offline git checkout -b work source setup.sh scons -j 4
- git code repository management
- scons code building tool
- Satellite Releases for building only the part of the code base you need
Modules, Products, and Services
- Modules
- Products
- Reading products
- Listing and printing
- Making data products
- Handles
- PhysicalVolumeInfoCollection (needs update)
- Provenance (needs update)
- cet::map_vector
- Mu2e Geometry: The Big Picture (convert to wiki)
- Notes on the geometry files
- Random numbers:
- Magnetic Field Maps
- Conditions Data
- Services
- Exceptions: Mu2e policy, CMS guide to managing exceptions.
Configuring fcl
- SimpleConfig
- Run-time Configuration (.fcl files)
- Trigger_paths, end_paths and reconstruction on demand.
- Configuring input and output modules
- Search path for some run-time files.
- Using and configuring the message logger
Code Management
mu2e uses git for all code management. There is one main repository for code (with BTrk, the Kalman fit, in a separate respository) and a few smaller repositories for tools. Built releases are distributed worldwide, including remote institutions and the grids with the cvmfs distributed disk system. The code is built after every commit, and built and validated every night on the Jenkins build platform.
- 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
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.