ATLAS Offline Software
gFEXJwoJAlgo.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 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 
16 #include "AthenaKernel/CLASS_DEF.h"
20 
21 
22 
23 namespace LVL1 {
24 
25  class gFEXJwoJAlgo : public AthAlgTool, virtual public IgFEXJwoJAlgo {
26 
27  public:
29  gFEXJwoJAlgo(const std::string& type, const std::string& name, const IInterface* parent);
30 
32  virtual StatusCode initialize() override;
33 
34 
35  virtual void setAlgoConstant(int aFPGA_A, int bFPGA_A,
36  int aFPGA_B, int bFPGA_B,
37  int aFPGA_C, int bFPGA_C,
38  int gXE_seedThrA, int gXE_seedThrB, int gXE_seedThrC) override;
39 
40  virtual std::vector<std::unique_ptr<gFEXJwoJTOB>> jwojAlgo(const gTowersType& Atwr,const gTowersType& Btwr, const gTowersType& Ctwr,
41  std::array<uint32_t, 4> & outTOB) const override;
42 
43 
44 
45  private:
46 
47  float m_aFPGA_A{};
48  float m_bFPGA_A{};
49  float m_aFPGA_B{};
50  float m_bFPGA_B{};
51  float m_aFPGA_C{};
52  float m_bFPGA_C{};
56 
57 
58  void gBlockAB(const gTowersType & twrs, gTowersType & gBlkSum, gTowersType & hasSeed, int seedThreshold) const;
59 
60  void metFPGA(int FPGAnum,const gTowersType& twrs,
61  const gTowersType & gBlkSum, int gBlockthreshold,
62  int aFPGA, int bFPGA,
63  int & MHT_x, int & MHT_y,
64  int & MST_x, int & MST_y,
65  int & MET_x, int & MET_y) const;
66 
67  void etFPGA(int FPGAnum,const gTowersType& twrs, gTowersType &gBlkSum,
68  int gBlockthreshold, int A, int B, int &eth, int &ets, int &etw) const;
69 
70  void metTotal(int A_MET_x, int A_MET_y,
71  int B_MET_x, int B_MET_y,
72  int C_MET_x, int C_MET_y,
73  int & MET_x, int & MET_y) const;
74 
75  void etTotal(int A_ET,
76  int B_ET,
77  int C_ET,
78  int & ET ) const;
79 
80 
81  float sinLUT(unsigned int phiIDX, unsigned int aw) const;
82 
83  float cosLUT(unsigned int phiIDX, unsigned int aw) const;
84 
85 
86  };
87 
88 } // end of namespace
89 
90 
91 #endif
LVL1::gFEXJwoJAlgo::m_bFPGA_C
float m_bFPGA_C
Definition: gFEXJwoJAlgo.h:52
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:491
LVL1::gFEXJwoJAlgo::m_aFPGA_A
float m_aFPGA_A
Definition: gFEXJwoJAlgo.h:47
LVL1::gFEXJwoJAlgo::m_bFPGA_A
float m_bFPGA_A
Definition: gFEXJwoJAlgo.h:48
LVL1::gFEXJwoJAlgo::m_aFPGA_B
float m_aFPGA_B
Definition: gFEXJwoJAlgo.h:49
gTowerContainer.h
LVL1::gFEXJwoJAlgo::m_gBlockthresholdB
float m_gBlockthresholdB
Definition: gFEXJwoJAlgo.h:54
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:326
LVL1::IgFEXJwoJAlgo
Definition: IgFEXJwoJAlgo.h:22
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
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:36
IgFEXJwoJAlgo.h
LVL1::gFEXJwoJAlgo::gBlockAB
void gBlockAB(const gTowersType &twrs, gTowersType &gBlkSum, gTowersType &hasSeed, int seedThreshold) const
Definition: gFEXJwoJAlgo.cxx:280
gFEXJwoJTOB.h
LVL1::gFEXJwoJAlgo::cosLUT
float cosLUT(unsigned int phiIDX, unsigned int aw) const
Definition: gFEXJwoJAlgo.cxx:541
A
LVL1::gFEXJwoJAlgo::m_gBlockthresholdA
float m_gBlockthresholdA
Definition: gFEXJwoJAlgo.h:53
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:423
LVL1::gFEXJwoJAlgo
Definition: gFEXJwoJAlgo.h:25
LVL1::gFEXJwoJAlgo::jwojAlgo
virtual std::vector< std::unique_ptr< gFEXJwoJTOB > > jwojAlgo(const gTowersType &Atwr, const gTowersType &Btwr, const gTowersType &Ctwr, std::array< uint32_t, 4 > &outTOB) const override
Definition: gFEXJwoJAlgo.cxx:54
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:51
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
FEXAlgoSpaceDefs.h
LVL1::gFEXJwoJAlgo::gFEXJwoJAlgo
gFEXJwoJAlgo(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
Definition: gFEXJwoJAlgo.cxx:22
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:512
LVL1::gFEXJwoJAlgo::initialize
virtual StatusCode initialize() override
standard Athena-Algorithm method
Definition: gFEXJwoJAlgo.cxx:29
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LVL1::gFEXJwoJAlgo::sinLUT
float sinLUT(unsigned int phiIDX, unsigned int aw) const
Definition: gFEXJwoJAlgo.cxx:528
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:55
CLASS_DEF.h
macros to associate a CLID to a type
LVL1::gFEXJwoJAlgo::m_bFPGA_B
float m_bFPGA_B
Definition: gFEXJwoJAlgo.h:50