ATLAS Offline Software
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 
29 namespace 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
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
gFexTowerContainer.h
TriggerTowerContainer.h
gFexPos.h
LVL1::gFexTowerSummer::undoMLE
void undoMLE(int &datumPtr) const
Definition: gFexTowerSummer.cxx:516
LVL1::gFexTowerSummer::m_gTowersHADWriteKey
SG::WriteHandleKey< xAOD::gFexTowerContainer > m_gTowersHADWriteKey
Definition: gFexTowerSummer.h:62
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::gFexTowerSummer::m_gTowersEMWriteKey
SG::WriteHandleKey< xAOD::gFexTowerContainer > m_gTowersEMWriteKey
Definition: gFexTowerSummer.h:59
LVL1::gFexTowerSummer::signExtend
void signExtend(int *xptr, int upto) const
Definition: gFexTowerSummer.cxx:657
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
LVL1::gFexTowerSummer::m_gTowersWriteKey
SG::WriteHandleKey< xAOD::gFexTowerContainer > m_gTowersWriteKey
Definition: gFexTowerSummer.h:52
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
LVL1::gFexTowerSummer::gFexTowerSummer
gFexTowerSummer(const std::string &name, ISvcLocator *svc)
Definition: gFexTowerSummer.cxx:28
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Handler::svc
AthROOTErrorHandlerSvc * svc
Definition: AthROOTErrorHandlerSvc.cxx:10
TrigConf::name
Definition: HLTChainList.h:35
AthReentrantAlgorithm.h
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
LVL1::gFexTowerSummer::m_gFexFiberTowersReadKey
SG::ReadHandleKey< xAOD::gFexTowerContainer > m_gFexFiberTowersReadKey
Definition: gFexTowerSummer.h:48
PathResolver.h
gFexTowerAuxContainer.h
LVL1::gFexTowerSummer::m_gTowers50WriteKey
SG::WriteHandleKey< xAOD::gFexTowerContainer > m_gTowers50WriteKey
Definition: gFexTowerSummer.h:55
LVL1::gFexTowerSummer::execute
virtual StatusCode execute(const EventContext &) const override
Function executing the algorithm.
Definition: gFexTowerSummer.cxx:49
CaloCellContainer.h
LVL1::gFexTowerSummer::initialize
virtual StatusCode initialize() override
Function initialising the algorithm.
Definition: gFexTowerSummer.cxx:31
Trk::iPhi
@ iPhi
Definition: ParamDefs.h:47
LVL1::gFexTowerSummer
Definition: gFexTowerSummer.h:31
LVL1::gFEXPos::ABC_ROWS
constexpr int ABC_ROWS
Definition: gFexPos.h:61
LVL1::gFexTowerSummer::gtReconstructABC
StatusCode gtReconstructABC(const EventContext &ctx, unsigned int XFPGA, gtFPGA &XgtF, gtFPGA &Xgt, gtFPGA &Xsaturation) const
Definition: gFexTowerSummer.cxx:233
ToolHandle.h
xAOD::iEta
setScale setgFexType iEta
Definition: gFexJetRoI_v1.cxx:77
LVL1::gFexTowerSummer::gtFPGA
std::array< std::array< int, LVL1::gFEXPos::AB_COLUMNS >, LVL1::gFEXPos::ABC_ROWS > gtFPGA
Definition: gFexTowerSummer.h:41
Eta
@ Eta
Definition: RPCdef.h:8
LVL1::gFexTowerSummer::getEtaPhi
void getEtaPhi(float &Eta, float &Phi, int iEta, int iPhi, int gFEXtowerID) const
Definition: gFexTowerSummer.cxx:675