ATLAS Offline Software
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 
22 class IInterface;
23 class InterfaceID;
24 class StatusCode;
26 
27 namespace LVL1 {
28  class RODHeader;
29 }
30 
31 namespace LVL1BS {
32 
33 class L1CaloErrorByteStreamTool;
34 class L1CaloSrcIdMap;
35 
44 
45  public:
46  RodHeaderByteStreamTool(const std::string& type, const std::string& name,
47  const IInterface* parent);
48  virtual ~RodHeaderByteStreamTool();
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 
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
LVL1BS::RodHeaderByteStreamTool::finalize
virtual StatusCode finalize() override
Definition: RodHeaderByteStreamTool.cxx:99
LVL1BS::RodHeaderByteStreamTool::makeAllRobIds
std::vector< uint32_t > makeAllRobIds() const
Fill vector with ROB IDs for given sub-detector.
Definition: RodHeaderByteStreamTool.cxx:274
LVL1BS::RodHeaderByteStreamTool::m_sourceIDsProp
std::vector< uint32_t > m_sourceIDsProp
ROB source IDs.
Definition: RodHeaderByteStreamTool.h:89
LVL1BS::RodHeaderByteStreamTool::RodHeaderByteStreamTool
RodHeaderByteStreamTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: RodHeaderByteStreamTool.cxx:46
LVL1BS::L1CaloSrcIdMap
This class provides conversion between Lower level Source ID to higher level source ID for L1Calo Byt...
Definition: L1CaloSrcIdMap.h:24
LVL1BS::RodHeaderByteStreamTool::m_useSWROD
bool m_useSWROD
Definition: RodHeaderByteStreamTool.h:100
LVL1BS::RodHeaderByteStreamTool::m_robDataProvider
ServiceHandle< IROBDataProviderSvc > m_robDataProvider
Service for reading bytestream.
Definition: RodHeaderByteStreamTool.h:84
LVL1BS::RodHeaderByteStreamTool::RodHeaderCollection
DataVector< LVL1::RODHeader > RodHeaderCollection
Definition: RodHeaderByteStreamTool.h:67
LVL1BS::RodHeaderByteStreamTool::ROBIterator
IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator
Definition: RodHeaderByteStreamTool.h:68
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1BS::RodHeaderByteStreamTool::m_sourceIDsJEPRoIBProp
std::vector< uint32_t > m_sourceIDsJEPRoIBProp
Definition: RodHeaderByteStreamTool.h:96
LVL1BS::RodHeaderByteStreamTool::m_srcIdMap
const L1CaloSrcIdMap m_srcIdMap
Source ID converter.
Definition: RodHeaderByteStreamTool.h:98
LVL1BS::RodHeaderByteStreamTool::m_errorTool
ToolHandle< LVL1BS::L1CaloErrorByteStreamTool > m_errorTool
Error collection tool.
Definition: RodHeaderByteStreamTool.h:86
IROBDataProviderSvc
Interface class for managing ROB for both online and offline.
Definition: IROBDataProviderSvc.h:23
OFFLINE_FRAGMENTS_NAMESPACE::PointerType
const DataType * PointerType
Definition: RawEvent.h:25
LVL1BS::RodHeaderByteStreamTool::m_sourceIDsCPRoIBProp
std::vector< uint32_t > m_sourceIDsCPRoIBProp
Definition: RodHeaderByteStreamTool.h:95
LVL1BS::RodHeaderByteStreamTool::~RodHeaderByteStreamTool
virtual ~RodHeaderByteStreamTool()
Definition: RodHeaderByteStreamTool.cxx:79
RawEvent.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LVL1BS::RodHeaderByteStreamTool
Tool to perform ROB fragments to ROD Header conversions.
Definition: RodHeaderByteStreamTool.h:43
master.flag
bool flag
Definition: master.py:29
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LVL1BS::RodHeaderByteStreamTool::m_sourceIDsCPProp
std::vector< uint32_t > m_sourceIDsCPProp
Definition: RodHeaderByteStreamTool.h:91
IROBDataProviderSvc::VROBFRAG
std::vector< const ROBF * > VROBFRAG
Definition: IROBDataProviderSvc.h:27
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
LVL1BS::RodHeaderByteStreamTool::makeRobIds
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
Definition: RodHeaderByteStreamTool.cxx:292
LVL1BS::RodHeaderByteStreamTool::isAppended
bool isAppended(const std::string &sgKey, const std::string &flag) const
Return true if StoreGate key ends in given string.
Definition: RodHeaderByteStreamTool.cxx:320
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
LVL1BS::RodHeaderByteStreamTool::m_sourceIDsJEPProp
std::vector< uint32_t > m_sourceIDsJEPProp
Definition: RodHeaderByteStreamTool.h:92
LVL1BS::RodHeaderByteStreamTool::m_sourceIDsJEPRoIProp
std::vector< uint32_t > m_sourceIDsJEPRoIProp
Definition: RodHeaderByteStreamTool.h:94
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
LVL1BS::RodHeaderByteStreamTool::convert
StatusCode convert(const std::string &name, DataVector< LVL1::RODHeader > *rhCollection) const
Convert ROB fragments to RODHeaders.
Definition: RodHeaderByteStreamTool.cxx:107
LVL1BS::RodHeaderByteStreamTool::RODPointer
OFFLINE_FRAGMENTS_NAMESPACE::PointerType RODPointer
Definition: RodHeaderByteStreamTool.h:70
xAOD::RODHeader
RODHeader_v2 RODHeader
Define the latest version of the RODHeader class.
Definition: Event/xAOD/xAODTrigL1Calo/xAODTrigL1Calo/RODHeader.h:14
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LVL1BS
Definition: ZdcModifySlices.h:10
LVL1BS::RodHeaderByteStreamTool::m_sourceIDsCPRoIProp
std::vector< uint32_t > m_sourceIDsCPRoIProp
Definition: RodHeaderByteStreamTool.h:93
LVL1BS::RodHeaderByteStreamTool::ROBPointer
OFFLINE_FRAGMENTS_NAMESPACE::PointerType ROBPointer
Definition: RodHeaderByteStreamTool.h:69
L1CaloSrcIdMap.h
AthAlgTool
Definition: AthAlgTool.h:26
LVL1BS::RodHeaderByteStreamTool::initialize
virtual StatusCode initialize() override
Definition: RodHeaderByteStreamTool.cxx:86
LVL1BS::RodHeaderByteStreamTool::interfaceID
static const InterfaceID & interfaceID()
AlgTool InterfaceID.
Definition: RodHeaderByteStreamTool.cxx:39
IROBDataProviderSvc.h
LVL1BS::RodHeaderByteStreamTool::sourceIDs
const std::vector< uint32_t > & sourceIDs(const std::string &sgKey) const
Return reference to vector with all possible Source Identifiers.
Definition: RodHeaderByteStreamTool.cxx:208
ServiceHandle< IROBDataProviderSvc >
LVL1BS::RodHeaderByteStreamTool::m_sourceIDsPPProp
std::vector< uint32_t > m_sourceIDsPPProp
Definition: RodHeaderByteStreamTool.h:90