ATLAS Offline Software
Loading...
Searching...
No Matches
JepRoiByteStreamV2Tool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRIGT1CALOBYTESTREAM_JEPROIBYTESTREAMV2TOOL_H
6#define TRIGT1CALOBYTESTREAM_JEPROIBYTESTREAMV2TOOL_H
7
8#include <stdint.h>
9
10#include <map>
11#include <string>
12#include <vector>
13
19#include "eformat/SourceIdentifier.h"
20#include "GaudiKernel/ToolHandle.h"
21#include "CmxEnergySubBlock.h"
22
23class IInterface;
24class InterfaceID;
25class StatusCode;
26
27template <class T> class FullEventAssembler;
28
29namespace LVL1 {
30 class CMXEtSums;
31 class CMXRoI;
32 class JEMTobRoI;
34}
35
36namespace LVL1BS {
37
40class L1CaloSrcIdMap;
41
49
51
52 public:
53 JepRoiByteStreamV2Tool(const std::string& type, const std::string& name,
54 const IInterface* parent);
56
58 static const InterfaceID& interfaceID();
59
60 virtual StatusCode initialize() override;
61 virtual StatusCode finalize() override;
62
64 StatusCode convert(const EventContext& ctx,
65 const std::string& name,
66 DataVector<LVL1::JEMTobRoI>* jeCollection) const;
67 StatusCode convert(const IROBDataProviderSvc::VROBFRAG& robFrags,
68 DataVector<LVL1::JEMTobRoI>* jeCollection) const;
70 StatusCode convert(const EventContext& ctx,
71 const std::string& name,
72 LVL1::CMXRoI* cmCollection) const;
73
74 StatusCode convert(const IROBDataProviderSvc::VROBFRAG& robFrags,
75 LVL1::CMXRoI* cmCollection) const;
76
78 StatusCode convert(const LVL1::JEPRoIBSCollectionV2* jep) const;
79
81 const std::vector<uint32_t>& sourceIDs(const std::string& sgKey) const;
82
83 private:
85 { this, "ByteStreamCnvSvc", "ByteStreamCnvSvc" };
86
89 typedef std::map<uint32_t, const LVL1::JEMTobRoI*> JemRoiMap;
90 typedef std::map<int, const LVL1::CMXEtSums*> CmxSumsMap;
91 typedef IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator;
94
96 StatusCode convertBs(const IROBDataProviderSvc::VROBFRAG& robFrags,
97 DataVector<LVL1::JEMTobRoI>* jeCollection,
98 LVL1::CMXRoI* cmCollection) const;
99
102 ToolHandle<LVL1BS::L1CaloErrorByteStreamTool> m_errorTool;
103
105 const LVL1::CMXEtSums* findCmxSums(int crate, int source,
106 const CmxSumsMap& cmxEtMap) const;
107
108 std::vector<uint32_t> makeSourceIDs (bool roiDaq) const;
109
111 void setupJemRoiMap(const JemRoiCollection* jeCollection,
112 JemRoiMap& roiMap) const;
114 void setupCmxEtMap(const CmxSumsCollection* enCollection,
115 CmxSumsMap& cmxEtMap) const;
116
118 void energySubBlockTypes(int source,
121 CmxEnergySubBlock::HitsType& hitType) const;
122
132 const int m_crates;
134 const int m_modules;
136 const int m_frames;
138 const int m_maxRoiWords;
146 std::vector<uint32_t> m_sourceIDsProp;
148 std::vector<uint32_t> m_sourceIDsRoIBProp;
150 const eformat::SubDetector m_subDetector;
153};
154
155} // end namespace
156
157#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
Template class for assembling a full atlas raw event from subfragments.
std::vector< const ROBF * > VROBFRAG
Sub-Block class for JEM RoI data (neutral format) post-LS1.
OFFLINE_FRAGMENTS_NAMESPACE::PointerType ROBPointer
OFFLINE_FRAGMENTS_NAMESPACE::PointerType RODPointer
int m_crateOffsetHw
Property: Hardware crate number offset.
void setupJemRoiMap(const JemRoiCollection *jeCollection, JemRoiMap &roiMap) const
Set up JEM RoIs map.
static const InterfaceID & interfaceID()
AlgTool InterfaceID.
const int m_crates
Number of crates.
IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator
int m_crateMax
Property: Maximum crate number when writing out bytestream.
int m_version
Property: Sub_block header version.
const int m_modules
Number of JEM modules per crate.
std::vector< uint32_t > makeSourceIDs(bool roiDaq) const
const int m_maxRoiWords
Number of CMX energy RoI words.
DataVector< LVL1::CMXEtSums > CmxSumsCollection
virtual StatusCode finalize() override
const eformat::SubDetector m_subDetector
Sub-detector type.
ServiceHandle< IByteStreamCnvSvc > m_byteStreamCnvSvc
int m_dataFormat
Property: Data compression format.
void energySubBlockTypes(int source, CmxEnergySubBlock::SourceType &srcType, CmxEnergySubBlock::SumType &sumType, CmxEnergySubBlock::HitsType &hitType) const
Get energy subBlock types from CMXEtSums source type.
virtual StatusCode initialize() override
const int m_frames
Number of RoI frames.
int m_crateMin
Property: Minimum crate number when writing out bytestream.
StatusCode convertBs(const IROBDataProviderSvc::VROBFRAG &robFrags, DataVector< LVL1::JEMTobRoI > *jeCollection, LVL1::CMXRoI *cmCollection) const
Convert bytestream to given container type.
void setupCmxEtMap(const CmxSumsCollection *enCollection, CmxSumsMap &cmxEtMap) const
Set up CMX energy sums map.
int m_slinks
Property: Number of slinks per crate when writing out bytestream.
std::vector< uint32_t > m_sourceIDsRoIBProp
Property: ROB source IDs for RoIB.
JepRoiByteStreamV2Tool(const std::string &type, const std::string &name, const IInterface *parent)
int m_crateOffsetSw
Property: Software crate number offset.
const LVL1::CMXEtSums * findCmxSums(int crate, int source, const CmxSumsMap &cmxEtMap) const
Find CMX energy sums for given crate, source.
StatusCode convert(const EventContext &ctx, const std::string &name, DataVector< LVL1::JEMTobRoI > *jeCollection) const
Convert ROB fragments to JEM RoIs.
ServiceHandle< IROBDataProviderSvc > m_robDataProvider
DataVector< LVL1::JEMTobRoI > JemRoiCollection
std::map< int, const LVL1::CMXEtSums * > CmxSumsMap
const L1CaloSrcIdMap m_srcIdMap
Source ID converter.
ToolHandle< LVL1BS::L1CaloErrorByteStreamTool > m_errorTool
Property: Error collection tool.
std::vector< uint32_t > m_sourceIDsProp
Property: ROB source IDs.
const std::vector< uint32_t > & sourceIDs(const std::string &sgKey) const
Return reference to vector with all possible Source Identifiers.
std::map< uint32_t, const LVL1::JEMTobRoI * > JemRoiMap
Tool to accumulate ROB/ROD unpacking errors.
This class provides conversion between Lower level Source ID to higher level source ID for L1Calo Byt...
CMXEtSums object stores Et sums from the Energy CMXs.
Jet/Energy Processor RoI container for writing bytestream post-LS1.
::StatusCode StatusCode
StatusCode definition for legacy code.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
const DataType * PointerType
Definition RawEvent.h:25