Skip to content

VPTrackMonitor: Use Gaudi HistogramArray

Christopher Rob Jones requested to merge VPTrackMonitor-Use-HistogramArray into master

Current implementation has issues in debug builds with warnings like

/usera/jonesc/LHCb/stack/Master/Rec/Tr/TrackMonitors/src/VPTrackMonitor.cpp: In function 'static std::array<Gaudi::Accumulators::HistogramWrapperInternal<Gaudi::Accumulators::HistogramingCounterBase<2, Gaudi::Accumulators::atomicity::full, double, (& Gaudi::Accumulators::naming::profilehistogramString), Gaudi::Accumulators::ProfileHistogramingAccumulator, std::tuple<Gaudi::Accumulators::Axis<double>, Gaudi::Accumulators::Axis<double> > >, std::integer_sequence<unsigned int, 0, 1> >, sizeof... (IDXs)> LHCb::Tr::Monitor::VPTrackMonitor<outmode>::optionalHistos::profhisto2DArrayBuilder(const LHCb::Tr::Monitor::VPTrackMonitor<outmode>*, const std::string&, const std::string&, const std::string&, std::tuple<unsigned int, double, double>, std::tuple<unsigned int, double, double>, std::index_sequence<__var_indices ...>) [with long unsigned int ...IDXs = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207}; LHCb::Tr::Monitor::OutputMode outmode = LHCb::Tr::Monitor::OutputMode::Tuples]':
/usera/jonesc/LHCb/stack/Master/Rec/Tr/TrackMonitors/src/VPTrackMonitor.cpp:342:7: note: variable tracking size limit exceeded with '-fvar-tracking-assignments', retrying without
  342 |       profhisto2DArrayBuilder( const VPTrackMonitor* owner, std::string const& fwdbwd, const std::string& name,

The problem is the use of the variadic index sequence which is known to be very heavy on the compiler.

This MR switches to Gaudi's own HistogramArray to avoid these problems.

Edited by Christopher Rob Jones

Merge request reports

Loading