ATLAS Offline Software
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 
21 namespace 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 
48 protected:
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
IjFEXmetAlgo.h
LVL1::jFEXmetAlgo::getjXESat
virtual bool getjXESat() const override
Definition: jFEXmetAlgo.cxx:246
LVL1::IjFEXmetAlgo
Definition: IjFEXmetAlgo.h:22
LVL1::jFEXmetAlgo::m_hemisphere
int m_hemisphere
Definition: jFEXmetAlgo.h:76
LVL1::jFEXmetAlgo::buildBarrelmet
virtual void buildBarrelmet() override
Definition: jFEXmetAlgo.cxx:102
LVL1::jFEXmetAlgo::getTTowerET
virtual int getTTowerET(unsigned int TTID) override
Definition: jFEXmetAlgo.cxx:232
LVL1::FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width
constexpr static int jFEX_thin_algoSpace_width
Definition: FEXAlgoSpaceDefs.h:28
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
LVL1::jFEXmetAlgo::m_firmware_scale
static constexpr unsigned int m_firmware_scale
Definition: jFEXmetAlgo.h:71
LVL1::jFEXmetAlgo::getTTowerSat
bool getTTowerSat(unsigned int TTID)
Definition: jFEXmetAlgo.cxx:251
LVL1::jFEXmetAlgo::m_firmware_bit_offset
static constexpr unsigned int m_firmware_bit_offset
Definition: jFEXmetAlgo.h:72
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_height
constexpr static int jFEX_algoSpace_height
Definition: FEXAlgoSpaceDefs.h:29
LVL1::jFEXmetAlgo::m_FPGA_phi02
std::vector< std::vector< int > > m_FPGA_phi02
Definition: jFEXmetAlgo.h:55
LVL1::jFEXmetAlgo::m_met
std::vector< long long > m_met
Definition: jFEXmetAlgo.h:57
SG::ReadHandleKey< LVL1::jTowerContainer >
LVL1::jFEXmetAlgo::m_saturation
bool m_saturation
Definition: jFEXmetAlgo.h:65
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
LVL1::jFEXmetAlgo::GetMetYComponent
virtual int GetMetYComponent() override
Definition: jFEXmetAlgo.cxx:226
LVL1::jFEXmetAlgo::m_Totalmet_Xcoord
long long m_Totalmet_Xcoord
Definition: jFEXmetAlgo.h:61
LVL1::jFEXmetAlgo::initialize
virtual StatusCode initialize() override
standard Athena-Algorithm method
Definition: jFEXmetAlgo.cxx:29
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
LVL1::jFEXmetAlgo::buildMetYComponent
virtual void buildMetYComponent()
Definition: jFEXmetAlgo.cxx:208
LVL1::FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width
constexpr static int jFEX_wide_algoSpace_width
Definition: FEXAlgoSpaceDefs.h:27
AthAlgTool.h
LVL1::jFEXmetAlgo::m_FPGA
std::vector< std::vector< int > > m_FPGA
Definition: jFEXmetAlgo.h:54
LVL1::jFEXmetAlgo::m_met_Ycoord
std::vector< long long > m_met_Ycoord
Definition: jFEXmetAlgo.h:60
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LVL1::jFEXmetAlgo::m_jTowerContainerKey
SG::ReadHandleKey< LVL1::jTowerContainer > m_jTowerContainerKey
Definition: jFEXmetAlgo.h:51
LVL1::jFEXmetAlgo::safetyTest
virtual StatusCode safetyTest() override
Definition: jFEXmetAlgo.cxx:35
LVL1::jFEXmetAlgo::setFPGAEnergy
virtual void setFPGAEnergy(std::unordered_map< int, std::vector< int > > et_map) override
Definition: jFEXmetAlgo.cxx:261
LVL1::jFEXmetAlgo::m_jTowerContainer
SG::ReadHandle< jTowerContainer > m_jTowerContainer
Definition: jFEXmetAlgo.h:52
FEXAlgoSpaceDefs.h
TrigConf::name
Definition: HLTChainList.h:35
jTowerContainer.h
LVL1::jFEXmetAlgo::jFEXmetAlgo
jFEXmetAlgo(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
Definition: jFEXmetAlgo.cxx:21
LVL1::jFEXmetAlgo::m_Totalmet_Ycoord
long long m_Totalmet_Ycoord
Definition: jFEXmetAlgo.h:62
LVL1::jFEXmetAlgo::m_met_Xcoord
std::vector< long long > m_met_Xcoord
Definition: jFEXmetAlgo.h:59
LVL1::jFEXmetAlgo::buildMetXComponent
virtual void buildMetXComponent()
Definition: jFEXmetAlgo.cxx:183
LVL1::jFEXmetAlgo::m_FPGA_fcal
std::vector< std::vector< int > > m_FPGA_fcal
Definition: jFEXmetAlgo.h:56
LVL1::jFEXmetAlgo::GetMetXComponent
virtual int GetMetXComponent() override
Definition: jFEXmetAlgo.cxx:202
LVL1::jFEXmetAlgo
Definition: jFEXmetAlgo.h:23
LVL1::jFEXmetAlgo::reset
virtual StatusCode reset() override
Definition: jFEXmetAlgo.cxx:45
LVL1::jFEXmetAlgo::setup
virtual void setup(int FPGA[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width], int hemisphere) override
Definition: jFEXmetAlgo.cxx:53
LVL1::jFEXmetAlgo::buildFWDmet
virtual void buildFWDmet() override
Definition: jFEXmetAlgo.cxx:125
LVL1::jFEXmetAlgo::m_met_angle
std::vector< float > m_met_angle
Definition: jFEXmetAlgo.h:58
LVL1::gFEX::FPGA
FPGA
Definition: GTowerHelpers.h:17
LVL1::jFEXmetAlgo::~jFEXmetAlgo
virtual ~jFEXmetAlgo()
Destructor.
Definition: jFEXmetAlgo.cxx:26
AthAlgTool
Definition: AthAlgTool.h:26
LVL1::jFEXmetAlgo::m_map_Etvalues
std::unordered_map< int, std::vector< int > > m_map_Etvalues
Definition: jFEXmetAlgo.h:74