ATLAS Offline Software
Loading...
Searching...
No Matches
gFEXJwoJAlgo.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// 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
16
17
18#include <vector>
19#include <memory>
20#include <cstdint>
21#include <string>
22#include <array>
23
24class gFEXJwoJTOB;
25
26namespace LVL1 {
27
28 class gFEXJwoJAlgo : public AthAlgTool, virtual public IgFEXJwoJAlgo {
29
30 public:
32 gFEXJwoJAlgo(const std::string& type, const std::string& name, const IInterface* parent);
33
35 virtual StatusCode initialize() override;
36
37
38 virtual void setAlgoConstant(int aFPGA_A, int bFPGA_A,
39 int aFPGA_B, int bFPGA_B,
40 int aFPGA_C, int bFPGA_C,
41 int gXE_seedThrA, int gXE_seedThrB, int gXE_seedThrC) override;
42
43 virtual std::vector<std::unique_ptr<gFEXJwoJTOB>> jwojAlgo(const gTowersType& Atwr,const gTowersType& Btwr, const gTowersType& Ctwr,
44 std::array<int32_t, 4> & outTOB) const override;
45
46
47
48 private:
49
50 float m_aFPGA_A{};
51 float m_bFPGA_A{};
52 float m_aFPGA_B{};
53 float m_bFPGA_B{};
54 float m_aFPGA_C{};
55 float m_bFPGA_C{};
59
60
61 void gBlockAB(const gTowersType & twrs, gTowersType & gBlkSum, gTowersType & hasSeed, int seedThreshold) const;
62
63 void metFPGA(int FPGAnum,const gTowersType& twrs,
64 const gTowersType & gBlkSum, int gBlockthreshold,
65 int aFPGA, int bFPGA,
66 int & MHT_x, int & MHT_y,
67 int & MST_x, int & MST_y,
68 int & MET_x, int & MET_y) const;
69
70 void etFPGA(int FPGAnum,const gTowersType& twrs, gTowersType &gBlkSum,
71 int gBlockthreshold, int A, int B, int &eth, int &ets, int &etw) const;
72
73 void etFastFPGA(int FPGAnum,const gTowersType& twrs, gTowersType &gBlkSum,
74 int gBlockthreshold, int A, int B, int &eth, int &ets, int &etw) const;
75
76 void metTotal(int A_MET_x, int A_MET_y,
77 int B_MET_x, int B_MET_y,
78 int C_MET_x, int C_MET_y,
79 int & MET_x, int & MET_y) const;
80
81 void etTotal(int A_ET,
82 int B_ET,
83 int C_ET,
84 int & ET ) const;
85
86 float sinLUT(unsigned int phiIDX, unsigned int aw) const;
87
88 float cosLUT(unsigned int phiIDX, unsigned int aw) const;
89
90
91 };
92
93} // end of namespace
94
95
96#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
virtual std::vector< std::unique_ptr< gFEXJwoJTOB > > jwojAlgo(const gTowersType &Atwr, const gTowersType &Btwr, const gTowersType &Ctwr, std::array< int32_t, 4 > &outTOB) const override
void etFPGA(int FPGAnum, const gTowersType &twrs, gTowersType &gBlkSum, int gBlockthreshold, int A, int B, int &eth, int &ets, int &etw) const
virtual StatusCode initialize() override
standard Athena-Algorithm method
float cosLUT(unsigned int phiIDX, unsigned int aw) 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
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