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 int ID() const {return m_id;}
53
54 virtual void SetTowersAndCells_SG(int tmp[10][18]);
55
56 virtual StatusCode NewExecute(int tmp[10][18], eFEXOutputCollection* inputOutputCollection, const EventContext& ctx);
57
58 virtual std::vector<std::unique_ptr<eFEXegTOB>> getEmTOBs();
59 virtual std::vector<std::unique_ptr<eFEXtauTOB>> getTauHeuristicTOBs();
60 virtual std::vector<std::unique_ptr<eFEXtauTOB>> getTauBDTTOBs();
61
62 private:
63
64 std::vector<std::unique_ptr<eFEXtauTOB>> getTauTOBs(std::vector<std::vector<std::unique_ptr<eFEXtauTOB>> >& tauTobObjects);
66 private:
67 int m_id{};
68 int m_eTowersIDs [10][18]{};
70 std::vector<eFEXFPGA*> m_eFEXFPGACollection;
71
72 std::vector<std::vector<std::unique_ptr<eFEXegTOB>> > m_emTobObjects;
73 std::vector<std::vector<std::unique_ptr<eFEXtauTOB>> > m_tauHeuristicTobObjects;
74 std::vector<std::vector<std::unique_ptr<eFEXtauTOB>> > m_tauBDTTobObjects;
75
76 ToolHandle<eFEXFPGA> m_eFEXFPGATool {this, "eFEXFPGATool", "LVL1::eFEXFPGA", "Tool that simulates the FPGA hardware"};
77
78
79 };
80
81} // end of namespace
82
83//CLASS_DEF( LVL1::eFEXSim , 32201200 , 1 )
84
85
86#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:76
std::vector< std::vector< std::unique_ptr< eFEXtauTOB > > > m_tauHeuristicTobObjects
Definition eFEXSim.h:73
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:67
std::vector< std::vector< std::unique_ptr< eFEXegTOB > > > m_emTobObjects
Definition eFEXSim.h:72
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:36
CaloCellContainer m_sCellsCollection
Definition eFEXSim.h:69
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:74
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:70
virtual int ID() const
Definition eFEXSim.h:52
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:68
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: