ATLAS Offline Software
Loading...
Searching...
No Matches
JepRoiByteStreamV1Tool.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_JEPROIBYTESTREAMV1TOOL_H
6#define TRIGT1CALOBYTESTREAM_JEPROIBYTESTREAMV1TOOL_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;
43class L1CaloSrcIdMap;
44
52
54
55 public:
56 JepRoiByteStreamV1Tool(const std::string& type, const std::string& name,
57 const IInterface* parent);
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::JEPRoIBSCollectionV1* 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;
139 std::vector<uint32_t> m_sourceIDsProp;
141 std::vector<uint32_t> m_sourceIDsRoIBProp;
143 const eformat::SubDetector m_subDetector;
146};
147
148} // end namespace
149
150#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) pre-LS1.
ToolHandle< LVL1BS::L1CaloErrorByteStreamTool > m_errorTool
Property: Error collection tool.
const LVL1::CMMEtSums * findCmmSums(int crate, int dataID, const CmmSumsMap &cmmEtMap) const
Find CMM energy sums for given crate, data ID.
int m_version
Property: Sub_block header version.
const eformat::SubDetector m_subDetector
Sub-detector type.
DataVector< LVL1::CMMJetHits > CmmHitsCollection
std::vector< uint32_t > m_sourceIDsProp
Property: ROB source IDs.
DataVector< LVL1::JEMRoI > JemRoiCollection
int m_crateMin
Property: Minimum crate number when writing out bytestream.
OFFLINE_FRAGMENTS_NAMESPACE::PointerType RODPointer
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.
ServiceHandle< IByteStreamCnvSvc > m_byteStreamCnvSvc
int m_crateOffsetSw
Property: Software crate number offset.
int m_crateMax
Property: Maximum crate number when writing out bytestream.
void setupJemRoiMap(const JemRoiCollection *jeCollection, JemRoiMap &roiMap) const
Set up JEM RoIs map.
int m_crateOffsetHw
Property: Hardware crate number offset.
JepRoiByteStreamV1Tool(const std::string &type, const std::string &name, const IInterface *parent)
DataVector< LVL1::CMMEtSums > CmmSumsCollection
const int m_crates
Number of crates.
std::map< int, const LVL1::CMMEtSums * > CmmSumsMap
const LVL1::CMMJetHits * findCmmHits(int crate, int dataID, const CmmHitsMap &cmmHitsMap) const
Find CMM hits for given crate, data ID.
static const InterfaceID & interfaceID()
AlgTool InterfaceID.
int m_slinks
Property: Number of slinks per crate when writing out bytestream.
IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator
void setupCmmHitsMap(const CmmHitsCollection *hitCollection, CmmHitsMap &cmmHitsMap) const
Set up CMM hits map.
std::vector< uint32_t > makeSourceIDs(bool roiDaq) const
OFFLINE_FRAGMENTS_NAMESPACE::PointerType ROBPointer
virtual StatusCode initialize() override
const int m_modules
Number of JEM modules per crate.
const L1CaloSrcIdMap m_srcIdMap
Source ID converter.
StatusCode convert(const IROBDataProviderSvc::VROBFRAG &robFrags, DataVector< LVL1::JEMRoI > *jeCollection) const
Convert ROB fragments to JEM RoIs.
void setupCmmEtMap(const CmmSumsCollection *enCollection, CmmSumsMap &cmmEtMap) const
Set up CMM energy sums map.
StatusCode convertBs(const IROBDataProviderSvc::VROBFRAG &robFrags, DataVector< LVL1::JEMRoI > *jeCollection, LVL1::CMMRoI *cmCollection) const
Convert bytestream to given container type.
int m_dataFormat
Property: Data compression format.
std::map< int, const LVL1::CMMJetHits * > CmmHitsMap
virtual StatusCode finalize() override
std::vector< uint32_t > m_sourceIDsRoIBProp
Property: ROB source IDs for RoIB.
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 pre-LS1.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
const DataType * PointerType
Definition RawEvent.h:25