Bologna Tutorial, June 2006 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.
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.
Software Installation The full set of lecture notes of this Geant4 Course is available at
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,
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
SUSE Linux Enterprise Server Administration (Course 3037) Chapter 4 Manage Software for SUSE Linux Enterprise Server.
Nightly Releases and Testing Alexander Undrus Atlas SW week, May
Browsing Data with GaudiPython Disclaimers: 1.I am an apprentice! 2.The porpoise: we think GaudiPython could be quite useful for a LHCb physicist… Browsing.
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
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
Subversion (SVN) Tutorial Source:
Chris Onions Getting started with CVS in ATLAS 11 Getting started with CVS in ATLAS Chris Onions (Tutorial based on that of Raúl Ramos Pollán CERN / IT.
CMT Christian Arnault - LAL - Chep /18 Introduction What is CMT, its goals Operating CMT The concepts in CMT, the internal model Status, implementation.
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.
1 / 22 AliRoot and AliEn Build Integration and Testing System.
CMT Christian Arnault – CMT tutorial – dec CMT Tutorial How to use CMT in Atlas Christian Arnault
Marco Cattaneo, 19-June Building and running software on WNT with Visual Studio and CMT A step by step recipe.
Use of Gaudi in Reconstruction Weidong Li 23/06/2004.
GLAST CHEP 03 March T.Burnett1/12 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development.
CMT 1 Jan. 1999C. Arnault LAL History, motivations Started in 1993 for providing support for horizontal software development at LAL After an evaluation.
Introduction to CMSSW Framework Concepts Simulation & Reconstruction Liz Sexton-Kennedy January 10, 2008.
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.
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.
Bologna Tutorial, April Job Options and Printing.
10/2/2000LHCb Computing, CHEP Use of Configuration Management tool in LHCb software J. Harvey, P. Mato, F. Ranjard CERN (Switzerland)
GLAST LAT Project Science Tools - 12 June 2002 T. Burnett 1 The Science Analysis Software Development Environment -- for tools too! T. Burnett.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Hyperion Artifact Life Cycle Management Agenda  Overview  Demo  Tips & Tricks  Takeaways  Queries.
Geant4 is a toolkit to simulate the passage of particles through matter, and is widely used in HEP, in medical physics and for space applications. Ongoing.
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.
How to configure, build and install Trilinos November 2, :30-9:30 a.m. Jim Willenbring.
Alexey Badalov Contents Gaudi — LHCb’s software framework GPU Manager CUDA development with Gaudi Testing
CERN Tutorial, September Overview of LHCb applications and software environment.
Introduction to the Athena Software Hong Ma BNL Athena Tutorial USATLAS Software Workshop.
27/02/04 ATLAS weekTileCal Athena tutorial, part 21 TileCal Athena tutorial Part 2: Reading GEANT hits from ZEBRA and POOL Reading HLT and testbeam ByteStream.
Pere Mato (CERN) First INFN International School on Architectures, tools and methodologies for developing efficient large scale scientific computing applications.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
GLAST CHEP 03 March T.Burnett1/14 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development.
AAF tips and tricks Arsen Hayrapetyan Yerevan Physics Institute, Armenia.
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.
Architecture Review 10/11/2004
Installation of the ALICE Software
Configuration and Build System
GLAST Gaudi Review T. Burnett H.Kelly 10 Sept 02 Gaudi code review
ATLAS Software Distribution
The LHCb Software and Computing NSS/IEEE workshop Ph. Charpentier, CERN B00le.
Gaudi software release procedures
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
Introduction to Athena
2 Getting Started.
2 Getting Started.
2 Getting Started.
Presentation transcript:

Bologna Tutorial, June Overview of LHCb applications and software environment

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

November 2006 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”

November 2006 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 +ONLINE +EULER + test_beams +…

November 2006 Applications are built 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

November 2006 Package: Structure packAv1r0v1r1v2r0cmtsrcdoc win32_ vc71_dbg slc3_ia32_ gcc323_dbg slc3_ia32_ gcc323 packA $PACKAROOT Version number binaries manager directory contains the requirements file public include files #include “packA/xxx.h”...

November 2006 Package versions Packages have several versions: 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: 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

November 2006 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, Phys) – Two projects for the framework (Gaudi, LHCb) Users work in the environment defined for a given version of the chosen project – e.g. DaVinciEnv v17r5 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, Phys) – Two projects for the framework (Gaudi, LHCb) Users work in the environment defined for a given version of the chosen project – e.g. DaVinciEnv v17r5

November 2006 CVS Version Control System Record the history of your source files Helps you if you are part of a group of people working on the same project. (Repository, Module, File, Version, Tag) Version Control System Record the history of your source files Helps you if you are part of a group of people working on the same project. (Repository, Module, File, Version, Tag)

November 2006 CVS: Common Repository LHCb Repository on CERN-IT CVS server – Web browsable – – – World readable if authenticated –Kerberos authentication (e.g. AFS on CERN Linux) Configured by LHCb group login at CERN –SSH authentication (e.g. from Windows) –Detailed instructions at – For write access –register with LHCb Repository on CERN-IT CVS server – Web browsable – – – World readable if authenticated –Kerberos authentication (e.g. AFS on CERN Linux) Configured by LHCb group login at CERN –SSH authentication (e.g. from Windows) –Detailed instructions at – For write access –register with

November 2006 CMT Configuration Management Tool written by C. Arnault (LAL, Orsay) 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 written by C. Arnault (LAL, Orsay) 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)

November 2006 How we use CMT CMT requirements code CVS repository What to build How to build Package dependencies makefile DevStudio files Building tools (compilers, linkers, IDEs ) Libraries & Executables

November 2006 CMT: Requirements file package MyPackage version v1r0 # Structure, i.e. directories to process. branches cmt doc src # Package does not export any public include files include_path none # 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 # Package does not export any public include files include_path none # Used packages. use GaudiAlg v* # Component library building rule library MyPackage../src/*.cpp # define component library link options apply_pattern component_library library=MyPackage

November 2006 CMT and projects CMTPATH – The directories to look for CMT packages – Initialised to ~/cmtuser in LHCb login CMTCONFIG – The “default” configuration Env [ ] – Adds to the CMTPATH the path where the project packages are located and their dependent projects _release_area – Specifies the path to a project, in case it does not reside in the default release area – Set to be equal $LHCBRELEASES CMTPATH – The directories to look for CMT packages – Initialised to ~/cmtuser in LHCb login CMTCONFIG – The “default” configuration Env [ ] – Adds to the CMTPATH the path where the project packages are located and their dependent projects _release_area – Specifies the path to a project, in case it does not reside in the default release area – Set to be equal $LHCBRELEASES

November 2006 CMT: Basic Commands cmt config –Configures the package (creates setup and make files) source setup.csh –Sets environment cmt show uses –Show dependencies and actual versions used cmt show macro –Show the value of a macro for the current configuration cmt binclean –Clean all binaries (libraries, executables, dictionaries,etc.) cmt broadcast –Recursive CMT command in all used packages found on first component of CMTPATH –e.g. cmt broadcast gmake cmt config –Configures the package (creates setup and make files) source setup.csh –Sets environment cmt show uses –Show dependencies and actual versions used cmt show macro –Show the value of a macro for the current configuration cmt binclean –Clean all binaries (libraries, executables, dictionaries,etc.) cmt broadcast –Recursive CMT command in all used packages found on first component of CMTPATH –e.g. cmt broadcast gmake

November 2006 Package Categories Program: is a package that contains a main routine and a list of dependent packages needed to link it. 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. GaudiSys) Interface package: interfacing to packages not managed with CMT (e.g. Python, GSL, ROOT,…) Program: is a package that contains a main routine and a list of dependent packages needed to link it. 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. GaudiSys) Interface package: interfacing to packages not managed with CMT (e.g. Python, GSL, ROOT,…)

November 2006 Link vs. Component Libraries Link libraries are need for linking the program (static or dynamic) – Traditional libraries. Component libraries are loaded at run- time (ApplicationMgr.DLLs property) – 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 (ApplicationMgr.DLLs property) – Collection of components (Algorithms, Tools, Services, etc.) – Plug-in

November 2006 Component Libraries #include “GaudiKernel/DeclareFactoryEntries.h” DECLARE_FACTORY_ENTRIES ( Components ) { DECLARE_ALGORITHM( MyAlgorithm ) DECLARE_SERVICE( MyService ) DECLARE_TOOL( MyTool ) } #include “GaudiKernel/DeclareFactoryEntries.h” DECLARE_FACTORY_ENTRIES ( Components ) { DECLARE_ALGORITHM( MyAlgorithm ) DECLARE_SERVICE( MyService ) DECLARE_TOOL( MyTool ) } Components_load.cpp #include “GaudiKernel/LoadFactoryEntries.h” LOAD_FACTORY_ENTRIES ( Components ) #include “GaudiKernel/LoadFactoryEntries.h” LOAD_FACTORY_ENTRIES ( Components ) Components_dll.cpp Your components need to be added here No change needed

November 2006 Getting a package The “getpack” command – Script combining “cvs checkout” + “cmt config” – If no version given, it suggests the latest version of 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 “cvs checkout” + “cmt config” – If no version given, it suggests the latest version of package –N.B. Suggested version is not necessarily consistent with current environment; especially if you are not using the latest environment > getpack [hat/] [ ] [head]

November 2006 Building a package Working in the /cmt directory – / /cmt Invoke the make command Working in the /cmt directory – / /cmt Invoke the make command > make [target] [tag= ] [clean] configurations:$CMTCONFIG (default) $CMTDEB (for debug) > make [target] [tag= ] [clean] configurations:$CMTCONFIG (default) $CMTDEB (for debug) Set the run time environment –Not needed for building –MANDATORY TO RUN THE PROGRAM Set the run time environment –Not needed for building –MANDATORY TO RUN THE PROGRAM > source setup.csh [-tag= ]

November 2006 CMT: 5 magic lines Experience shows that 90-95% of “misterios” problems (compile-time and run-time) are due to misconfiguration Please pay attention to correct configuration! Many problems could be detected/eliminated by 5 magic CMT-lines – cmt show uses [ | grep cmt ] Show dependencies and actual versions used – cmt br make binclean Cleanup ALL LOCAL packages – cmt bt cmt config Re-configures all local package – cmt br make Re-build all local packages – source setup.csh Sets environment Experience shows that 90-95% of “misterios” problems (compile-time and run-time) are due to misconfiguration Please pay attention to correct configuration! Many problems could be detected/eliminated by 5 magic CMT-lines – cmt show uses [ | grep cmt ] Show dependencies and actual versions used – cmt br make binclean Cleanup ALL LOCAL packages – cmt bt cmt config Re-configures all local package – cmt br make Re-build all local packages – source setup.csh Sets environment

November 2006 Emacs customisation A customisation of emacs for LHCb: – Templates for creation of files –E.g. MyAlgorithm.h,.cpp, _load.cpp, _dll.cpp, requirements 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,.cpp, _load.cpp, _dll.cpp, requirements 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

November 2006 Exercise Now read the web page attached to this lesson in the agenda and work through the exercises