ATLAS Offline Software
CTPResultByteStreamTool.h
Go to the documentation of this file.
1 // Dear emacs, this is -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef TRIGT1RESULTBYTESTREAM_CTPRESULTBYTESTREAMTOOL_H
8 #define TRIGT1RESULTBYTESTREAM_CTPRESULTBYTESTREAMTOOL_H
9 
10 // Trigger includes
12 #include "xAODTrigger/CTPResult.h"
13 
14 // Gaudi/Athena include(s):
16 
21 class CTPResultByteStreamTool : public extends<AthAlgTool, IL1TriggerByteStreamTool> {
22 
23 public:
24 
25  // To use base class functions (e.g. constructor)
26  using base_class::base_class;
27 
28  // ------------------------- IAlgTool methods --------------------------------
29  virtual StatusCode initialize() override;
30 
31  // ------------------------- IL1TriggerByteStreamTool methods ----------------
32 
33  // BS->xAOD conversion
34  virtual StatusCode convertFromBS(const std::vector<const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment*>& vrobf, const EventContext& eventContext) const override;
35 
36  // xAOD->BS conversion
37  virtual StatusCode convertToBS(std::vector<OFFLINE_FRAGMENTS_NAMESPACE_WRITE::ROBFragment*>& vrobf, const EventContext& eventContext) override;
38 
39  // Declare ROB IDs for conversion
40  virtual const std::vector<uint32_t>& robIds() const override {return m_robIds.value();}
41 
42 private:
43 
44  // ------------------------- Private types -----------------------------------
45  // Struct holding the status words and rob/rod error flags
46  struct DataStatus {
47  bool rob_error {false};
48  bool rod_error {false};
51  };
52 
53  // ------------------------- Data handles ------------------------------------
54  SG::ReadHandleKey<xAOD::CTPResult> m_inKeyCTPResult {this, "CTPResultReadKey", "", "Read handle key to CTPResult for conversion to ByteStream"};
55  SG::WriteHandleKey<xAOD::CTPResult> m_outKeyCTPResult {this, "CTPResultWriteKey", "", "Write handle key to CTPResult for conversion from ByteStream"};
56 
57  // ------------------------- Other properties --------------------------------
58  Gaudi::Property<std::vector<uint32_t>> m_robIds {this, "ROBIDs", {}, "List of ROB IDs required for conversion to/from xAOD"};
59  Gaudi::Property<uint16_t> m_detEvType {this, "DetEvType", 1, "Detector event type to write when converting to ByteStream"};
60 
61 }; // class CTPResultByteStreamTool
62 
63 #endif // TRIGT1RESULTBYTESTREAM_CTPRESULTBYTESTREAMTOOL_H
CTPResult.h
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
CTPResultByteStreamTool::convertToBS
virtual StatusCode convertToBS(std::vector< OFFLINE_FRAGMENTS_NAMESPACE_WRITE::ROBFragment * > &vrobf, const EventContext &eventContext) override
Definition: CTPResultByteStreamTool.cxx:167
CTPResultByteStreamTool::DataStatus
Definition: CTPResultByteStreamTool.h:46
CTPResultByteStreamTool::convertFromBS
virtual StatusCode convertFromBS(const std::vector< const OFFLINE_FRAGMENTS_NAMESPACE::ROBFragment * > &vrobf, const EventContext &eventContext) const override
Definition: CTPResultByteStreamTool.cxx:47
IL1TriggerByteStreamTool.h
CTPResultByteStreamTool::m_inKeyCTPResult
SG::ReadHandleKey< xAOD::CTPResult > m_inKeyCTPResult
Definition: CTPResultByteStreamTool.h:54
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
CTPResultByteStreamTool::DataStatus::status_info
uint32_t status_info
Definition: CTPResultByteStreamTool.h:50
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
CTPResultByteStreamTool::robIds
virtual const std::vector< uint32_t > & robIds() const override
Definition: CTPResultByteStreamTool.h:40
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
CTPResultByteStreamTool::m_detEvType
Gaudi::Property< uint16_t > m_detEvType
Definition: CTPResultByteStreamTool.h:59
CTPResultByteStreamTool::DataStatus::rod_error
bool rod_error
Definition: CTPResultByteStreamTool.h:48
CTPResultByteStreamTool::m_outKeyCTPResult
SG::WriteHandleKey< xAOD::CTPResult > m_outKeyCTPResult
Definition: CTPResultByteStreamTool.h:55
CTPResultByteStreamTool::initialize
virtual StatusCode initialize() override
Definition: CTPResultByteStreamTool.cxx:29
CTPResultByteStreamTool
Tool for converting CTP ROB from BS to xAOD::CTPResult and from xAOD::CTPResult to BS (IL1TriggerByte...
Definition: CTPResultByteStreamTool.h:21
CTPResultByteStreamTool::DataStatus::status_word
uint32_t status_word
Definition: CTPResultByteStreamTool.h:49
CTPResultByteStreamTool::DataStatus::rob_error
bool rob_error
Definition: CTPResultByteStreamTool.h:47
CTPResultByteStreamTool::m_robIds
Gaudi::Property< std::vector< uint32_t > > m_robIds
Definition: CTPResultByteStreamTool.h:58