ATLAS Offline Software
Loading...
Searching...
No Matches
gFexTowerSummer.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 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
29namespace LVL1 {
30
32 public:
33 gFexTowerSummer(const std::string& name, ISvcLocator* svc);
34
36 virtual StatusCode initialize() override;
38 virtual StatusCode execute(const EventContext&) const override;
39
40 //typedef std::array<std::array<int, 12>, 32> gtFPGA;
41 typedef std::array<std::array<int, LVL1::gFEXPos::AB_COLUMNS>, LVL1::gFEXPos::ABC_ROWS> gtFPGA;
42
43
44 private:
45 // ------------------------- Properties --------------------------------------
46
47 // Read handle for gFex Data Fiber Towers
49 this, "gFexDataTowers", "L1_gFexDataTowers","gFexDataTowers container"};
50
51 // Write handle for Data Towers
53 this, "gTowers200WriteKey", "L1_gFexDataTowers200","Write gFEX 200 MeV Trigger Tower container"};
54
56 this, "gTowers50WriteKey", "L1_gFexDataTowers50", "Write gFEX 50 MeV Trigger Tower container"};
57
58 // Optionally write the towers separated by EM and HAD still to be implemented later
60 this, "gTowersEMWriteKey", "L1_gFexEmulatedEMTowers", "Write gFEX 200 MeV Trigger Tower EM container"};
61
63 this, "gTowersHADWriteKey", "L1_gFexEmulatedHADTowers", "Write gFEX 200 MeV Trigger Tower HAD container"};
64
65 // originally from bytestream conversion
66 // reconstruct gTowers from Fiber Towers
67 StatusCode gtReconstructABC(const EventContext& ctx,
68 unsigned int XFPGA,
69 gtFPGA &XgtF, gtFPGA &Xgt,
70 gtFPGA &Xsaturation) const;
71
72 void undoMLE(int &datumPtr) const;
73 void signExtend(int *xptr, int upto) const;
74 void getEtaPhi(float& Eta, float& Phi, int iEta, int iPhi,
75 int gFEXtowerID) const;
76
77};
78} // namespace LVL1
79#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:62
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...