The Gaudi Project

Gaudi v19r5

Package Versions

GaudiN/AGaudiKernelv23r1 GaudiSvcv16r1
GaudiReleasev19r5GaudiObjDescN/AGaudiSysv19r5
GaudiAlgv10r1 GaudiPIN/AHbookCnvv14r11
GaudiAudv8r3 GaudiPolicyv7r1 LCGEnvN/A
GaudiExamplesv19r5 GaudiPoolDbv2r14 RootHistCnvv9r15
GaudiGSLv6r6 GaudiPythonv8r16 GaudiGridSvcv1r3
GaudiHistoryN/AGaudiSiteSvcN/AGaudiMonitorv1r3

Release Notes

Externals version: LCGCMT_53c

Packages Changes

  • Gaudi (v19r5):
    • new package that contains only the application part of the framework (Gaudi.exe)
  • GaudiAlg (v10r1):
    • Added a few wrapper functions to remove unwanted explicit dependency on AIDA (was breaking LHCb compilation) (Vanya Belyaev).
    • patch #1345 (TupleObj) (Vanya Belyaev):
      • change the default type for "integer" data-fields from "long" to "int".
      • issue the warning messages for truncated fields:
                  - long
                  - unsigned long 
                  - unsigned int
                  - double
      • add a shortcut for column ( IOpaqueAddress* )
      • Changed names from "Long" to "Int" (Marco Clemencic).
    • patch #1375 (Vanya Belyaev). Allow configuration of Histogram1D from job options. Extended "plot" and "book" methods to use "histogram properties" without unpacking them into title/low/high/bins.
    • patch #1356 (Vanya Belyaev) GaudiAlgorithm.
      • provide the accessors to IAlgContextSvc service
      • provide new property "RegisterForContextService" to enforce the algorithm registration in Algorithm Context Service independently on the external configuration of Auditor Service and AlgContextAuditor (the default value is true)
      • provide the functionality to select "interesting" algorithms from the algorithm context queues (algorithm selectors)
      • implement few simple specializations of selectors for accessors
    • patch #1273 (Vanya Belyaev):
      • Added automatic conversion of GaudiAlg::ID to std:string.
      • Added properties to define histograms print out format in GaudiHistos.
    • patch #1231 (Vanya Belyaev):
      • Remove duplicated lines for printout of counters.
      • Added new properties to format the counters to GaudiCommon<TYPE>:
        • "StatTableHeader" : (string) the header line for printout of the table
        • "RegularRowFormat" : (string) the format of the row for the regular counters
        • "EfficiencyRowFormat" : (string) the format of the row for the "binomial efficiency counters"
        • "UseEfficiencyRowFormat": (bool) the flag to allow the special formatting of "binomial efficiency" counters
  • GaudiExamples (v19r5):
    • patch #1375 (Vanya Belyaev). Allow configuration of Histogram1D from job options (src/Histograms/HistoProps.cpp, options/Histograms.opts)
    • patch #1273 (Vanya Belyaev): Added print out of "skewness" and "kurtosis" to Aida2Root example.
    • patch #1265 (Vanya Belyaev). TupleEx4.py: new example to illustrate the usage of TupleUtils module.
    • patch #1263 (Vany Belyaev): New python example which illustrates the usage of various 1D&2D profile histograms in python (HistoEx2.py).
    • patch #1231 (Vanya Belyaev): New example to illustrate the usage of "Stat"-part of IChronoStatSvc.
    • patch #1178 (Vanya Belyaev). added example CounterSvcAlg.
  • GaudiKernel (v23r1):
    • Patch #1345 (Vanya Belyaev). Minor modifications to improve Tuples::TupleObj (GaudiAlg package) in GaudiKernel/NTuple.h
      • substitute the explicit specialization for NTuple::Range with the regular calls of std::numeric_limits<T>::min()/max()
      • disable "#ifndef ALLOW_ALL_TYPES"
    • patch #1375 (Vanya Belyaev). Allow configuration of Histogram1D from job options.
      • New class Gaudi::Histo1DDef for histogram description/definition.
      • Implementation of parsing for new histogram properties. (Sascha Mazurov)
    • Patch #1357 (Vany Belyaev). Minor improvements to Gaudi::Utils::setProperty():
      • allow to set the documentation of a property
      • allow to set a property from a PopertyType
    • patch #1247. (partial)  Sebastien Binet (& Marco Clemencic) avoid duplication of symbols in files generated by genconf. (Warning: Win32 implementation missing)
    • Fixed bug #29806 (Markus Frank). Wrong call to setDataProvider.
    • Hubert Degaudenzi & Marco Clemencic
      • factored out the main application part to the Gaudi package.
      •  added an option to genconf that adds a fallback module for the location of Configurables and ConfigurableDb
      • Modified the genconfig CMT pattern for the previous change to have AthenaCommon by default and if it doesn't exist fall back to GaudiKernel. This is a temporary fix until both approaches are merged.
    • Patch #1260 (Hubert Degaudenzi & Paolo Calafiura) .moved the MinimalEventLoopMgr from GaudiSvc to GaudiKernel. The factory for this service is still in GaudiSvc
    • patch #1231 (Vanya Belyaev):
      • Splitted IChronoStatSvc.h into IChronoSvc and IStatSvc.
      • Remove ICounterSvc::CountObject and replaced it with Stat.
      • Added few free functions to format StatEntity objects as table rows.
    • Added the file cbrt.h, which provides an implementation of cbrt (cubic root) to all the platforms (it is a built-in function of gcc) (Marco Clemencic).
    • patch #1246 (Vanya Belyaev). Introduced 2 new classes:
      • Gaudi::Guards::ExceptionGuard. executes a functor in a "standard" try-catch block.
      • Gaudi::Guards::AuditorGuard. executes a function of an object when the instance is created and a second one when destroyed, allowing automatic "clean-up" (in case of early exit).
    • patch #1253 (Charles Leggett). This patch fixes Algorithm.cpp, AlgTool.cpp and Service.cpp such that there is a consistent use of the auditorSvc-after[whatever] in the catch loops when an exception is thrown.
    • patch #1250 (Pere Mato): Removed the default constructor of Service because it is causing a memory leak in Reflex.
    • patch #1227 (Vanya Belyaev). Added the functions "Gaudi::Utils::setProperty(IInterface*,...)", simpler counterparts of "Gaudi::Utils::setProperty(IProperty*,...)".
    • patch #1226 (Vanya Belyaev):
      • SmartIFBase<TYPE>:
        • explicitely disable copy constructor and assignement
        • add "checking operator", operator!()
      • SmartIF<TYPE> and SmartIF<IInterface>:
        • add "const" into copy constructor
        • add the constructor from underlying pointer
        • add "const" into standard assignment
        • add "const" into template assignment remove line duplicates between standard assignement and assignment from the regular pointer
        • fix typo in return type of assignment from the base
        • add "checking operator", operator!()
    • patch #1182 (Sebastien Binet): Improved precision for timing measurements in ProcessDescriptor
         (on linux).  The patch allow to use the function getrusage when possible to get a microsecond precision instead of millisecond. When getrusage cannot be used, the timing is measured in the old way. 
    • added the possibility to use the universal time for the messages. There is a new "%u" format for this. It replaces the usual "%t" in the MessageSvc.Format (Hubert Degaudenzi).
    • patch #1178 (Vany Belyaev). The patch substitute the internal counters, used for (I)CounterSvc by generic counters of type StatEntity:
      • This allow to reuse the useful functionality of StatEntity class.
      • In addition it will allow an easy publishing and integration of counters with monitoring tasks.
      • Also it adds more functionality for grouping of counters, in particular the extraction of the whole group of counters (required by Matt Needham)
      • The printout of counters is now coherent with printout of generic counters through GaudiCommon<T>.
  • GaudiPolicy (v7r1):
    • added global macro <project>_home (Hubert Degaudenzi).
    • Introduced 2 new make fragments (install_python and install_scripts) based on the install.py script for the python modules and script installation (Hubert Degaudenzi).
    • fixed the merge_rootmap and merge_genConf fragments to avoid the double building of the target in case of parallel build (Hubert Degaudenzi).
    • patch #1249 (Sebastien Binet). Fix to avoid "use" cycle with GaudiSvc.
    • added "use Python * LCG_Interfaces -no_auto_imports" for compilation on win32. the "win32con" module is needed with the locker.py script (which is used for rootmap building) (Hubert Degaudenzi).
    • Added a python script to handle the installation of files in a platform-independent way and to keep track of the installed files so that if many packages add files to the same directory, a "make clean" in a package removes only the files that the package installed (use cases: python modules, LHCb event model classes) (Macro Clemencic).
    • added an option to install.py to be able to select a destination name different for the source one (Marco Clemencic).
  • GaudiPython (v8r16):
    • patch #1158 (Sebastien Binet). (slightly modified by Marco Clemencic): Minor changes to GaudiHandles.py to improve memory footprint
    • patch 1265 (Vanya Belyaev):
      • Add new class GaudiPython::TupleToolDecorator for "decorations" of ITupleTool interface.
      • Change the default CLID for event tag collections from RowWiseTuple to ColumnWiseTuple. This change has been done in C++ long time ago, but have not been propagated to python.
      • Add dictionaries for ITupleTool and IHistoTool.
      • New module TupleUtils.py: allow manipulation of tuples from outside algorithms or tools.
    • patch 1263 (Vanya Belyaev).
      • Allow "smart and friendly" manipulation of AIDA::IProfile[1D,2D] objects from Python.
      • Improvements in iProperty: raise AttributeError in __getattr__ and __setattr__ if the property does not exist (instead of the internal C++ exception).
      • Added module HistoUtils containing "script-friendly" functions to manipulate histograms. 
  • GaudiSiteSvc (removed): should be supersided by GaudiGridSvc and the DataStreamTool.
  • GaudiSvc (v16r1):
    • Fix to allow any of the following commands in the job options (Sascha Mazurov):
         #printOptions full
         #printOptions FULL
         #printOptions
    • patch #1213 (Charles Leggett). Finalize HistorySvc before any other service.
    • patch #1392 (Vanya Belyaev & Sascha Mazurov). Allow "::" in algorithm and tool names to configure them, e.g.:
           MyNamespace::MyAlg.MyProperty = 123;
    • patch #1375 (Vanya Belyaev). Allow configuration of Histogram1D from job options.
      • Allow tuple-like quantities to appear as right-hand-expressions in job options. (Sascha Mazurov)
      • Allow the "on-the-fly" redefinition of the histogram properties via options of the HistogramSvc.
    • Patch #1358 (Charles Leggett). Fixed a bug in THistSvc. In the initialization clause of a "for" loop, the iterator was set using "==" instead of "=". 
    • Patch #1359. (fixes bug #28603) (Vanya Belyaev): Added 2 warnings in case an option file is included twice (one at the parser level and one at the JobOptionSvc level). Note: The included file is processed only the first time it is included.
    • Patch #1346 (Vanya Belyaev): Add the possibility to print all properties of application manager. The properties are printed in ApplicationMgr::configure()
           if the (new) property "PropertiesPrint" is set to true (default is false).
    • patch #1273 (Vanya Belyaev): Avoid print out of the table header for empty stats (ChronoStatSvc).
    • patch #1252 (Charles Leggett):
      • Do not dereference the TFile pointer in finalize if it is a temporary file (== NULL).
      • Add a job option to turn on/off printing of all TObjects in finalize. (off by default)
      • Convert all double slashes ("//") to single slashes (so that the path "A/B/C" matches "A//B/C") to avoid problems in case of typos in job options.
    • patch #1234 (Charles Leggett). Modified the way the ToolSvc uses the HistorySvc. ToolSvc will try to get the HistorySvc when creating a tool and cache the pointer if it is available.
    • Patch #1243 (Chris Jones): Equipe ApplicationMgr with a new job option ReflexPluginDebugLevel which is used to set the debug level of ROOT::Reflex::PluginService::SetDebug(level). Useful to aid in the debugging of library loading problems.
    • task #5157 (Make MessageSvc thread-safe) (Marco Clemencic): Added 3 boost mutexes to MessageSvc to protect few internal data members from possible concurrent access.
    • patch #1178 (Vanya Belyaev).
      • The proposed patch substitute the internal counters, used for (I)CounterSvc by generic counters of type StatEntity.
      • This allow to reuse the useful functionality of StatEntity class.i n addition it will allow an easy publishing and integration of counters with monitoring tasks.
      • Also it adds more functionality for grouping of counters, in particular the extraction of the whole group of counters (required by Matt Needham)
      • The printout of counters is now coherent with printout of generic counters through GaudiCommon<T>.
  • GaudiUtils (v1r2):
    • Patch #1266 (Vanya Belyaev) GaudiUtils/HistoStats.h, src/Lib/HistoStats.cpp: new files with simple class Gaudi::Utils::HistoStats for evaluation  of few basic statistical quantities for AIDA::histograms. The moments (and therefore all other quantities) are calculated on bin-by-bin"-basis, since the corresponding cumulants needed for "event-by-event"-calculations are not available:
      • moments
      • central moments
      • skewness
      • kurtosis
    • patch #1273 (Vanya Belyaev). added new functions to GaudiUtils/HistoStats.h:
      • meanErr
      • rmsErr
      • kurtosisErr
      • skewnessErr
      • momentErr
      • centralMomenErr