ATLAS Offline Software
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 
24 class gFEXJwoJTOB;
25 
26 namespace 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
LVL1::gFEXJwoJAlgo::m_bFPGA_C
float m_bFPGA_C
Definition: gFEXJwoJAlgo.h:55
LVL1::gFEXJwoJAlgo::metTotal
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
Definition: gFEXJwoJAlgo.cxx:543
LVL1::gFEXJwoJAlgo::m_aFPGA_A
float m_aFPGA_A
Definition: gFEXJwoJAlgo.h:50
LVL1::gFEXJwoJAlgo::m_bFPGA_A
float m_bFPGA_A
Definition: gFEXJwoJAlgo.h:51
LVL1::gFEXJwoJAlgo::m_aFPGA_B
float m_aFPGA_B
Definition: gFEXJwoJAlgo.h:52
LVL1::gFEXJwoJAlgo::m_gBlockthresholdB
float m_gBlockthresholdB
Definition: gFEXJwoJAlgo.h:57
LVL1::gFEXJwoJAlgo::metFPGA
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
Definition: gFEXJwoJAlgo.cxx:322
LVL1::IgFEXJwoJAlgo
Definition: IgFEXJwoJAlgo.h:22
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
LVL1::gFEXJwoJAlgo::setAlgoConstant
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
Definition: gFEXJwoJAlgo.cxx:35
IgFEXJwoJAlgo.h
LVL1::gFEXJwoJAlgo::gBlockAB
void gBlockAB(const gTowersType &twrs, gTowersType &gBlkSum, gTowersType &hasSeed, int seedThreshold) const
Definition: gFEXJwoJAlgo.cxx:276
LVL1::gFEXJwoJAlgo::cosLUT
float cosLUT(unsigned int phiIDX, unsigned int aw) const
Definition: gFEXJwoJAlgo.cxx:597
A
LVL1::gFEXJwoJAlgo::m_gBlockthresholdA
float m_gBlockthresholdA
Definition: gFEXJwoJAlgo.h:56
LVL1::gFEXJwoJAlgo::jwojAlgo
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
Definition: gFEXJwoJAlgo.cxx:50
LVL1::gFEXJwoJAlgo::etFPGA
void etFPGA(int FPGAnum, const gTowersType &twrs, gTowersType &gBlkSum, int gBlockthreshold, int A, int B, int &eth, int &ets, int &etw) const
Definition: gFEXJwoJAlgo.cxx:419
LVL1::gFEXJwoJAlgo
Definition: gFEXJwoJAlgo.h:28
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LVL1::gFEXJwoJAlgo::m_aFPGA_C
float m_aFPGA_C
Definition: gFEXJwoJAlgo.h:54
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LVL1::gFEXJwoJAlgo::etFastFPGA
void etFastFPGA(int FPGAnum, const gTowersType &twrs, gTowersType &gBlkSum, int gBlockthreshold, int A, int B, int &eth, int &ets, int &etw) const
Definition: gFEXJwoJAlgo.cxx:491
LVL1::gFEXJwoJAlgo::gFEXJwoJAlgo
gFEXJwoJAlgo(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
Definition: gFEXJwoJAlgo.cxx:21
TrigConf::name
Definition: HLTChainList.h:35
LVL1::gFEXJwoJAlgo::etTotal
void etTotal(int A_ET, int B_ET, int C_ET, int &ET) const
Definition: gFEXJwoJAlgo.cxx:564
LVL1::gFEXJwoJAlgo::initialize
virtual StatusCode initialize() override
standard Athena-Algorithm method
Definition: gFEXJwoJAlgo.cxx:28
LVL1::gFEXJwoJAlgo::sinLUT
float sinLUT(unsigned int phiIDX, unsigned int aw) const
Definition: gFEXJwoJAlgo.cxx:584
LVL1::gTowersType
std::array< std::array< int, 12 >, 32 > gTowersType
Definition: IgFEXFPGA.h:25
AthAlgTool
Definition: AthAlgTool.h:26
LVL1::gFEXJwoJAlgo::m_gBlockthresholdC
float m_gBlockthresholdC
Definition: gFEXJwoJAlgo.h:58
LVL1::gFEXJwoJAlgo::m_bFPGA_B
float m_bFPGA_B
Definition: gFEXJwoJAlgo.h:53