ATLAS Offline Software
eFEXFPGATowerIdProvider.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
16 #ifndef EFEXFPGATOWERIDPROVIDER_H
17 #define EFEXFPGATOWERIDPROVIDER_H
18 
21 #include <string>
22 #include <unordered_map>
23 #include <vector>
24 namespace LVL1 {
32 
36  struct towerinfo {
37  int eTowerID;
38  int eTowerEta;
39  int eTowerPhi;
40  };
41 
42 
43  public:
45  eFEXFPGATowerIdProvider(const std::string& type,const std::string& name,const IInterface* parent);
46 
49 
51  StatusCode initialize() override;
52 
54  StatusCode setAddress(const std::string& inputaddress) override;
55 
66  StatusCode getRankedTowerIDinFPGA(int eFEXID, int FPGAID, int(&towerlist)[10][6]) const override;
67 
77  StatusCode getRankedTowerIDineFEX(int eFEXID, int(&towerlist)[10][18]) const override;
78  bool ifhaveinputfile() const override;
79 
80  private:
81  bool m_hascsvfile;
82 
96  StatusCode rankTowerinFPGA(int FPGAindex) override;
97 
99  std::vector<std::vector<int>*> m_towerrankingcache;
100 
102  std::unordered_map<int, std::vector<towerinfo>* > m_alltowers;
103 
105  bool hasFPGA(int) const override;
106 
108  StatusCode loadcsv() override;
109 
119  int getFPGAIndex(int eFEXid, int FPGAid) const override;
120 
121  std::string m_csvaddress;
122 
123  // Gaudi::Property<std::string> m_csvaddress_setting { this, "path", "xxx", "path to csv" };
124  };
125 }
126 
127 #endif
LVL1::eFEXFPGATowerIdProvider::getRankedTowerIDinFPGA
StatusCode getRankedTowerIDinFPGA(int eFEXID, int FPGAID, int(&towerlist)[10][6]) const override
obtain ordered tower IDs in an FPGA
Definition: eFEXFPGATowerIdProvider.cxx:66
LVL1::eFEXFPGATowerIdProvider::~eFEXFPGATowerIdProvider
~eFEXFPGATowerIdProvider()
Destructor.
Definition: eFEXFPGATowerIdProvider.cxx:28
IeFEXFPGATowerIdProvider.h
LVL1::eFEXFPGATowerIdProvider::initialize
StatusCode initialize() override
initialize the tool
Definition: eFEXFPGATowerIdProvider.cxx:18
LVL1::eFEXFPGATowerIdProvider::towerinfo
Sturcture defines the id, eta and phi position of a tower.
Definition: eFEXFPGATowerIdProvider.h:36
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::eFEXFPGATowerIdProvider::getRankedTowerIDineFEX
StatusCode getRankedTowerIDineFEX(int eFEXID, int(&towerlist)[10][18]) const override
obtain ordered tower IDs in an eFEX
Definition: eFEXFPGATowerIdProvider.cxx:90
LVL1::eFEXFPGATowerIdProvider
Provide tower-FPGA mapping Load information stored in a .csv file and provide the IDs of all towers i...
Definition: eFEXFPGATowerIdProvider.h:31
LVL1::eFEXFPGATowerIdProvider::towerinfo::eTowerPhi
int eTowerPhi
tower Phi index
Definition: eFEXFPGATowerIdProvider.h:39
LVL1::eFEXFPGATowerIdProvider::towerinfo::eTowerEta
int eTowerEta
tower Eta index
Definition: eFEXFPGATowerIdProvider.h:38
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LVL1::eFEXFPGATowerIdProvider::ifhaveinputfile
bool ifhaveinputfile() const override
Definition: eFEXFPGATowerIdProvider.cxx:144
LVL1::eFEXFPGATowerIdProvider::setAddress
StatusCode setAddress(const std::string &inputaddress) override
set path to the csv file and load
Definition: eFEXFPGATowerIdProvider.cxx:41
TrigConf::name
Definition: HLTChainList.h:35
LVL1::eFEXFPGATowerIdProvider::towerinfo::eTowerID
int eTowerID
tower ID
Definition: eFEXFPGATowerIdProvider.h:37
LVL1::eFEXFPGATowerIdProvider::m_alltowers
std::unordered_map< int, std::vector< towerinfo > * > m_alltowers
Unordered tower Ids in each FPGAs. The index is the index of the FPGA.
Definition: eFEXFPGATowerIdProvider.h:102
LVL1::eFEXFPGATowerIdProvider::getFPGAIndex
int getFPGAIndex(int eFEXid, int FPGAid) const override
determine the index of an FPGA
Definition: eFEXFPGATowerIdProvider.cxx:288
LVL1::eFEXFPGATowerIdProvider::rankTowerinFPGA
StatusCode rankTowerinFPGA(int FPGAindex) override
rank the tower ids in an FPGA This function determines the order of towers in an FPGA.
Definition: eFEXFPGATowerIdProvider.cxx:148
LVL1::IeFEXFPGATowerIdProvider
Definition: IeFEXFPGATowerIdProvider.h:15
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LVL1::eFEXFPGATowerIdProvider::loadcsv
StatusCode loadcsv() override
load the mapping info in the csv file
Definition: eFEXFPGATowerIdProvider.cxx:199
LVL1::eFEXFPGATowerIdProvider::hasFPGA
bool hasFPGA(int) const override
check if an FPGA exists in the csv file
Definition: eFEXFPGATowerIdProvider.cxx:189
LVL1::eFEXFPGATowerIdProvider::m_csvaddress
std::string m_csvaddress
path to the input csv file
Definition: eFEXFPGATowerIdProvider.h:121
LVL1::eFEXFPGATowerIdProvider::m_hascsvfile
bool m_hascsvfile
if the csv file is valid
Definition: eFEXFPGATowerIdProvider.h:81
LVL1::eFEXFPGATowerIdProvider::eFEXFPGATowerIdProvider
eFEXFPGATowerIdProvider(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition: eFEXFPGATowerIdProvider.cxx:12
LVL1::eFEXFPGATowerIdProvider::m_towerrankingcache
std::vector< std::vector< int > * > m_towerrankingcache
Ordered tower Ids in each FPGAs. The index is the index of the FPGA.
Definition: eFEXFPGATowerIdProvider.h:99
AthAlgTool
Definition: AthAlgTool.h:26