Skip to content
Snippets Groups Projects

Add new property to RICH decoder to allow a single panel in the RICHes to be decoded

All threads resolved!
2 files
+ 18
6
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -151,6 +151,8 @@ namespace Rich::Future {
// report inactive RICHes
if ( !m_richIsActive[Rich::Rich1] ) { info() << "Decoding for RICH1 disabled" << endmsg; }
if ( !m_richIsActive[Rich::Rich2] ) { info() << "Decoding for RICH2 disabled" << endmsg; }
if ( !m_sideIsActive[Rich::firstSide] ) { info() << "Decoding for Panel:0 disabled" << endmsg; }
if ( !m_sideIsActive[Rich::secondSide] ) { info() << "Decoding for Panel:1 disabled" << endmsg; }
return sc;
}
@@ -189,6 +191,9 @@ namespace Rich::Future {
/// Flag to turn on/off decoding of each RICH detector (default is both on)
Gaudi::Property<Rich::DetectorArray<bool>> m_richIsActive{this, "Detectors", {true, true}};
/// Flag to turn on/off decoding of specific panels in each RICH
Gaudi::Property<Rich::PanelArray<bool>> m_sideIsActive{this, "Panels", {true, true}};
/// Flag to activate the raw printout of each Rawbank
Gaudi::Property<bool> m_dumpBanks{this, "DumpRawBanks", false};
@@ -413,8 +418,9 @@ void RawBankDecoder::decodeToSmartIDs_MaPMT1( const LHCb::RawBank& bank,
// is in agreement with the overall bank size
if ( ( nPackedSizeW + nPayloadWords ) != bankSize ) {
++m_bankSizeMisMatchErr;
throw Rich::Exception( "Tel40:" + std::to_string( tel40ID.data() ) + " BankSize:" + std::to_string( bankSize ) +
" != DecodedSize:" + std::to_string( nPackedSizeW + nPayloadWords ) );
std::ostringstream mess;
mess << "Tel40:" << tel40ID << " BankSize:" << bankSize << " != DecodedSize:" << ( nPackedSizeW + nPayloadWords );
+1
throw Rich::Exception( mess.str() );
}
// Guess at number of hits to be created based on # payload words.
@@ -650,6 +656,11 @@ void RawBankDecoder::fillDecodedData( const DecodedIDs& decodedIDs, //
// loop over the IDs to save
for ( const auto id : decodedIDs ) {
// The RICH and panel
const auto rich = id.rich();
const auto side = id.panel();
if ( !m_richIsActive[rich] || !m_sideIsActive[side] ) { continue; }
daq_verbo( " -> ", id, endmsg );
// The module number
@@ -658,10 +669,6 @@ void RawBankDecoder::fillDecodedData( const DecodedIDs& decodedIDs, //
// The PD ID
const auto pdID = id.pdID();
// The RICH and panel
const auto rich = id.rich();
const auto side = id.panel();
// Get the Module Data vector
auto& mDataV = ( decodedData[rich] )[side];
Loading