190 likes | 344 Views
SICB under CMT. Why? What is CMT? Package layout manager working area and release area How to work with CMT? Analysis work Developer work. Why ?. When moving from CMZ to CVS we tried to create 3 independent programs: simulation, reconstruction and analysis We did not succeed :
E N D
SICB under CMT • Why? • What is CMT? • Package layout • manager • working area and release area • How to work with CMT? • Analysis work • Developer work F.Ranjard / EP-ALE
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. • detdesa detector description package • detector specific packages for simulation, reconstruction, trigger • analysis packages F.Ranjard / EP-ALE
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. F.Ranjard / EP-ALE
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. F.Ranjard / EP-ALE
List of packages • Utility packages • 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 F.Ranjard / EP-ALE
List of packages(2) • Simulation 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 eventspackage F.Ranjard / EP-ALE
List of packages(3) • Analysis 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!!!!! F.Ranjard / EP-ALE
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. F.Ranjard / EP-ALE
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. F.Ranjard / EP-ALE
mgr Package layout Package name Version number packA $PACKAROOT manager v1 v1r1 v2 doc hp-ux102 hp-ux102 inc rs-aix42 src i386 binary F.Ranjard / EP-ALE
Working area / release area • This package layout can reside in yourworking areaor/andin theLHCb release area. • To modify a package you need to get it in yourworkingarea:$HOME/mycmt • when a package becomes public it is installed in theLHCb 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 F.Ranjard / EP-ALE
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. F.Ranjard / EP-ALE
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 branchesdoc src mgr utio include_dirs${FUTIOROOT} useFinclude v1 libraryFutio ../src/*.F macro Futio_linkopts \“${FUTIOROOT}/$(Futio_tag)/libFutio.a” macro Futio_fflags \“ any options specific to this package” Futio/v1/mgr/requirements F.Ranjard / EP-ALE
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”\ OSF1 “ ${SICBROOT}/$(sicb_tag)/libSICB.a”\ OSFdbx “ -g ${SICBROOT}/$(sicb_tag)/libSICB.a” F.Ranjard / EP-ALE
Analysis work • At login time CMT is configured and $HOME/mycmtis 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 F.Ranjard / EP-ALE
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 • gmake F.Ranjard / EP-ALE
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 F.Ranjard / EP-ALE
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 F.Ranjard / EP-ALE
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 talkhttp://lhcb.cern.ch/computing/Support/powerpoint/SicbunderCMT.ppt F.Ranjard / EP-ALE