ATLAS Offline Software
eFEXSim.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 //***************************************************************************
6 // eFEXSim.h -
7 // -------------------
8 // begin : 22 08 2019
9 // email : jacob.julian.kempster@cern.ch
10 // ***************************************************************************/
11 
12 
13 #ifndef eFEXSim_H
14 #define eFEXSim_H
17 #include "AthenaKernel/CLASS_DEF.h"
18 #include "L1CaloFEXSim/eTower.h"
19 #include "L1CaloFEXSim/eFEXFPGA.h"
21 #include "L1CaloFEXSim/eFEXegTOB.h"
22 
23 namespace LVL1 {
24 
25  //Doxygen class description below:
32  class eFEXSim : public AthAlgTool, virtual public IeFEXSim {
33 
34  public:
35 
37  eFEXSim(const std::string& type,const std::string& name,const IInterface* parent);
38 
40  virtual ~eFEXSim();
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 void execute() override ;
52 
53  virtual int ID() const override {return m_id;}
54 
55  virtual void SetTowersAndCells_SG(int tmp[10][18]) override;
56 
57  virtual StatusCode NewExecute(int tmp[10][18], eFEXOutputCollection* inputOutputCollection) override;
58 
59  virtual std::vector<std::unique_ptr<eFEXegTOB>> getEmTOBs() override;
60  virtual std::vector<std::unique_ptr<eFEXtauTOB>> getTauHeuristicTOBs() override;
61  virtual std::vector<std::unique_ptr<eFEXtauTOB>> getTauBDTTOBs() override;
62 
63  private:
64 
65  std::vector<std::unique_ptr<eFEXtauTOB>> getTauTOBs(std::vector<std::vector<std::unique_ptr<eFEXtauTOB>> >& tauTobObjects);
67  private:
68  int m_id{};
69  int m_eTowersIDs [10][18]{};
71  std::vector<eFEXFPGA*> m_eFEXFPGACollection;
72 
73  std::vector<std::vector<std::unique_ptr<eFEXegTOB>> > m_emTobObjects;
74  std::vector<std::vector<std::unique_ptr<eFEXtauTOB>> > m_tauHeuristicTobObjects;
75  std::vector<std::vector<std::unique_ptr<eFEXtauTOB>> > m_tauBDTTobObjects;
76 
77  ToolHandle<IeFEXFPGA> m_eFEXFPGATool {this, "eFEXFPGATool", "LVL1::eFEXFPGA", "Tool that simulates the FPGA hardware"};
78 
79 
80  };
81 
82 } // end of namespace
83 
84 //CLASS_DEF( LVL1::eFEXSim , 32201200 , 1 )
85 
86 
87 #endif
LVL1::eFEXSim::ID
virtual int ID() const override
Definition: eFEXSim.h:53
eFEXOutputCollection.h
create ntuples output
LVL1::eFEXSim::m_emTobObjects
std::vector< std::vector< std::unique_ptr< eFEXegTOB > > > m_emTobObjects
Definition: eFEXSim.h:73
LVL1::eFEXSim::reset
virtual void reset() override
Definition: eFEXSim.cxx:42
LVL1::eFEXSim::SetTowersAndCells_SG
virtual void SetTowersAndCells_SG(int tmp[10][18]) override
Definition: eFEXSim.cxx:217
LVL1::eFEXSim::getTauHeuristicTOBs
virtual std::vector< std::unique_ptr< eFEXtauTOB > > getTauHeuristicTOBs() override
Definition: eFEXSim.cxx:207
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::eFEXSim::NewExecute
virtual StatusCode NewExecute(int tmp[10][18], eFEXOutputCollection *inputOutputCollection) override
Definition: eFEXSim.cxx:71
LVL1::eFEXSim::initialize
virtual StatusCode initialize() override
standard Athena-Algorithm method
Definition: eFEXSim.cxx:28
LVL1::eFEXSim::getTauTOBs
std::vector< std::unique_ptr< eFEXtauTOB > > getTauTOBs(std::vector< std::vector< std::unique_ptr< eFEXtauTOB >> > &tauTobObjects)
Definition: eFEXSim.cxx:180
LVL1::eFEXSim::m_eTowersIDs
int m_eTowersIDs[10][18]
Definition: eFEXSim.h:69
LVL1::eFEXSim::getEmTOBs
virtual std::vector< std::unique_ptr< eFEXegTOB > > getEmTOBs() override
Definition: eFEXSim.cxx:151
LVL1::eFEXSim::finalize
virtual StatusCode finalize() override
standard Athena-Algorithm method
Definition: eFEXSim.cxx:36
LVL1::eFEXSim::execute
virtual void execute() override
Definition: eFEXSim.cxx:67
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
LVL1::eFEXSim::init
virtual void init(int id) override
Definition: eFEXSim.cxx:57
LVL1::eFEXSim::m_id
int m_id
Internal data.
Definition: eFEXSim.h:68
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LVL1::eFEXSim::m_tauHeuristicTobObjects
std::vector< std::vector< std::unique_ptr< eFEXtauTOB > > > m_tauHeuristicTobObjects
Definition: eFEXSim.h:74
IeFEXSim.h
LVL1::IeFEXSim
Definition: IeFEXSim.h:31
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
eFEXegTOB.h
TrigConf::name
Definition: HLTChainList.h:35
LVL1::eFEXSim::getTauBDTTOBs
virtual std::vector< std::unique_ptr< eFEXtauTOB > > getTauBDTTOBs() override
Definition: eFEXSim.cxx:212
LVL1::eFEXSim::m_tauBDTTobObjects
std::vector< std::vector< std::unique_ptr< eFEXtauTOB > > > m_tauBDTTobObjects
Definition: eFEXSim.h:75
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
eFEXFPGA.h
LVL1::eFEXSim::m_eFEXFPGACollection
std::vector< eFEXFPGA * > m_eFEXFPGACollection
Definition: eFEXSim.h:71
LVL1::eFEXSim::m_eFEXFPGATool
ToolHandle< IeFEXFPGA > m_eFEXFPGATool
Definition: eFEXSim.h:77
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LVL1::eFEXSim::~eFEXSim
virtual ~eFEXSim()
Destructor.
Definition: eFEXSim.cxx:63
LVL1::eFEXSim::eFEXSim
eFEXSim(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
Definition: eFEXSim.cxx:19
LVL1::eFEXSim
The eFEXSim class defines the structure of a single eFEX Its purpose is:
Definition: eFEXSim.h:32
AthAlgTool
Definition: AthAlgTool.h:26
LVL1::eFEXSim::m_sCellsCollection
CaloCellContainer m_sCellsCollection
Definition: eFEXSim.h:70
LVL1::eFEXOutputCollection
Definition: eFEXOutputCollection.h:23
eTower.h
CLASS_DEF.h
macros to associate a CLID to a type