Download presentation
Presentation is loading. Please wait.
Published byArthur McBride Modified over 8 years ago
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!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.