ATLAS Offline Software
Loading...
Searching...
No Matches
eFEXSim.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 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 "L1CaloFEXSim/eTower.h"
18#include "eFEXFPGA.h"
21
22namespace LVL1 {
23
24 //Doxygen class description below:
30 static const InterfaceID IID_IeFEXSim("LVL1::eFEXSim", 1, 0);
31
32 class eFEXSim : public AthAlgTool {
33
34 public:
35 static const InterfaceID& interfaceID() { return IID_IeFEXSim; };
37 eFEXSim(const std::string& type,const std::string& name,const IInterface* parent);
38
40 virtual ~eFEXSim();
41
43 virtual StatusCode initialize();
45 virtual StatusCode finalize ();
46
47 virtual void init (int id);
48
49 virtual void reset ();
50
51 virtual int ID() const {return m_id;}
52
53 virtual void SetTowersAndCells_SG(int tmp[10][18]);
54
55 virtual StatusCode NewExecute(int tmp[10][18], eFEXOutputCollection* inputOutputCollection, const EventContext& ctx);
56
57 virtual std::vector<std::unique_ptr<eFEXegTOB>> getEmTOBs();
58 virtual std::vector<std::unique_ptr<eFEXtauTOB>> getTauHeuristicTOBs();
59 virtual std::vector<std::unique_ptr<eFEXtauTOB>> getTauBDTTOBs();
60
61 private:
62
63 std::vector<std::unique_ptr<eFEXtauTOB>> getTauTOBs(std::vector<std::vector<std::unique_ptr<eFEXtauTOB>> >& tauTobObjects);
65 private:
66 int m_id{};
67 int m_eTowersIDs [10][18]{};
68 std::vector<eFEXFPGA*> m_eFEXFPGACollection;
69
70 std::vector<std::vector<std::unique_ptr<eFEXegTOB>> > m_emTobObjects;
71 std::vector<std::vector<std::unique_ptr<eFEXtauTOB>> > m_tauHeuristicTobObjects;
72 std::vector<std::vector<std::unique_ptr<eFEXtauTOB>> > m_tauBDTTobObjects;
73
74 ToolHandle<eFEXFPGA> m_eFEXFPGATool {this, "eFEXFPGATool", "LVL1::eFEXFPGA", "Tool that simulates the FPGA hardware"};
75
76
77 };
78
79} // end of namespace
80
81//CLASS_DEF( LVL1::eFEXSim , 32201200 , 1 )
82
83
84#endif
macros to associate a CLID to a type
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
ToolHandle< eFEXFPGA > m_eFEXFPGATool
Definition eFEXSim.h:74
std::vector< std::vector< std::unique_ptr< eFEXtauTOB > > > m_tauHeuristicTobObjects
Definition eFEXSim.h:71
std::vector< std::unique_ptr< eFEXtauTOB > > getTauTOBs(std::vector< std::vector< std::unique_ptr< eFEXtauTOB > > > &tauTobObjects)
Definition eFEXSim.cxx:177
virtual std::vector< std::unique_ptr< eFEXegTOB > > getEmTOBs()
Definition eFEXSim.cxx:148
int m_id
Internal data.
Definition eFEXSim.h:66
std::vector< std::vector< std::unique_ptr< eFEXegTOB > > > m_emTobObjects
Definition eFEXSim.h:70
virtual void reset()
Definition eFEXSim.cxx:42
virtual StatusCode finalize()
standard Athena-Algorithm method
Definition eFEXSim.cxx:36
virtual std::vector< std::unique_ptr< eFEXtauTOB > > getTauBDTTOBs()
Definition eFEXSim.cxx:209
virtual void init(int id)
Definition eFEXSim.cxx:57
static const InterfaceID & interfaceID()
Definition eFEXSim.h:35
virtual std::vector< std::unique_ptr< eFEXtauTOB > > getTauHeuristicTOBs()
Definition eFEXSim.cxx:204
std::vector< std::vector< std::unique_ptr< eFEXtauTOB > > > m_tauBDTTobObjects
Definition eFEXSim.h:72
virtual StatusCode initialize()
standard Athena-Algorithm method
Definition eFEXSim.cxx:28
eFEXSim(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
Definition eFEXSim.cxx:19
virtual void SetTowersAndCells_SG(int tmp[10][18])
Definition eFEXSim.cxx:214
std::vector< eFEXFPGA * > m_eFEXFPGACollection
Definition eFEXSim.h:68
virtual int ID() const
Definition eFEXSim.h:51
virtual ~eFEXSim()
Destructor.
Definition eFEXSim.cxx:63
virtual StatusCode NewExecute(int tmp[10][18], eFEXOutputCollection *inputOutputCollection, const EventContext &ctx)
Definition eFEXSim.cxx:68
int m_eTowersIDs[10][18]
Definition eFEXSim.h:67
create ntuples output
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
static const InterfaceID IID_IeFEXSim("LVL1::eFEXSim", 1, 0)
The eFEXSim class defines the structure of a single eFEX Its purpose is: