ATLAS Offline Software
jFEXSim.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 //***************************************************************************
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 "L1CaloFEXSim/jFEXFPGA.h"
23 
24 
25 namespace LVL1 {
26 
27  //Doxygen class description below:
34  class jFEXSim : public AthAlgTool, virtual public IjFEXSim {
35 
36  public:
37 
39  jFEXSim(const std::string& type,const std::string& name,const IInterface* parent);
40 
42  virtual ~jFEXSim();
43 
45  virtual StatusCode initialize() override;
47  virtual StatusCode finalize () override;
48 
49  virtual void init (int id) override ;
50 
51  virtual void reset () override ;
52 
53  virtual int ID() override {return m_id;}
54 
57 
58  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;
59  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;
60  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;
61 
62  virtual std::vector<std::vector<std::vector<uint32_t>>> getFwdElTOBs() override;
63 
64  virtual std::vector< std::vector<std::unique_ptr<jFEXTOB>> > getTauTOBs() override;
65  virtual std::vector< std::vector<std::unique_ptr<jFEXTOB>> > getSmallRJetTOBs() override;
66  virtual std::vector< std::vector<std::unique_ptr<jFEXTOB>> > getLargeRJetTOBs() override;
67  virtual std::vector<std::unique_ptr<jFEXTOB>> getSumEtTOBs() override;
68  virtual std::vector<std::unique_ptr<jFEXTOB>> getMetTOBs() override;
69 
70 
72  private:
73 
74  int m_id;
77 
78  std::unordered_map<int,jTower> m_jTowersColl;
80  std::vector<jFEXFPGA*> m_jFEXFPGACollection;
81 
82  std::vector<std::vector<std::vector<uint32_t>>> m_fwdEl_tobWords;
83 
84  ToolHandle<IjFEXFPGA> m_jFEXFPGATool {this, "jFEXFPGATool", "LVL1::jFEXFPGA", "Tool that simulates the FPGA hardware"};
85 
86 
87  std::vector< std::vector<std::unique_ptr<jFEXTOB>> > m_tau_tobWords;
88  std::vector< std::vector<std::unique_ptr<jFEXTOB>> > m_smallRJet_tobWords;
89  std::vector< std::vector<std::unique_ptr<jFEXTOB>> > m_largeRJet_tobWords;
90  std::vector< std::vector<std::unique_ptr<jFEXTOB>> > m_sumET_tobWords;
91  std::vector< std::vector<std::unique_ptr<jFEXTOB>> > m_Met_tobWords;
92  };
93 
94 } // end of namespace
95 
96 //CLASS_DEF( LVL1::jFEXSim , 246128035 , 1 )
97 
98 
99 #endif
LVL1::jFEXSim::getSumEtTOBs
virtual std::vector< std::unique_ptr< jFEXTOB > > getSumEtTOBs() override
Definition: jFEXSim.cxx:804
LVL1::jFEXSim::finalize
virtual StatusCode finalize() override
standard Athena-Algorithm method
Definition: jFEXSim.cxx:44
LVL1::jFEXSim::m_jTowersColl
std::unordered_map< int, jTower > m_jTowersColl
Definition: jFEXSim.h:78
LVL1::jFEXSim::getTauTOBs
virtual std::vector< std::vector< std::unique_ptr< jFEXTOB > > > getTauTOBs() override
Definition: jFEXSim.cxx:782
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:342
LVL1::jFEXSim::m_id
int m_id
Internal data.
Definition: jFEXSim.h:74
LVL1::FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width
constexpr static int jFEX_thin_algoSpace_width
Definition: FEXAlgoSpaceDefs.h:26
LVL1::jFEXSim::m_largeRJet_tobWords
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_largeRJet_tobWords
Definition: jFEXSim.h:89
LVL1::jFEXSim::getFwdElTOBs
virtual std::vector< std::vector< std::vector< uint32_t > > > getFwdElTOBs() override
Definition: jFEXSim.cxx:798
LVL1::jFEXSim::m_jFEXFPGACollection
std::vector< jFEXFPGA * > m_jFEXFPGACollection
Definition: jFEXSim.h:80
LVL1::jFEXSim::jFEXSim
jFEXSim(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
Definition: jFEXSim.cxx:27
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:589
LVL1::FEXAlgoSpaceDefs::jFEX_algoSpace_height
constexpr static int jFEX_algoSpace_height
Definition: FEXAlgoSpaceDefs.h:27
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::jFEXSim::m_sCellsCollection
CaloCellContainer m_sCellsCollection
Definition: jFEXSim.h:79
LVL1::jFEXSim::ID
virtual int ID() override
Definition: jFEXSim.h:53
LVL1::jFEXSim::initialize
virtual StatusCode initialize() override
standard Athena-Algorithm method
Definition: jFEXSim.cxx:36
LVL1::jFEXSim::SetTowersAndCells_SG
virtual void SetTowersAndCells_SG(int tmp[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]) override
Definition: jFEXSim.cxx:698
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:819
LVL1::FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width
constexpr static int jFEX_wide_algoSpace_width
Definition: FEXAlgoSpaceDefs.h:25
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
CaloCell_SuperCell_ID.h
Helper class for offline supercell identifiers.
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:87
LVL1::jFEXSim::init
virtual void init(int id) override
Definition: jFEXSim.cxx:81
LVL1::jFEXSim::m_Met_tobWords
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_Met_tobWords
Definition: jFEXSim.h:91
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:94
LVL1::jFEXSim::getLargeRJetTOBs
virtual std::vector< std::vector< std::unique_ptr< jFEXTOB > > > getLargeRJetTOBs() override
Definition: jFEXSim.cxx:767
LVL1::jFEXSim::m_jFEXFPGATool
ToolHandle< IjFEXFPGA > m_jFEXFPGATool
Definition: jFEXSim.h:84
CaloCellContainer.h
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
LVL1::jFEXSim::reset
virtual void reset() override
Definition: jFEXSim.cxx:50
LVL1::IjFEXSim
Definition: IjFEXSim.h:33
LVL1::jFEXSim::getSmallRJetTOBs
virtual std::vector< std::vector< std::unique_ptr< jFEXTOB > > > getSmallRJetTOBs() override
Definition: jFEXSim.cxx:751
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LVL1::jFEXSim::m_sumET_tobWords
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_sumET_tobWords
Definition: jFEXSim.h:90
CaloIdManager.h
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:75
LVL1::jFEXSim::m_tau_tobWords
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_tau_tobWords
Definition: jFEXSim.h:87
jTower.h
LVL1::jFEXSim::m_jTowersIDs_Thin
int m_jTowersIDs_Thin[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width]
Definition: jFEXSim.h:76
LVL1::jFEXSim
The jFEXSim class defines the structure of a single jFEX Its purpose is:
Definition: jFEXSim.h:34
LVL1::jFEXSim::m_smallRJet_tobWords
std::vector< std::vector< std::unique_ptr< jFEXTOB > > > m_smallRJet_tobWords
Definition: jFEXSim.h:88
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:82