ATLAS Offline Software
gFEXaltMetAlgo.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 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 
16 #include "AthenaKernel/CLASS_DEF.h"
19 
20 
21 
22 namespace 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  const int rhoPlusThr) override;
37 
38 
39  virtual void altMetAlgo(const gTowersCentral &Atwr, const gTowersCentral &Btwr,
40  std::array<uint32_t, 4> & outTOB) const override;
41 
42 
43 
44  private:
45 
46  std::array<std::vector<int>, 2> m_etaThr;
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  int & MET_x, int & MET_y, int & MET) const;
55 
56  int get_rho(const gTowersCentral &twrs) const;
57 
58  int get_sigma(const gTowersCentral &twrs) const;
59 
60  void rho_MET(const gTowersCentral &twrs, int & MET_x, int & MET_y, const int rho, const int sigma) const;
61 
62  int sumEtFPGAnc(const gTowersCentral &twrs, const unsigned short FPGA_NO) const;
63 
64  int sumEtFPGArms(const gTowersCentral &twrs, const int sigma) const;
65 
66  int sumEt(const int A_sumEt, const int B_sumEt) const;
67 
68  float sinLUT(const unsigned int phiIDX, const unsigned int aw) const;
69 
70  float cosLUT(const unsigned int phiIDX, const unsigned int aw) const;
71 
72  };
73 
74 } // end of namespace
75 
76 
77 #endif
LVL1::gFEXaltMetAlgo::sinLUT
float sinLUT(const unsigned int phiIDX, const unsigned int aw) const
Definition: gFEXaltMetAlgo.cxx:262
LVL1::gFEXaltMetAlgo::get_rho
int get_rho(const gTowersCentral &twrs) const
Definition: gFEXaltMetAlgo.cxx:179
pdg_comparison.sigma
sigma
Definition: pdg_comparison.py:324
LVL1::gFEXaltMetAlgo::get_sigma
int get_sigma(const gTowersCentral &twrs) const
Definition: gFEXaltMetAlgo.cxx:193
LVL1::gFEXaltMetAlgo::initialize
virtual StatusCode initialize() override
standard Athena-Algorithm method
Definition: gFEXaltMetAlgo.cxx:24
LVL1::gFEXaltMetAlgo::m_etaThr
std::array< std::vector< int >, 2 > m_etaThr
Definition: gFEXaltMetAlgo.h:46
gTowerContainer.h
LVL1::gFEXaltMetAlgo::metTotal
void metTotal(const int A_MET_x, const int A_MET_y, const int B_MET_x, const int B_MET_y, int &MET_x, int &MET_y, int &MET) const
Definition: gFEXaltMetAlgo.cxx:157
LVL1::gFEXaltMetAlgo::sumEt
int sumEt(const int A_sumEt, const int B_sumEt) const
Definition: gFEXaltMetAlgo.cxx:253
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::gFEXaltMetAlgo
Definition: gFEXaltMetAlgo.h:24
LVL1::gFEXaltMetAlgo::rho_MET
void rho_MET(const gTowersCentral &twrs, int &MET_x, int &MET_y, const int rho, const int sigma) const
Definition: gFEXaltMetAlgo.cxx:211
LVL1::gFEXaltMetAlgo::sumEtFPGArms
int sumEtFPGArms(const gTowersCentral &twrs, const int sigma) const
Definition: gFEXaltMetAlgo.cxx:239
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
LVL1::gFEXaltMetAlgo::cosLUT
float cosLUT(const unsigned int phiIDX, const unsigned int aw) const
Definition: gFEXaltMetAlgo.cxx:274
TCS::MET
@ MET
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Types.h:16
test_pyathena.parent
parent
Definition: test_pyathena.py:15
FEXAlgoSpaceDefs.h
LVL1::gFEXaltMetAlgo::setAlgoConstant
virtual void setAlgoConstant(std::vector< int > &&A_thr, std::vector< int > &&B_thr, const int rhoPlusThr) override
Definition: gFEXaltMetAlgo.cxx:31
TrigConf::name
Definition: HLTChainList.h:35
LVL1::gTowersCentral
std::array< std::array< int, 12 >, 32 > gTowersCentral
Definition: IgFEXaltMetAlgo.h:19
LVL1::gFEXaltMetAlgo::altMetAlgo
virtual void altMetAlgo(const gTowersCentral &Atwr, const gTowersCentral &Btwr, std::array< uint32_t, 4 > &outTOB) const override
Definition: gFEXaltMetAlgo.cxx:41
LVL1::gFEXaltMetAlgo::sumEtFPGAnc
int sumEtFPGAnc(const gTowersCentral &twrs, const unsigned short FPGA_NO) const
Definition: gFEXaltMetAlgo.cxx:226
LVL1::gFEXaltMetAlgo::m_rhoPlusThr
int m_rhoPlusThr
Definition: gFEXaltMetAlgo.h:47
LVL1::gFEXaltMetAlgo::metFPGA
void metFPGA(const gTowersCentral &twrs, int &MET_x, int &MET_y, const unsigned short FPGA_NO) const
Definition: gFEXaltMetAlgo.cxx:142
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LVL1::gFEXaltMetAlgo::gFEXaltMetAlgo
gFEXaltMetAlgo(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition: gFEXaltMetAlgo.cxx:20
CLASS_DEF.h
macros to associate a CLID to a type
IgFEXaltMetAlgo.h
fitman.rho
rho
Definition: fitman.py:532