Rootcore < Atlascomputing < Twiki
Total Page:16
File Type:pdf, Size:1020Kb
Table of Contents RootCore.............................................................................................................................................................1 Introduction........................................................................................................................................................2 If Something Goes Wrong......................................................................................................................2 Individual Build Commands.............................................................................................................................4 Setting up RootCore................................................................................................................................4 Setting up Root on Lxplus and Tier 3 Sites......................................................................................5 Setting up RootCore on MacOS.......................................................................................................5 Compilation Commands.........................................................................................................................5 Package Management.............................................................................................................................6 Code Commit and Tag Creation.......................................................................................................8 Miscellaneous Commands......................................................................................................................8 Using RootCore................................................................................................................................................10 Enabling Cintex for Athena Releases...................................................................................................10 Linking Binaries With Your Packages.................................................................................................10 Running on the Grid.............................................................................................................................11 Submitting Multiple Datasets with the Same Tarball....................................................................11 Testing Your RootCore Installation for Grid Submission..............................................................12 Working With Releases On The Grid............................................................................................12 Using Grid Submission Scripts for Batch Submission...................................................................12 Centrally Provided Data Files...............................................................................................................13 Adapting Your Package to RootCore............................................................................................................15 Package Layout.....................................................................................................................................15 Package Makefile..................................................................................................................................16 Generating Dictionaries........................................................................................................................17 Using Reflex Dictionaries..............................................................................................................17 Compiling with -pedantic.....................................................................................................................18 Can't We Make -pedantic The Default?.........................................................................................18 Optional Dependencies.........................................................................................................................18 Dual-Use Packages...............................................................................................................................19 Using External Libraries.......................................................................................................................19 Using Boost Libraries.....................................................................................................................19 Using LHAPDF Library.................................................................................................................20 RooUnfold......................................................................................................................................20 CLHEP...........................................................................................................................................21 CMake............................................................................................................................................21 Bayesian Analysis Toolkit (BAT)..................................................................................................21 FastJet.............................................................................................................................................21 Hans Boehm Garbage Collector.....................................................................................................22 Detecting Other Packages.....................................................................................................................22 Package Auto-Configuration................................................................................................................23 Unit Tests..............................................................................................................................................24 Binary Releases................................................................................................................................................25 Other New Features..............................................................................................................................26 Determining the package name at compile time............................................................................26 Improved Unit Tests.......................................................................................................................26 Root Glue Package................................................................................................................................26 Internal Structure of the Glue Package...........................................................................................27 Downloading Calibration/Data Files....................................................................................................27 Visible Changes For Existing Users.....................................................................................................28 i Table of Contents Binary Releases Known And Anticipated Issues............................................................................................................28 Migration from RootCore to cmake...............................................................................................................30 Migrating unit tests...............................................................................................................................30 Known Issues....................................................................................................................................................31 Common Problems...............................................................................................................................31 Feature Requests...................................................................................................................................31 ii RootCore Comment: page moved from AtlasProtected to the Atlas web, other topics also will be moved. RootCore 1 Introduction RootCore is a package that helps developers build packages that work standalone (outside Athena). It works both for packages that are ROOT-only and for packages that work with both Athena and ROOT. RootCore is meant to make life easier for all parties involved: • the package developer has an easier life, because he no longer has to maintain his own makefile, • the package user has an easier life, because packages have a standard build prescription and are more likely to build without problems and • the support group has an easier life, because the build process is more standardized and problems can often be addressed centrally. The basic creation of a RootCore environment is straightforward. RootCore depends on ROOT, so ensure that ROOT is accessible: the environment variable ROOTSYS should beset, and the ROOT bin directory should be in the PATH. Suppose you have a list of all the packages that you need in the file packages.txt, then you can set up your entire RootCore environment with the following lines: mkdir packages cd packages svn co svn+ssh://svn.cern.ch/reps/atlasoff/PhysicsAnalysis/D3PDTools/RootCore/tags/`svn ls svn+ssh://svn.cern.ch/reps/atlasoff/PhysicsAnalysis/D3PDTools/RootCore/tags | tail -n 1` RootCore source RootCore/scripts/setup.sh rc checkout packages.txt rc find_packages rc compile That's it. If you want a little more control over what goes on, you will find descriptions of how to do each step that build does in the document below. Please note that you have to repeat the last command in each session you want to use RootCore and