ATLAS Offline Software
Loading...
Searching...
No Matches
gFEXaltMetAlgo.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// 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
18#include "TrigConfData/L1Menu.h"
19
20
21namespace LVL1 {
22
23 class gFEXaltMetAlgo : public extends<AthAlgTool, IgFEXaltMetAlgo> {
24
25 public:
27 gFEXaltMetAlgo(const std::string& type, const std::string& name, const IInterface* parent);
28
30 virtual StatusCode initialize() override;
31
32
33 virtual void altMetAlgo(const EventContext& ctx,
34 const gTowersCentral &Atwr,
35 const gTowersCentral &Btwr,
36 const gTowersCentral &Ctwr,
37 std::array<uint32_t, 4> & outTOB) const override;
38
39 private:
40
41 SG::ReadHandleKey<TrigConf::L1Menu> m_l1MenuKey{this, "L1TriggerMenu", "DetectorStore+L1TriggerMenu","Name of the L1Menu object to read configuration from"};
42
43 // make this configurable if needed
44 const int m_rhoPlusThr = 10000/200;
45
46 void metFPGA(const gTowersCentral &twrs, int & MET_x, int & MET_y, const unsigned short FPGA_NO, const std::array<std::vector<int>, 3>& etaThr) const;
47
48 void metTotal(const int A_MET_x, const int A_MET_y,
49 const int B_MET_x, const int B_MET_y,
50 const int C_MET_x, const int C_MET_y,
51 int & MET_x, int & MET_y, int & MET) const;
52
53 int get_rho(const gTowersCentral &twrs) const;
54
55 int get_sigma(const gTowersCentral &twrs) const;
56
57 void rho_MET(const gTowersCentral &twrs, int & MET_x, int & MET_y, const int rho, const int sigma) const;
58
59 int sumEtFPGAnc(const gTowersCentral &twrs, const unsigned short FPGA_NO, const std::array<std::vector<int>, 3>& etaThr) const;
60
61 int sumEtFPGArms(const gTowersCentral &twrs, const int sigma) const;
62
63 int sumEt(const int A_sumEt, const int B_sumEt, const int C_sumEt) const;
64
65 float sinLUT(const unsigned int phiIDX, const unsigned int aw) const;
66
67 float cosLUT(const unsigned int phiIDX, const unsigned int aw) const;
68
69 };
70
71} // end of namespace
72
73
74#endif
void metFPGA(const gTowersCentral &twrs, int &MET_x, int &MET_y, const unsigned short FPGA_NO, const std::array< std::vector< int >, 3 > &etaThr) const
gFEXaltMetAlgo(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
int sumEtFPGAnc(const gTowersCentral &twrs, const unsigned short FPGA_NO, const std::array< std::vector< int >, 3 > &etaThr) const
float cosLUT(const unsigned int phiIDX, const unsigned int aw) const
virtual void altMetAlgo(const EventContext &ctx, const gTowersCentral &Atwr, const gTowersCentral &Btwr, const gTowersCentral &Ctwr, std::array< uint32_t, 4 > &outTOB) const override
float sinLUT(const unsigned int phiIDX, const unsigned int aw) const
virtual StatusCode initialize() override
standard Athena-Algorithm method
SG::ReadHandleKey< TrigConf::L1Menu > m_l1MenuKey
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
int sumEt(const int A_sumEt, const int B_sumEt, const int C_sumEt) const
int sumEtFPGArms(const gTowersCentral &twrs, const int sigma) const
int get_sigma(const gTowersCentral &twrs) 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
Property holding a SG store/key/clid from which a ReadHandle is made.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
std::array< std::array< int, 12 >, 32 > gTowersCentral
Definition MET.py:1