ATLAS Offline Software
eFEXSuperCellTowerIdProvider.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
16 #ifndef EFEXSUPERCELLTOWERIDPROVIDER
17 #define EFEXSUPERCELLTOWERIDPROVIDER
20 #include <string>
21 #include <unordered_map>
22 
23 namespace LVL1 {
30  static const InterfaceID IID_IIeFEXSuperCellTowerIdProvider("LVL1::eFEXSuperCellTowerIdProvider", 1 , 0);
31 
33 
37  struct towerinfo {
38  int eTowerID;
39  int slot;
40  bool isSplit;
41  };
42 
43  public:
44  static const InterfaceID& interfaceID() { return IID_IIeFEXSuperCellTowerIdProvider; };
46  eFEXSuperCellTowerIdProvider(const std::string& type,const std::string& name,const IInterface* parent);
47 
50 
52  virtual StatusCode initialize() override;
53 
55  StatusCode setAddress(const std::string&);
56 
68  StatusCode geteTowerIDandslot(uint64_t scid, int &eTowerID, int &slot, bool &issplit) const;
69 
71  bool ifhaveinputfile() const;
72 
73  private:
74  bool m_hascsvfile{false};
75 
76  std::string m_csvaddress;
77 
79  bool hasSuperCell(uint64_t) const;
80 
83 
85  std::unordered_map<uint64_t, towerinfo> m_SuperCelltoTowerIdmap;
86  };
87 }
88 #endif
LVL1::eFEXSuperCellTowerIdProvider::towerinfo::isSplit
bool isSplit
if the SuperCell Et needs to be splited
Definition: eFEXSuperCellTowerIdProvider.h:40
LVL1::eFEXSuperCellTowerIdProvider::~eFEXSuperCellTowerIdProvider
~eFEXSuperCellTowerIdProvider()
Destructor.
Definition: eFEXSuperCellTowerIdProvider.cxx:17
LVL1::eFEXSuperCellTowerIdProvider::eFEXSuperCellTowerIdProvider
eFEXSuperCellTowerIdProvider(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition: eFEXSuperCellTowerIdProvider.cxx:11
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
AthAlgorithm.h
LVL1::eFEXSuperCellTowerIdProvider::towerinfo
Sturcture stores mapping information of a SuperCell.
Definition: eFEXSuperCellTowerIdProvider.h:37
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
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
LVL1::eFEXSuperCellTowerIdProvider::towerinfo::slot
int slot
slot of the tower in which the SuperCell belongs to
Definition: eFEXSuperCellTowerIdProvider.h:39
LVL1::eFEXSuperCellTowerIdProvider::hasSuperCell
bool hasSuperCell(uint64_t) const
Check if the SuperCell id exists in the csv file.
Definition: eFEXSuperCellTowerIdProvider.cxx:67
LVL1::eFEXSuperCellTowerIdProvider::setAddress
StatusCode setAddress(const std::string &)
set the address to the csv file and load
Definition: eFEXSuperCellTowerIdProvider.cxx:31
LVL1::eFEXSuperCellTowerIdProvider::towerinfo::eTowerID
int eTowerID
tower ID
Definition: eFEXSuperCellTowerIdProvider.h:38
TrigConf::name
Definition: HLTChainList.h:35
LVL1::eFEXSuperCellTowerIdProvider::geteTowerIDandslot
StatusCode geteTowerIDandslot(uint64_t scid, int &eTowerID, int &slot, bool &issplit) const
obtain ordered tower IDs in an eFEX
Definition: eFEXSuperCellTowerIdProvider.cxx:47
LVL1::eFEXSuperCellTowerIdProvider
Provide Supercell-tower mapping Load information stored in a .csv file and provide information needed...
Definition: eFEXSuperCellTowerIdProvider.h:32
LVL1::eFEXSuperCellTowerIdProvider::m_hascsvfile
bool m_hascsvfile
if the csv file is valid
Definition: eFEXSuperCellTowerIdProvider.h:74
LVL1::eFEXSuperCellTowerIdProvider::loadcsv
StatusCode loadcsv()
load the csv file
Definition: eFEXSuperCellTowerIdProvider.cxx:80
LVL1::eFEXSuperCellTowerIdProvider::m_SuperCelltoTowerIdmap
std::unordered_map< uint64_t, towerinfo > m_SuperCelltoTowerIdmap
map to store information about SuperCells with SuperCell ID as the key.
Definition: eFEXSuperCellTowerIdProvider.h:85
LVL1::eFEXSuperCellTowerIdProvider::interfaceID
static const InterfaceID & interfaceID()
Definition: eFEXSuperCellTowerIdProvider.h:44
AthAlgTool
Definition: AthAlgTool.h:26
LVL1::eFEXSuperCellTowerIdProvider::ifhaveinputfile
bool ifhaveinputfile() const
Check if the csv file is valid.
Definition: eFEXSuperCellTowerIdProvider.cxx:76
LVL1::eFEXSuperCellTowerIdProvider::initialize
virtual StatusCode initialize() override
initialize the tool
Definition: eFEXSuperCellTowerIdProvider.cxx:21
LVL1::eFEXSuperCellTowerIdProvider::m_csvaddress
std::string m_csvaddress
path to the csv file
Definition: eFEXSuperCellTowerIdProvider.h:76