Skip to content
Snippets Groups Projects
Commit 1ca72a4e authored by Louis Henry's avatar Louis Henry Committed by Christina Agapopoulou
Browse files

Protect FT decoding from misordered links

parent 1ff0d66a
No related branches found
No related tags found
3 merge requests!4539Synchronize master branch with 2024-patches,!4525Draft: Synchronize master branch with 2024-patches,!4513Protect FT decoding from misordered links
......@@ -71,6 +71,7 @@ private:
ServiceHandle<IDataProviderSvc> m_dataSvc{this, "DataService", "DetectorDataSvc", "The detector data service"};
mutable Gaudi::Accumulators::MsgCounter<MSG::ERROR> m_misordered{this, "Misordered large cluster"};
mutable Gaudi::Accumulators::MsgCounter<MSG::ERROR> m_misorderedLinks{this, "Misordered links"};
mutable Gaudi::Accumulators::MsgCounter<MSG::ERROR> m_corrupt1{
this, "Possibly corrupt data (type 1). Ignoring the cluster."};
mutable Gaudi::Accumulators::MsgCounter<MSG::ERROR> m_corrupt2{
......@@ -115,6 +116,11 @@ private:
"misordered",
"Misordered large clusters;iLink",
{FTRawBank::BankProperties::NbLinksMax, -0.5, static_cast<float>( FTRawBank::BankProperties::NbLinksMax ) - 0.5}};
mutable Gaudi::Accumulators::Histogram<1, Gaudi::Accumulators::atomicity::full, float> m_misorderedLinks_hist{
this,
"misorderedLinks",
"Misordered link index;iLink",
{FTRawBank::BankProperties::NbLinksMax, -0.5, static_cast<float>( FTRawBank::BankProperties::NbLinksMax ) - 0.5}};
mutable Gaudi::Accumulators::Histogram<1, Gaudi::Accumulators::atomicity::full, float> m_corruptCluster1_hist{
this,
"corrupt_cluster1",
......@@ -646,6 +652,13 @@ FTLiteClusters FTRawBankDecoder::decode( const EventContext& evtCtx, LHCb::RawBa
clusters = clusters.subspan( 1 );
continue;
}
if ( localLinkIndex < lastLink ) {
// LoH: this has happened in April 2024 because of bit flips. Allen!1546
++m_misorderedLinks;
++m_misorderedLinks_hist[iRow * FTRawBank::BankProperties::NbLinksPerBank + localLinkIndex];
clusters = clusters.subspan( 1 );
continue;
}
if ( localLinkIndex == lastLink && channelInSiPM <= lastChannel ) {
++m_misordered;
++m_misordered_hist[iRow * FTRawBank::BankProperties::NbLinksPerBank + localLinkIndex];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment