CERN Tutorial, September 2010 1 Overview of LHCb applications and software environment.

Slides:



Advertisements
Similar presentations
6/4/20151 Introduction LHCb experiment. LHCb experiment. Common schema of the LHCb computing organisation. Common schema of the LHCb computing organisation.
Advertisements

Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
LHCbPR V2 Sasha Mazurov, Amine Ben Hammou, Ben Couturier 5th LHCb Computing Workshop
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
ATLAS Software Kaushik De University of Texas At Arlington based on a tutorial by P. Calafiura (LBNL) LHC Computing Workshop, Ankara May 2, 2008.
The Atlas Software Distribution Christian ArnaultAlessandro De SalvoSimon GeorgeGrigori Rybkine
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Tools and software process for the FLP prototype B. von Haller 9. June 2015 CERN.
SUSE Linux Enterprise Server Administration (Course 3037) Chapter 4 Manage Software for SUSE Linux Enterprise Server.
Introduction to Hall-D Software February 27, 2009 David Lawrence - JLab.
Nightly Releases and Testing Alexander Undrus Atlas SW week, May
The Pipeline Processing Framework LSST Applications Meeting IPAC Feb. 19, 2008 Raymond Plante National Center for Supercomputing Applications.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Configuration Management (CM)
The introduction of CMT Version v1r14. General index 1.presentation 2.how to install CMT 3.how to write a requirements file 4.how to use CMT.
Overview of LHCb applications and software environment LHCb software tutorial - March
As of 28 Juni 2005Getting Starged with GEM - Shuei Yamada 1 Getting Started with GEM Shuei YAMADA ICEPP, University of Tokyo What is GEM? Before you start.
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
Bookkeeping Tutorial. Bookkeeping & Monitoring Tutorial2 Bookkeeping content  Contains records of all “jobs” and all “files” that are created by production.
The report on the current situation of the BESIII framework zhangxiaomei maqiumei 10/3/2004.
Study for Migration from CVS to SubVersion (SVN) Gunter Folger CERN/PH/SFT.
A Short Course on Geant4 Simulation Toolkit How to learn more?
ALICE, ATLAS, CMS & LHCb joint workshop on
CERN-PH-SFT-SPI August Ernesto Rivera Contents Context Automation Results To Do…
Use of Gaudi in Reconstruction Weidong Li 23/06/2004.
Reconstruction Configuration with Python Chris Jones University of Cambridge.
LHCb-ATLAS GANGA Workshop, 21 April 2004, CERN 1 DIRAC Software distribution A.Tsaregorodtsev, CPPM, Marseille LHCb-ATLAS GANGA Workshop, 21 April 2004.
EGEE is a project funded by the European Union under contract IST “Interfacing to the gLite Prototype” Andrew Maier / CERN LCG-SC2, 13 August.
INFSO-RI Enabling Grids for E-sciencE Ganga 4 – The Ganga Evolution Andrew Maier.
GLAST LAT Offline SoftwareCore review, Jan. 17, 2001 Review of the “Core” software: Introduction Environment: THB, Thomas, Ian, Heather Geometry: Joanne.
J.P. Wellisch, CERN/EP/SFT SCRAM Information on SCRAM J.P. Wellisch, C. Williams, S. Ashby.
Getting Started with SIDL using the ANL SIDL Environment (ASE) ANL SIDL Team MCS Division, ANL April 2003 The ANL SIDL compilers are based on the Scientific.
LHCb Simulation Tutorial CERN, 21 st -22 nd February B 00 l e Detector Simulation Examples.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
Bookkeeping Tutorial. 2 Bookkeeping content  Contains records of all “jobs” and all “files” that are produced by production jobs  Job:  In fact technically.
10/2/2000LHCb Computing, CHEP Use of Configuration Management tool in LHCb software J. Harvey, P. Mato, F. Ranjard CERN (Switzerland)
All the dSoftArk Tools Getting started!. Tools dSoftArk is a semi-realistic, agile, development project –Industrial strength software (programming, TDD,
Part 4: FCM and the UM University of Reading, December 2015.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Marco Cattaneo Core software programme of work Short term tasks (before April 2012) 1.
BESIII Offline Software Development Environment Ma qiumei * Development environment * Configuration & management tool * Software development.
INFSO-RI Enabling Grids for E-sciencE Using of GANGA interface for Athena applications A. Zalite / PNPI.
Level 1-2 Trigger Data Base development Current status and overview Myron Campbell, Alexei Varganov, Stephen Miller University of Michigan August 17, 2000.
LHCb Simulation Tutorial CERN, 21 st -22 nd February B 00 l e Detector Simulation Examples.
INFSO-RI Enabling Grids for E-sciencE Ganga 4 Technical Overview Jakub T. Moscicki, CERN.
Bologna Tutorial, June Overview of LHCb applications and software environment.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Geant4 Training 2003 A Short Course on Geant4 Simulation Toolkit How to learn more? The full set of lecture notes of this Geant4.
ATLAS Physics Analysis Framework James R. Catmore Lancaster University.
1 DIRAC Project Status A.Tsaregorodtsev, CPPM-IN2P3-CNRS, Marseille 10 March, DIRAC Developer meeting.
AAF tips and tricks Arsen Hayrapetyan Yerevan Physics Institute, Armenia.
Seven things you should know about Ganga K. Harrison (University of Cambridge) Distributed Analysis Tutorial ATLAS Software & Computing Workshop, CERN,
Use of CMT in LHCb CMT Workshop, LAL (Orsay) 28 th February - 1 st March 2002 P. Mato / CERN.
Starting Analysis with Athena (Esteban Fullana Torregrosa) Rik Yoshida High Energy Physics Division Argonne National Laboratory.
SPI Report for the LHCC Comprehensive Review Stefan Roiser for the SPI project.
Software Release Build Process and Components in ATLAS Offline Emil Obreshkov for the ATLAS collaboration.
Installation of the ALICE Software
Configuration and Build System
ATLAS Software Distribution
The LHCb Software and Computing NSS/IEEE workshop Ph. Charpentier, CERN B00le.
Gaudi software release procedures
NIGHTLY BUILD SCRIPT FOR THE LEVEL-1 TRIGGER ONLINE SOFTWARE
LHCb Software Tutorial
Overview of LHCb applications and software environment
Software Installation
SICB under CMT Why? What is CMT? How to work with CMT? Package layout
2 Getting Started.
2 Getting Started.
2 Getting Started.
Presentation transcript:

CERN Tutorial, September Overview of LHCb applications and software environment

2 Simul. Gauss HLT Moore Recons. Brunel Analysis DaVinci MCHits MicroDST Digits DST MCParts GenParts Event model / Physics event model ETC RawData Detector Description Conditions Database Gaudi Digit. Boole LHCb applications

1-3 CERN Tutorial, September 2010 Main LHCb applications Gauss –Event generation and GEANT4 simulation Boole –Detector response and digitization –Output in same format as real data Moore –Trigger reconstruction and HLT selection –Runs both online (in trigger farm) and offline Brunel –Event reconstruction –Output Tracks, Particle ID, “ProtoParticles” Gauss –Event generation and GEANT4 simulation Boole –Detector response and digitization –Output in same format as real data Moore –Trigger reconstruction and HLT selection –Runs both online (in trigger farm) and offline Brunel –Event reconstruction –Output Tracks, Particle ID, “ProtoParticles”

1-4 CERN Tutorial, September 2010 More main LHCb applications DaVinci –Physics analysis framework –Manipulate particles and vertices to identify and measure physics processes Panoramix –Event and geometry display –Scripting based on Python Ganga –User interface for handling job preparation, submission and retrieval (e.g. on the grid) DaVinci –Physics analysis framework –Manipulate particles and vertices to identify and measure physics processes Panoramix –Event and geometry display –Scripting based on Python Ganga –User interface for handling job preparation, submission and retrieval (e.g. on the grid) +BENDER +VETRA +PANOPTES +ORWELL +…

1-5 CERN Tutorial, September 2010 Applications are assembled from packages Package Definition: – Collection of related classes in a logically cohesive physical unit – Minimal entity that can be versioned Reflects on – Logical structure of the application – Organizational structure of the development team Package Definition: – Collection of related classes in a logically cohesive physical unit – Minimal entity that can be versioned Reflects on – Logical structure of the application – Organizational structure of the development team

1-6 CERN Tutorial, September 2010 public scripts and configurables, will be on $PYTHONPATH Mandatory documentation directory contains the release.notes file Package: Structure cmt srcdoc win32_ vc71_dbg slc4_amd64 _gcc34_dbg x86_64-slc5 -gcc43-opt packA $PACKAROOT Mandatory manager directory contains the requirements file public include files #include “packA/xxx.h”... options HatpackA python Job options Generated binary directories

1-7 CERN Tutorial, September 2010 Package versions Packages have several versions - Defined in cmt requirements file - Version number formatted according to convention: v5r2p1 Major version Indicates a change in the interface: all packages that use it may have to change Minor version Indicates an internal only change Patch version Not usually present. A minor bug fix to an existing release Packages have several versions - Defined in cmt requirements file - Version number formatted according to convention: v5r2p1 Major version Indicates a change in the interface: all packages that use it may have to change Minor version Indicates an internal only change Patch version Not usually present. A minor bug fix to an existing release Major version 5 Minor version 2 Patch version 1

1-8 CERN Tutorial, September 2010 Project Projects are a collection of packages that are released together – One project per application (e.g. Brunel, DaVinci) – Several independent projects for components (e.g. Lbcom, Rec, Hlt, Phys, Analysis, Online) – Two projects for the framework (Gaudi, LHCb) Users work in the environment defined for a given version of the chosen project – e.g. SetupProject DaVinci v26r1 Projects are a collection of packages that are released together – One project per application (e.g. Brunel, DaVinci) – Several independent projects for components (e.g. Lbcom, Rec, Hlt, Phys, Analysis, Online) – Two projects for the framework (Gaudi, LHCb) Users work in the environment defined for a given version of the chosen project – e.g. SetupProject DaVinci v26r1

1-9 CERN Tutorial, September 2010 SVN Version Control System Record the history of your source files Share your development with other people LHCb and Gaudi Repositories reside on CERN-IT SVN server Version Control System Record the history of your source files Share your development with other people LHCb and Gaudi Repositories reside on CERN-IT SVN server

1-10 CERN Tutorial, September 2010 Accessing LHCb SVN server Web browsable –LHCb: Trac: WebSVN: –Gaudi: Trac: WebSVN: World readable if authenticated –SSH authentication –Automatic if authenticated in CERN AFS cell (lxplus) For write access –Register your account in the e-group lhcb-svn-writerslhcb-svn-writers Detailed instructions at instructions at Web browsable –LHCb: Trac: WebSVN: –Gaudi: Trac: WebSVN: World readable if authenticated –SSH authentication –Automatic if authenticated in CERN AFS cell (lxplus) For write access –Register your account in the e-group lhcb-svn-writerslhcb-svn-writers Detailed instructions at instructions at

1-11 CERN Tutorial, September 2010 CMT Configuration Management Tool It is based around the notion of Package Provides a set of tools for automating the configuration and building packages It has been adopted by LHCb (other experiments are also using it) Configuration Management Tool It is based around the notion of Package Provides a set of tools for automating the configuration and building packages It has been adopted by LHCb (other experiments are also using it)

1-12 CERN Tutorial, September 2010 How we use CMT CMT requirements code CVS/SVN repository What to build How to build Package dependencies makefile DevStudio files Building tools (compilers, linkers, IDEs ) Libraries & Executables

1-13 CERN Tutorial, September 2010 CMT: Requirements file package MyPackage version v1r0 # Structure, i.e. directories to process. branches cmt doc src # Used packages. use GaudiAlg v* # Component library building rule library MyPackage../src/*.cpp # define component library link options apply_pattern component_library library=MyPackage package MyPackage version v1r0 # Structure, i.e. directories to process. branches cmt doc src # Used packages. use GaudiAlg v* # Component library building rule library MyPackage../src/*.cpp # define component library link options apply_pattern component_library library=MyPackage

1-14 CERN Tutorial, September 2010 CMT: Basic Commands cmt config –Configures the package (creates setup and make files) –Invoked automatically by getpack (see later slide) cmt show uses –Show dependencies and actual versions used cmt show macro –Show the value of a macro for the current configuration cmt broadcast –Recursive CMT command in all used packages found in the current CMT project –e.g. cmt broadcast cmt make cmt run –Executes in current package environment cmt config –Configures the package (creates setup and make files) –Invoked automatically by getpack (see later slide) cmt show uses –Show dependencies and actual versions used cmt show macro –Show the value of a macro for the current configuration cmt broadcast –Recursive CMT command in all used packages found in the current CMT project –e.g. cmt broadcast cmt make cmt run –Executes in current package environment

1-15 CERN Tutorial, September 2010 Package Categories Application: is a package that sets up the environment and contains the job options needed for running a program. Library: contains a list of classes and the list of dependent packages needed to compile it. Package group: contains a list of other packages with their version number (e.g. LHCbSys) Interface package: interfacing to packages not managed with CMT (e.g. Python, GSL, ROOT,…) Application: is a package that sets up the environment and contains the job options needed for running a program. Library: contains a list of classes and the list of dependent packages needed to compile it. Package group: contains a list of other packages with their version number (e.g. LHCbSys) Interface package: interfacing to packages not managed with CMT (e.g. Python, GSL, ROOT,…)

1-16 CERN Tutorial, September 2010 Link vs. Component Libraries Link libraries are need for linking the program (static or dynamic) – Traditional libraries. Component libraries are loaded at run-time – Collection of components (Algorithms, Tools, Services, etc.) – Plug-in Link libraries are need for linking the program (static or dynamic) – Traditional libraries. Component libraries are loaded at run-time – Collection of components (Algorithms, Tools, Services, etc.) – Plug-in

1-17 CERN Tutorial, September 2010 Setting the CMT environment Create a working directory for a given project – setenv [ ] –actually an alias for SetupProject --build-env [ ] – Creates working directory and cd to it: ~/cmtuser/ _ Packages are searched for in Projects that are on CMTPROJECTPATH – Default is ${User_release_area}:${LHCBPROJECTPATH} –Add additional paths with --nightly and --dev-dir switches of SetupProject Create a working directory for a given project – setenv [ ] –actually an alias for SetupProject --build-env [ ] – Creates working directory and cd to it: ~/cmtuser/ _ Packages are searched for in Projects that are on CMTPROJECTPATH – Default is ${User_release_area}:${LHCBPROJECTPATH} –Add additional paths with --nightly and --dev-dir switches of SetupProject

1-18 CERN Tutorial, September 2010 Getting a package The “getpack” command – Script combining “svn checkout” + “cmt config” – If no version given, it suggests the latest version of a package –N.B. Suggested version is not necessarily consistent with current environment; especially if you are not using the latest environment The “getpack” command – Script combining “svn checkout” + “cmt config” – If no version given, it suggests the latest version of a package –N.B. Suggested version is not necessarily consistent with current environment; especially if you are not using the latest environment > getpack [hat/] [ ] [head]

1-19 CERN Tutorial, September 2010 Building a package Work in the /cmt directory – / /cmt Set the CMT configuration ($CMTCONFIG) –Defines platform, compiler, directories where to find binaries slc4 default: slc4_amd64_gcc34 slc5 default: x86_64-slc5-gcc43-opt setenv CMTCONFIG slc4_ia32_gcc34 setenv CMTCONFIG $CMTDEB Invoke the make command, via cmt –Putting “cmt” in front of any command ensures that the command is executed in a shell that has defined all the environment described by the requirements file Work in the /cmt directory – / /cmt Set the CMT configuration ($CMTCONFIG) –Defines platform, compiler, directories where to find binaries slc4 default: slc4_amd64_gcc34 slc5 default: x86_64-slc5-gcc43-opt setenv CMTCONFIG slc4_ia32_gcc34 setenv CMTCONFIG $CMTDEB Invoke the make command, via cmt –Putting “cmt” in front of any command ensures that the command is executed in a shell that has defined all the environment described by the requirements file > cmt make [-j][target][clean][binclean]

1-20 CERN Tutorial, September 2010 Running the application Set the run time environment –Takes into account value of CMTCONFIG –Needed once at beginning of session, then only if environment changes (new packages checked out, requirements file changed, CMTCONFIG changed, etc.) Execute the program But see also cmt run command in hands on Set the run time environment –Takes into account value of CMTCONFIG –Needed once at beginning of session, then only if environment changes (new packages checked out, requirements file changed, CMTCONFIG changed, etc.) Execute the program But see also cmt run command in hands on > SetupProject  gaudirun.py job.py

1-21 CERN Tutorial, September 2010 Emacs customisation A customisation of emacs for LHCb: – Templates for creation of files –E.g. MyAlgorithm.h, MyAlgorithm.cpp, requirements, release.notes etc. – Various shortcuts for code insertions – Optionally, load an EDT keypad emulation Add following lines to ~/.emacs: (load (expand-file-name "$EMACSDIR/edt")) (load (expand-file-name "$EMACSDIR/lhcb")) – Or copy from $EMACSDIR/.emacs A customisation of emacs for LHCb: – Templates for creation of files –E.g. MyAlgorithm.h, MyAlgorithm.cpp, requirements, release.notes etc. – Various shortcuts for code insertions – Optionally, load an EDT keypad emulation Add following lines to ~/.emacs: (load (expand-file-name "$EMACSDIR/edt")) (load (expand-file-name "$EMACSDIR/lhcb")) – Or copy from $EMACSDIR/.emacs

1-22 CERN Tutorial, September 2010 Exercise Now read the web page attached to this lesson in the agenda and work through the exercises