ATLAS Offline Software
Loading...
Searching...
No Matches
jFEXSim.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 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
17#include "L1CaloFEXSim/jTower.h"
18#include "jFEXFPGA.h"
21#include <vector>
22
23namespace LVL1 {
24
25 //Doxygen class description below:
31
32 class jFEXSim : public AthAlgTool, virtual public IjFEXSim {
33
34 public:
35
37 jFEXSim(const std::string& type,const std::string& name,const IInterface* parent);
38
40 virtual ~jFEXSim();
41
43 virtual StatusCode initialize() override;
45 virtual StatusCode finalize () override;
46
47 virtual void init (int id) override ;
48
49 virtual void reset () override ;
50
51 virtual int ID() override {return m_id;}
52
55
56 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;
57 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;
58 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;
59
60 virtual std::vector<std::vector<std::vector<uint32_t>>> getFwdElTOBs() override;
61
62 virtual std::vector< std::vector<std::unique_ptr<jFEXTOB>> > getTauTOBs() override;
63 virtual std::vector< std::vector<std::unique_ptr<jFEXTOB>> > getSmallRJetTOBs() override;
64 virtual std::vector< std::vector<std::unique_ptr<jFEXTOB>> > getLargeRJetTOBs() override;
65 virtual std::vector<std::unique_ptr<jFEXTOB>> getSumEtTOBs() override;
66 virtual std::vector<std::unique_ptr<jFEXTOB>> getMetTOBs() override;
67
68
70 private:
71
72 int m_id{};
75
76 std::unordered_map<int,jTower> m_jTowersColl;
77 // FIXME: unused?
78 //CaloCellContainer m_sCellsCollection;
79 std::vector<jFEXFPGA*> m_jFEXFPGACollection;
80
81 std::vector<std::vector<std::vector<uint32_t>>> m_fwdEl_tobWords;
82
83 ToolHandle<IjFEXFPGA> m_jFEXFPGATool {this, "jFEXFPGATool", "LVL1::jFEXFPGA", "Tool that simulates the FPGA hardware"};
84
85
86 std::vector< std::vector<std::unique_ptr<jFEXTOB>> > m_tau_tobWords;
87 std::vector< std::vector<std::unique_ptr<jFEXTOB>> > m_smallRJet_tobWords;
88 std::vector< std::vector<std::unique_ptr<jFEXTOB>> > m_largeRJet_tobWords;
89 std::vector< std::vector<std::unique_ptr<jFEXTOB>> > m_sumET_tobWords;
90 std::vector< std::vector<std::unique_ptr<jFEXTOB>> > m_Met_tobWords;
91 };
92
93} // end of namespace
94
95//CLASS_DEF( LVL1::jFEXSim , 246128035 , 1 )
96
97
98#endif
macros to associate a CLID to a type
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:805
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
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_tau_tobWords
Definition jFEXSim.h:86
virtual std::vector< std::vector< std::unique_ptr< jFEXTOB > > > getTauTOBs() override
Definition jFEXSim.cxx:771
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 int ID() override
Definition jFEXSim.h:51
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:88
ToolHandle< IjFEXFPGA > m_jFEXFPGATool
Definition jFEXSim.h:83
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_sumET_tobWords
Definition jFEXSim.h:89
std::unordered_map< int, jTower > m_jTowersColl
Definition jFEXSim.h:76
std::vector< std::vector< std::vector< uint32_t > > > m_fwdEl_tobWords
Definition jFEXSim.h:81
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:90
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_smallRJet_tobWords
Definition jFEXSim.h:87
std::vector< jFEXFPGA * > m_jFEXFPGACollection
Definition jFEXSim.h:79
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:72
int m_jTowersIDs_Wide[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]
Definition jFEXSim.h:73
int m_jTowersIDs_Thin[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width]
Definition jFEXSim.h:74
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 std::vector< std::unique_ptr< jFEXTOB > > getSumEtTOBs() override
Definition jFEXSim.cxx:791
virtual std::vector< std::vector< std::unique_ptr< jFEXTOB > > > getLargeRJetTOBs() override
Definition jFEXSim.cxx:757
virtual std::vector< std::vector< std::vector< uint32_t > > > getFwdElTOBs() override
Definition jFEXSim.cxx:786
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...