The report on the current situation of the BESIII framework zhangxiaomei maqiumei 10/3/2004.

Slides:



Advertisements
Similar presentations
Java Testing Tools. junit is a testing harness for unit testing. emma is a code coverage tool. The tools can be used in concert to provide statement and.
Advertisements

05/11/2001 CPT week Natalia Ratnikova, FNAL 1 Software Distribution in CMS Distribution unitFormContent Version of SCRAM managed project.
CVS Selim Çıracı Ahmet Kara Metin Tekkalmaz. CVS – Open Source Version Control System Outline What are Version Control Systems? And why do we need them?
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
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.
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
Doxygen: Source Code Documentation Generator John Tully.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
The Atlas Software Distribution Christian ArnaultAlessandro De SalvoSimon GeorgeGrigori Rybkine
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.
Development tools cvs, tkdiff, JBuilder, building GATE from the sources.
Trilinos 101: Getting Started with Trilinos November 7, :30-9:30 a.m. Mike Heroux Jim Willenbring.
Status of the Cuore software Marco Pallavicini Cuore Co-Software coordinator with M. Pavan (Milano) Università di Genova & INFN.
1 Lecture 19 Configuration Management Software Engineering.
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.
I3PropagatorMMC module Dmitry Chirkin, LBNL IceCube meeting, Uppsala, 2004.
Overview of LHCb applications and software environment LHCb software tutorial - March
CMSBrownBag,05/29/2007 B.Mangano How to “use” CMSSW on own Linux Box and be happy In this context “use” means: - check-out pre-compiled CMSSW code - run.
…using Git/Tortoise Git
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.
Deploying Sakai: First Steps David Haines University of Michigan.
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.
CVS – concurrent versions system Network Management Workshop intERlab at AIT Thailand March 11-15, 2008.
CSE 219 Computer Science III CVS
CMT Christian Arnault – CMT tutorial – dec CMT Tutorial How to use CMT in Atlas Christian Arnault
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.
An overview of EUSO publicaly available software SLAST (Shower Initiated Light Attenuated to the Space Telescope) STAR (Space Telescope Analysis and Reconstruction)
6 th Annual Focus Users’ Conference 6 th Annual Focus Users’ Conference Import Testing Data Presented by: Adrian Ruiz Presented by: Adrian Ruiz.
CMT 1 Jan. 1999C. Arnault LAL History, motivations Started in 1993 for providing support for horizontal software development at LAL After an evaluation.
CVS – concurrent versions system AROC Guatemala July 19-23, 2010 Guatemala City, Guatemala.
Disk Layout/Productization Proposal Ron Rechenmacher and Geoff Savage.
Nurcan Ozturk University of Texas at Arlington US ATLAS Transparent Distributed Facility Workshop University of North Carolina - March 4, 2008 A Distributed.
Deploying Software with Group Policy Chapter Twelve.
J.P. Wellisch, CERN/EP/SFT SCRAM Information on SCRAM J.P. Wellisch, C. Williams, S. Ashby.
12 CVS Mauro Jaskelioff (originally by Gail Hopkins)
Weidong Li January 7, 2004 BES III Software Meeting Status Report: BESF software development environment Weidong Li.
Yannick Patois - Datagrid Software Repository Presentation - March, n° 1 Datagrid Software Repository Presentation CVS, packages and automatic.
10/2/2000LHCb Computing, CHEP Use of Configuration Management tool in LHCb software J. Harvey, P. Mato, F. Ranjard CERN (Switzerland)
Setup and run athena locally and on grid Cunfeng feng
Slide 1 Running NEMO at ECMWF Slide 1 NEMO under Perforce at ECMWF Kristian S. Mogensen Last revised:
Transition to SVN server: follow up P.Hristov 24/01/2008.
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.
CERN Tutorial, September Overview of LHCb applications and software environment.
Disk Layout/Productization Proposal Ron Rechenmacher and Geoff Savage.
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.
Bologna Tutorial, June Overview of LHCb applications and software environment.
GLAST CHEP 03 March T.Burnett1/14 User-friendly tools for Managing Software Development Projects User-friendly tools for Managing Software Development.
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.
CVS, Logging, Development
Installation of the ALICE Software
CVS – concurrent versions system
CVS – concurrent versions system
Configuration and Build System
Work report Xianghu Zhao Nov 11, 2014.
GLAST Gaudi Review T. Burnett H.Kelly 10 Sept 02 Gaudi code review
ATLAS Software Distribution
Gaudi software release procedures
CVS revisions UML diagram
Overview of LHCb applications and software environment
SICB under CMT Why? What is CMT? How to work with CMT? Package layout
Introduction to Athena
Zhangxy Zhangxm Huangxt Dec 17 ,2003
Presentation transcript:

The report on the current situation of the BESIII framework zhangxiaomei maqiumei 10/3/2004

The version distribution situation (framework binary codes area) The original version completely based on belle(v1) The version improving with other frameworks like babar, gaudi(v2) The version with the new building tools — CMT(v3) The future version based on Gaudi

Source Code arrangements in CVS (source code saving area) The three branches under CVSROOT represents three main versions of BesIII frameworks. bes  offline  boss In offline(besf3.0.0verison) directory More details please see the website: BesPolicy -- some common CMT definitions BesRelease – for besf3.0.0 release Database DetectorDescription Event External -- enviroments for external libs TestDatabase framework reco

Fouse on the version BESF3.0.0 The brief introduction about BESF3.0.0  the differences from other versions  the release of BESF3.0.0 How to use BESF3.0.0  a brief introduction on building and configuration tools --CMT  the steps of building your own modules

The differences from other versions The most stable version now (most of reco and simu developers will use it for a long period time) Provide more help and introductions for users Based on belle, having some advantages from other frameworks Using CMT to do the configuration and building job

The release of BESF3.0.0 On Koala machine :.exe files located in: /bes/sw/dist/offline/3.0.0/InstallArea/bin Lib files located in: /bes/sw/dist/offline/3.0.0/InstallArea/lib Source Files located in CVS: CVSROOT/offline/

A brief introduction on building and configuration tools --CMT CMT (configuration management tools) The materials for CMT beginners: Teng-tao ’ s report on > > video > CMT environment setup in the koala machine Bash as exmple: 1)setup enviroment for CMT tool (setupCMT.sh) 2)specify your own WorkArea in the requirements(copy from ~maqm/cmthome): macro WorkArea "${HOME}/mytest “ path_prepend CMTPATH "${WorkArea} “ 3) setup enviroment for Besf3.0.0 use the above requirement to generate shell files, then source it.

How to use BESF step1:Create a new package >cd >cmt create Example: >cmt create test v1 the following files and directories will be created automatically: src/ directory for source files and private include files cmt/ directory for CMT requirements You also can create some directories to meet your needs, such as: /, test/, doc/, share/, README/, ChangeLog/

How to use BESF step2:Write requirements file package BesGeoMdc author "ma_qiumei" version v1 branches cmt src BesGeoMdc run share changelog public use FramePolicy v1 BesPolicy use PGSQL v1 External include_dirs "$(BESGEOMDCROOT)" library BesGeoMdc *.cxx ##application BesGeoMdc *.cxx apply_pattern package_linkopts apply_pattern package_stamps apply_pattern ld_library_path

How to use BESF step3: writing your own modules(1) class ModuleGen : public BesModule { public: ModuleGen(const std::string& ModuleName, BesFramework* frame); ~ModuleGen(){}; void init(int*); void begin_run(BesEvent*, int*); void event(BesEvent*, int*); void term(void){}; void end_run(BesEvent*, int*); void other(int*, BesEvent*, int*){}; private: float P_t_cut; std::string filename; }; Write your own modules (for example: ModuleGen) which must inherit from BesModule class and override member functions.

How to use BESF step3: writing your own modules(2) #include "BesKernel/BesFactoryMacro.h" #include "Test/ModuleGen.h “ #include “ Test/ModuleCC.h ” DECLARE_MODULE_FACTORY( ModuleGen ); DECLARE_MODULE_FACTORY( ModuleCC ); DECLARE_FACTORY_ENTRIES( Test ) { DECLARE_MODULE( ModuleGen ); DECLARE_MODULE( ModuleCC ); } LOAD_FACTORY_ENTRIES( Test ); create factories for each modules in create factories for each modules in Test_Factories.cxx. Test_Factories.cxx. more details please see > Huang-xintao >

How to use BESF step4: building your codes with CMT >cmt config >source setup.sh >gmake clean >gmake

How to use BESF step5: checking your binary codes(1) Run your.exe file After gmake succesfully,you can run *.exe without the help of besf. For exmaple: >test.exe Run your module in besf 1) get shell script( Suppose in cmt directory) cp ~maqm/testwork/framework/Test/share/Test_release.sh../share 2) source Test_release.sh under the directory run, run besf.exe, testing modules using job cards. >cd../run >source../share/Test_release.sh >besf.exe < *.txt

How to use BESF step6: writing your job cards(2) framework loglevel 2 framework add_dll Test Histogram framework configure service register BesRawEventInput BesEventOutput BesPawHistogramSvc service inputsvc BesRawEventInput service outputsvc BesEventOutput histogram my.hbook HBOOK framework initialize module register BesTest path add_module main BesTest table save bestdf_all output open mysave.dat proc rawdata.raw 0 output close Quit More details please see > A simple example for job cards:

How to use BESF step7: Import a new package into CVS First,you should check your CVSROOT > cvs login export CVSROOT= “ ” Second,you should remove all files you don ’ t want to import,e.g. setup.sh. Then set CVSIGNORE to avoid them. export CVSIGNORE='setup.* cleanup.* *.make Makefile Linux-* ‘ Lastly,import package to cvs cd / cvs import – m “ First import ” offline/ Bes e.g. you want to import package test, you can do: >cd test/v1 >cvs import – m “ First import ” offline/test Bes v1

How to use BESF step8: Check out a package from CVS(1) Go to your working area and do : cmt co -o offline -r e.g. > cmt co -r v2r1 framework/BesKernel >cmt co framework/BesKernel

How to use BESF step8: Check out packages using containers(2) Container also a package, who manages other packages, such as BesRelease. A example, you want to check out all the packages in Besf3.0.0 with BesRelease Go to your working area and do: >cmt co BesRelease >cmt co – requirements BesRelease/*/cmt/requirements

How to use BESF step9: Commit changes to a package First, make sure your changes work well before committing. Go to the package's version directory: >cd / / >cvs -n update Before commiting, Update the ChangeLog file: write a short summary of the changes you made which files you made them too, and why. To commit your changes, go to the package directory and type >cvs commit -m 'message' More details please see Teacher Li-weidong >

How to use BESF step10: about the version of a package The format of the version number is e.g. v2r1p2 If you made a simple bug fix which doesn't change any interface (i.e. header file), increase the patch id. Clients of your package should not need to recompile. If you made improvements which are backward compatible, e.g adding new features to the interface but not changing the exisiting interface, increase the minor id. Client will have to recompile but should not need to be changed unless they choose to use the new functionality. If you really change the interface, increase the major-id. Clients will have to be modified before they can be compiled against this new version.

An Example in BESF3.0.0 You can learn from it: how to write a module, build a share library, write a job card, and runing module in Besf The location framework/Test/ How to use it >cmt co framework/Test >cd framework/Test/v2r1/run >source../share/Test_links.sh >besf.exe <*.txt

Any questions?