ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigT1
L1CaloFEX
L1CaloFEXSim
src
eFEXFPGATowerIdProvider.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3
*/
4
15
16
#ifndef EFEXFPGATOWERIDPROVIDER_H
17
#define EFEXFPGATOWERIDPROVIDER_H
18
19
20
#include "
AthenaBaseComps/AthAlgTool.h
"
21
#include <memory>
22
#include <string>
23
#include <unordered_map>
24
#include <vector>
25
26
namespace
LVL1
{
33
static
const
InterfaceID
IID_IIeFEXFPGATowerIdProvider
(
"LVL1::eFEXFPGATowerIdProvider"
, 1 , 0);
34
35
class
eFEXFPGATowerIdProvider
:
public
AthAlgTool
{
36
40
struct
towerinfo
{
41
int
eTowerID
;
42
int
eTowerEta
;
43
int
eTowerPhi
;
44
};
45
46
47
public
:
48
static
const
InterfaceID&
interfaceID
() {
return
IID_IIeFEXFPGATowerIdProvider
; };
50
eFEXFPGATowerIdProvider
(
const
std::string&
type
,
const
std::string&
name
,
const
IInterface* parent);
51
53
~eFEXFPGATowerIdProvider
();
54
56
StatusCode
initialize
();
57
59
StatusCode
setAddress
(
const
std::string& inputaddress);
60
71
StatusCode
getRankedTowerIDinFPGA
(
int
eFEXID,
int
FPGAID,
int
(&towerlist)[10][6])
const
;
72
82
StatusCode
getRankedTowerIDineFEX
(
int
eFEXID,
int
(&towerlist)[10][18])
const
;
83
bool
ifhaveinputfile
()
const
;
84
85
private
:
86
bool
m_hascsvfile
{
false
};
87
101
StatusCode
rankTowerinFPGA
(
int
FPGAindex);
102
104
std::vector<std::unique_ptr<std::vector<int>>>
m_towerrankingcache
;
105
107
std::unordered_map<int, std::unique_ptr<std::vector<towerinfo>> >
m_alltowers
;
108
110
bool
hasFPGA
(
int
)
const
;
111
113
StatusCode
loadcsv
();
114
124
int
getFPGAIndex
(
int
eFEXid,
int
FPGAid)
const
;
125
126
std::string
m_csvaddress
;
127
128
// Gaudi::Property<std::string> m_csvaddress_setting { this, "path", "xxx", "path to csv" };
129
};
130
}
131
132
#endif
AthAlgTool.h
AthAlgTool::AthAlgTool
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Definition
AthAlgTool.cxx:16
LVL1::eFEXFPGATowerIdProvider::loadcsv
StatusCode loadcsv()
load the mapping info in the csv file
Definition
eFEXFPGATowerIdProvider.cxx:196
LVL1::eFEXFPGATowerIdProvider::hasFPGA
bool hasFPGA(int) const
check if an FPGA exists in the csv file
Definition
eFEXFPGATowerIdProvider.cxx:190
LVL1::eFEXFPGATowerIdProvider::m_towerrankingcache
std::vector< std::unique_ptr< std::vector< int > > > m_towerrankingcache
Ordered tower Ids in each FPGAs. The index is the index of the FPGA.
Definition
eFEXFPGATowerIdProvider.h:104
LVL1::eFEXFPGATowerIdProvider::initialize
StatusCode initialize()
initialize the tool
Definition
eFEXFPGATowerIdProvider.cxx:18
LVL1::eFEXFPGATowerIdProvider::interfaceID
static const InterfaceID & interfaceID()
Definition
eFEXFPGATowerIdProvider.h:48
LVL1::eFEXFPGATowerIdProvider::m_hascsvfile
bool m_hascsvfile
if the csv file is valid
Definition
eFEXFPGATowerIdProvider.h:86
LVL1::eFEXFPGATowerIdProvider::rankTowerinFPGA
StatusCode rankTowerinFPGA(int FPGAindex)
rank the tower ids in an FPGA This function determines the order of towers in an FPGA.
Definition
eFEXFPGATowerIdProvider.cxx:148
LVL1::eFEXFPGATowerIdProvider::getFPGAIndex
int getFPGAIndex(int eFEXid, int FPGAid) const
determine the index of an FPGA
Definition
eFEXFPGATowerIdProvider.cxx:283
LVL1::eFEXFPGATowerIdProvider::m_alltowers
std::unordered_map< int, std::unique_ptr< std::vector< towerinfo > > > m_alltowers
Unordered tower Ids in each FPGAs. The index is the index of the FPGA.
Definition
eFEXFPGATowerIdProvider.h:107
LVL1::eFEXFPGATowerIdProvider::getRankedTowerIDinFPGA
StatusCode getRankedTowerIDinFPGA(int eFEXID, int FPGAID, int(&towerlist)[10][6]) const
obtain ordered tower IDs in an FPGA
Definition
eFEXFPGATowerIdProvider.cxx:59
LVL1::eFEXFPGATowerIdProvider::ifhaveinputfile
bool ifhaveinputfile() const
Definition
eFEXFPGATowerIdProvider.cxx:144
LVL1::eFEXFPGATowerIdProvider::getRankedTowerIDineFEX
StatusCode getRankedTowerIDineFEX(int eFEXID, int(&towerlist)[10][18]) const
obtain ordered tower IDs in an eFEX
Definition
eFEXFPGATowerIdProvider.cxx:84
LVL1::eFEXFPGATowerIdProvider::m_csvaddress
std::string m_csvaddress
path to the input csv file
Definition
eFEXFPGATowerIdProvider.h:126
LVL1::eFEXFPGATowerIdProvider::~eFEXFPGATowerIdProvider
~eFEXFPGATowerIdProvider()
Destructor.
Definition
eFEXFPGATowerIdProvider.cxx:27
LVL1::eFEXFPGATowerIdProvider::eFEXFPGATowerIdProvider
eFEXFPGATowerIdProvider(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition
eFEXFPGATowerIdProvider.cxx:12
LVL1::eFEXFPGATowerIdProvider::setAddress
StatusCode setAddress(const std::string &inputaddress)
set path to the csv file and load
Definition
eFEXFPGATowerIdProvider.cxx:33
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition
IZdcDataAccess.h:13
LVL1::IID_IIeFEXFPGATowerIdProvider
static const InterfaceID IID_IIeFEXFPGATowerIdProvider("LVL1::eFEXFPGATowerIdProvider", 1, 0)
type
LVL1::eFEXFPGATowerIdProvider::towerinfo
Sturcture defines the id, eta and phi position of a tower.
Definition
eFEXFPGATowerIdProvider.h:40
LVL1::eFEXFPGATowerIdProvider::towerinfo::eTowerEta
int eTowerEta
tower Eta index
Definition
eFEXFPGATowerIdProvider.h:42
LVL1::eFEXFPGATowerIdProvider::towerinfo::eTowerID
int eTowerID
tower ID
Definition
eFEXFPGATowerIdProvider.h:41
LVL1::eFEXFPGATowerIdProvider::towerinfo::eTowerPhi
int eTowerPhi
tower Phi index
Definition
eFEXFPGATowerIdProvider.h:43
TrigConf::name
Definition
HLTChainList.h:35
Generated on
for ATLAS Offline Software by
1.17.0