ATLAS Offline Software
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 
17 #include "AthenaKernel/CLASS_DEF.h"
24 #include "TrigConfData/L1Menu.h"
25 #include "L1CaloFEXSim/eFEXegTOB.h"
27 
28 #include <vector>
29 
30 namespace LVL1 {
31 
32  //Doxygen class description below:
39  class eFEXFPGA : public AthAlgTool, virtual public IeFEXFPGA {
40 
41  public:
43  eFEXFPGA(const std::string& type,const std::string& name,const IInterface* parent);
44 
46  virtual StatusCode initialize() override;
48  virtual ~eFEXFPGA();
49 
50  virtual StatusCode init(int id, int efexid) override ;
51  virtual StatusCode execute(eFEXOutputCollection* inputOutputCollection) override ;
52  virtual void reset() override ;
53  virtual int getID() const override {return m_id;}
54 
55  virtual void SetTowersAndCells_SG( int [][6] ) override ;
56  virtual void SetIsoWP(const std::vector<unsigned int>&, const std::vector<unsigned int>&, unsigned int &, unsigned int) const override;
57 
58  virtual std::vector <std::unique_ptr<eFEXegTOB>> getEmTOBs() override;
59  virtual std::vector <std::unique_ptr<eFEXtauTOB>> getTauHeuristicTOBs() override;
60  virtual std::vector <std::unique_ptr<eFEXtauTOB>> getTauBDTTOBs() override;
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<IeFEXtauAlgo> m_eFEXtauAlgoTool {
85  this, "eFEXtauAlgoTool", "LVL1::eFEXtauAlgo",
86  "Tool that runs the eFEX tau algorithm"};
87 
88  ToolHandle<IeFEXtauAlgo> m_eFEXtauBDTAlgoTool {
89  this, "eFEXtauBDTAlgoTool", "LVL1::eFEXtauBDTAlgo",
90  "Tool that runs the eFEX BDT tau algorithm"};
91 
92  ToolHandle<IeFEXegAlgo> m_eFEXegAlgoTool {
93  this, "eFEXegAlgoTool", "LVL1::eFEXegAlgo",
94  "Tool that runs the eFEX e/gamma algorithm"};
95 
96  ToolHandle<IeFEXFormTOBs> 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
eFEXOutputCollection.h
create ntuples output
LVL1::eFEXFPGA::init
virtual StatusCode init(int id, int efexid) override
Definition: eFEXFPGA.cxx:59
IeFEXegAlgo.h
eTowerContainer.h
LVL1::eFEXFPGA::getTauHeuristicTOBs
virtual std::vector< std::unique_ptr< eFEXtauTOB > > getTauHeuristicTOBs() override
Definition: eFEXFPGA.cxx:495
LVL1::eFEXFPGA::m_eFEXegAlgoTool
ToolHandle< IeFEXegAlgo > m_eFEXegAlgoTool
Definition: eFEXFPGA.h:92
LVL1::eFEXFPGA::getTauTOBs
std::vector< std::unique_ptr< eFEXtauTOB > > getTauTOBs(std::vector< std::unique_ptr< eFEXtauTOB > > &tauTobObjects)
Definition: eFEXFPGA.cxx:465
LVL1::eFEXFPGA::m_eFEXtauBDTAlgoTool
ToolHandle< IeFEXtauAlgo > m_eFEXtauBDTAlgoTool
Definition: eFEXFPGA.h:88
LVL1::eFEXFPGA::getTauBDTTOBs
virtual std::vector< std::unique_ptr< eFEXtauTOB > > getTauBDTTOBs() override
Definition: eFEXFPGA.cxx:500
eFEXtauTOB.h
LVL1::eFEXFPGA::m_id
int m_id
Definition: eFEXFPGA.h:69
IeFEXtauAlgo.h
LVL1::eFEXFPGA::m_tauBDTTobObjects
std::vector< std::unique_ptr< eFEXtauTOB > > m_tauBDTTobObjects
Definition: eFEXFPGA.h:73
SG::ReadHandleKey< TrigConf::L1Menu >
LVL1
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Definition: ICMMCPHitsCnvTool.h:18
LVL1::eFEXFPGA::m_l1MenuKey
SG::ReadHandleKey< TrigConf::L1Menu > m_l1MenuKey
Definition: eFEXFPGA.h:76
LVL1::eFEXFPGA::m_emTobObjects
std::vector< std::unique_ptr< eFEXegTOB > > m_emTobObjects
Definition: eFEXFPGA.h:71
LVL1::eFEXFPGA::m_eFEXtauAlgoTool
ToolHandle< IeFEXtauAlgo > m_eFEXtauAlgoTool
Definition: eFEXFPGA.h:84
LVL1::eFEXFPGA::m_eFexStep
const unsigned int m_eFexStep
Internal data.
Definition: eFEXFPGA.h:67
LVL1::eFEXFPGA::~eFEXFPGA
virtual ~eFEXFPGA()
Destructor.
Definition: eFEXFPGA.cxx:38
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
LVL1::eFEXFPGA::m_eFEXFormTOBsTool
ToolHandle< IeFEXFormTOBs > m_eFEXFormTOBsTool
Definition: eFEXFPGA.h:96
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LVL1::eFEXFPGA::getEmTOBs
virtual std::vector< std::unique_ptr< eFEXegTOB > > getEmTOBs() override
Definition: eFEXFPGA.cxx:435
LVL1::IeFEXFPGA
Definition: IeFEXFPGA.h:30
IeFEXFPGA.h
eFEXegTOB.h
TrigConf::name
Definition: HLTChainList.h:35
LVL1::eFEXFPGA::SetTowersAndCells_SG
virtual void SetTowersAndCells_SG(int[][6]) override
Definition: eFEXFPGA.cxx:505
LVL1::eFEXFPGA::m_eTowersIDs
int m_eTowersIDs[10][6]
Definition: eFEXFPGA.h:74
LVL1::eFEXFPGA::m_eTowerContainerKey
SG::ReadHandleKey< LVL1::eTowerContainer > m_eTowerContainerKey
Definition: eFEXFPGA.h:80
IeFEXFormTOBs.h
LVL1::eFEXFPGA::m_efexid
int m_efexid
Definition: eFEXFPGA.h:70
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LVL1::eFEXFPGA::eFEXFPGA
eFEXFPGA(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
Definition: eFEXFPGA.cxx:30
LVL1::eFEXFPGA
The eFEXFPGA class defines the structure of a single eFEX FPGA Its purpose is:
Definition: eFEXFPGA.h:39
LVL1::eFEXFPGA::SetIsoWP
virtual void SetIsoWP(const std::vector< unsigned int > &, const std::vector< unsigned int > &, unsigned int &, unsigned int) const override
Definition: eFEXFPGA.cxx:550
LVL1::eFEXFPGA::getID
virtual int getID() const override
Definition: eFEXFPGA.h:53
AthAlgTool
Definition: AthAlgTool.h:26
L1Menu.h
LVL1::eFEXOutputCollection
Definition: eFEXOutputCollection.h:23
LVL1::eFEXFPGA::initialize
virtual StatusCode initialize() override
standard Athena-Algorithm method
Definition: eFEXFPGA.cxx:44
CLASS_DEF.h
macros to associate a CLID to a type
LVL1::eFEXFPGA::execute
virtual StatusCode execute(eFEXOutputCollection *inputOutputCollection) override
Definition: eFEXFPGA.cxx:73
LVL1::eFEXFPGA::reset
virtual void reset() override
Definition: eFEXFPGA.cxx:67
LVL1::eFEXFPGA::m_tauHeuristicTobObjects
std::vector< std::unique_ptr< eFEXtauTOB > > m_tauHeuristicTobObjects
Definition: eFEXFPGA.h:72