ATLAS Offline Software
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
16 #include "AthenaKernel/CLASS_DEF.h"
17 #include "L1CaloFEXSim/jTower.h"
18 #include "jFEXFPGA.h"
19 #include "L1CaloFEXSim/jFEXTOB.h"
21 #include <vector>
22 
23 namespace LVL1 {
24 
25  //Doxygen class description below:
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
jFEXTOB.h
LVL1::jFEXSim::getSumEtTOBs
virtual std::vector< std::unique_ptr< jFEXTOB > > getSumEtTOBs() override
Definition: jFEXSim.cxx:791
LVL1::jFEXSim::finalize
virtual StatusCode finalize() override
standard Athena-Algorithm method
Definition: jFEXSim.cxx:34
LVL1::jFEXSim::m_jTowersColl
std::unordered_map< int, jTower > m_jTowersColl
Definition: jFEXSim.h:76
LVL1::jFEXSim::getTauTOBs
virtual std::vector< std::vector< std::unique_ptr< jFEXTOB > > > getTauTOBs() override
Definition: jFEXSim.cxx:771
LVL1::jFEXSim::ExecuteForwardCSide
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
LVL1::jFEXSim::m_id
int m_id
Internal data.
Definition: jFEXSim.h:72
LVL1::FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width
constexpr static int jFEX_thin_algoSpace_width
Definition: FEXAlgoSpaceDefs.h:28
LVL1::jFEXSim::m_largeRJet_tobWords
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_largeRJet_tobWords
Definition: jFEXSim.h:88
LVL1::jFEXSim::getFwdElTOBs
virtual std::vector< std::vector< std::vector< uint32_t > > > getFwdElTOBs() override
Definition: jFEXSim.cxx:786
LVL1::jFEXSim::m_jFEXFPGACollection
std::vector< jFEXFPGA * > m_jFEXFPGACollection
Definition: jFEXSim.h:79
LVL1::jFEXSim::jFEXSim
jFEXSim(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
Definition: jFEXSim.cxx:17
LVL1::jFEXSim::ExecuteBarrel
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
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_height
constexpr static int jFEX_algoSpace_height
Definition: FEXAlgoSpaceDefs.h:29
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::jFEXSim::ID
virtual int ID() override
Definition: jFEXSim.h:51
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
LVL1::jFEXSim::initialize
virtual StatusCode initialize() override
standard Athena-Algorithm method
Definition: jFEXSim.cxx:26
LVL1::jFEXSim::SetTowersAndCells_SG
virtual void SetTowersAndCells_SG(int tmp[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]) override
Definition: jFEXSim.cxx:688
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
jFEXFPGA.h
LVL1::jFEXSim::getMetTOBs
virtual std::vector< std::unique_ptr< jFEXTOB > > getMetTOBs() override
Definition: jFEXSim.cxx:805
LVL1::FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width
constexpr static int jFEX_wide_algoSpace_width
Definition: FEXAlgoSpaceDefs.h:27
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LVL1::jFEXOutputCollection
Definition: jFEXOutputCollection.h:23
FEXAlgoSpaceDefs.h
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
IjFEXSim.h
LVL1::jFEXSim::~jFEXSim
virtual ~jFEXSim()
Destructor.
Definition: jFEXSim.cxx:77
LVL1::jFEXSim::init
virtual void init(int id) override
Definition: jFEXSim.cxx:71
LVL1::jFEXSim::m_Met_tobWords
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_Met_tobWords
Definition: jFEXSim.h:90
TrigConf::name
Definition: HLTChainList.h:35
LVL1::jFEXSim::ExecuteForwardASide
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
LVL1::jFEXSim::getLargeRJetTOBs
virtual std::vector< std::vector< std::unique_ptr< jFEXTOB > > > getLargeRJetTOBs() override
Definition: jFEXSim.cxx:757
LVL1::jFEXSim::m_jFEXFPGATool
ToolHandle< IjFEXFPGA > m_jFEXFPGATool
Definition: jFEXSim.h:83
LVL1::jFEXSim::reset
virtual void reset() override
Definition: jFEXSim.cxx:40
LVL1::IjFEXSim
Definition: IjFEXSim.h:33
LVL1::jFEXSim::getSmallRJetTOBs
virtual std::vector< std::vector< std::unique_ptr< jFEXTOB > > > getSmallRJetTOBs() override
Definition: jFEXSim.cxx:741
LVL1::jFEXSim::m_sumET_tobWords
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_sumET_tobWords
Definition: jFEXSim.h:89
AthAlgTool
Definition: AthAlgTool.h:26
LVL1::jFEXSim::m_jTowersIDs_Wide
int m_jTowersIDs_Wide[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]
Definition: jFEXSim.h:73
LVL1::jFEXSim::m_tau_tobWords
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_tau_tobWords
Definition: jFEXSim.h:86
jTower.h
LVL1::jFEXSim::m_jTowersIDs_Thin
int m_jTowersIDs_Thin[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width]
Definition: jFEXSim.h:74
LVL1::jFEXSim
The jFEXSim class defines the structure of a single jFEX Its purpose is:
Definition: jFEXSim.h:32
LVL1::jFEXSim::m_smallRJet_tobWords
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_smallRJet_tobWords
Definition: jFEXSim.h:87
CLASS_DEF.h
macros to associate a CLID to a type
LVL1::jFEXSim::m_fwdEl_tobWords
std::vector< std::vector< std::vector< uint32_t > > > m_fwdEl_tobWords
Definition: jFEXSim.h:81