The LHCB Project

LHCB v55r6

The LHCB v55r6 Full Release Notes

2024-04-08 LHCb v55r6

This version uses Gaudi v38r1, Detector v1r30 and LCG 105a with ROOT 6.30.04.

This version is released on the master branch. Built relative to LHCb v55r5, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2024-04-03 LHCb v55r5

This version uses Detector v1r30, Gaudi v38r1 and LCG 105a with ROOT 6.30.04.

This version is released on the master branch. Built relative to LHCb v55r4, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2024-03-27 LHCb v55r4

This version uses Detector v1r29, Gaudi v38r1 and LCG 105a with ROOT 6.30.04.

This version is released on the master branch. Built relative to LHCb v55r3, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2024-03-18 LHCb v55r3

This version uses Gaudi v38r1, Detector v1r28 and LCG 105a with ROOT 6.30.04.

This version is released on the master branch. Built relative to LHCb v55r2, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2024-03-05 LHCb v55r2

This version uses Gaudi v38r0, Detector v1r27 and LCG 105a .

This version is released on the master branch. Built relative to LHCb v55r1, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2024-02-13 LHCb v55r1

This version uses Detector v1r26, Gaudi v38r0 and LCG 105a .

This version is released on the master branch. Built relative to LHCb v55r0, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2024-01-26 LHCb v55r0

This version uses Gaudi v37r2, Detector v1r25 and LCG 104 with ROOT 6.28.04.

This version is released on the master branch. Built relative to LHCb v54r21, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2023-12-07 LHCb v54r21

This version uses Gaudi v36r16, Detector v1r24 and LCG 103 with ROOT 6.28.00.

This version is released on the master branch. Built relative to LHCb v54r19, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2023-10-30 LHCb v54r20

This version uses Detector v1r23, Gaudi v36r16 and LCG 103 with ROOT 6.28.00.

This version is released on the master branch. Built relative to LHCb v54r19, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Other

2023-10-06 LHCb v54r19

This version uses Detector v1r22, Gaudi v36r16 and LCG 103 with ROOT 6.28.00.

This version is released on the master branch. Built relative to LHCb v54r18, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2023-09-25 LHCb v54r18

This version uses Detector v1r21, Gaudi v36r16 and LCG 103 with ROOT 6.28.00.

This version is released on the master branch. Built relative to LHCb v54r17, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2023-09-11 LHCb v54r17

This version uses Gaudi v36r16, Detector v1r19 and LCG 103 with ROOT 6.28.00.

This version is released on the `` branch. Built relative to LHCb v54r16, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2023-09-01 LHCb v54r16

This version uses Gaudi v36r16, Detector v1r19 and LCG 103 with ROOT 6.28.00.

This version is released on the master branch. Built relative to LHCb v54r15, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2023-08-25 LHCb v54r15

This version uses Gaudi v36r16, Detector v1r19 and LCG 103 with ROOT 6.28.00.

This version is released on the master branch. Built relative to LHCb v54r14, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2023-08-04 LHCb v54r14

This version uses Detector v1r18, Gaudi v36r16 and LCG 103 with ROOT 6.28.00.

This version is released on the master branch. Built relative to LHCb v54r13, with the following changes:

New features ~"new feature"

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Other

2023-07-31 LHCb v54r13

This version uses Detector v1r17, Gaudi v36r16 and LCG 103 with ROOT 6.28.00.

This version is released on the master branch. Built relative to LHCb v54r12, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2023-07-16 LHCb v54r12

This version uses Detector v1r16, Gaudi v36r14 and LCG 103 with ROOT 6.28.00.

This version is released on the master branch. Built relative to LHCb v54r11, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2023-07-04 LHCb v54r11

This version uses Detector v1r15, Gaudi v36r14 and LCG 103 with ROOT 6.28.00.

This version is released on the master branch. Built relative to LHCb v54r10, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2023-06-21 LHCb v54r10

This version uses Detector v1r14, Gaudi v36r14 and LCG 103 with ROOT 6.28.00.

This version is released on the master branch. Built relative to LHCb v54r9, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2023-06-12 LHCb v54r9

This version uses Detector v1r13, Gaudi v36r12 and LCG 103 with ROOT 6.28.00.

This version is released on the master branch. Built relative to LHCb v54r8, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2023-05-09 LHCb v54r8

This version uses Gaudi v36r12, Detector v1r12 and LCG 103 with ROOT 6.28.00.

This version is released on the master branch. Built relative to LHCb v54r7, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2023-04-19 LHCb v54r7

This version uses Gaudi v36r12, Detector v1r11 and LCG 103 with ROOT 6.28.00.

This version is released on the master branch. Built relative to LHCb v54r6, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2023-03-22 LHCb v54r6

This version uses Detector v1r10, Gaudi v36r12 and LCG 103 with ROOT 6.28.00.

This version is released on the master branch. Built relative to LHCb v54r5, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2023-03-03 LHCb v54r5

This version uses Gaudi v36r11, Detector v1r9 and LCG 103 with ROOT 6.28.00.

This version is released on the master branch. Built relative to LHCb v54r4, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2023-01-27 LHCb v54r4

This version uses Gaudi v36r9, Detector v1r8 and LCG 101a with ROOT 6.24.08.

This version is released on the master branch. Built relative to LHCb v54r3, with the following changes:

Fixes ~"bug fix" ~workaround

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Other

2022-12-19 LHCb v54r3

This version uses Detector v1r7, Gaudi v36r9 and LCG 101a_LHCB_7 with ROOT 6.24.08.

This version is released on master branch. Built relative to LHCb v54r2, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2022-11-23 LHCb v54r2

This version uses Detector v1r6, Gaudi v36r9 and LCG 101a_LHCB_7 with ROOT 6.24.08.

This version is released on master branch. Built relative to LHCb v54r1, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Other

2022-11-10 LHCb v54r1p1

This version uses Gaudi v36r8, Detector v1r5p1 and This version uses LCG 101a with ROOT 6.24.08.

This version is released on master branch. Identical to LHCb v54r1.

2022-10-26 LHCb v54r1

This version uses Gaudi v36r8, Detector v1r5 and This version uses LCG 101a with ROOT 6.24.08.

This version is released on master branch. Built relative to LHCb v54r0, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Other

2022-10-07 LHCb v54r0

This version uses Detector v1r4, Gaudi v36r7 and LCG 101 with ROOT 6.24.06.

This version is released on master branch. Built relative to LHCb v53r10, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Other

2022-08-03 LHCb v53r10

This version uses Gaudi: v36r7, Detector: v1r3,

This version is released on master branch. Built relative to LHCb v53r9, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2022-06-10 LHCb v53r9

This version uses Detector v1r2, Gaudi v36r5 and LCG 101 with ROOT 6.24.06.

This version is released on master branch. Built relative to LHCb v53r8, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Other

2022-04-14 LHCb v53r8

This version uses Detector v1r1, Gaudi v36r5 and LCG 101 with ROOT 6.24.06.

This version is released on master branch. Built relative to LHCb v53r7, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

2022-03-30 LHCb v53r7

This version uses Detector v1r0, Gaudi v36r4 and LCG 101 with ROOT 6.24.06.

This version is released on master branch. Built relative to LHCb v53r6, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

2022-01-27 LHCb v53r6

This version uses Gaudi v36r4 and LCG 101 with ROOT 6.24.06.

This version is released on master branch. Built relative to LHCb v53r5, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

2021-12-02 LHCb v53r5

This version uses Gaudi v36r2 and LCG 101 with ROOT 6.24.06.

This version is released on master branch. Built relative to LHCb v53r4, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

2021-10-22 LHCb v53r4

This version uses Gaudi v36r2 and LCG 101 with ROOT 6.24.06.

This version is released on master branch. Built relative to LHCb v53r3, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

2021-10-04 LHCb v53r3

This version uses Gaudi v36r1 and LCG 100 with ROOT 6.24.00.

This version is released on master branch. Built relative to LHCb v53r2, with the following changes:

New features ~"new feature"

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

2021-09-24 LHCb v53r2

This version uses Gaudi v36r1 and LCG 100 with ROOT 6.24.00.

This version is released on master branch. Built relative to LHCb v53r1, with the following changes:

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

2021-09-06 LHCb v53r1

This version uses Gaudi v36r0 and LCG 100 with ROOT 6.24.00.

This version is released on master branch. Built relative to LHCb v53r0, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

2021-07-07 LHCb v53r0

This version uses Gaudi v36r0 and LCG 100 with ROOT 6.24.00.

This version is released on master branch. Built relative to LHCb v52r2, with the following changes:

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

2021-06-24 LHCb v52r2

This version uses Gaudi v36r0 and LCG 100 with ROOT 6.24.00.

This version is released on master branch. Built relative to LHCb v52r1, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

2021-05-27 LHCb v52r1

This version uses Gaudi v35r4 and LCG 100 with ROOT 6.24.00.

This version is released on master branch. Built relative to LHCb v52r0, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

Other

2021-03-12 LHCb v52r0

This version uses Gaudi v35r2 and LCG 97a with ROOT 6.20.06.

This version is released on master branch. Built relative to LHCb v51r3, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

2020-12-12 LHCb v51r3

This version uses Gaudi v34r1 and LCG 97a with ROOT 6.20.06.

This version is released on master branch. Built relative to LHCb v51r2, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

2020-10-19 LHCb v51r2

This version uses Gaudi v34r1 and LCG 97a with ROOT 6.20.06.

This version is released on master branch. Built relative to LHCb v51r1, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

2020-08-03 LHCb v51r1

This version uses Gaudi v33r2 and LCG 97a with ROOT 6.20.06.

This version is released on master branch. Built relative to LHCb v51r0, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

2020-02-18 LHCb v51r0

This version uses Gaudi v33r0 and LCG_96b with ROOT 6.18.04.

This version is released on master branch. Built relative to LHCb v50r6, with the following changes:

New features ~"new feature"

Fixes ~"bug fix" ~workaround

Enhancements ~enhancement

Code cleanups and changes to tests ~modernisation ~cleanup ~testing

Documentation ~Documentation

2019-10-03 LHCb v50r6

This version uses Gaudi v32r2 and LCG_96b with ROOT 6.18.04.

<

p> This version is released on master branch.

Built relative to LHCb v50r5, with the following changes:

New features

Enhancements

Bug fixes

Code modernisations and cleanups

Changes to tests

2019-07-21 LHCb v50r5

This version uses Gaudi v32r1 and LCG_96 with ROOT 6.18.00.

<

p> This version is released on master branch.

Built relative to LHCb v50r4, with the following changes:

New features

Enhancements

Bug fixes

Code modernisations and cleanups

Changes to tests

2019-05-22 LHCb v50r4

This version uses Gaudi v32r0 and LCG_95 with ROOT 6.16.00.

<

p> This version is released on master branch.

Built relative to LHCb v50r3, with the following changes:

New features

Enhancements

Bug fixes

Code modernisations and cleanups

Monitoring changes

Changes to tests

Documentation

2019-02-13 LHCb v50r3

This version uses Gaudi v31r0 and LCG_95 with ROOT 6.16.00.

<

p> This version is released on master branch.

Built relative to LHCb v50r2, with the following changes:

New features

Enhancements

Bug fixes

Thread safety

Code modernisations and cleanups

Monitoring changes

Changes to tests

2018-12-07 LHCb v50r2

This version uses Gaudi v30r5 and LCG_94 with ROOT 6.14.04.

<

p> This version is released on master branch.

Built relative to LHCb v50r1, with the following changes:

New features

Enhancements

Bug fixes

Code modernisations and cleanups

Changes to tests

2018-08-06 LHCb v50r1

This version uses Gaudi v30r3 and LCG_93 with ROOT 6.12.06.

<

p> This version is released on master branch.

Built relative to LHCb v50r0, with the following changes:

New features

Enhancements

Bug fixes

Code modernisations and cleanups

Changes to tests

2018-03-22 LHCb v50r0

This version uses Gaudi v30r2 and LCG_93 with ROOT 6.12.06.

<

p> This version is released on master branch. The previous release on master branch was LHCb v43r1.

This release includes the merge to master of the future branch, done in November 2017 - see !989 commit history for details of future changes that were included

This release also contains all the changes that were made in LHCb v44r0 (released on 2018-patches branch, see corresponding release notes), as well as the additional changes described in this file.

New features

Enhancements

Bug fixes

Code modernisations and cleanups

Changes to tests

2018-03-06 LHCb v44r0

This version uses Gaudi v29r3 and LCG_93 with ROOT 6.12.06.

<

p> This version is released on 2018-patches branch.

Built relative to LHCb v43r1, with the following changes:

Updates for CondDB

Name            Datatype
dddb-20171030   2010
dddb-20171030-1 2011
dddb-20171030-2 2012,2013
dddb-20171030-3 2015,2016,2017

Fixes to handling of Turbo data

New features

Enhancements

Bug fixes

Code modernisations and cleanups

Changes to tests

2017-10-25 LHCbSys v43r1

This version uses Gaudi v29r0 and LCG_91 with ROOT 6.10.06.

This version is released on master branch. The previous release on master branch was LHCb v43r0. This release contains all the changes that were made in LHCb v42r6 LHCb v42r6p1 and LHCb v42r6p2 (released on 2017-patches branch, see corresponding release notes), as well as the additional changes described in this file.

Change to compiler support

As from this release, support for gcc7 is added
Note that C++17 is not yet fully supported, waiting for support from ROOT

[MR !836] Suppress legitimate -Wimplicit-fallthrough warnings from gcc7

[MR !830] Fix to allow compilation with gcc 7.1

[MR !804] Remove use of register keyword as storage classifier

New or changed functionality

[MR !861] LHCbMath: backport some developments (and fixes) from ostap-standalone
1. Fix for Lomont' next_float/next_double method. Other functors from this file were also rewritten properly.
2. Bernstein polynomials:
* improve numerical stability of polinomial division
* remove gcd (better to keep it in python using proper efficient divmod from C++)
* add functions ( splits, control polygon, convex hulls, crossing points...) that allow easy and efficient implementation of root-finding in python
3. B-spline
* improve numerical stability
* add knot insertion using Boehm's algorithm
* add functions (split, knot inserions, contorl polygons, convex hulls, crossing points) that allow easy and efficient implementation of root-finding in python
* add spline VDM approximatinon
* add spline interpolation
* add Berstein -> BSpline conversion
* make some internal algorithm "visible" and usable outside b-spline ( de Boor, Boehm, ...)
4. Add few useful functions&objects into LHCb::Math namespace

[MR !848] LHCbMath - Add AVX Guard class
Simple AVX 'guard' class that calls _mm256_zeroupper() when it goes out of scope

[MR !793] Update default DDDB tags according to LHCBCNDB-646
Introduces new ParticleTable.txt in DDDB with following global tags:

Name               Based on         Datatype  
dddb-20170721      dddb-20160318    2010  
dddb-20170721-1    dddb-20160318-1  2011  
dddb-20170721-2    dddb-20150928    2012,2013  
dddb-20170721-3    dddb-20150724    2015,2016,2017  

[MR !777] New linker base class in Associators/AssociatorsBase
See LHCBPS-1742

[MR !905] Restore the default behaviour of AlgContextSvc
The behaviour was changed in Gaudi v29r0, see gaudi/Gaudi!409. This change is needed in order to be able to determine the parent of public tools during intitialize (mostly for LoKi functors).

Code optimisations

[MR !856] Update VectorClass
1. Update VectorClass to latest version.
2. Add the missing instrset_detect.cpp file to the library.
3. Explicitly link LHCbMath against VectorClassLib to pick up instrset_detect() from there.
4. Update CPUDispatch.h with AVX512 enums.

[MR !713] Disable Boost pool allocators

[MR !806, !823] Improve error detection & handling in TCK I/O

[MR !926] Optimize Solid{Cons,Polycone,SolidTubs}
- avoid repeated sin/cos calls
- hint the compiler to use sincos by computing sin and cos right next to each other

Bug fixes, protections and cleanups

[MR !863] LoKiMC&LoKiGen: remove (hide) possibility to access Child selector by simple indices
See LHCBPS-1745

[MR !831] Fix Coverity warning: remove unnecessary include

[MR !842] Properly initialize MuonODEData in c'tor

[MR !825] L0DUReportMonitor: Fix repetitive label reset in monitoring
Fix a missing reset that cause the histo label to be reset each event (for online monitoring purpose only)

[MR !824] Fix git create database

[MR !822] Fix test_conddbui.py

[MR !815] Avoid bad query to PropertyConfigSvc

[MR !796] Restore short-circuiting for And and Or in LoKi/Primitives.h
Fix for LHCBPS-1743

[MR !789] Augment dictionary to fix stripping cache generation

[MR !206] Check whether args were passed to AuxFunBase prior to using them in toCpp

[MR !884] Use everywhere (consistently) LHCbMath/Lomont.h
Removed from Gaudi with gaudi/Gaudi!398

[MR !888] Make sure libgit2 can be found even if LCG does not provide openssl

[MR !899] Remove Kernel/TemplatedGenVector
Now available from ROOT 6.10.x

[MR !909] Fix untested StatusCodes uncovered by gaudi/Gaudi!386

[MR !911] Truncate existing raw files when writing
Currently, if a raw file exists, it is not truncated when opened for writing. If the existing file has a larger size, the leftover bytes at the end will be left there and further reading will lead to segvs due to the corrupted file.
This MR simply adds the O_TRUNC flag to the open call and a test that verifies the correct behaviour.

[MR !916] LoKiCore fix for regression discussed in Phys!206

Monitoring changes

[MR !778] Update L0DU Bank monitor in case of Condition number exceeds 32
Update L0DURawBankMonitor to handle not-reported conditions (when number of L0 conditions exceeds 32). Only affects the online monitoring in Orwell.

Code modernisation

[MR !866] Modernize lomont
- Make constructors constexpr (again)
- Do not explicitly inhibit default constructor

[MR !858] Modernize TrackEvent
- remove virtual specification from LHCb::Track member functions
- remove use of deprecated (and removed in C++17) std::{unary,binary}_function
- remove unneccessary include of stdio.h and functional
- change functors to be non-template classes (structs) with a templated operator() -- this avoids having to specify a type when instantiating an instance of a functor
- remove commented out old code
- avoid unneccessary statics
- simplify Track::addToStates implementation -- no need to reserve first, do not modify the argument
- optimize Track::copy -- skip resetting data to zero when it will subsequently be overwritten

[MR !851] Use gsl::span instead of bare pointers to non-owned arrays in Similarity

[MR !826] Modernize hltservices
- replace CloseListener with a generic listener implementation
- make operator bool explicit
- rename flush in close
- do not use using namespace std::
- prefer pass-by-value followed by move

[MR !847] Modernize MuonDAQ
- remove private methods from IMuonRawBuffer interface
- add some const in IMuonRawBuffer interface
- prefer std::array over C-style arrays
- prefer zero initialization of array over .fill(0)
- make operator<< friend, in class scope, instead of in global scope
- make static constants constexpr
- prefer inherited constructors
- prefer switch/case over if-then
- prefer range-based loops
- prefer Gaudi::Property with direct member initialization over declareProperty
- reduce scope of variables as much as possible: only declare variables at the point they can be assigned a value
- use lambda to consolidate repeated code
- simplify a few arithmetic expressions
- prefer STL algorithms over raw loops
- use a scoped guard over explicitly grouped 'set/reset' calls
- prefer std::bitset over arrays of bool

[MR !852] Clarify ownership transfer in CaloHypo::setPosition

[MR !821] Modernize LoKi Primitives
Eliminate the need for Primitives.h to include itself after some pre-processor manipulations. This is done by avoiding the dedicated specialization for the 'void' functors (i.e. the case where there is no argument). Instead, use variadic number of arguments, and make both the case with and without argument a specialization.

In addition, implement Min and Max in terms of the generic BinaryOp -- which implies moving the handling of 3 or more functions into the min and max helpers in Math.h -- and Round in terms of the generic UnaryOp

[MR !816] Modernize TrackParameters, TrackUse
- use constexpr if possible
- remove deprecated std::unary_function
- prefer direct member initialization
- prefer STL algortihms over raw loops

[MR !794] Modernize HltInterfaces
- avoid mutable 'digest' data members
- prefer enum class for kinds (IAlgorithm,IService,IAlgTool) instead of strings
- make binary operators friend functions
- prefer STL algorithms over raw loops
- prefer boost::string_ref over const std::string& to avoid string copies

[MR !798, !784] Modernize LoKiCore
- introduce LOKI_REQUIRES macro to simplify SFINAE constraints
- prefer typename in template declarations
- introduce generic BindBinary functor, and use it to implement
- EqualToValue
- NotEqualToValue
- LessThanValue
- LessOrEqualValue
- GreaterThanValue
- GreaterOrEqualValue
- MultiplyByValue
- SumByValue
- Minus1
- Minus2
- Divide1
- Divide2
- remove fake argument in Round::Round
- add final to help the compiler de-virtualize
- remove SVN/CVS identifiers
- simplify LoKi::AddRef
- simplify LoKi::Const
- consolidate AlgFunctors: use baseclass + template implementation with a small struct to specialize
- add variadic min, max functors
- constrain FunctorArray constructor so it does not classify as copy c'tor
- generalize BinaryOp, and use it instead of Combination
- remove deprecated LoKi::select
- use Synced to guarantee that non-const static data is never accessed without lock

[MR !795, !792] Simplify DAQKernel
- prefer inherited constructors
- put all related explicit template instantiations in a single file
- eliminate the need for getIfExistRaw
- remove obsolete SVN/CVS identifiers
- prefer =default over explicit implementations

[MR !785] Add tagged_bool and use it to make ITrajPoca::minimize more explicit

[MR !782] Modernize bankKiller, OdinTypesFilter, OdinBCIDFilter
Use Gaudi::Property, and use the opportunity to replace string options by dedicated types

[MR !787] Modernize LHCbKernel
- prefer std::array over boost::array
- prefer auto
- prefer std::greater<> over std::greater

[MR !672] Modernize L0DUBase: replace C-style arrays by std::array

[MR !912] Improve type punning
- Introduce pun_to for type punning
- pun_to avoid the need to rely on C99 compatibility (accessing the 'non-active' member of a union is undefined behaviour in C++ -- but g++ behaves according to C99 in this respect)
- also, remove unneeded #include
- also, fully qualify enum values

Changes to tests

[MR !797] Add test for JIRA-LHCBPS-1743

[MR !908] testvdtmath_AVX2FMA.qmt: Ignore tiny difference in vdt::fast_cossin when FMA enabled

2017-07-11 LHCbSys v43r0

This version uses Gaudi v28r2 and LCG_82 with ROOT 6.08.06.

This version is released on master branch. The previous release on master branch was LHCb v42r3. This release contains all the changes that were made in LHCb v42r4 and LHCb v42r5 (released on 2017-patches branch, see corresponding release notes), as well as the additional changes described in this file.

Change to compiler support

As from this release, support for gcc49 is dropped
This means that C++14 is now fully supported

New or changed functionality

[MR !622] Scifi: New event model
The changes in the event model correspond to JIRA tasks: LHCBSCIFI-79, LHCBSCIFI-80
The default simulation is switched to the detailed digitisation. This is about 2 times faster that the current improved digitisation.

[MR !766] Added missing implementation of function DeFTLayer::quarters()

[MR !638] DetDescChecks: Added material budget scan script
The script matbud.py generates maps in (x, y) by integration of one over radiation length and one over interaction length for a given interval in the z dimension

[MR !698] CondDBBrowser updates
- Use Qt5 by default
- Small fixes to absorb differences between PyQt4 and PyQt5
- Add support for Git CondDB (read-only), see LHCBPS-1713
- Closes LHCBPS-1502

[MR !761] Modifications to RunChangeHandler to force the name change of conditions
- New option to force updating the conditions during the alignment iterations. Since the alignment xmls don’t change name during the job iteration, the default behaviour of RunChangeHandler would not allow to load the updated conditions from previous iteration.
- A test for this new ForceUpdate option was added

[MR !620] Relations: remove TO pointer value sorting from WEntry operator<
Addresses the issue with the Relations sorting that results in potentially unstable behaviour, by removing the sorting of the TO relations ranges based on TO pointer value.

Code optimisations

[MR !618] RICH MaPMT Support Improvements

[MR !695] Allow to compile VectorClass on avx512
[MR !623] Update VectorClass to 1.28

Monitoring changes

[MR !756] Add crate/slot id in L0cte verbose printout

[MR !656] DataCopy.cpp: in case of failure make the error message more informative

Code modernisation

[MR !710] RICH - Prefer pragma once to ifdefs
[MR !691] RichUtils - Streamline TrackSegment
[MR !668] Rich remove pointless moves
[MR !631] Access the Rich PD panel as a const pointer

[MR !676] FTDAQ: Merged functional changes from future into master
See LHCBSCIFI-83

[MR !673] Modernize STDAQ / STTELL1BoardErrorBank / STDAQDefinitions
[MR !750] Modernize Calo
[MR !699] Modernize DetDesc
[MR !773, !764, !758, !743, !726] Modernize LoKiCore
[MR !740, !729, !646] Modernize LHCbMath
[MR !655] Modernize PartProp
[MR !651] Modernize LoKiMC
[MR !650] Modernize LoKiGen
[MR !649] Modernize LoKiHlt
[MR !644] Modernize HltServices
[MR !657] Modernize SimComponents
[MR !658] Modernize FSRAlgs
[MR !663] Modernize OTDAQ
[MR !659] Modernize MCCaloDataFunctor
[MR !654] Modernize LHCbKernel
[MR !653] Modernize DetDescCnv
[MR !648] Modernize LHCbAlgs
[MR !662] Modernize DetCond
[MR !652] Modernize MuonDet
[MR !647, !712] Modernize FileStager
[MR !661] GaudiObjDesc: replace BOOST_FOREACH with range-based for loop

[MR !665] Make the code forwards & backwards compatible with gaudi/Gaudi!290

Bug fixes and cleanups

[MR !737] Remove unused public headers
[MR !734] Fix compiler errors in uncompiled header files
[MR !733] Fix compiler warnings in uncompiled header files
[MR !721] Avoid calling gaudi_install_headers twice

[MR !755] L0DURawBankMonitor was resetting the labels for some histo at each event. Protection added

Changes to tests

[MR !763] Implemented complete checking of counters in logs
Up to recently, counters were simply ignored in the log of the tests (except their header and thus the number of them). This commit puts in place systematic checking of all counters, with a default sensibility of 10-4. So differences are allowed as long as they are small enough compared to the value.

[MR !771] Increase VMEM test failure threshold to 1.4GB, to avoid false alarms

2018-03-05 LHCb v42r7

This version uses Gaudi v28r2 and LCG_88 with ROOT 6.08.06.

<

p> This version is released on 2017-patches branch.

Updates for CondDB

Fixes to handling of Turbo data

Enhancements

Bug fixes

Code modernisations and cleanups

Changes to tests

2017-09-27 LHCbSys v42r6p2

This version uses Gaudi v28r2 and LCG_88 with ROOT 6.08.06.

<

p> This version is released on 2017-patches branch.

New functionality

[MR !895] Add back RichDet Interpolator nDataPoints() method

Optimisations

[MR !886] Improve Git CondDB IOVs partitioning

2017-09-11 LHCbSys v42r6p1

This version uses Gaudi v28r2 and LCG_88 with ROOT 6.08.06.

<

p> This version is released on 2017-patches branch.

Changes to configuration

[MR !867] Separate CaloAdcs and CaloDigits production on demand
Sets up separate decoders in DecoderDB for CaloDigits and CaloAdcs

New functionality

[MR !877] Add new feature to L0CaloAlg to be able to change by options the tool used to create L0ADC from RAW

Bug fixes

[MR !873] Fix an out-of-bounds read on a vector in DeRichHPDPanel

[MR !878] Initialize HltSelRepRawBank header
Avoids writing random data to the raw bank when the HltSelRepRawBank is not very big. This is harmless but would improve raw data checkusm consistency.

Changes to tests

[MR !865] Add support for Tesla tests running under 2012 data type
Some Tesla tests, in DaVinci, run using 2012 data and so set the DataType to '2012'. This MR allows Tesla to run with a 2012 data type, with the caveat that this is intended just for the pre-existing tests.

2017-08-28 LHCbSys v42r6

This version uses Gaudi v28r2 and LCG_88 with ROOT 6.08.06.

<

p> This version is released on 2017-patches branch.

Updates for Git CondDB support

[MR !811] Removed date from comments in conditions XML files
See LHCBPS-1744

[MR !800] Git CondDB updates and fixes
- Support Git CondDB layout as input to copy_files_to_db.py
- Use metadata in tag messages to find latest datatype tags
- Add commit id to tag reported in event headers

[MR !698] CondDBBrowser updates
- Use Qt5 by default
- Small fixes to absorb differences between PyQt4 and PyQt5
- Add support for Git CondDB (read-only), see LHCBPS-1713
- Closes LHCBPS-1502

[MR !765] Modifications to RunChangeHandler to force the name change of conditions

Changes to persistency to fully support TurboSP

[MR !819] Add (un)packing for {Velo,ST}Cluster containers

[MR !818] Add persistence of PackedClusters for PackedDataWriter
Also, add packing support for PackedCaloAdcs for PackedDataWriter(Decoder) for TurboSP.

[MR !808] Add support for (un)packing CaloDigit containers

[MR !807] Add PackedCaloDigits to HltPackedDataWriter(Decoder)
Allows persistence of PackedCaloDigits for TurboSP

[MR !767] Allow offline use of HltSelReportsWriter

Bug fixes

[MR !854, !850] Stop Turbo-only Calo objects being used in TISTOS decisions
See LHCBPS-1746 for background.

[MR !841] Fix error status OR in Calo decoders

[MR !835] Fix misuse of a function as variable

[MR !827] Fix boolean return in DeCalorimeter functions

Changes to tests

[MR !838, !775] Increase VMEM mergesmallfiles test failure threshold to 1.5GB, to avoid false alarms

2017-07-04 LHCbSys v42r5

This version uses Gaudi v28r2 and LCG_88 with ROOT 6.08.06.

<

p> This version is released on 2017-patches branch.

Change to release notes format

As from this release, the file LHCbSys/doc/release.notes is frozen
Instead, there will be a file per release in the new ReleaseNotes directory. e.g. this file is called ReleaseNotes/v42r5.md

New or changed functionality

[MR !757] Support automatic Turbo unpacking in streamed data
meaning data with a RootInTES like /Event/<stream>/Turbo, which is what the data now looks like in 2017.

[MR !728] Add packers for CaloAdc and CaloDigit objects

[MR !747] Add KillSourceIDMask to bankKiller
Until now we could only filter on an exact sourceID. This is not sufficient to kill all HltSelReports banks in case there are multiple banks. Now there is an AND mask, and a bank is killed when KillSourceID != 0 && (KillSourceIDMask & sourceID == KillSourceID). The default behaviour is unchanged.

[MR !748] Bank killer based on line requests and decisions
- Add a trivial tool HDRFilterTool that implements the functionality of HDRFilter in a tool.
- Add a new algorithm DecisionBankKiller that given a set of lines (via the tool above) and a service that keeps track of line requests, leaves only the union of banks requested by fired lines.
- This MR implements the functionality needed for the selective raw bank persistence in TURBO, see LBHLT-164.

[MR !741] Add support for overlays on Git CondDB

Bug fixes

[MR !753] Fix memory leak in CaloHypo
Fixes the memory growth observed in the Tesla validation production: https://lblogbook.cern.ch/Operations/27129

[MR !752] Bug fixes for ReportConvertTool, potentially solving Stripping/Tesla segfaults
Fixes the decoding of ProtoParticle and MuonPID HltObjectSummaries
Fixes also some unprotected debug() and untested StatusCode

[MR !742] Fix Upgrade tag names handling in CondDB configurable
Do not prepend upgrade/ to tags if not needed

[MR !736] Correctly protect debug messages in GitEntityResolver

[MR !730] Fixes for Git CondDB
- Make the code forwards & backwards compatible with gaudi/Gaudi!290 (same as MR !665)
- Fixed configuration backward compatibility with COOL
- Protected debug() messages

[MR !723] Fix calculation of number of banks in HltPackedDataWriter

[MR !719] Fix Velo decoder crash on missing bank
Occurs when trying to decode TAE data when there is none

Monitoring changes

[MR !731] Print out used CondDB tags even if global output level is not INFO

Changes to tests

[MR !732] Increase slightly memory threshold of fsralgs.mergesmallfiles test failure
- Move to Git CondDB had pushed the test over threshold
- Also, suppress compilation warnings from Boost headers

[MR !711] Improve forwards and backwards compatibility of TurboConf
Overhaul TurboConf so that is will be easier to maintain in 2017 and 2018, whilst preserving backwards compatibility with 2015 and 2016.