Skip to content
Snippets Groups Projects
  1. Jan 08, 2024
    • Gerhard Raven's avatar
      Streamline MonitoringHub and Sink implementations · 8c51ea6d
      Gerhard Raven authored
      - RootHistogramSink: avoid having a 'registry' for each instance,
        instead keep one shared constant global in an anonymous namespace
        so it is hidden from the linker
      - JSONSink: use the fact that `ofstream` closes the corresponding file
        when going out of scope
      - BaseSink: use `std::set` with dedicted comparison operator instead
        of `std::map` which saves a bit of memory
      - MonitoringHub: avoid one level of indirection in the type erasure
        which will type-erased function arguments to be passed in registers
        instead of forcing them to be passed through main memory
      - MonitoringHub: `m_typeIndex` is an invariant once constructed, and
        does not need a type-erased function to be determined 'on the fly'
      8c51ea6d
  2. Dec 22, 2023
  3. Dec 20, 2023
    • Sebastien Ponce's avatar
      Implemented Root like histograms · 678df066
      Sebastien Ponce authored
      Their usage is similar to standard histograms, names are prefixed with "Root" and at this stage only non profile, non weighted versions are provided, for dimensions 1,  and 3 only.
      The main difference with standard histograms is that they compute statistical data on the input on top of the strict histogram, in particular they keep sum and sum of squares of all variables so that mean and standard_deviation of the original data can be computed.
      This behavior mimics Root histograms, which allows to convert the new histograms to Root ones and have the expected behavior, while the Gaudi histograms had no statistical data and their conversion to Root was somehow recomputing them (Root did) based on the histogram content. Obviously the values obtained were not correct.
      678df066
  4. Dec 19, 2023
  5. Dec 06, 2023
  6. Dec 04, 2023
  7. Nov 03, 2023
  8. Nov 02, 2023
  9. Oct 30, 2023
    • Gerhard Raven's avatar
      cleanup of SmartRef · 5cd82f49
      Gerhard Raven authored
      - remove duplicated constructor
      - add const
      - add final
      - do not inherit from SmartRef just to create dictionary instances
      - prefer nullptr over 0
      5cd82f49
    • scott snyder's avatar
      Work around issue with clang implicit instantiation in C++ mode. · 0c541ffa
      scott snyder authored and Marco Clemencic's avatar Marco Clemencic committed
      GaudiHandleBase has a virtual destructor which is declared with `=default'.
      However. in C++20 mode, clang will then try to instiantiate all the virtual
      functions for classes derived from this whenever the declarations
      for those classes are seen.  The upshot is that then using Gaudi handles
      with forward-declared classes doesn't work (even if the handle is only
      declared in the header but not used in any way).
      
      It turns out that we can avoid this behavior by changing the declaration
      of the base class destructor to say `{}' instead of `=default'.
      (This is perhaps a clang bug, but the standard is not very clear
      on exactly when virtual members of the templated class are required
      to be or not to be implicitly instantiated.)
      
      See also ATLINFR-5113.
      0c541ffa
  10. Oct 17, 2023
  11. Oct 12, 2023
  12. Sep 19, 2023
  13. Sep 13, 2023
  14. Aug 02, 2023
  15. Jul 26, 2023
Loading