diff --git a/Event/LumiEvent/src/HltLumiSummaryDecoder.cpp b/Event/LumiEvent/src/HltLumiSummaryDecoder.cpp index 4453a9fa3666de552c6041aebaf372ada13bf530..f96e6b588ec573731b47b9b9bd8dc7f282e34369 100644 --- a/Event/LumiEvent/src/HltLumiSummaryDecoder.cpp +++ b/Event/LumiEvent/src/HltLumiSummaryDecoder.cpp @@ -68,7 +68,7 @@ namespace LHCb { warning() << "Unsupported HltLumiSummary version: " << format( "%4d", ibank->version() ) << endmsg; } else if ( ibank->version() == 1 ) { // initial Run 3 version - if ( ibank->size() != LHCb::LumiSummaryOffsets::V1::TotalSize ) { + if ( ibank->size() != LHCb::LumiSummaryOffsets::V1::TotalSize / 8 ) { warning() << "Bank size incorrect for HltLumiSummary V1: expected " << format( "%4d", LHCb::LumiSummaryOffsets::V1::TotalSize ) << ", found " << format( "%4d", ibank->size() ) << endmsg; @@ -106,97 +106,118 @@ namespace LHCb { } else if ( ibank->version() == 2 ) { auto encodingKey = getField( LHCb::LumiSummaryOffsets::V2::encodingKeyOffset, LHCb::LumiSummaryOffsets::V2::encodingKeySize, ibank->data() ); - if ( encodingKey != 0 ) { + if ( encodingKey != 0x4c30049d ) { // This encoding key is the hash of the JSON representation of the initial + // fixed V2 schema auto lumi_schema = m_svc->lumiCounters( encodingKey, 2 ); - for ( auto cntr : lumi_schema.counters ) { - hltLumiSummary.addInfo( cntr.name, getField( cntr.offset, cntr.size, ibank->data() ) ); + if ( ibank->size() != lumi_schema.size ) { + warning() << "Bank size incorrect for HltLumiSummary V2: expected " << format( "%4d", lumi_schema.size ) + << " for encoding key " << format( "%8x", encodingKey ) << ", found " + << format( "%4d", ibank->size() ) << endmsg; + } else { + for ( auto cntr : lumi_schema.counters ) { + hltLumiSummary.addInfo( cntr.name, getField( cntr.offset, cntr.size, ibank->data() ) ); + } } } else { - if ( ibank->size() != LHCb::LumiSummaryOffsets::V2::TotalSize ) { + if ( ibank->size() != LHCb::LumiSummaryOffsets::V2::TotalSize / 8 ) { warning() << "Bank size incorrect for HltLumiSummary V2: expected " << format( "%4d", LHCb::LumiSummaryOffsets::V2::TotalSize ) << ", found " << format( "%4d", ibank->size() ) << endmsg; + } else { + hltLumiSummary.addInfo( "T0Low", getField( LHCb::LumiSummaryOffsets::V2::t0LowOffset, + LHCb::LumiSummaryOffsets::V2::t0LowSize, ibank->data() ) ); + hltLumiSummary.addInfo( "T0High", getField( LHCb::LumiSummaryOffsets::V2::t0HighOffset, + LHCb::LumiSummaryOffsets::V2::t0HighSize, ibank->data() ) ); + hltLumiSummary.addInfo( "BCIDLow", getField( LHCb::LumiSummaryOffsets::V2::bcidLowOffset, + LHCb::LumiSummaryOffsets::V2::bcidLowSize, ibank->data() ) ); + hltLumiSummary.addInfo( "BCIDHigh", + getField( LHCb::LumiSummaryOffsets::V2::bcidHighOffset, + LHCb::LumiSummaryOffsets::V2::bcidHighSize, ibank->data() ) ); + hltLumiSummary.addInfo( "BXType", getField( LHCb::LumiSummaryOffsets::V2::bxTypeOffset, + LHCb::LumiSummaryOffsets::V2::bxTypeSize, ibank->data() ) ); + hltLumiSummary.addInfo( "GEC", getField( LHCb::LumiSummaryOffsets::V2::GecOffset, + LHCb::LumiSummaryOffsets::V2::GecSize, ibank->data() ) ); + hltLumiSummary.addInfo( "VeloTracks", + getField( LHCb::LumiSummaryOffsets::V2::VeloTracksOffset, + LHCb::LumiSummaryOffsets::V2::VeloTracksSize, ibank->data() ) ); + hltLumiSummary.addInfo( "VeloVertices", + getField( LHCb::LumiSummaryOffsets::V2::VeloVerticesOffset, + LHCb::LumiSummaryOffsets::V2::VeloVerticesSize, ibank->data() ) ); + hltLumiSummary.addInfo( "SciFiClustersS1M45", + getField( LHCb::LumiSummaryOffsets::V2::SciFiM45S1Offset, + LHCb::LumiSummaryOffsets::V2::SciFiM45S1Size, ibank->data() ) ); + hltLumiSummary.addInfo( "SciFiClustersS2M45", + getField( LHCb::LumiSummaryOffsets::V2::SciFiM45S2Offset, + LHCb::LumiSummaryOffsets::V2::SciFiM45S2Size, ibank->data() ) ); + hltLumiSummary.addInfo( "SciFiClustersS3M45", + getField( LHCb::LumiSummaryOffsets::V2::SciFiM45S3Offset, + LHCb::LumiSummaryOffsets::V2::SciFiM45S3Size, ibank->data() ) ); + hltLumiSummary.addInfo( "SciFiClusters", + getField( LHCb::LumiSummaryOffsets::V2::SciFiClustersOffset, + LHCb::LumiSummaryOffsets::V2::SciFiClustersSize, ibank->data() ) ); + hltLumiSummary.addInfo( "SciFiClustersS2M123", + getField( LHCb::LumiSummaryOffsets::V2::SciFiM123S2Offset, + LHCb::LumiSummaryOffsets::V2::SciFiM123S2Size, ibank->data() ) ); + hltLumiSummary.addInfo( "SciFiClustersS3M123", + getField( LHCb::LumiSummaryOffsets::V2::SciFiM123S3Offset, + LHCb::LumiSummaryOffsets::V2::SciFiM123S3Size, ibank->data() ) ); + hltLumiSummary.addInfo( "ECalET", getField( LHCb::LumiSummaryOffsets::V2::ECalETOffset, + LHCb::LumiSummaryOffsets::V2::ECalETSize, ibank->data() ) ); + hltLumiSummary.addInfo( "ECalEInnerTop", + getField( LHCb::LumiSummaryOffsets::V2::ECalEITOffset, + LHCb::LumiSummaryOffsets::V2::ECalEITSize, ibank->data() ) ); + hltLumiSummary.addInfo( "ECalEInnerBottom", + getField( LHCb::LumiSummaryOffsets::V2::ECalEIBOffset, + LHCb::LumiSummaryOffsets::V2::ECalEIBSize, ibank->data() ) ); + hltLumiSummary.addInfo( "ECalEMiddleTop", + getField( LHCb::LumiSummaryOffsets::V2::ECalEMTOffset, + LHCb::LumiSummaryOffsets::V2::ECalEMTSize, ibank->data() ) ); + hltLumiSummary.addInfo( "ECalEMiddleBottom", + getField( LHCb::LumiSummaryOffsets::V2::ECalEMBOffset, + LHCb::LumiSummaryOffsets::V2::ECalEMBSize, ibank->data() ) ); + hltLumiSummary.addInfo( "ECalEOuterTop", + getField( LHCb::LumiSummaryOffsets::V2::ECalEOTOffset, + LHCb::LumiSummaryOffsets::V2::ECalEOTSize, ibank->data() ) ); + hltLumiSummary.addInfo( "ECalEOuterBottom", + getField( LHCb::LumiSummaryOffsets::V2::ECalEOBOffset, + LHCb::LumiSummaryOffsets::V2::ECalEOBSize, ibank->data() ) ); + hltLumiSummary.addInfo( "MuonHitsM2R1", + getField( LHCb::LumiSummaryOffsets::V2::M2R1Offset, + LHCb::LumiSummaryOffsets::V2::M2R1Size, ibank->data() ) ); + hltLumiSummary.addInfo( "MuonHitsM2R2", + getField( LHCb::LumiSummaryOffsets::V2::M2R2Offset, + LHCb::LumiSummaryOffsets::V2::M2R2Size, ibank->data() ) ); + hltLumiSummary.addInfo( "MuonHitsM2R3", + getField( LHCb::LumiSummaryOffsets::V2::M2R3Offset, + LHCb::LumiSummaryOffsets::V2::M2R3Size, ibank->data() ) ); + hltLumiSummary.addInfo( "MuonHitsM2R4", + getField( LHCb::LumiSummaryOffsets::V2::M2R4Offset, + LHCb::LumiSummaryOffsets::V2::M2R4Size, ibank->data() ) ); + hltLumiSummary.addInfo( "MuonHitsM3R1", + getField( LHCb::LumiSummaryOffsets::V2::M3R1Offset, + LHCb::LumiSummaryOffsets::V2::M3R1Size, ibank->data() ) ); + hltLumiSummary.addInfo( "MuonHitsM3R2", + getField( LHCb::LumiSummaryOffsets::V2::M3R2Offset, + LHCb::LumiSummaryOffsets::V2::M3R2Size, ibank->data() ) ); + hltLumiSummary.addInfo( "MuonHitsM3R3", + getField( LHCb::LumiSummaryOffsets::V2::M3R3Offset, + LHCb::LumiSummaryOffsets::V2::M3R3Size, ibank->data() ) ); + hltLumiSummary.addInfo( "MuonHitsM3R4", + getField( LHCb::LumiSummaryOffsets::V2::M3R4Offset, + LHCb::LumiSummaryOffsets::V2::M3R4Size, ibank->data() ) ); + hltLumiSummary.addInfo( "MuonHitsM4R1", + getField( LHCb::LumiSummaryOffsets::V2::M4R1Offset, + LHCb::LumiSummaryOffsets::V2::M4R1Size, ibank->data() ) ); + hltLumiSummary.addInfo( "MuonHitsM4R2", + getField( LHCb::LumiSummaryOffsets::V2::M4R2Offset, + LHCb::LumiSummaryOffsets::V2::M4R2Size, ibank->data() ) ); + hltLumiSummary.addInfo( "MuonHitsM4R3", + getField( LHCb::LumiSummaryOffsets::V2::M4R3Offset, + LHCb::LumiSummaryOffsets::V2::M4R3Size, ibank->data() ) ); + hltLumiSummary.addInfo( "MuonHitsM4R4", + getField( LHCb::LumiSummaryOffsets::V2::M4R4Offset, + LHCb::LumiSummaryOffsets::V2::M4R4Size, ibank->data() ) ); } - hltLumiSummary.addInfo( "T0Low", getField( LHCb::LumiSummaryOffsets::V2::t0LowOffset, - LHCb::LumiSummaryOffsets::V2::t0LowSize, ibank->data() ) ); - hltLumiSummary.addInfo( "T0High", getField( LHCb::LumiSummaryOffsets::V2::t0HighOffset, - LHCb::LumiSummaryOffsets::V2::t0HighSize, ibank->data() ) ); - hltLumiSummary.addInfo( "BCIDLow", getField( LHCb::LumiSummaryOffsets::V2::bcidLowOffset, - LHCb::LumiSummaryOffsets::V2::bcidLowSize, ibank->data() ) ); - hltLumiSummary.addInfo( "BCIDHigh", getField( LHCb::LumiSummaryOffsets::V2::bcidHighOffset, - LHCb::LumiSummaryOffsets::V2::bcidHighSize, ibank->data() ) ); - hltLumiSummary.addInfo( "BXType", getField( LHCb::LumiSummaryOffsets::V2::bxTypeOffset, - LHCb::LumiSummaryOffsets::V2::bxTypeSize, ibank->data() ) ); - hltLumiSummary.addInfo( "GEC", getField( LHCb::LumiSummaryOffsets::V2::GecOffset, - LHCb::LumiSummaryOffsets::V2::GecSize, ibank->data() ) ); - hltLumiSummary.addInfo( "VeloTracks", - getField( LHCb::LumiSummaryOffsets::V2::VeloTracksOffset, - LHCb::LumiSummaryOffsets::V2::VeloTracksSize, ibank->data() ) ); - hltLumiSummary.addInfo( "VeloVertices", - getField( LHCb::LumiSummaryOffsets::V2::VeloVerticesOffset, - LHCb::LumiSummaryOffsets::V2::VeloVerticesSize, ibank->data() ) ); - hltLumiSummary.addInfo( "SciFiClustersS1M45", - getField( LHCb::LumiSummaryOffsets::V2::SciFiM45S1Offset, - LHCb::LumiSummaryOffsets::V2::SciFiM45S1Size, ibank->data() ) ); - hltLumiSummary.addInfo( "SciFiClustersS2M45", - getField( LHCb::LumiSummaryOffsets::V2::SciFiM45S2Offset, - LHCb::LumiSummaryOffsets::V2::SciFiM45S2Size, ibank->data() ) ); - hltLumiSummary.addInfo( "SciFiClustersS3M45", - getField( LHCb::LumiSummaryOffsets::V2::SciFiM45S3Offset, - LHCb::LumiSummaryOffsets::V2::SciFiM45S3Size, ibank->data() ) ); - hltLumiSummary.addInfo( "SciFiClusters", - getField( LHCb::LumiSummaryOffsets::V2::SciFiClustersOffset, - LHCb::LumiSummaryOffsets::V2::SciFiClustersSize, ibank->data() ) ); - hltLumiSummary.addInfo( "SciFiClustersS2M123", - getField( LHCb::LumiSummaryOffsets::V2::SciFiM123S2Offset, - LHCb::LumiSummaryOffsets::V2::SciFiM123S2Size, ibank->data() ) ); - hltLumiSummary.addInfo( "SciFiClustersS3M123", - getField( LHCb::LumiSummaryOffsets::V2::SciFiM123S3Offset, - LHCb::LumiSummaryOffsets::V2::SciFiM123S3Size, ibank->data() ) ); - hltLumiSummary.addInfo( "ECalET", getField( LHCb::LumiSummaryOffsets::V2::ECalETOffset, - LHCb::LumiSummaryOffsets::V2::ECalETSize, ibank->data() ) ); - hltLumiSummary.addInfo( "ECalEInnerTop", - getField( LHCb::LumiSummaryOffsets::V2::ECalEITOffset, - LHCb::LumiSummaryOffsets::V2::ECalEITSize, ibank->data() ) ); - hltLumiSummary.addInfo( "ECalEInnerBottom", - getField( LHCb::LumiSummaryOffsets::V2::ECalEIBOffset, - LHCb::LumiSummaryOffsets::V2::ECalEIBSize, ibank->data() ) ); - hltLumiSummary.addInfo( "ECalEMiddleTop", - getField( LHCb::LumiSummaryOffsets::V2::ECalEMTOffset, - LHCb::LumiSummaryOffsets::V2::ECalEMTSize, ibank->data() ) ); - hltLumiSummary.addInfo( "ECalEMiddleBottom", - getField( LHCb::LumiSummaryOffsets::V2::ECalEMBOffset, - LHCb::LumiSummaryOffsets::V2::ECalEMBSize, ibank->data() ) ); - hltLumiSummary.addInfo( "ECalEOuterTop", - getField( LHCb::LumiSummaryOffsets::V2::ECalEOTOffset, - LHCb::LumiSummaryOffsets::V2::ECalEOTSize, ibank->data() ) ); - hltLumiSummary.addInfo( "ECalEOuterBottom", - getField( LHCb::LumiSummaryOffsets::V2::ECalEOBOffset, - LHCb::LumiSummaryOffsets::V2::ECalEOBSize, ibank->data() ) ); - hltLumiSummary.addInfo( "MuonHitsM2R1", getField( LHCb::LumiSummaryOffsets::V2::M2R1Offset, - LHCb::LumiSummaryOffsets::V2::M2R1Size, ibank->data() ) ); - hltLumiSummary.addInfo( "MuonHitsM2R2", getField( LHCb::LumiSummaryOffsets::V2::M2R2Offset, - LHCb::LumiSummaryOffsets::V2::M2R2Size, ibank->data() ) ); - hltLumiSummary.addInfo( "MuonHitsM2R3", getField( LHCb::LumiSummaryOffsets::V2::M2R3Offset, - LHCb::LumiSummaryOffsets::V2::M2R3Size, ibank->data() ) ); - hltLumiSummary.addInfo( "MuonHitsM2R4", getField( LHCb::LumiSummaryOffsets::V2::M2R4Offset, - LHCb::LumiSummaryOffsets::V2::M2R4Size, ibank->data() ) ); - hltLumiSummary.addInfo( "MuonHitsM3R1", getField( LHCb::LumiSummaryOffsets::V2::M3R1Offset, - LHCb::LumiSummaryOffsets::V2::M3R1Size, ibank->data() ) ); - hltLumiSummary.addInfo( "MuonHitsM3R2", getField( LHCb::LumiSummaryOffsets::V2::M3R2Offset, - LHCb::LumiSummaryOffsets::V2::M3R2Size, ibank->data() ) ); - hltLumiSummary.addInfo( "MuonHitsM3R3", getField( LHCb::LumiSummaryOffsets::V2::M3R3Offset, - LHCb::LumiSummaryOffsets::V2::M3R3Size, ibank->data() ) ); - hltLumiSummary.addInfo( "MuonHitsM3R4", getField( LHCb::LumiSummaryOffsets::V2::M3R4Offset, - LHCb::LumiSummaryOffsets::V2::M3R4Size, ibank->data() ) ); - hltLumiSummary.addInfo( "MuonHitsM4R1", getField( LHCb::LumiSummaryOffsets::V2::M4R1Offset, - LHCb::LumiSummaryOffsets::V2::M4R1Size, ibank->data() ) ); - hltLumiSummary.addInfo( "MuonHitsM4R2", getField( LHCb::LumiSummaryOffsets::V2::M4R2Offset, - LHCb::LumiSummaryOffsets::V2::M4R2Size, ibank->data() ) ); - hltLumiSummary.addInfo( "MuonHitsM4R3", getField( LHCb::LumiSummaryOffsets::V2::M4R3Offset, - LHCb::LumiSummaryOffsets::V2::M4R3Size, ibank->data() ) ); - hltLumiSummary.addInfo( "MuonHitsM4R4", getField( LHCb::LumiSummaryOffsets::V2::M4R4Offset, - LHCb::LumiSummaryOffsets::V2::M4R4Size, ibank->data() ) ); } } else { warning() << "Unknown HltLumiSummary version: " << format( "%4d", ibank->version() ) << endmsg;