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
16 #include "AthenaKernel/CLASS_DEF.h"
17 #include "L1CaloFEXSim/eTower.h"
18 #include "eFEXFPGA.h"
20 #include "L1CaloFEXSim/eFEXegTOB.h"
22 
23 namespace LVL1 {
24 
25  //Doxygen class description below:
31  static const InterfaceID IID_IeFEXSim("LVL1::eFEXSim", 1, 0);
32 
33  class eFEXSim : public AthAlgTool {
34 
35  public:
36  static const InterfaceID& interfaceID() { return IID_IeFEXSim; };
38  eFEXSim(const std::string& type,const std::string& name,const IInterface* parent);
39 
41  virtual ~eFEXSim();
42 
44  virtual StatusCode initialize();
46  virtual StatusCode finalize ();
47 
48  virtual void init (int id);
49 
50  virtual void reset ();
51 
52  virtual void execute();
53 
54  virtual int ID() const {return m_id;}
55 
56  virtual void SetTowersAndCells_SG(int tmp[10][18]);
57 
58  virtual StatusCode NewExecute(int tmp[10][18], eFEXOutputCollection* inputOutputCollection);
59 
60  virtual std::vector<std::unique_ptr<eFEXegTOB>> getEmTOBs();
61  virtual std::vector<std::unique_ptr<eFEXtauTOB>> getTauHeuristicTOBs();
62  virtual std::vector<std::unique_ptr<eFEXtauTOB>> getTauBDTTOBs();
63 
64  private:
65 
66  std::vector<std::unique_ptr<eFEXtauTOB>> getTauTOBs(std::vector<std::vector<std::unique_ptr<eFEXtauTOB>> >& tauTobObjects);
68  private:
69  int m_id{};
70  int m_eTowersIDs [10][18]{};
72  std::vector<eFEXFPGA*> m_eFEXFPGACollection;
73 
74  std::vector<std::vector<std::unique_ptr<eFEXegTOB>> > m_emTobObjects;
75  std::vector<std::vector<std::unique_ptr<eFEXtauTOB>> > m_tauHeuristicTobObjects;
76  std::vector<std::vector<std::unique_ptr<eFEXtauTOB>> > m_tauBDTTobObjects;
77 
78  ToolHandle<eFEXFPGA> m_eFEXFPGATool {this, "eFEXFPGATool", "LVL1::eFEXFPGA", "Tool that simulates the FPGA hardware"};
79 
80 
81  };
82 
83 } // end of namespace
84 
85 //CLASS_DEF( LVL1::eFEXSim , 32201200 , 1 )
86 
87 
88 #endif
eFEXOutputCollection.h
create ntuples output
LVL1::eFEXSim::m_emTobObjects
std::vector< std::vector< std::unique_ptr< eFEXegTOB > > > m_emTobObjects
Definition: eFEXSim.h:74
LVL1::eFEXSim::getTauHeuristicTOBs
virtual std::vector< std::unique_ptr< eFEXtauTOB > > getTauHeuristicTOBs()
Definition: eFEXSim.cxx:207
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
LVL1::eFEXSim::initialize
virtual StatusCode initialize()
standard Athena-Algorithm method
Definition: eFEXSim.cxx:28
LVL1::eFEXSim::execute
virtual void execute()
Definition: eFEXSim.cxx:67
LVL1::eFEXSim::interfaceID
static const InterfaceID & interfaceID()
Definition: eFEXSim.h:36
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:70
LVL1::eFEXSim::getEmTOBs
virtual std::vector< std::unique_ptr< eFEXegTOB > > getEmTOBs()
Definition: eFEXSim.cxx:151
LVL1::eFEXSim::SetTowersAndCells_SG
virtual void SetTowersAndCells_SG(int tmp[10][18])
Definition: eFEXSim.cxx:217
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
LVL1::eFEXSim::m_id
int m_id
Internal data.
Definition: eFEXSim.h:69
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:75
LVL1::eFEXSim::m_eFEXFPGATool
ToolHandle< eFEXFPGA > m_eFEXFPGATool
Definition: eFEXSim.h:78
LVL1::eFEXSim::NewExecute
virtual StatusCode NewExecute(int tmp[10][18], eFEXOutputCollection *inputOutputCollection)
Definition: eFEXSim.cxx:71
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
eFEXegTOB.h
TrigConf::name
Definition: HLTChainList.h:35
LVL1::eFEXSim::m_tauBDTTobObjects
std::vector< std::vector< std::unique_ptr< eFEXtauTOB > > > m_tauBDTTobObjects
Definition: eFEXSim.h:76
LVL1::eFEXSim::finalize
virtual StatusCode finalize()
standard Athena-Algorithm method
Definition: eFEXSim.cxx:36
CaloCellContainer.h
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
eFEXFPGA.h
LVL1::eFEXSim::reset
virtual void reset()
Definition: eFEXSim.cxx:42
LVL1::eFEXSim::m_eFEXFPGACollection
std::vector< eFEXFPGA * > m_eFEXFPGACollection
Definition: eFEXSim.h:72
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
Definition: eFEXSim.h:33
LVL1::eFEXSim::getTauBDTTOBs
virtual std::vector< std::unique_ptr< eFEXtauTOB > > getTauBDTTOBs()
Definition: eFEXSim.cxx:212
AthAlgTool
Definition: AthAlgTool.h:26
LVL1::eFEXSim::m_sCellsCollection
CaloCellContainer m_sCellsCollection
Definition: eFEXSim.h:71
LVL1::eFEXOutputCollection
Definition: eFEXOutputCollection.h:23
eTower.h
CLASS_DEF.h
macros to associate a CLID to a type
LVL1::eFEXSim::ID
virtual int ID() const
Definition: eFEXSim.h:54
LVL1::eFEXSim::init
virtual void init(int id)
Definition: eFEXSim.cxx:57