g4tools

g4tools is a "namespace protected" part of the inlib and exlib libraries which is of some interest for Geant4, mainly the histograms, the ntuples and the code to write them at the CERN-ROOT, AIDA XML, csv and now HDF5 file formats.

The idea of g4tools is to cover, with a very light and easy to install package, what is needed to do analysis in a "Geant4 batch program". As g4tools is distributed through Geant4, and in order to avoid potential namespace clashes with the inlib/exlib code used to do visualization, the inlib and exlib namespaces had been automatically changed to "tools" in the g4tools distribution. Since in principle Geant4 users will not have to deal directly to the g4tools classes, but will manipulate histograms and ntuples through the G4AnalysisManager, we are not going to extensively document the g4tools classes here. There is anyway some doc in the "User API" section that started to flourish from user requests on some vade mecum around histograms.

g4tools code is pure header

As explained in inlib/exlib, the code found in g4tools is "pure header". This comes from the need to have an easy way to build applications, as the ioda one, from smartphone, passing by tablets and up to various desktops (UNIX and Windows). For example, if building an application targeted to the AppStore and Android market, the simplest way is to pass through Xcode and the Android make system (or Eclipse), and having not to build libraries simplifies a lot the handling of all these IDEs for the same application. A fallback of that is that the installation of g4tools (if not using the one coming with Geant4) is straightforward ; you simply unzip the file containing the source code ! To build an application using g4tools, as for inlib/exlib, you simply have to declare to your build system the "-I" toward the unfolded directory and do "Build and Run".