ATLAS Offline Software
Loading...
Searching...
No Matches
gFEXaltMetAlgo.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// gFEXaltMetAlgo - Noise cut and Rho+RMS algorithm for gFEX MET
6// -------------------
7// begin : 31 03 2022
8// email : cecilia.tosciri@cern.ch
9//***************************************************************************
10
11#ifndef gFEXaltMetAlgo_H
12#define gFEXaltMetAlgo_H
13
19
20
21
22namespace LVL1 {
23
24 class gFEXaltMetAlgo : public extends<AthAlgTool, IgFEXaltMetAlgo> {
25
26 public:
28 gFEXaltMetAlgo(const std::string& type, const std::string& name, const IInterface* parent);
29
31 virtual StatusCode initialize() override;
32
33
34 virtual void setAlgoConstant(std::vector<int>&& A_thr,
35 std::vector<int>&& B_thr,
36 std::vector<int>&& C_thr,
37 const int rhoPlusThr) override;
38
39 virtual void altMetAlgo(const gTowersCentral &Atwr,
40 const gTowersCentral &Btwr,
41 const gTowersCentral &Ctwr,
42 std::array<uint32_t, 4> & outTOB) const override;
43
44 private:
45
46 std::array<std::vector<int>, 3> m_etaThr; // A, B, C
48
49
50 void metFPGA(const gTowersCentral &twrs, int & MET_x, int & MET_y, const unsigned short FPGA_NO) const;
51
52 void metTotal(const int A_MET_x, const int A_MET_y,
53 const int B_MET_x, const int B_MET_y,
54 const int C_MET_x, const int C_MET_y,
55 int & MET_x, int & MET_y, int & MET) const;
56
57 int get_rho(const gTowersCentral &twrs) const;
58
59 int get_sigma(const gTowersCentral &twrs) const;
60
61 void rho_MET(const gTowersCentral &twrs, int & MET_x, int & MET_y, const int rho, const int sigma) const;
62
63 int sumEtFPGAnc(const gTowersCentral &twrs, const unsigned short FPGA_NO) const;
64
65 int sumEtFPGArms(const gTowersCentral &twrs, const int sigma) const;
66
67 int sumEt(const int A_sumEt, const int B_sumEt, const int C_sumEt) const;
68
69 float sinLUT(const unsigned int phiIDX, const unsigned int aw) const;
70
71 float cosLUT(const unsigned int phiIDX, const unsigned int aw) const;
72
73 };
74
75} // end of namespace
76
77
78#endif
macros to associate a CLID to a type
void metFPGA(const gTowersCentral &twrs, int &MET_x, int &MET_y, const unsigned short FPGA_NO) const
gFEXaltMetAlgo(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
virtual void altMetAlgo(const gTowersCentral &Atwr, const gTowersCentral &Btwr, const gTowersCentral &Ctwr, std::array< uint32_t, 4 > &outTOB) const override
float cosLUT(const unsigned int phiIDX, const unsigned int aw) const
float sinLUT(const unsigned int phiIDX, const unsigned int aw) const
virtual StatusCode initialize() override
standard Athena-Algorithm method
void metTotal(const int A_MET_x, const int A_MET_y, const int B_MET_x, const int B_MET_y, const int C_MET_x, const int C_MET_y, int &MET_x, int &MET_y, int &MET) const
std::array< std::vector< int >, 3 > m_etaThr
int sumEt(const int A_sumEt, const int B_sumEt, const int C_sumEt) const
virtual void setAlgoConstant(std::vector< int > &&A_thr, std::vector< int > &&B_thr, std::vector< int > &&C_thr, const int rhoPlusThr) override
int sumEtFPGArms(const gTowersCentral &twrs, const int sigma) const
int get_sigma(const gTowersCentral &twrs) const
int sumEtFPGAnc(const gTowersCentral &twrs, const unsigned short FPGA_NO) const
void rho_MET(const gTowersCentral &twrs, int &MET_x, int &MET_y, const int rho, const int sigma) const
int get_rho(const gTowersCentral &twrs) const
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
std::array< std::array< int, 12 >, 32 > gTowersCentral
Definition MET.py:1