diff --git a/DAQ/MDF/include/MDF/OnlineRunInfo.h b/DAQ/MDF/include/MDF/OnlineRunInfo.h deleted file mode 100755 index d1a42c70014d5c05b80f3cc80cbfa0c8da43ce84..0000000000000000000000000000000000000000 --- a/DAQ/MDF/include/MDF/OnlineRunInfo.h +++ /dev/null @@ -1,47 +0,0 @@ -/*****************************************************************************\ -* (c) Copyright 2000-2020 CERN for the benefit of the LHCb Collaboration * -* * -* This software is distributed under the terms of the GNU General Public * -* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * -* * -* In applying this licence, CERN does not waive the privileges and immunities * -* granted to it by virtue of its status as an Intergovernmental Organization * -* or submit itself to any jurisdiction. * -\*****************************************************************************/ -#ifndef MDF_ONLINERUNINFO_H -#define MDF_ONLINERUNINFO_H - -#define ONLINERUNINFO_ALIGN( x ) x __attribute__( ( __packed__ ) ) - -/* - * LHCb namespace declaration - */ -namespace LHCb { - - /** @class OnlineRunInfo OnlineRunInfo.h MDF/OnlineRunInfo.h - * - * Basic run information from ODIN bank. - */ - ONLINERUNINFO_ALIGN( struct ) OnlineRunInfo { - unsigned int Run; - short int EventType; - short int CalibrationStep; - unsigned int Orbit; - long long int L0ID; - long long int GPSTime; - unsigned detStatus : 24; - unsigned errors : 8; - unsigned bunchID : 12; - unsigned TAEWindow : 3; - unsigned pad0 : 1; - unsigned triggerType : 3; - unsigned readoutType : 2; - unsigned forceBit : 1; - unsigned bxType : 2; - unsigned bunchCurrent : 8; - unsigned int TCK; - }; -} // end namespace LHCb -#undef ONLINERUNINFO_ALIGN - -#endif // MDF_ONLINERUNINFO_H diff --git a/DAQ/MDF/src/MDFIO.cpp b/DAQ/MDF/src/MDFIO.cpp index 029546bab3d1c52a4a0daab802f3dd849b9378f5..e3a9023a253208673182688e5b72be9678feb223 100644 --- a/DAQ/MDF/src/MDFIO.cpp +++ b/DAQ/MDF/src/MDFIO.cpp @@ -16,12 +16,12 @@ // // ==================================================================== #include "MDF/MDFIO.h" +#include "Event/ODIN.h" #include "Event/RawEvent.h" #include "GaudiKernel/IRegistry.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/SmartDataPtr.h" #include "MDF/MDFHeader.h" -#include "MDF/OnlineRunInfo.h" #include "MDF/RawDataAddress.h" #include "MDF/RawEventHelpers.h" #include "MDF/RawEventPrintout.h" @@ -133,15 +133,15 @@ StatusCode LHCb::MDFIO::commitRawBanks( int compTyp, int chksumTyp, void* const log1 << MSG::INFO << "Adding dummy MDF/DAQ[DAQ_STATUS_BANK] information." << endmsg; } else { unsigned int trMask[4] = {~0u, ~0u, ~0u, ~0u}; - const OnlineRunInfo* odin_info = odin[0]->begin<OnlineRunInfo>(); - MDFHeader::SubHeader inf = hdrBank->begin<MDFHeader>()->subHeader(); + const LHCb::ODIN odin_info{odin[0]->range<std::uint32_t>()}; + MDFHeader::SubHeader inf = hdrBank->begin<MDFHeader>()->subHeader(); MsgStream log1( m_msgSvc, m_parent ); if ( log1.level() <= MSG::DEBUG ) log1 << MSG::DEBUG << "Creating MDF/DAQ[DAQ_STATUS_BANK] with ODIN information." << endmsg; inf.H1->setTriggerMask( trMask ); - inf.H1->setRunNumber( odin_info->Run ); - inf.H1->setOrbitNumber( odin_info->Orbit ); - inf.H1->setBunchID( odin_info->bunchID ); + inf.H1->setRunNumber( odin_info.runNumber() ); + inf.H1->setOrbitNumber( odin_info.orbitNumber() ); + inf.H1->setBunchID( odin_info.bunchId() ); } raw->adoptBank( hdrBank, true ); return commitRawBanks( raw, hdrBank, compTyp, chksumTyp, ioDesc ); diff --git a/DAQ/MDF/src/RawEventHelpers.cpp b/DAQ/MDF/src/RawEventHelpers.cpp index e6ec94fc68a9f5559e64fcac0da4090868813e72..dfc83c652e57a696e74fed02f543258b212cea82 100755 --- a/DAQ/MDF/src/RawEventHelpers.cpp +++ b/DAQ/MDF/src/RawEventHelpers.cpp @@ -18,7 +18,6 @@ #include "MDF/RawEventHelpers.h" #include "Event/RawEvent.h" #include "MDF/MDFHeader.h" -#include "MDF/OnlineRunInfo.h" #include "MDF/RawEventPrintout.h" #include <cstring> // For memcpy with gcc 4.3 #include <iostream> @@ -637,8 +636,8 @@ bool LHCb::isTAERawEvent( RawEvent* raw ) { //== Check ODIN event type to see if this is TAE const auto& oBnks = raw->banks( RawBank::ODIN ); return std::any_of( oBnks.begin(), oBnks.end(), []( const RawBank* bank ) { - return bank->begin<OnlineRunInfo>()->triggerType == - static_cast<std::uint8_t>( ODIN::TriggerTypes::TimingTrigger ) || - bank->begin<OnlineRunInfo>()->TAEWindow != 0; + const LHCb::ODIN odin{bank->range<std::uint32_t>()}; + return odin.triggerType() == static_cast<std::uint8_t>( ODIN::TriggerTypes::TimingTrigger ) || + odin.timeAlignmentEventWindow() != 0; } ); }