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#include <vector>
21
22namespace LVL1 {
23
24 class jFEXmetAlgo : public AthAlgTool, virtual public IjFEXmetAlgo{
25
26 public:
28 jFEXmetAlgo(const std::string& type, const std::string& name, const IInterface* parent);
29
31 virtual StatusCode initialize() override;
32 virtual StatusCode reset() override;
33
35 virtual ~jFEXmetAlgo() = default;
36
37 virtual StatusCode safetyTest() override;
40
41 virtual void buildBarrelmet() override;
42 virtual void buildFWDmet() override;
43 virtual int GetMetXComponent() const override;
44 virtual int GetMetYComponent() const override;
45 virtual int getTTowerET(unsigned int TTID ) override;
46 virtual bool getjXESat() const override;
47 virtual void setFPGAEnergy(std::unordered_map<int,std::vector<int> > et_map) override;
48
49protected:
50
51 private:
52 SG::ReadHandleKey<LVL1::jTowerContainer> m_jTowerContainerKey {this, "MyjTowers", "jTowerContainer", "Input container for jTowers"};
54
55 std::vector<std::vector<int>> m_FPGA;
56 std::vector<std::vector<int>> m_FPGA_phi02;
57 std::vector<std::vector<int>> m_FPGA_fcal;
58 std::vector<long long> m_met;
59 std::vector<float> m_met_angle;
60 std::vector<long long> m_met_Xcoord;
61 std::vector<long long> m_met_Ycoord;
62 long long m_Totalmet_Xcoord = 0;
63 long long m_Totalmet_Ycoord = 0;
64
65 bool getTTowerSat(unsigned int TTID );
66 bool m_saturation = false;
67
68 virtual void buildMetXComponent();
69 virtual void buildMetYComponent();
70
71 // To avoid using floats in the firmware.
72 static constexpr unsigned int m_firmware_scale = (1 << 9);
73 static constexpr unsigned int m_firmware_bit_offset = 9;
74
75 std::unordered_map<int,std::vector<int> > m_map_Etvalues;
76
78 };
79
80
81
82}//end of namespace
83
84
85//CLASS_DEF( LVL1::jFEXmetAlgo , 121222945 , 1 )
86
87#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:55
virtual StatusCode reset() override
static constexpr unsigned int m_firmware_bit_offset
Definition jFEXmetAlgo.h:73
virtual int GetMetYComponent() const override
std::vector< std::vector< int > > m_FPGA_fcal
Definition jFEXmetAlgo.h:57
virtual void buildMetYComponent()
SG::ReadHandleKey< LVL1::jTowerContainer > m_jTowerContainerKey
Definition jFEXmetAlgo.h:52
std::unordered_map< int, std::vector< int > > m_map_Etvalues
Definition jFEXmetAlgo.h:75
virtual void buildFWDmet() override
virtual void buildBarrelmet() override
virtual ~jFEXmetAlgo()=default
Destructor.
virtual void buildMetXComponent()
virtual bool getjXESat() const override
std::vector< long long > m_met
Definition jFEXmetAlgo.h:58
long long m_Totalmet_Xcoord
Definition jFEXmetAlgo.h:62
long long m_Totalmet_Ycoord
Definition jFEXmetAlgo.h:63
std::vector< long long > m_met_Ycoord
Definition jFEXmetAlgo.h:61
SG::ReadHandle< jTowerContainer > m_jTowerContainer
Definition jFEXmetAlgo.h:53
virtual int GetMetXComponent() const override
bool getTTowerSat(unsigned int TTID)
virtual StatusCode initialize() override
standard Athena-Algorithm method
static constexpr unsigned int m_firmware_scale
Definition jFEXmetAlgo.h:72
std::vector< long long > m_met_Xcoord
Definition jFEXmetAlgo.h:60
std::vector< std::vector< int > > m_FPGA_phi02
Definition jFEXmetAlgo.h:56
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:59
virtual StatusCode safetyTest() override
virtual void setFPGAEnergy(std::unordered_map< int, std::vector< int > > et_map) 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...