Presentation is loading. Please wait.

Presentation is loading. Please wait.

SICB under CMT Why? What is CMT? How to work with CMT? Package layout

Similar presentations


Presentation on theme: "SICB under CMT Why? What is CMT? How to work with CMT? Package layout"— Presentation transcript:

1 SICB under CMT Why? What is CMT? How to work with CMT? Package layout
manager working area and release area How to work with CMT? Analysis work Developer work 1/2/2019 F.Ranjard / EP-ALE

2 Why ? When moving from CMZ to CVS we tried to create 3 independent programs: simulation, reconstruction and analysis We did not succeed : there is one program SICB which does everything and several specific executables. SICB can be seen as a collection of packages: utility to handle data structures and I/O shared by Gaudi events to handle initialization, data cards, event loop. detdes a detector description package detector specific packages for simulation, reconstruction, trigger analysis packages 1/2/2019 F.Ranjard / EP-ALE

3 Why? (2) The evolution in time of theses packages is quite different:
utility and events are stable detector description is rather stable: changes are put in the geometry database. detector specific evolve at different speed. analysis is independent of the other. ==> Let packages evolve independently. ==> each package carries its own version number and can be released at any time. At a given time the librarian releases a new SICB version made of a list of packages/versions. 1/2/2019 F.Ranjard / EP-ALE

4 An Example SICB v118 is not fully debugged
Is it feasible to make a SICB v??? based on the SICB v116 geometry but linked with Pythia and QQ The event generator should not depend on detector geometry and response. In the same way it should be possible to link a new Calorimeter simulation with an old vertex simulation. 1/2/2019 F.Ranjard / EP-ALE

5 List of packages Utility packages Detector description package
Finclude contains all include files needed by Gaudi Futio contains all routines used by Gaudi Futil contains utility routines but geometry Detector description package detdes contains the old utgeom files it makes use of utility packages Event loop package events manages the initialization and the event loop it makes use of detdes package 1/2/2019 F.Ranjard / EP-ALE

6 List of packages(2) Simulation packages Reconstruction packages
simecal, simhcal, simmuon, simrich, simvdet, simwtra, simguse,simskel, simgeom, simpgen Reconstruction packages rececal, recmuon, recvdet, recwtra, rechcal, recrich Trigger packages trielec, trihadr, trimuon, trivert, trilvl2, trit1tr, triskel, trit0v they make use of events package 1/2/2019 F.Ranjard / EP-ALE

7 List of packages(3) Analysis packages General packages
axreclib, axacc, axtrkfit General packages kalman They make use of detdes and utility packages SICB contains the main program makes use of all packages contains the main program, various tasks, data cards, job file ===> We end up with 35 packages!!!!! 1/2/2019 F.Ranjard / EP-ALE

8 How to handle 35 packages? We need a Configuration Management Tool (CMT) Several such a tool exist in the HEP community: SoftRelTool / BaBar, SoftRelTool / Fermilab, SRT /ATLAS CMT / LAL written by C.Arnault We recommend CMT until a better or CERN-wide solution is found. 1/2/2019 F.Ranjard / EP-ALE

9 What is CMT? CMT handles a package or a collection of packages.
It has some knowledge about : compiler link editor conditional code this knowledge can be customized by the user. It builds makefiles to build libraries or executables. each package has a manager which tells CMT what to do (a library or/and application) and how to do it. 1/2/2019 F.Ranjard / EP-ALE

10 Package layout Package name Version number packA $PACKAROOT manager v1
v1r1 v2 mgr doc hp-ux102 hp-ux102 inc rs-aix42 src i386 binary 1/2/2019 F.Ranjard / EP-ALE

11 Working area / release area
This package layout can reside in your working area or/and in the LHCb release area. To modify a package you need to get it in your working area: $HOME/mycmt when a package becomes public it is installed in the LHCb release area: $LHCBSOFT. To tell CMT where to find various packages you need for your application you should set the $CMTPATH environment variable: setenv CMTPATH $HOME/mycmt:$LHCBSOFT 1/2/2019 F.Ranjard / EP-ALE

12 mgr/ mgr contains a requirements file provided by the user and all files built by CMT makefile configuration files the requirements file contains everything CMT should know about the package to build a library or an application. 1/2/2019 F.Ranjard / EP-ALE

13 Futio/v1/mgr/requirements
Comment line Package name version number subdirectory list include directory path use package-name version what to build binary library link options specific compiler options # package Futio version v1 branches doc src mgr utio include_dirs ${FUTIOROOT} use Finclude v1 library Futio ../src/*.F macro Futio_linkopts \ “${FUTIOROOT}/$(Futio_tag)/libFutio.a” macro Futio_fflags \ “ any options specific to this package” 1/2/2019 F.Ranjard / EP-ALE

14 SICB manager package SICB version v118
branches src mgr doc task1 task2 use simecal v1 use simhcal v1 use simrich v2 ---- application sicb.exe ../src/sicb.F ../task1/*.F macro SICB_linkopts “ ${GUSER} “ macro+ SICB_linkopts “”\ HP-UX “ -Wl,+n”\ HPdbx “ -g -Wl,+n”\ OSF “ ${SICBROOT}/$(sicb_tag)/libSICB.a”\ OSFdbx “ -g ${SICBROOT}/$(sicb_tag)/libSICB.a” 1/2/2019 F.Ranjard / EP-ALE

15 Analysis work At login time CMT is configured and $HOME/mycmt is created if it does not exist by the group_login. the following environment variables are set: $CMTROOT, $CMTPATH, $CMTCONFIG CMTPATH = $HOME/mycmt:$LHCBSOFT (LHCb release area) To get the SICB package under $HOME/mycmt: getpack SICB v118 cd $HOME/mycmt/SICB/v118/mgr source setup.csh ==> SICBROOT = $HOME/mycmt/SICB/v118 1/2/2019 F.Ranjard / EP-ALE

16 Analysis work(2) The physicist will link SICB with libraries from the release area. cd $SICBROOT/mgr edit requirements to select task1 or task2 or your own code gmake ../$CMTCONFIG/sicb.exe is built cd .. edit sicb.dat or sicb.cards or sicb_lsf.job $CMTCONFIG/sicb.exe everytime you modify the code 1/2/2019 F.Ranjard / EP-ALE

17 Developer work The developer will link SICB with his own version of a package and other libraries from the release area. i.e. Work with simecal getpack simecal v1 source $HOME/mycmt/simecal/v1/mgr/setup.csh $SIMECALROOT is defined cd $SIMECALROOT/src to modify some routines cd ../mgr gmake ../$SIMECALCONFIG/libsimecal.a 1/2/2019 F.Ranjard / EP-ALE

18 Developer work (2) Tell CMT to use packages from your working area when they exist: setenv CMTPATH $HOME/mycmt:$LHCBSOFT build an application with new simecal library cd $SICBROOT/mgr cmt show uses to check that the new simecal library is used gmake cd .. Edit data cards if necessary $CMTCONFIG/sicb.exe 1/2/2019 F.Ranjard / EP-ALE

19 Status and Help SICB version v116 is released.
SICB version v118 is being built, not yet released. SICB version v200 is being built from v116 detector response and new event +decay generators Help is provided on the Web HELP ---> CMT this talk 1/2/2019 F.Ranjard / EP-ALE


Download ppt "SICB under CMT Why? What is CMT? How to work with CMT? Package layout"

Similar presentations


Ads by Google