LHCb Software Support

Home Computing DAQ E-mail Notes Meetings Subsystems Search

This web page leads to information on the practices followed in the development of LHCb software. It lists the methods and  tools that are used and who to contact for further information. Recommended books are listed with links to detailed information. Documentation guidelines and use of the web are also given.


Coding rules and conventions

LHCb software should follow the rules and conventions listed here. The page includes references to tools to help developers conform with the rules. See also the guidelines on making code more efficient.

Software Tools

Design tools Visual Thought (getting started), Rational Rose (info)
Integrated Development Environment (IDE) We recommend Eclipse on all platforms (configuration)
Editor Emacs (getting started with LHCb emacs)
Code Management The LHCb software repository is in CVS (getting started). This is progressively being migrated to SVN (getting started)
Configuration Management CMT (getting started)
Download and Setup Scripts getpack (getting started), SetupProject
C++ Compilers
See supported platforms
See also: ISO standard, C++ reference, cplusplus.com
Debuggers See code analysis tools TWiki, or use an IDE (see above)
Code profiling and analysis See code analysis tools TWiki
Java SDK JDK-Sun 1.2.2, Jikes 1.10 (getting started)
Markup Language XML (getting started)
Scripting Language Python (getting started) (GaudiPython)
Libraries MathCore, GSL, Boost, XERCES-C [legacy libraries: CLHEP, CERNLIB]
Documentation Manuals: Framemaker 6.0 (info)
Source Code: Doxygen (getting started)
Code search: glimpse. Use Lbglimpse command to run glimpse on a given LHCb software release
LaTeX template for LHCb notes
Bug Reporting Use the LCG Savannah portal

Books

Many recommended books can be obtained from the CERN Computing BookShop in the CERN library.

The following books are used in LHCb to foster use of common notation etc. :

Book Author Description
Scientific and Engineering C++ Barton and Nackman For people wanting to learn C++
Large scale C++ Sware Design Lakos Physical design, packaging, releases...
The Inventor Mentor   Wernecke Introduction to Open Inventor
The Inventor Toolkit   Wernecke For adding to Inventor toolkit
Design Patterns   Gamma..... For design of object-oriented software
Object Solutions   Booch Managing OO projects
UML User Guide Booch, Rumbaugh,.. Design notation (UML) used by LHCb
Personal Software Process   Humphrey How to be a better software developer

Documentation guidelines and templates

N.B. Templates can usually be selected from within the application (Word or Framemaker)

  • LHCb Documentation Guidelines (html) - paper documents, email, news

  • LHCb Project Management Template (html, word) - information to be included in each project plan

  • User Requirements Document (URD) template (html, word)

  • LHCb Technical Note template (html, word, LateX)

LHCb WEB

Go to TOP of page

This page last updated on November 23, 2011