ATLAS Offline Software
Loading...
Searching...
No Matches
eFEXFPGA.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// eFEXFPGA.h -
7// -------------------
8// begin : 15 10 2019
9// email : jacob.julian.kempster@cern.ch
10// ***************************************************************************/
11
12
13#ifndef eFEXFPGA_H
14#define eFEXFPGA_H
15
21#include "eFEXFormTOBs.h"
23#include "TrigConfData/L1Menu.h"
26
27#include <vector>
28
29namespace LVL1 {
30
31 //Doxygen class description below:
37 static const InterfaceID IID_IeFEXFPGA("LVL1::eFEXFPGA", 1, 0);
38 class eFEXFPGA : public AthAlgTool {
39
40 public:
41 static const InterfaceID& interfaceID() { return IID_IeFEXFPGA; };
43 eFEXFPGA(const std::string& type,const std::string& name,const IInterface* parent);
44
46 virtual StatusCode initialize();
48 virtual ~eFEXFPGA();
49
50 virtual StatusCode init(int id, int efexid);
51 virtual StatusCode execute(eFEXOutputCollection* inputOutputCollection);
52 virtual void reset();
53 virtual int getID() const {return m_id;}
54
55 virtual void SetTowersAndCells_SG( int [][6] );
56 virtual void SetIsoWP(const std::vector<unsigned int>&, const std::vector<unsigned int>&, unsigned int &, unsigned int) const;
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 std::vector<std::unique_ptr<eFEXtauTOB>> getTauTOBs(std::vector< std::unique_ptr<eFEXtauTOB> >& tauTobObjects);
64
66 private:
67 const unsigned int m_eFexStep = 25;
68
69 int m_id = 0;
70 int m_efexid = 0;
71 std::vector< std::unique_ptr<eFEXegTOB> > m_emTobObjects;
72 std::vector< std::unique_ptr<eFEXtauTOB> > m_tauHeuristicTobObjects;
73 std::vector< std::unique_ptr<eFEXtauTOB> > m_tauBDTTobObjects;
74 int m_eTowersIDs [10][6]{};
75
77 this, "L1TriggerMenu", "DetectorStore+L1TriggerMenu",
78 "Name of the L1Menu object to read configuration from"};
79
81 this, "MyETowers", "eTowerContainer",
82 "Input container for eTowers"};
83
84 ToolHandle<eFEXtauAlgoBase> m_eFEXtauAlgoTool {
85 this, "eFEXtauAlgoTool", "LVL1::eFEXtauAlgo",
86 "Tool that runs the eFEX tau algorithm"};
87
88 ToolHandle<eFEXtauAlgoBase> m_eFEXtauBDTAlgoTool {
89 this, "eFEXtauBDTAlgoTool", "LVL1::eFEXtauBDTAlgo",
90 "Tool that runs the eFEX BDT tau algorithm"};
91
92 ToolHandle<eFEXegAlgo> m_eFEXegAlgoTool {
93 this, "eFEXegAlgoTool", "LVL1::eFEXegAlgo",
94 "Tool that runs the eFEX e/gamma algorithm"};
95
96 ToolHandle<eFEXFormTOBs> m_eFEXFormTOBsTool {this, "eFEXFormTOBs", "LVL1::eFEXFormTOBs", "Tool that creates eFEX TOB words"};
97 };
98
99} // end of namespace
100
101//CLASS_DEF( LVL1::eFEXFPGA , 32201201 , 1 )
102
103
104#endif
macros to associate a CLID to a type
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
const unsigned int m_eFexStep
Internal data.
Definition eFEXFPGA.h:67
virtual ~eFEXFPGA()
Destructor.
Definition eFEXFPGA.cxx:38
ToolHandle< eFEXFormTOBs > m_eFEXFormTOBsTool
Definition eFEXFPGA.h:96
virtual void SetTowersAndCells_SG(int[][6])
Definition eFEXFPGA.cxx:511
virtual StatusCode init(int id, int efexid)
Definition eFEXFPGA.cxx:59
std::vector< std::unique_ptr< eFEXegTOB > > m_emTobObjects
Definition eFEXFPGA.h:71
std::vector< std::unique_ptr< eFEXtauTOB > > m_tauHeuristicTobObjects
Definition eFEXFPGA.h:72
SG::ReadHandleKey< TrigConf::L1Menu > m_l1MenuKey
Definition eFEXFPGA.h:76
virtual int getID() const
Definition eFEXFPGA.h:53
ToolHandle< eFEXtauAlgoBase > m_eFEXtauAlgoTool
Definition eFEXFPGA.h:84
virtual StatusCode execute(eFEXOutputCollection *inputOutputCollection)
Definition eFEXFPGA.cxx:73
std::vector< std::unique_ptr< eFEXtauTOB > > m_tauBDTTobObjects
Definition eFEXFPGA.h:73
virtual std::vector< std::unique_ptr< eFEXegTOB > > getEmTOBs()
Definition eFEXFPGA.cxx:441
static const InterfaceID & interfaceID()
Definition eFEXFPGA.h:41
virtual void SetIsoWP(const std::vector< unsigned int > &, const std::vector< unsigned int > &, unsigned int &, unsigned int) const
Definition eFEXFPGA.cxx:556
virtual StatusCode initialize()
standard Athena-Algorithm method
Definition eFEXFPGA.cxx:44
ToolHandle< eFEXegAlgo > m_eFEXegAlgoTool
Definition eFEXFPGA.h:92
int m_eTowersIDs[10][6]
Definition eFEXFPGA.h:74
std::vector< std::unique_ptr< eFEXtauTOB > > getTauTOBs(std::vector< std::unique_ptr< eFEXtauTOB > > &tauTobObjects)
Definition eFEXFPGA.cxx:471
SG::ReadHandleKey< LVL1::eTowerContainer > m_eTowerContainerKey
Definition eFEXFPGA.h:80
virtual std::vector< std::unique_ptr< eFEXtauTOB > > getTauBDTTOBs()
Definition eFEXFPGA.cxx:506
virtual void reset()
Definition eFEXFPGA.cxx:67
ToolHandle< eFEXtauAlgoBase > m_eFEXtauBDTAlgoTool
Definition eFEXFPGA.h:88
eFEXFPGA(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
Definition eFEXFPGA.cxx:30
virtual std::vector< std::unique_ptr< eFEXtauTOB > > getTauHeuristicTOBs()
Definition eFEXFPGA.cxx:501
Property holding a SG store/key/clid from which a ReadHandle is made.
create ntuples output
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
static const InterfaceID IID_IeFEXFPGA("LVL1::eFEXFPGA", 1, 0)
The eFEXFPGA class defines the structure of a single eFEX FPGA Its purpose is: