Code: Difference between revisions

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


<table>
 
<tr>
<td width=25%>__TOC__</td>
<td width=3%></td>
<td>
''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.''
</td>
<td width=3%></td>
</tr>
</table>


== Building code ==
== Building code ==

Revision as of 22:36, 1 February 2017


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.

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.