Difference between revisions of "Code"

From Mu2eWiki
Jump to navigation Jump to search
Line 66: Line 66:
 
== Code Management ==
 
== 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.
+
* [[Git|mu2e git]]
 
 
* [[GitMu2e|The Mu2e git page]]
 
 
*  Jenkins - a central build platform
 
*  Jenkins - a central build platform
 
** [[Jenkins|Jenkins overview]]
 
** [[Jenkins|Jenkins overview]]
 
** [http://mu2e.fnal.gov/atwork/computing/ops/nightlyBuild/nightly.shtml  Jenkins Nightly build results]
 
** [http://mu2e.fnal.gov/atwork/computing/ops/nightlyBuild/nightly.shtml  Jenkins Nightly build results]
* CVMFS - a distributed disk system to serve tagged, static code builds and products
+
* [[Cvmfs]]
** [[Cvmfs#Using CVMFS|for users]]
 
** [[Cvmfs#Installing CVMFS|installing at remote sites]]
 
** [[Cvmfs#Adding CVMFS content|maintaining content]]  
 
 
* [[CodeDistribution|Download]] - pull a local copy to remote institutions or laptops
 
* [[CodeDistribution|Download]] - pull a local copy to remote institutions or laptops
 
* [[BTrk]] - the KalMan fitter code is in this non-standard product
 
* [[BTrk]] - the KalMan fitter code is in this non-standard product

Revision as of 22:24, 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 

Modules, Products, and Services

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

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.