Code: Difference between revisions

From Mu2eWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:


<blockquote>
<blockquote>
''mu2e uses git for all code management.  There is one main repository for code (with BTrk, the Kalman fit, in a separate respository). The code is primarly c++, built with scons, with bash scripting, and some perl and python.  Our code depends heavily on external packages such as art or root.''
''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.''
</blockquote>
</blockquote>



Revision as of 18:00, 29 December 2016

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.

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.