Presentation is loading. Please wait.

Presentation is loading. Please wait.

BESIII Offline Software Development Environment Ma qiumei 2004.5.26 * Development environment * Configuration & management tool * Software development.

Similar presentations


Presentation on theme: "BESIII Offline Software Development Environment Ma qiumei 2004.5.26 * Development environment * Configuration & management tool * Software development."— Presentation transcript:

1 BESIII Offline Software Development Environment Ma qiumei 2004.5.26 * Development environment * Configuration & management tool * Software development in BOSS

2 12th BES Annual Meeting2 Part I : Development environment  History of BESIII offline software system  BOSS package structure  Development environment

3 12th BES Annual Meeting3 History of BESIII offline software system  Besfv1 : The original version based on belle  Besfv2 : Improving with babar, gaudi …  Besfv3 : New building tools — CMT added  BOSSv1.0.0 : The testing version based on Gaudi  BOSSv2.0.0 : The current version

4 12th BES Annual Meeting4 BOSS package structure (1)  The boss packages in boss/2.0.0 /BesPolicy -- define some standard patterns /BesCxxPolicy -- define standard patterns for c++ compilier /BesFortranPolicy -- define standard patterns for fortran compilier /BesRelease -- for all packages release /Calibration -- for calibration /Calorimeter -- for Calorimeter /Control /Database -- the data IO of database /DetectorDescription -- for detectors ’ description /Event -- for every type event /EventDisplay -- the interface for event display Based on Athena

5 12th BES Annual Meeting5 /EventFilter -- for event filter /External -- enviroments for external libs /MDC -- for main drift chamber /MuonCounter -- for muon counter /PhyTool -- some tools for physics analysis /Reconstruction -- for reconstruction /Simulation -- for simulation /TestRelease -- for some test release /TOF -- for time /Trigger -- for trigger /Utilities -- for some utilities  More details please see the website: http://koala.ihep.ac.cn/cgi-bin/viewcvs.cgi/BossCvs BOSS package structure (2)

6 12th BES Annual Meeting6 Development enviroment  Machine: koala.ihep.ac.cn(PC server)  OS : Linux-7.2  Compiler : gcc-2.95  Framework : Besfv3  External Libs: CERNLIB 、 ROOT 、 PGSQL 、 CLHEP  Developing language : C++  Database : PostgreSql  Version management tool : CVS  Browsing files in CVS repository : ViewCVS  Configuration management tool : CMT

7 12th BES Annual Meeting7 Part II: Configuration & management tool  Brief introduction of CMT  Types of package  Brief introduction of requirements  Useful variables and commands

8 12th BES Annual Meeting8 CMT -- Configuration management tool  A set of tools and conventions  Structure software development or production  Organise software into packages  Describe package properties  Describe package constituents  Operate the software production (management, build, import/export, etc...) by transparently configuring and driving the various conventional tools (CVS, make, MSDev, Web, tar, compilers, linkers, archivers, etc...)

9 12th BES Annual Meeting9 Who are using CMT  The physics research experiments using CMT as the following: a.. Virgo b.. LHCb c.. GLAST d.. Atlas e.. Nemo f.. Opera g.. Planck h.. Auger i.. GANIL j.. GAM  Related documents pls see such website: http://www.cmtsite.org http://atlas.web.cern.ch/Atlas/Groups/software/oo/tools/cmt http://calib0/public_html/group/source_man.html

10 12th BES Annual Meeting10 Types of package Packages may have particular semantics  Normal packages provide software or documents  Container packages manage other packages  Policy packages hold specifications for project-wide policies  External packages install external software into the CMT conventions CLHEP, ROOT, CERN, etc …

11 12th BES Annual Meeting11 The directory structure of a package A-00-00-01 A-01-00-02 A-03-01-01 area / package-name / version-tag / cmt / requirements src / sources package-name / headers linux-i686 / Linux binaries test /test application …… Public release Private dev. Common software Inter-project com. Domain specific dev. Search list defined in CMTPATH Specified at package creation Obtained by cmt checkout Automatically created at build time and on demand according to cmt system

12 12th BES Annual Meeting12 The requirements file The requirements file centralizes all configuration parameters Author(s), manager(s) Structural information specialized directory structure used packages links to external packages Constituents Libraries Applications generated documents Make macros and environment variables and their possible values on various platforms, sites, environments Customization for new languages, or document generators Definition of conventional behavioural patterns Sufficient for transparently generating all required makefiles and setup scripts, or for launching test procedures. They are the sources of all queries.

13 12th BES Annual Meeting13 Global software organization use Release area User area MDCGeomSvc MDCGeomSvc-01-00-01 BesRelease BesRelease-00-00-01 MDCGeomSvc MDCGeomSvc-00-00-01 BesGeoMdc BesGeoMdc-00-* External/CLHEP CLHEP-00-01-* BesPolicy BesPolicy-01-* CLHEP External area use

14 12th BES Annual Meeting14 Useful variables and commands (1)  The CVSROOT environment variable  Default value on koala is: :pserver:username@koala.ihep.ac.cn:/bes/bes  The CMTCONFIG environment variable - Default value on koala is :Linux-i686  The CMTPATH environment variable  Locations that CMT looks in to locate packages continue…

15 12th BES Annual Meeting15 Useful variables and commands (2)  The CMT command Basic Syntax: cmt [ - = ]  Main commands cmt config re-configure a package cmt create … create a new package cmt show … monitors configuration parameters cmt broadcast … launch shell command over several packages cmt co … interface to CVS’ checkout operation cmt help get the list of possible commands source cleanup.sh undo the source setup source setup.sh do the source setup

16 12th BES Annual Meeting16 Part III : S oftware development in BOSS  Creating a new package  Building a package  Checking out a package from CVS  Checking in to CVS

17 12th BES Annual Meeting17 Creating a new package  Choosing a location  i.e. Which area? … e.g. Your private dev.  Choosing a name  Must be a unique package name in boss (should not either just differentiate by case of letters)  Choosing a version  The command as listed below: cmt create A A-00-00-01

18 12th BES Annual Meeting18 Building a package  The basic development cycle  Set enviroment Vi../cmt/requirements  Compile vi../src/…  Build source setup.sh gmake  Test (if available) (build the debug version by default) (now build the optimized version) (switch to the optimized settings) (default settings is debug)

19 12th BES Annual Meeting19 Examples … The simplest one One new application with (some) source file(s) > cmt create A A-00-00-01 > cd A/A-00-00-01/cmt > vi requirements > vi A.cxx B.cxx C.cxx > gmake >. setup.sh >../${CMTCONFIG}/A.exe package A use BesPolicy BesPolicy-01-* application A A.cxx B.cxx C.cxx 1) Create a new package and move to it 2) Describe the package 3) Create the package items and build them 4) set the environment and run

20 12th BES Annual Meeting20 Checking out a package from CVS  Getting a package out from CVS to modify it  Go to your private development area  Checkout the package cmt co A or cmt co –r A-00-00-01 A  Modify  Test

21 12th BES Annual Meeting21 Checking in to CVS  Checking in to CVS cvs import –m “**” BossCvs/A Bes A-00-00-01 Note: set the right CVSROOT e.g. export CVSROOT=“:pserver:username@koala.ihep.ac.cn:/bes/bes”

22 12th BES Annual Meeting22 Conclusions and Outlook  CMT was used to - organize BES III software and external libraries e.g CLHEP, cernlib etc - configure and build software packages - publish releases  The friendly environment based on CVS, ViewCVS and CMT was successfully setup for software developers.  In near future - move to Santest farm - integration with BOOST

23 12th BES Annual Meeting23 Thank you!


Download ppt "BESIII Offline Software Development Environment Ma qiumei 2004.5.26 * Development environment * Configuration & management tool * Software development."

Similar presentations


Ads by Google