SICB under CMT
-
Upload
thadeus-atalo -
Category
Documents
-
view
29 -
download
0
description
Transcript of SICB under CMT
![Page 1: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/1.jpg)
04/19/23 F.Ranjard / EP-ALE 1
SICB under CMTSICB under CMT
Why?Why? What is CMT?What is CMT?
Package layout manager working area and release area
How to work with CMT?How to work with CMT? Analysis work Developer work
![Page 2: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/2.jpg)
04/19/23 F.Ranjard / EP-ALE 2
Why ?Why ?
When moving from CMZ to CVS we tried to create 3 When moving from CMZ to CVS we tried to create 3 independent programs: independent programs:
simulation, reconstruction and analysis
We did not succeed : 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: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
![Page 3: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/3.jpg)
04/19/23 F.Ranjard / EP-ALE 3
Why? (2)Why? (2)
The evolution in time of theses packages is quite The evolution in time of theses packages is quite different: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.==> Let packages evolve independently. ==> each package carries its own version number ==> each package carries its own version number
and can be released at any time.and can be released at any time. At a given time the librarian releases a new SICB At a given time the librarian releases a new SICB
version version made ofmade of a list of a list of packages/versionspackages/versions..
![Page 4: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/4.jpg)
04/19/23 F.Ranjard / EP-ALE 4
An ExampleAn Example
SICB v118 is not fully debuggedSICB v118 is not fully debugged Is it feasible to make a SICB v??? based on the Is it feasible to make a SICB v??? based on the
SICB v116 geometry but linked with Pythia and QQSICB v116 geometry but linked with Pythia and QQ The event generator should not depend on detector The event generator should not depend on detector
geometry and response.geometry and response. In the same way it should be possible to link a new In the same way it should be possible to link a new
Calorimeter simulation with an old vertex Calorimeter simulation with an old vertex simulation.simulation.
![Page 5: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/5.jpg)
04/19/23 F.Ranjard / EP-ALE 5
List of packagesList of packages
Utility packagesUtility packages Finclude contains all include files needed by Gaudi Futio contains all routines used by Gaudi Futil contains utility routines but geometry
Detector description packageDetector description package detdes contains the old utgeom files
it makes use of utility packages
Event loop packageEvent loop package events manages the initialization and the event loop
it makes use of detdes package
![Page 6: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/6.jpg)
04/19/23 F.Ranjard / EP-ALE 6
List of packages(2)List of packages(2)
Simulation packagesSimulation packages simecal, simhcal, simmuon, simrich, simvdet, simwtra, simguse,simskel, simgeom, simpgen
Reconstruction packagesReconstruction packages rececal, recmuon, recvdet, recwtra, rechcal, recrich
Trigger packagesTrigger packages trielec, trihadr, trimuon, trivert, trilvl2, trit1tr, triskel, trit0v
they make use of events package
![Page 7: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/7.jpg)
04/19/23 F.Ranjard / EP-ALE 7
List of packages(3)List of packages(3)
Analysis packagesAnalysis packages axreclib, axacc, axtrkfit
General packagesGeneral packages kalman
They make use of detdes and utility packages
SICB contains the main programSICB 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!!!!!===> We end up with 35 packages!!!!!
![Page 8: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/8.jpg)
04/19/23 F.Ranjard / EP-ALE 8
How to handle 35 packages?How to handle 35 packages?
We need a Configuration Management Tool (CMT)We need a Configuration Management Tool (CMT) Several such a tool exist in the HEP community: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 We recommend CMT until a better or CERN-wide solution is found.solution is found.
![Page 9: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/9.jpg)
04/19/23 F.Ranjard / EP-ALE 9
What is CMT?What is CMT?
CMT handles a package or a collection of packages.CMT handles a package or a collection of packages. It has some knowledge about :It has some knowledge about :
compiler link editor conditional code
this knowledge can be customized by the user.this knowledge can be customized by the user. It builds makefiles to build libraries or executables.It builds makefiles to build libraries or executables. each package has a manager which tells CMT what each package has a manager which tells CMT what
to do (a library or/and application) and how to do it.to do (a library or/and application) and how to do it.
![Page 10: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/10.jpg)
04/19/23 F.Ranjard / EP-ALE 10
Package layoutPackage layout
v1r1v1r1 v2v2
mgrmgr
srcsrc
docdoc
rs-aix42rs-aix42
hp-ux102hp-ux102hp-ux102hp-ux102
i386i386
incinc
$PACKAROOT$PACKAROOT
managermanager
binarybinary
v1v1
Version numberVersion numberPackage Package namename packApackA
![Page 11: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/11.jpg)
04/19/23 F.Ranjard / EP-ALE 11
Working area / release areaWorking area / release area
This package layout can reside in yourThis package layout can reside in your working areaworking area or/andor/and in thein the LHCb release areaLHCb release area..
To modify a package you need to get it in yourTo modify a package you need to get it in your workingworking area:area: $HOME/mycmt $HOME/mycmt
when a package becomes public it is installed in thewhen a package becomes public it is installed in the LHCb release area:LHCb release area: $LHCBSOFT$LHCBSOFT..
To tell CMT where to find various packages you need To tell CMT where to find various packages you need for your application you should set the $CMTPATH for your application you should set the $CMTPATH environment variable:environment variable:setenv CMTPATHsetenv CMTPATH $HOME/mycmt$HOME/mycmt:$LHCBSOFT:$LHCBSOFT
![Page 12: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/12.jpg)
04/19/23 F.Ranjard / EP-ALE 12
mgr/mgr/
mgrmgr contains a contains a requirementsrequirements file provided by the file provided by the user and all files built by CMTuser and all files built by CMT
makefile configuration files
the the requirementsrequirements file contains everything CMT file contains everything CMT should know about the package to build a library or should know about the package to build a library or an application.an application.
![Page 13: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/13.jpg)
04/19/23 F.Ranjard / EP-ALE 13
Futio/v1/mgr/requirementsFutio/v1/mgr/requirements
Comment lineComment line Package namePackage name version numberversion number subdirectory listsubdirectory list include directory pathinclude directory path use package-name versionuse package-name version what to buildwhat to build binary library link optionsbinary library link options specific compiler options specific compiler options
## package package FutioFutio
version version v1v1
branchesbranches doc src mgr utiodoc src mgr utio
include_dirsinclude_dirs ${FUTIOROOT}${FUTIOROOT}
useuse Finclude v1Finclude v1
librarylibrary Futio ../src/*.FFutio ../src/*.F
macro macro Futio_linkoptsFutio_linkopts \ \“${FUTIOROOT}/$(Futio_tag)/libFutio.a“${FUTIOROOT}/$(Futio_tag)/libFutio.a””
macro macro Futio_fflags \Futio_fflags \“ any options specific to this package”“ any options specific to this package”
![Page 14: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/14.jpg)
04/19/23 F.Ranjard / EP-ALE 14
SICB managerSICB manager
package package SICBSICB version version v118v118 branches branches src mgr doc task1 task2src mgr doc task1 task2 use use simecal v1simecal v1 use use simhcal v1simhcal v1 use use simrich v2 simrich v2 -------- application sicb.exe ../src/sicb.F ../task1/*.Fapplication sicb.exe ../src/sicb.F ../task1/*.F macro SICB_linkopts “ ${GUSER} “macro SICB_linkopts “ ${GUSER} “ macro+ SICB_linkopts “”\macro+ SICB_linkopts “”\
HP-UX “ -Wl,+n”\HP-UX “ -Wl,+n”\ HPdbx “ -g -Wl,+n”\ HPdbx “ -g -Wl,+n”\ OSF1 “ ${SICBROOT}/$(sicb_tag)/libSICB.a”\ OSF1 “ ${SICBROOT}/$(sicb_tag)/libSICB.a”\ OSFdbx “ -g ${SICBROOT}/$(sicb_tag)/libSICB.a” OSFdbx “ -g ${SICBROOT}/$(sicb_tag)/libSICB.a”
![Page 15: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/15.jpg)
04/19/23 F.Ranjard / EP-ALE 15
Analysis workAnalysis work
At login time CMT is configured and $HOME/mycmtAt login time CMT is configured and $HOME/mycmtis created if it does not exist by the group_loginis created if it does not exist by the group_login..
the following environment variables are set:the following environment variables are set: $CMTROOT, $CMTPATH, $CMTCONFIG
CMTPATH = $HOME/mycmt:$LHCBSOFT (LHCb release area)
To get the SICB package underTo get the SICB package under $HOME/mycmt: $HOME/mycmt: getpack SICB v118 cd $HOME/mycmt/SICB/v118/mgr source setup.csh
==> SICBROOT = $HOME/mycmt/SICB/v118
![Page 16: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/16.jpg)
04/19/23 F.Ranjard / EP-ALE 16
Analysis work(2)Analysis work(2)
The physicist will link SICB with libraries from the The physicist will link SICB with libraries from the release area.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
![Page 17: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/17.jpg)
04/19/23 F.Ranjard / EP-ALE 17
Developer workDeveloper work
The developer will link SICB with his own version of The developer will link SICB with his own version of a package and other libraries from the release area.a package and other libraries from the release area.
i.e. Work with simecali.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
![Page 18: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/18.jpg)
04/19/23 F.Ranjard / EP-ALE 18
Developer work (2)Developer work (2)
Tell CMT to use packages from your working area Tell CMT to use packages from your working area when they exist:when they exist:
setenv CMTPATH $HOME/mycmt:$LHCBSOFT
build an application with new simecal librarybuild 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
![Page 19: SICB under CMT](https://reader035.fdocuments.us/reader035/viewer/2022072014/56812ec5550346895d94668d/html5/thumbnails/19.jpg)
04/19/23 F.Ranjard / EP-ALE 19
Status and HelpStatus and Help
SICB version v116 is released.SICB version v116 is released. SICB version v118 is being built, not yet released.SICB version v118 is being built, not yet released. SICB version v200 is being built from v116 detector SICB version v200 is being built from v116 detector
response and new event +decay generatorsresponse and new event +decay generators Help is provided on the WebHelp is provided on the Web
HELP ---> CMT
this talkthis talkhttp://lhcb.cern.ch/computing/Support/powerpoint/SicbunderCMT.ppthttp://lhcb.cern.ch/computing/Support/powerpoint/SicbunderCMT.ppt