ATLAS Offline Software
Loading...
Searching...
No Matches
JepRoiByteStreamV2Tool.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_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 std::string& name,
65 DataVector<LVL1::JEMTobRoI>* jeCollection) const;
66 StatusCode convert(const IROBDataProviderSvc::VROBFRAG& robFrags,
67 DataVector<LVL1::JEMTobRoI>* jeCollection) const;
69 StatusCode convert(const std::string& name,
70 LVL1::CMXRoI* cmCollection) const;
71
72 StatusCode convert(const IROBDataProviderSvc::VROBFRAG& robFrags,
73 LVL1::CMXRoI* cmCollection) const;
74
76 StatusCode convert(const LVL1::JEPRoIBSCollectionV2* jep) const;
77
79 const std::vector<uint32_t>& sourceIDs(const std::string& sgKey) const;
80
81 private:
83 { this, "ByteStreamCnvSvc", "ByteStreamCnvSvc" };
84
87 typedef std::map<uint32_t, const LVL1::JEMTobRoI*> JemRoiMap;
88 typedef std::map<int, const LVL1::CMXEtSums*> CmxSumsMap;
89 typedef IROBDataProviderSvc::VROBFRAG::const_iterator ROBIterator;
92
94 StatusCode convertBs(const IROBDataProviderSvc::VROBFRAG& robFrags,
95 DataVector<LVL1::JEMTobRoI>* jeCollection,
96 LVL1::CMXRoI* cmCollection) const;
97
100 ToolHandle<LVL1BS::L1CaloErrorByteStreamTool> m_errorTool;
101
103 const LVL1::CMXEtSums* findCmxSums(int crate, int source,
104 const CmxSumsMap& cmxEtMap) const;
105
106 std::vector<uint32_t> makeSourceIDs (bool roiDaq) const;
107
109 void setupJemRoiMap(const JemRoiCollection* jeCollection,
110 JemRoiMap& roiMap) const;
112 void setupCmxEtMap(const CmxSumsCollection* enCollection,
113 CmxSumsMap& cmxEtMap) const;
114
116 void energySubBlockTypes(int source,
119 CmxEnergySubBlock::HitsType& hitType) const;
120
130 const int m_crates;
132 const int m_modules;
134 const int m_frames;
136 const int m_maxRoiWords;
144 std::vector<uint32_t> m_sourceIDsProp;
146 std::vector<uint32_t> m_sourceIDsRoIBProp;
148 const eformat::SubDetector m_subDetector;
151};
152
153} // end namespace
154
155#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.
ServiceHandle< IROBDataProviderSvc > m_robDataProvider
DataVector< LVL1::JEMTobRoI > JemRoiCollection
StatusCode convert(const std::string &name, DataVector< LVL1::JEMTobRoI > *jeCollection) const
Convert ROB fragments to JEM RoIs.
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.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
const DataType * PointerType
Definition RawEvent.h:25