diff --git a/CHANGELOG.md b/CHANGELOG.md index 14a82aee5823467c2bab1b5bbda62e3641cd759e..0794f90a465c578cb7ddf149f4b3cbac34f71ce2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ Project Coordinators: Marco Clemencic @clemenci, Charles Leggett @leggett The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/). + ## [v39r0](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v39r0) - 2024-09-23 This major release of Gaudi features a number of backward incompatible changes that have been waiting for a chance of being integrated, like @@ -94,6 +95,14 @@ A special thanks to all the people that contributed to this release: - cppcheck fixes (code quality) (gaudi/Gaudi!1609) +## [v38r3p1](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v38r3p1) - 2024-10-22 +This release is integrating the changes from [v38r1p1](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v38r1p1) +into v38r3. + +### Added +- Add `NTupleSvc.BasketSize` property and forward in RCWNTupleCnv Branch creation (gaudi/Gaudi!1648) + + ## [v38r3](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v38r3) - 2024-06-28 This is a minor release to collect all pending backward compatible changes and fixes before integrating the backward incompatible changes scheduled for v39r0. @@ -145,6 +154,14 @@ It will require some structure and polishing, but it's a start. - Avoid implicit conversion from float to double (gaudi/Gaudi#299, gaudi/Gaudi!1569) +## [v38r1p1](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v38r1p1) - 2024-10-18 +This patch release is needed by LHCb to pick up a small extension to `NTupleSvc` +so that we can fine tune the basket size of the `TTree`s we produce. + +### Added +- Add `NTupleSvc.BasketSize` property and forward in RCWNTupleCnv Branch creation (gaudi/Gaudi!1648) + + ## [v38r1](https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v38r1) - 2024-03-15 This backward compatible release of Gaudi features a few fixes and improvements, and a major step towards some proper polishing an refreshing of the examples. diff --git a/GaudiSvc/src/NTupleSvc/NTupleSvc.h b/GaudiSvc/src/NTupleSvc/NTupleSvc.h index a4fe13b61220cfe4770c0c32efa71eaf28eb6373..c9f8cd1c9ae1b1f987ed2dd96324c933323c9017 100644 --- a/GaudiSvc/src/NTupleSvc/NTupleSvc.h +++ b/GaudiSvc/src/NTupleSvc/NTupleSvc.h @@ -98,6 +98,7 @@ public: /// Check if a datasource is connected bool isConnected( const std::string& identifier ) const override; + /// Add file to list I/O list StatusCode connect( const std::string& ident ) override; /// Add file to list I/O list @@ -124,6 +125,7 @@ protected: Gaudi::Property<DBaseEntries> m_input{ this, "Input", {}, "input streams" }; Gaudi::Property<DBaseEntries> m_output{ this, "Output", {}, "output streams" }; + Gaudi::Property<int> m_basketsize{ this, "BasketSize", 32000, "BasketSize" }; // ROOT default /// Container of connection points std::map<std::string, Connection> m_connections; }; diff --git a/GaudiTestSuite/tests/pytest/refs/MetaDataSvc.yaml b/GaudiTestSuite/tests/pytest/refs/MetaDataSvc.yaml index 86474ac7d41185457b005501c55363676ff52e9a..95b06444d4d34057e63dbe0188a2a8de7cfe370f 100644 --- a/GaudiTestSuite/tests/pytest/refs/MetaDataSvc.yaml +++ b/GaudiTestSuite/tests/pytest/refs/MetaDataSvc.yaml @@ -273,6 +273,7 @@ stdout: |- NTupleSvc.AuditStart:False NTupleSvc.AuditStop:False NTupleSvc.AutoRetrieveTools:True + NTupleSvc.BasketSize:32000 NTupleSvc.CheckToolDeps:True NTupleSvc.DataAccessName:'DataAccess' NTupleSvc.DataFaultName:'DataFault' diff --git a/RootHistCnv/src/RCWNTupleCnv.cpp b/RootHistCnv/src/RCWNTupleCnv.cpp index dc391c1ec5550498218a71182ab50c9552887422..6c37910e69f791356e09d5b17d3963c69dd795af 100644 --- a/RootHistCnv/src/RCWNTupleCnv.cpp +++ b/RootHistCnv/src/RCWNTupleCnv.cpp @@ -198,6 +198,10 @@ StatusCode RootHistCnv::RCWNTupleCnv::book( const std::string& desc, INTuple* nt // Loop over items, creating a new branch for each one; unsigned int i_item = 0; + + Gaudi::Property<int> basket_size( "BasketSize", 32000 ); + m_ntupleSvc.as<IProperty>()->getProperty( &basket_size ).ignore(); + for ( auto itr = item_name.cbegin(); itr != end; ++itr, ++i_item ) { buf_pos = buff + item_buf_pos[i_item]; @@ -214,8 +218,7 @@ StatusCode RootHistCnv::RCWNTupleCnv::book( const std::string& desc, INTuple* nt #else TBranch* br = new TBranch( #endif - item_fullname[i_item].c_str(), buf_pos, itr->second.c_str() ); - + item_fullname[i_item].c_str(), buf_pos, itr->second.c_str(), basket_size ); if ( itr->first != "AUTO_BLK" ) { std::string title = itr->first; title = itr->first + "::" + br->GetTitle();