SICB under CMT

19
07/20/22 F.Ranjard / EP-ALE 1 SICB under CMT SICB 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

description

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 : - PowerPoint PPT Presentation

Transcript of SICB under CMT

Page 1: SICB under CMT

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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