ATLAS Offline Software
Loading...
Searching...
No Matches
CpmRoiByteStreamV2Tool.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_CPMROIBYTESTREAMV2TOOL_H
6#define TRIGT1CALOBYTESTREAM_CPMROIBYTESTREAMV2TOOL_H
7
8#include <stdint.h>
9
10#include <map>
11#include <string>
12#include <vector>
13
14#include "L1CaloSrcIdMap.h"
20#include "eformat/SourceIdentifier.h"
21#include "GaudiKernel/ToolHandle.h"
22
23class IInterface;
24class InterfaceID;
25class StatusCode;
26
27template <typename> class FullEventAssembler;
28
29namespace LVL1 {
30 class CPMTobRoI;
31}
32
33namespace LVL1BS {
34
37class L1CaloSrcIdMap;
38
46
48
49 public:
50 CpmRoiByteStreamV2Tool(const std::string& type, const std::string& name,
51 const IInterface* parent);
53
55 static const InterfaceID& interfaceID();
56
57 virtual StatusCode initialize() override;
58
60 StatusCode convert(const std::string& robFrags,
61 DataVector<LVL1::CPMTobRoI>* roiCollection) const;
62 StatusCode convert(const IROBDataProviderSvc::VROBFRAG& robFrags,
63 DataVector<LVL1::CPMTobRoI>* roiCollection) const;
64
66 StatusCode convert(const DataVector<LVL1::CPMTobRoI>* roiCollection) const;
67
69 const std::vector<uint32_t>& sourceIDs(const std::string& sgKey) const;
70
71 private:
73 { this, "ByteStreamCnvSvc", "ByteStreamCnvSvc" };
74
76 typedef std::map<uint32_t, const LVL1::CPMTobRoI*> CpmRoiMap;
77 typedef IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator;
80
81 std::vector<uint32_t> makeSourceIDs (bool roiDaq) const;
82
84 void setupCpmRoiMap(const CpmRoiCollection* roiCollection,
85 CpmRoiMap& roiMap) const;
86
89 ToolHandle<LVL1BS::L1CaloErrorByteStreamTool> m_errorTool;
90
100 const int m_crates;
102 const int m_modules;
110 std::vector<uint32_t> m_sourceIDsProp;
112 std::vector<uint32_t> m_sourceIDsRoIBProp;
114 const eformat::SubDetector m_subDetector;
117
118 // Property: M7 format follows old specification, so we have two zeros
119 // as most significant bits instead of 0xa
121};
122
123} // end namespace
124
125#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
const eformat::SubDetector m_subDetector
Sub-detector type.
void setupCpmRoiMap(const CpmRoiCollection *roiCollection, CpmRoiMap &roiMap) const
Set up CPM RoI map.
int m_crateOffsetHw
Property: Hardware crate number offset.
int m_crateMin
Property: Minimum crate number when writing out bytestream.
ServiceHandle< IROBDataProviderSvc > m_robDataProvider
int m_crateOffsetSw
Property: Software crate number offset.
virtual StatusCode initialize() override
std::vector< uint32_t > m_sourceIDsRoIBProp
Property: ROB source IDs for RoIB.
const L1CaloSrcIdMap m_srcIdMap
Source ID converter.
DataVector< LVL1::CPMTobRoI > CpmRoiCollection
static const InterfaceID & interfaceID()
AlgTool InterfaceID.
int m_version
Property: Sub_block header version.
CpmRoiByteStreamV2Tool(const std::string &type, const std::string &name, const IInterface *parent)
ToolHandle< LVL1BS::L1CaloErrorByteStreamTool > m_errorTool
Property: Error collection tool.
std::map< uint32_t, const LVL1::CPMTobRoI * > CpmRoiMap
OFFLINE_FRAGMENTS_NAMESPACE::PointerType ROBPointer
const int m_modules
Number of CPM modules per crate.
int m_crateMax
Property: Maximum crate number when writing out bytestream.
int m_dataFormat
Property: Data compression format.
ServiceHandle< IByteStreamCnvSvc > m_byteStreamCnvSvc
std::vector< uint32_t > makeSourceIDs(bool roiDaq) const
int m_slinks
Property: Number of slinks per crate when writing out bytestream.
const int m_crates
Number of crates.
const std::vector< uint32_t > & sourceIDs(const std::string &sgKey) const
Return reference to vector with all possible Source Identifiers.
std::vector< uint32_t > m_sourceIDsProp
Property: ROB source IDs.
IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator
StatusCode convert(const std::string &robFrags, DataVector< LVL1::CPMTobRoI > *roiCollection) const
Convert ROB fragments to CPM RoIs.
OFFLINE_FRAGMENTS_NAMESPACE::PointerType RODPointer
Sub-Block class for CPM RoI data (neutral format) post LS1.
Tool to accumulate ROB/ROD unpacking errors.
This class provides conversion between Lower level Source ID to higher level source ID for L1Calo Byt...
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
const DataType * PointerType
Definition RawEvent.h:25