ATLAS Offline Software
Loading...
Searching...
No Matches
gFexTowerSummer.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5//***************************************************************************
6// gFexTowerSummer - description
7// -------------------
8// Builds gFexDataTowers50 and gFexDataTowers200 from gFexDataTowers
9//
10// begin : 25 06 2025
11// email : jared.little@cern.ch
12//***************************************************************************/
13
14#ifndef gFexTowerSummer_H
15#define gFexTowerSummer_H
16
17#include "AsgTools/ToolHandle.h"
26
28
29#include <string>
30#include <array>
31
32class EventContext;
33
34
35namespace LVL1 {
36
38 public:
39 gFexTowerSummer(const std::string& name, ISvcLocator* svc);
40
42 virtual StatusCode initialize() override;
44 virtual StatusCode execute(const EventContext&) const override;
45
46 typedef std::array<std::array<int, LVL1::gFEXPos::AB_COLUMNS>, LVL1::gFEXPos::ABC_ROWS> gtFPGA;
47
48
49 private:
50 // ------------------------- Properties --------------------------------------
51
52 // Read handle for gFex Data Fiber Towers
54 this, "gFexDataTowers", "L1_gFexDataTowers","gFexDataTowers container"};
55
56 // Write handle for Data Towers
58 this, "gTowers200WriteKey", "L1_gFexDataTowers200","Write gFEX 200 MeV Trigger Tower container"};
59
61 this, "gTowers50WriteKey", "L1_gFexDataTowers50", "Write gFEX 50 MeV Trigger Tower container"};
62
63 // Optionally write the towers separated by EM and HAD still to be implemented later
65 this, "gTowersEMWriteKey", "L1_gFexEmulatedEMTowers", "Write gFEX 200 MeV Trigger Tower EM container"};
66
68 this, "gTowersHADWriteKey", "L1_gFexEmulatedHADTowers", "Write gFEX 200 MeV Trigger Tower HAD container"};
69
70 // originally from bytestream conversion
71 // reconstruct gTowers from Fiber Towers
72 StatusCode gtReconstructABC(const EventContext& ctx,
73 unsigned int XFPGA,
74 gtFPGA &XgtF, gtFPGA &Xgt,
75 gtFPGA &Xsaturation) const;
76
77 void undoMLE(int &datumPtr) const;
78 void signExtend(int *xptr, int upto) const;
79 void getEtaPhi(float& Eta, float& Phi, int iEta, int iPhi,
80 int gFEXtowerID) const;
81
82};
83} // namespace LVL1
84#endif
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
An algorithm that can be simultaneously executed in multiple threads.
virtual StatusCode initialize() override
Function initialising the algorithm.
gFexTowerSummer(const std::string &name, ISvcLocator *svc)
SG::WriteHandleKey< xAOD::gFexTowerContainer > m_gTowersWriteKey
void signExtend(int *xptr, int upto) const
SG::WriteHandleKey< xAOD::gFexTowerContainer > m_gTowersHADWriteKey
std::array< std::array< int, LVL1::gFEXPos::AB_COLUMNS >, LVL1::gFEXPos::ABC_ROWS > gtFPGA
virtual StatusCode execute(const EventContext &) const override
Function executing the algorithm.
SG::ReadHandleKey< xAOD::gFexTowerContainer > m_gFexFiberTowersReadKey
SG::WriteHandleKey< xAOD::gFexTowerContainer > m_gTowersEMWriteKey
StatusCode gtReconstructABC(const EventContext &ctx, unsigned int XFPGA, gtFPGA &XgtF, gtFPGA &Xgt, gtFPGA &Xsaturation) const
SG::WriteHandleKey< xAOD::gFexTowerContainer > m_gTowers50WriteKey
void getEtaPhi(float &Eta, float &Phi, int iEta, int iPhi, int gFEXtowerID) const
void undoMLE(int &datumPtr) const
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
constexpr int ABC_ROWS
Definition gFexPos.h:63
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...