ATLAS Offline Software
Loading...
Searching...
No Matches
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 "L1CaloFEXSim/eTower.h"
18#include "eFEXFPGA.h"
22
23namespace 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
macros to associate a CLID to a type
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Container class for CaloCell.
ToolHandle< eFEXFPGA > m_eFEXFPGATool
Definition eFEXSim.h:78
std::vector< std::vector< std::unique_ptr< eFEXtauTOB > > > m_tauHeuristicTobObjects
Definition eFEXSim.h:75
std::vector< std::unique_ptr< eFEXtauTOB > > getTauTOBs(std::vector< std::vector< std::unique_ptr< eFEXtauTOB > > > &tauTobObjects)
Definition eFEXSim.cxx:180
virtual std::vector< std::unique_ptr< eFEXegTOB > > getEmTOBs()
Definition eFEXSim.cxx:151
int m_id
Internal data.
Definition eFEXSim.h:69
std::vector< std::vector< std::unique_ptr< eFEXegTOB > > > m_emTobObjects
Definition eFEXSim.h:74
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:212
virtual void init(int id)
Definition eFEXSim.cxx:57
static const InterfaceID & interfaceID()
Definition eFEXSim.h:36
CaloCellContainer m_sCellsCollection
Definition eFEXSim.h:71
virtual std::vector< std::unique_ptr< eFEXtauTOB > > getTauHeuristicTOBs()
Definition eFEXSim.cxx:207
std::vector< std::vector< std::unique_ptr< eFEXtauTOB > > > m_tauBDTTobObjects
Definition eFEXSim.h:76
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:217
std::vector< eFEXFPGA * > m_eFEXFPGACollection
Definition eFEXSim.h:72
virtual StatusCode NewExecute(int tmp[10][18], eFEXOutputCollection *inputOutputCollection)
Definition eFEXSim.cxx:71
virtual void execute()
Definition eFEXSim.cxx:67
virtual int ID() const
Definition eFEXSim.h:54
virtual ~eFEXSim()
Destructor.
Definition eFEXSim.cxx:63
int m_eTowersIDs[10][18]
Definition eFEXSim.h:70
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: