ATLAS Offline Software
Loading...
Searching...
No Matches
jFEXmetAlgo.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// jFEXmetAlgo - Algorithm for MET Algorithm in jFEX
6// -------------------
7// begin : 14 05 2021
8// email : Sergi.Rodriguez@cern.ch
9//***************************************************************************
10
11#ifndef jFEXmetAlgo_H
12#define jFEXmetAlgo_H
13
14
19
20
21namespace LVL1 {
22
23 class jFEXmetAlgo : public AthAlgTool, virtual public IjFEXmetAlgo{
24
25 public:
27 jFEXmetAlgo(const std::string& type, const std::string& name, const IInterface* parent);
28
30 virtual StatusCode initialize() override;
31 virtual StatusCode reset() override;
32
34 virtual ~jFEXmetAlgo();
35
36 virtual StatusCode safetyTest() override;
39
40 virtual void buildBarrelmet() override;
41 virtual void buildFWDmet() override;
42 virtual int GetMetXComponent() override;
43 virtual int GetMetYComponent() override;
44 virtual int getTTowerET(unsigned int TTID ) override;
45 virtual bool getjXESat() const override;
46 virtual void setFPGAEnergy(std::unordered_map<int,std::vector<int> > et_map) override;
47
48protected:
49
50 private:
51 SG::ReadHandleKey<LVL1::jTowerContainer> m_jTowerContainerKey {this, "MyjTowers", "jTowerContainer", "Input container for jTowers"};
53
54 std::vector<std::vector<int>> m_FPGA;
55 std::vector<std::vector<int>> m_FPGA_phi02;
56 std::vector<std::vector<int>> m_FPGA_fcal;
57 std::vector<long long> m_met;
58 std::vector<float> m_met_angle;
59 std::vector<long long> m_met_Xcoord;
60 std::vector<long long> m_met_Ycoord;
61 long long m_Totalmet_Xcoord = 0;
62 long long m_Totalmet_Ycoord = 0;
63
64 bool getTTowerSat(unsigned int TTID );
65 bool m_saturation = false;
66
67 virtual void buildMetXComponent();
68 virtual void buildMetYComponent();
69
70 // To avoid using floats in the firmware.
71 static constexpr unsigned int m_firmware_scale = (1 << 9);
72 static constexpr unsigned int m_firmware_bit_offset = 9;
73
74 std::unordered_map<int,std::vector<int> > m_map_Etvalues;
75
77 };
78
79
80
81}//end of namespace
82
83
84//CLASS_DEF( LVL1::jFEXmetAlgo , 121222945 , 1 )
85
86#endif
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
static constexpr int jFEX_wide_algoSpace_width
static constexpr int jFEX_thin_algoSpace_width
static constexpr int jFEX_algoSpace_height
virtual int getTTowerET(unsigned int TTID) override
std::vector< std::vector< int > > m_FPGA
Definition jFEXmetAlgo.h:54
virtual StatusCode reset() override
static constexpr unsigned int m_firmware_bit_offset
Definition jFEXmetAlgo.h:72
virtual ~jFEXmetAlgo()
Destructor.
std::vector< std::vector< int > > m_FPGA_fcal
Definition jFEXmetAlgo.h:56
virtual void buildMetYComponent()
SG::ReadHandleKey< LVL1::jTowerContainer > m_jTowerContainerKey
Definition jFEXmetAlgo.h:51
std::unordered_map< int, std::vector< int > > m_map_Etvalues
Definition jFEXmetAlgo.h:74
virtual void buildFWDmet() override
virtual void buildBarrelmet() override
virtual void buildMetXComponent()
virtual bool getjXESat() const override
std::vector< long long > m_met
Definition jFEXmetAlgo.h:57
long long m_Totalmet_Xcoord
Definition jFEXmetAlgo.h:61
long long m_Totalmet_Ycoord
Definition jFEXmetAlgo.h:62
std::vector< long long > m_met_Ycoord
Definition jFEXmetAlgo.h:60
SG::ReadHandle< jTowerContainer > m_jTowerContainer
Definition jFEXmetAlgo.h:52
bool getTTowerSat(unsigned int TTID)
virtual StatusCode initialize() override
standard Athena-Algorithm method
virtual int GetMetXComponent() override
static constexpr unsigned int m_firmware_scale
Definition jFEXmetAlgo.h:71
std::vector< long long > m_met_Xcoord
Definition jFEXmetAlgo.h:59
std::vector< std::vector< int > > m_FPGA_phi02
Definition jFEXmetAlgo.h:55
virtual void setup(int FPGA[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width], int hemisphere) override
std::vector< float > m_met_angle
Definition jFEXmetAlgo.h:58
virtual StatusCode safetyTest() override
virtual void setFPGAEnergy(std::unordered_map< int, std::vector< int > > et_map) override
virtual int GetMetYComponent() override
jFEXmetAlgo(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
Property holding a SG store/key/clid from which a ReadHandle is made.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...