ATLAS Offline Software
Loading...
Searching...
No Matches
jFEXSim.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//***************************************************************************
6// jFEXSim.h -
7// -------------------
8// begin : 22 08 2019
9// email : jacob.julian.kempster@cern.ch
10// ***************************************************************************/
11
12#ifndef jFEXSim_H
13#define jFEXSim_H
16#include "L1CaloFEXSim/jTower.h"
17#include "jFEXFPGA.h"
20#include <vector>
21
22namespace LVL1 {
23
24 //Doxygen class description below:
30
31 class jFEXSim : public AthAlgTool, virtual public IjFEXSim {
32
33 public:
34
36 jFEXSim(const std::string& type,const std::string& name,const IInterface* parent);
37
39 virtual ~jFEXSim();
40
42 virtual StatusCode initialize() override;
44 virtual StatusCode finalize () override;
45
46 virtual void init (int id) override ;
47
48 virtual void reset () override ;
49
50 virtual int ID() const override {return m_id;}
51
54
55 virtual StatusCode ExecuteForwardASide(int tmp [2*FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width], jFEXOutputCollection* inputOutputCollection, const std::pair<unsigned int, const std::vector<int>&> & jetCalibrationParameters) override;
56 virtual StatusCode ExecuteForwardCSide(int tmp [2*FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width], jFEXOutputCollection* inputOutputCollection, const std::pair<unsigned int, const std::vector<int>&> & jetCalibrationParameters) override;
57 virtual StatusCode ExecuteBarrel(int tmp [2*FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width], jFEXOutputCollection* inputOutputCollection, const std::pair<unsigned int, const std::vector<int>&> & jetCalibrationParameters) override;
58
59 virtual const std::vector<std::vector<std::vector<uint32_t>>>& getFwdElTOBs() const override;
60
61 virtual std::vector< std::vector<std::unique_ptr<jFEXTOB>> > getTauTOBs() override;
62 virtual std::vector< std::vector<std::unique_ptr<jFEXTOB>> > getSmallRJetTOBs() override;
63 virtual std::vector< std::vector<std::unique_ptr<jFEXTOB>> > getLargeRJetTOBs() override;
64 virtual std::vector<std::unique_ptr<jFEXTOB>> getSumEtTOBs() override;
65 virtual std::vector<std::unique_ptr<jFEXTOB>> getMetTOBs() override;
66
67
69 private:
70
71 int m_id{};
74
75 std::unordered_map<int,jTower> m_jTowersColl;
76
77 std::vector<jFEXFPGA*> m_jFEXFPGACollection;
78
79 std::vector<std::vector<std::vector<uint32_t>>> m_fwdEl_tobWords;
80
81 ToolHandle<IjFEXFPGA> m_jFEXFPGATool {this, "jFEXFPGATool", "LVL1::jFEXFPGA", "Tool that simulates the FPGA hardware"};
82
83
84 std::vector< std::vector<std::unique_ptr<jFEXTOB>> > m_tau_tobWords;
85 std::vector< std::vector<std::unique_ptr<jFEXTOB>> > m_smallRJet_tobWords;
86 std::vector< std::vector<std::unique_ptr<jFEXTOB>> > m_largeRJet_tobWords;
87 std::vector< std::vector<std::unique_ptr<jFEXTOB>> > m_sumET_tobWords;
88 std::vector< std::vector<std::unique_ptr<jFEXTOB>> > m_Met_tobWords;
89 };
90
91} // end of namespace
92
93//CLASS_DEF( LVL1::jFEXSim , 246128035 , 1 )
94
95
96#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 std::vector< std::unique_ptr< jFEXTOB > > getMetTOBs() override
Definition jFEXSim.cxx:804
virtual std::vector< std::vector< std::unique_ptr< jFEXTOB > > > getSmallRJetTOBs() override
Definition jFEXSim.cxx:741
virtual StatusCode finalize() override
standard Athena-Algorithm method
Definition jFEXSim.cxx:34
virtual const std::vector< std::vector< std::vector< uint32_t > > > & getFwdElTOBs() const override
Definition jFEXSim.cxx:785
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_tau_tobWords
Definition jFEXSim.h:84
virtual std::vector< std::vector< std::unique_ptr< jFEXTOB > > > getTauTOBs() override
Definition jFEXSim.cxx:770
virtual StatusCode ExecuteForwardASide(int tmp[2 *FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width], jFEXOutputCollection *inputOutputCollection, const std::pair< unsigned int, const std::vector< int > & > &jetCalibrationParameters) override
Definition jFEXSim.cxx:84
virtual void SetTowersAndCells_SG(int tmp[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]) override
Definition jFEXSim.cxx:688
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_largeRJet_tobWords
Definition jFEXSim.h:86
ToolHandle< IjFEXFPGA > m_jFEXFPGATool
Definition jFEXSim.h:81
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_sumET_tobWords
Definition jFEXSim.h:87
std::unordered_map< int, jTower > m_jTowersColl
Definition jFEXSim.h:75
std::vector< std::vector< std::vector< uint32_t > > > m_fwdEl_tobWords
Definition jFEXSim.h:79
virtual ~jFEXSim()
Destructor.
Definition jFEXSim.cxx:77
virtual StatusCode initialize() override
standard Athena-Algorithm method
Definition jFEXSim.cxx:26
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_Met_tobWords
Definition jFEXSim.h:88
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_smallRJet_tobWords
Definition jFEXSim.h:85
std::vector< jFEXFPGA * > m_jFEXFPGACollection
Definition jFEXSim.h:77
virtual StatusCode ExecuteBarrel(int tmp[2 *FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width], jFEXOutputCollection *inputOutputCollection, const std::pair< unsigned int, const std::vector< int > & > &jetCalibrationParameters) override
Definition jFEXSim.cxx:579
int m_id
Internal data.
Definition jFEXSim.h:71
int m_jTowersIDs_Wide[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]
Definition jFEXSim.h:72
int m_jTowersIDs_Thin[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width]
Definition jFEXSim.h:73
virtual void init(int id) override
Definition jFEXSim.cxx:71
virtual StatusCode ExecuteForwardCSide(int tmp[2 *FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width], jFEXOutputCollection *inputOutputCollection, const std::pair< unsigned int, const std::vector< int > & > &jetCalibrationParameters) override
Definition jFEXSim.cxx:332
virtual void reset() override
Definition jFEXSim.cxx:40
virtual int ID() const override
Definition jFEXSim.h:50
virtual std::vector< std::unique_ptr< jFEXTOB > > getSumEtTOBs() override
Definition jFEXSim.cxx:790
virtual std::vector< std::vector< std::unique_ptr< jFEXTOB > > > getLargeRJetTOBs() override
Definition jFEXSim.cxx:756
jFEXSim(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
Definition jFEXSim.cxx:17
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...