ATLAS Offline Software
Loading...
Searching...
No Matches
RodHeaderByteStreamTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRIGT1CALOBYTESTREAM_RODHEADERBYTESTREAMTOOL_H
6#define TRIGT1CALOBYTESTREAM_RODHEADERBYTESTREAMTOOL_H
7
8#include <stdint.h>
9
10#include <string>
11#include <vector>
12
13#include "eformat/SourceIdentifier.h"
14#include "GaudiKernel/ToolHandle.h"
15
16#include "L1CaloSrcIdMap.h"
21
22class IInterface;
23class InterfaceID;
24class StatusCode;
26
27namespace LVL1 {
28 class RODHeader;
29}
30
31namespace LVL1BS {
32
34class L1CaloSrcIdMap;
35
42
44
45 public:
46 RodHeaderByteStreamTool(const std::string& type, const std::string& name,
47 const IInterface* parent);
49
51 static const InterfaceID& interfaceID();
52
53 virtual StatusCode initialize() override;
54 virtual StatusCode finalize() override;
55
57 StatusCode convert(const std::string& name,
58 DataVector<LVL1::RODHeader>* rhCollection) const;
59
60 StatusCode convert(const IROBDataProviderSvc::VROBFRAG& robFrags,
61 DataVector<LVL1::RODHeader>* rhCollection) const;
62
64 const std::vector<uint32_t>& sourceIDs(const std::string& sgKey) const;
65
66 private:
68 typedef IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator;
71
73 std::vector<uint32_t> makeAllRobIds() const;
74 std::vector<uint32_t>
75 makeRobIds(int numCrates, int crateOffset,
76 const std::vector<int>& slinks, int daqOrRoi,
77 eformat::SubDetector subdet,
78 const std::vector<uint32_t>& prop) const;
79
81 bool isAppended(const std::string& sgKey, const std::string& flag) const;
82
86 ToolHandle<LVL1BS::L1CaloErrorByteStreamTool> m_errorTool;
87
89 std::vector<uint32_t> m_sourceIDsProp;
90 std::vector<uint32_t> m_sourceIDsPPProp;
91 std::vector<uint32_t> m_sourceIDsCPProp;
92 std::vector<uint32_t> m_sourceIDsJEPProp;
93 std::vector<uint32_t> m_sourceIDsCPRoIProp;
94 std::vector<uint32_t> m_sourceIDsJEPRoIProp;
95 std::vector<uint32_t> m_sourceIDsCPRoIBProp;
96 std::vector<uint32_t> m_sourceIDsJEPRoIBProp;
99
100 bool m_useSWROD = false;
101};
102
103} // end namespace
104
105#endif
An STL vector of pointers that by default owns its pointed-to elements.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Derived DataVector<T>.
Definition DataVector.h:795
Interface class for managing ROB for both online and offline.
std::vector< const ROBF * > VROBFRAG
Tool to accumulate ROB/ROD unpacking errors.
This class provides conversion between Lower level Source ID to higher level source ID for L1Calo Byt...
virtual StatusCode initialize() override
ToolHandle< LVL1BS::L1CaloErrorByteStreamTool > m_errorTool
Error collection tool.
std::vector< uint32_t > m_sourceIDsJEPProp
std::vector< uint32_t > m_sourceIDsCPRoIBProp
std::vector< uint32_t > m_sourceIDsPPProp
std::vector< uint32_t > makeAllRobIds() const
Fill vector with ROB IDs for given sub-detector.
RodHeaderByteStreamTool(const std::string &type, const std::string &name, const IInterface *parent)
std::vector< uint32_t > m_sourceIDsCPRoIProp
std::vector< uint32_t > m_sourceIDsJEPRoIProp
DataVector< LVL1::RODHeader > RodHeaderCollection
const L1CaloSrcIdMap m_srcIdMap
Source ID converter.
IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator
OFFLINE_FRAGMENTS_NAMESPACE::PointerType RODPointer
std::vector< uint32_t > m_sourceIDsProp
ROB source IDs.
virtual StatusCode finalize() override
OFFLINE_FRAGMENTS_NAMESPACE::PointerType ROBPointer
std::vector< uint32_t > makeRobIds(int numCrates, int crateOffset, const std::vector< int > &slinks, int daqOrRoi, eformat::SubDetector subdet, const std::vector< uint32_t > &prop) const
static const InterfaceID & interfaceID()
AlgTool InterfaceID.
bool isAppended(const std::string &sgKey, const std::string &flag) const
Return true if StoreGate key ends in given string.
std::vector< uint32_t > m_sourceIDsCPProp
StatusCode convert(const std::string &name, DataVector< LVL1::RODHeader > *rhCollection) const
Convert ROB fragments to RODHeaders.
ServiceHandle< IROBDataProviderSvc > m_robDataProvider
Service for reading bytestream.
std::vector< uint32_t > m_sourceIDsJEPRoIBProp
const std::vector< uint32_t > & sourceIDs(const std::string &sgKey) const
Return reference to vector with all possible Source Identifiers.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
const DataType * PointerType
Definition RawEvent.h:25