Code: Difference between revisions

From Mu2eWiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 44: Line 44:
*    cet::map_vector: a new class template
*    cet::map_vector: a new class template
*    Exceptions: Mu2e policy,  CMS guide to managing exceptions.
*    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 ==
== Code Management ==

Revision as of 22:30, 1 February 2017

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.

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

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.