ATLAS Offline Software
Loading...
Searching...
No Matches
JepRoiByteStreamTool.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_JEPROIBYTESTREAMTOOL_H
6#define TRIGT1CALOBYTESTREAM_JEPROIBYTESTREAMTOOL_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 <class T> class FullEventAssembler;
28
29namespace LVL1 {
30 class CMMJetHits;
31 class CMMEtSums;
32 class CMMRoI;
33 class JEMRoI;
35}
36
37namespace LVL1BS {
38
40class CmmJetSubBlock;
41class JemRoiSubBlock;
43class L1CaloSrcIdMap;
44
52
54
55 public:
56 JepRoiByteStreamTool(const std::string& type, const std::string& name,
57 const IInterface* parent);
58 virtual ~JepRoiByteStreamTool();
59
61 static const InterfaceID& interfaceID();
62
63 virtual StatusCode initialize() override;
64 virtual StatusCode finalize() override;
65
67 StatusCode convert(const IROBDataProviderSvc::VROBFRAG& robFrags,
68 DataVector<LVL1::JEMRoI>* jeCollection) const;
70 StatusCode convert(const IROBDataProviderSvc::VROBFRAG& robFrags,
71 LVL1::CMMRoI* cmCollection) const;
72
74 StatusCode convert(const LVL1::JEPRoIBSCollection* jep) const;
75
77 const std::vector<uint32_t>& sourceIDs(const std::string& sgKey) const;
78
79 private:
81 { this, "ByteStreamCnvSvc", "ByteStreamCnvSvc" };
82
86 typedef std::map<uint32_t, const LVL1::JEMRoI*> JemRoiMap;
87 typedef std::map<int, const LVL1::CMMJetHits*> CmmHitsMap;
88 typedef std::map<int, const LVL1::CMMEtSums*> CmmSumsMap;
89 typedef IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator;
92
94 StatusCode convertBs(const IROBDataProviderSvc::VROBFRAG& robFrags,
95 DataVector<LVL1::JEMRoI>* jeCollection,
96 LVL1::CMMRoI* cmCollection) const;
97
99 ToolHandle<LVL1BS::L1CaloErrorByteStreamTool> m_errorTool;
100
102 const LVL1::CMMJetHits* findCmmHits(int crate, int dataID,
103 const CmmHitsMap& cmmHitsMap) const;
105 const LVL1::CMMEtSums* findCmmSums(int crate, int dataID,
106 const CmmSumsMap& cmmEtMap) const;
107
108 std::vector<uint32_t> makeSourceIDs (bool roiDaq) const;
109
111 void setupJemRoiMap(const JemRoiCollection* jeCollection,
112 JemRoiMap& roiMap) const;
114 void setupCmmHitsMap(const CmmHitsCollection* hitCollection,
115 CmmHitsMap& cmmHitsMap) const;
117 void setupCmmEtMap(const CmmSumsCollection* enCollection,
118 CmmSumsMap& cmmEtMap) const;
119
129 const int m_crates;
131 const int m_modules;
135 std::vector<uint32_t> m_sourceIDsProp;
137 std::vector<uint32_t> m_sourceIDsRoIBProp;
139 const eformat::SubDetector m_subDetector;
142};
143
144} // end namespace
145
146#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 CMM-Energy data.
Sub-Block class for CMM-Jet data.
Sub-Block class for JEM RoI data (neutral format).
std::map< int, const LVL1::CMMJetHits * > CmmHitsMap
void setupCmmHitsMap(const CmmHitsCollection *hitCollection, CmmHitsMap &cmmHitsMap) const
Set up CMM hits map.
OFFLINE_FRAGMENTS_NAMESPACE::PointerType RODPointer
std::vector< uint32_t > m_sourceIDsRoIBProp
Property: ROB source IDs for RoIB.
ServiceHandle< IByteStreamCnvSvc > m_byteStreamCnvSvc
DataVector< LVL1::CMMEtSums > CmmSumsCollection
static const InterfaceID & interfaceID()
AlgTool InterfaceID.
std::vector< uint32_t > m_sourceIDsProp
Property: ROB source IDs.
void setupJemRoiMap(const JemRoiCollection *jeCollection, JemRoiMap &roiMap) const
Set up JEM RoIs map.
const LVL1::CMMEtSums * findCmmSums(int crate, int dataID, const CmmSumsMap &cmmEtMap) const
Find CMM energy sums for given crate, data ID.
IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator
JepRoiByteStreamTool(const std::string &type, const std::string &name, const IInterface *parent)
std::map< uint32_t, const LVL1::JEMRoI * > JemRoiMap
const std::vector< uint32_t > & sourceIDs(const std::string &sgKey) const
Return reference to vector with all possible Source Identifiers.
StatusCode convert(const IROBDataProviderSvc::VROBFRAG &robFrags, DataVector< LVL1::JEMRoI > *jeCollection) const
Convert ROB fragments to JEM RoIs.
std::map< int, const LVL1::CMMEtSums * > CmmSumsMap
int m_slinks
Property: Number of slinks per crate when writing out bytestream.
OFFLINE_FRAGMENTS_NAMESPACE::PointerType ROBPointer
const LVL1::CMMJetHits * findCmmHits(int crate, int dataID, const CmmHitsMap &cmmHitsMap) const
Find CMM hits for given crate, data ID.
int m_crateOffsetHw
Property: Hardware crate number offset.
int m_crateOffsetSw
Property: Software crate number offset.
virtual StatusCode finalize() override
DataVector< LVL1::JEMRoI > JemRoiCollection
int m_version
Property: Sub_block header version.
const eformat::SubDetector m_subDetector
Sub-detector type.
DataVector< LVL1::CMMJetHits > CmmHitsCollection
const int m_modules
Number of JEM modules per crate.
std::vector< uint32_t > makeSourceIDs(bool roiDaq) const
StatusCode convertBs(const IROBDataProviderSvc::VROBFRAG &robFrags, DataVector< LVL1::JEMRoI > *jeCollection, LVL1::CMMRoI *cmCollection) const
Convert bytestream to given container type.
const int m_crates
Number of crates.
virtual StatusCode initialize() override
int m_dataFormat
Property: Data compression format.
ToolHandle< LVL1BS::L1CaloErrorByteStreamTool > m_errorTool
Error collection tool.
void setupCmmEtMap(const CmmSumsCollection *enCollection, CmmSumsMap &cmmEtMap) const
Set up CMM energy sums map.
const L1CaloSrcIdMap m_srcIdMap
Source ID converter.
Tool to accumulate ROB/ROD unpacking errors.
This class provides conversion between Lower level Source ID to higher level source ID for L1Calo Byt...
CMMEtSums object stores Et sums from the Energy CMMs.
CMMJetHits class stores Jet hit multiplicities received by and read out from the Jet CMMs.
Jet/Energy Processor RoI container for writing bytestream.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
const DataType * PointerType
Definition RawEvent.h:25