ATLAS Offline Software
Loading...
Searching...
No Matches
CpmRoiByteStreamV1Tool.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_CPMROIBYTESTREAMV1TOOL_H
6#define TRIGT1CALOBYTESTREAM_CPMROIBYTESTREAMV1TOOL_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 CPMRoI;
31}
32
33namespace LVL1BS {
34
37class L1CaloSrcIdMap;
38
46
48
49 public:
50 CpmRoiByteStreamV1Tool(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 IROBDataProviderSvc::VROBFRAG& robFrags,
61 DataVector<LVL1::CPMRoI>* roiCollection) const;
62
64 StatusCode convert(const DataVector<LVL1::CPMRoI>* roiCollection) const;
65
67 const std::vector<uint32_t>& sourceIDs(const std::string& sgKey) const;
68
69 private:
71 { this, "ByteStreamCnvSvc", "ByteStreamCnvSvc" };
72
74 typedef std::map<uint32_t, const LVL1::CPMRoI*> CpmRoiMap;
75 typedef IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator;
78
79 std::vector<uint32_t> makeSourceIDs (bool roiDaq) const;
80
82 void setupCpmRoiMap(const CpmRoiCollection* roiCollection,
83 CpmRoiMap& roiMap) const;
84
86 ToolHandle<LVL1BS::L1CaloErrorByteStreamTool> m_errorTool;
87
97 const int m_crates;
99 const int m_modules;
107 std::vector<uint32_t> m_sourceIDsProp;
109 std::vector<uint32_t> m_sourceIDsRoIBProp;
111 const eformat::SubDetector m_subDetector;
114};
115
116} // end namespace
117
118#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
std::vector< uint32_t > makeSourceIDs(bool roiDaq) const
int m_version
Property: Sub_block header version.
StatusCode convert(const IROBDataProviderSvc::VROBFRAG &robFrags, DataVector< LVL1::CPMRoI > *roiCollection) const
Convert ROB fragments to CPM RoIs.
const int m_crates
Number of crates.
static const InterfaceID & interfaceID()
AlgTool InterfaceID.
int m_crateOffsetSw
Property: Software crate number offset.
const L1CaloSrcIdMap m_srcIdMap
Source ID converter.
int m_crateMin
Property: Minimum crate number when writing out bytestream.
ToolHandle< LVL1BS::L1CaloErrorByteStreamTool > m_errorTool
Property: Error collection tool.
const int m_modules
Number of CPM modules per crate.
virtual StatusCode initialize() override
OFFLINE_FRAGMENTS_NAMESPACE::PointerType RODPointer
void setupCpmRoiMap(const CpmRoiCollection *roiCollection, CpmRoiMap &roiMap) const
Set up CPM RoI map.
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.
OFFLINE_FRAGMENTS_NAMESPACE::PointerType ROBPointer
ServiceHandle< IByteStreamCnvSvc > m_byteStreamCnvSvc
int m_dataFormat
Property: Data compression format.
std::map< uint32_t, const LVL1::CPMRoI * > CpmRoiMap
const eformat::SubDetector m_subDetector
Sub-detector type.
CpmRoiByteStreamV1Tool(const std::string &type, const std::string &name, const IInterface *parent)
std::vector< uint32_t > m_sourceIDsRoIBProp
Property: ROB source IDs for RoIB.
int m_slinks
Property: Number of slinks per crate when writing out bytestream.
DataVector< LVL1::CPMRoI > CpmRoiCollection
int m_crateMax
Property: Maximum crate number when writing out bytestream.
IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator
int m_crateOffsetHw
Property: Hardware crate number offset.
Sub-Block class for CPM RoI data (neutral format).
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