ATLAS Offline Software
Loading...
Searching...
No Matches
gFEXJwoJAlgo.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// gFEXJwoJAlgo - Jets without jets algorithm for gFEX
6// -------------------
7// begin : 10 08 2021
8// email : cecilia.tosciri@cern.ch
9//***************************************************************************
10
11#ifndef gFEXJwoJAlgo_H
12#define gFEXJwoJAlgo_H
13
15#include "L1CaloFEXToolInterfaces/IgFEXJwoJAlgo.h" //also has gTowersType typedef
17
18
19#include <vector>
20#include <memory>
21#include <cstdint>
22#include <string>
23#include <array>
24
25class gFEXJwoJTOB;
26
27namespace LVL1 {
28
29 class gFEXJwoJAlgo : public AthAlgTool, virtual public IgFEXJwoJAlgo {
30
31 public:
33 gFEXJwoJAlgo(const std::string& type, const std::string& name, const IInterface* parent);
34
36 virtual StatusCode initialize() override;
37
38
39 virtual void setAlgoConstant(int aFPGA_A, int bFPGA_A,
40 int aFPGA_B, int bFPGA_B,
41 int aFPGA_C, int bFPGA_C,
42 int gXE_seedThrA, int gXE_seedThrB, int gXE_seedThrC) override;
43
44 virtual std::vector<std::unique_ptr<gFEXJwoJTOB>> jwojAlgo(const gTowersType& Atwr, int pucA_JWJ,
45 const gTowersType& Btwr, int pucB_JWJ,
46 const gTowersType& Ctwr, int pucC_JWJ,
47 std::array<int32_t, 4> & outTOB) const override;
48
49
50
51 private:
52 SG::ReadCondHandleKey<gFEXDBCondData> m_DBToolKey{this, "DBToolKey", "gFEXDBParams", "Database tool key"};
53
54 float m_aFPGA_A{};
55 float m_bFPGA_A{};
56 float m_aFPGA_B{};
57 float m_bFPGA_B{};
58 float m_aFPGA_C{};
59 float m_bFPGA_C{};
63 std::string m_fwVersion;
64
65
66 void gBlockAB(const gTowersType & twrs, gTowersType & gBlkSum, gTowersType & hasSeed, int seedThreshold) const;
67
68 void metFPGA_rho(int FPGAnum, const gTowersType& twrs, int puc_jwj,
69 const gTowersType & gBlkSum, int gBlockthreshold,
70 int aFPGA, int bFPGA,
71 int & MHT_x, int & MHT_y,
72 int & MST_x, int & MST_y,
73 int & MET_x, int & MET_y) const;
74
75 void metFPGA(int FPGAnum,const gTowersType& twrs,
76 const gTowersType & gBlkSum, int gBlockthreshold,
77 int aFPGA, int bFPGA,
78 int & MHT_x, int & MHT_y,
79 int & MST_x, int & MST_y,
80 int & MET_x, int & MET_y) const;
81
82 void etFPGA(int FPGAnum,const gTowersType& twrs, gTowersType &gBlkSum,
83 int gBlockthreshold, int A, int B, int &eth, int &ets, int &etw) const;
84
85 void etFastFPGA(int FPGAnum,const gTowersType& twrs, gTowersType &gBlkSum,
86 int gBlockthreshold, int A, int B, int &eth, int &ets, int &etw) const;
87
88 void metTotal(int A_MET_x, int A_MET_y,
89 int B_MET_x, int B_MET_y,
90 int C_MET_x, int C_MET_y,
91 int & MET_x, int & MET_y) const;
92
93 void etTotal(int A_ET,
94 int B_ET,
95 int C_ET,
96 int & ET ) const;
97
98 float sinLUT(unsigned int phiIDX, unsigned int aw) const;
99
100 float cosLUT(unsigned int phiIDX, unsigned int aw) const;
101
102
103 };
104
105} // end of namespace
106
107
108#endif
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
void etFastFPGA(int FPGAnum, const gTowersType &twrs, gTowersType &gBlkSum, int gBlockthreshold, int A, int B, int &eth, int &ets, int &etw) const
void metFPGA(int FPGAnum, const gTowersType &twrs, const gTowersType &gBlkSum, int gBlockthreshold, int aFPGA, int bFPGA, int &MHT_x, int &MHT_y, int &MST_x, int &MST_y, int &MET_x, int &MET_y) const
SG::ReadCondHandleKey< gFEXDBCondData > m_DBToolKey
void etFPGA(int FPGAnum, const gTowersType &twrs, gTowersType &gBlkSum, int gBlockthreshold, int A, int B, int &eth, int &ets, int &etw) const
virtual std::vector< std::unique_ptr< gFEXJwoJTOB > > jwojAlgo(const gTowersType &Atwr, int pucA_JWJ, const gTowersType &Btwr, int pucB_JWJ, const gTowersType &Ctwr, int pucC_JWJ, std::array< int32_t, 4 > &outTOB) const override
virtual StatusCode initialize() override
standard Athena-Algorithm method
float cosLUT(unsigned int phiIDX, unsigned int aw) const
void metFPGA_rho(int FPGAnum, const gTowersType &twrs, int puc_jwj, const gTowersType &gBlkSum, int gBlockthreshold, int aFPGA, int bFPGA, int &MHT_x, int &MHT_y, int &MST_x, int &MST_y, int &MET_x, int &MET_y) const
void metTotal(int A_MET_x, int A_MET_y, int B_MET_x, int B_MET_y, int C_MET_x, int C_MET_y, int &MET_x, int &MET_y) const
float sinLUT(unsigned int phiIDX, unsigned int aw) const
void gBlockAB(const gTowersType &twrs, gTowersType &gBlkSum, gTowersType &hasSeed, int seedThreshold) const
gFEXJwoJAlgo(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
void etTotal(int A_ET, int B_ET, int C_ET, int &ET) const
virtual void setAlgoConstant(int aFPGA_A, int bFPGA_A, int aFPGA_B, int bFPGA_B, int aFPGA_C, int bFPGA_C, int gXE_seedThrA, int gXE_seedThrB, int gXE_seedThrC) override
std::string m_fwVersion
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
std::array< std::array< int, 12 >, 32 > gTowersType
Definition IgFEXFPGA.h:25
hold the test vectors and ease the comparison