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"
21 #include "eFEXFormTOBs.h"
23 #include "TrigConfData/L1Menu.h"
24 #include "L1CaloFEXSim/eFEXegTOB.h"
26 
27 #include <vector>
28 
29 namespace 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
LVL1::eFEXFPGA::getTauBDTTOBs
virtual std::vector< std::unique_ptr< eFEXtauTOB > > getTauBDTTOBs()
Definition: eFEXFPGA.cxx:505
LVL1::eFEXFPGA::init
virtual StatusCode init(int id, int efexid)
Definition: eFEXFPGA.cxx:59
eFEXOutputCollection.h
create ntuples output
eTowerContainer.h
LVL1::eFEXFPGA::getEmTOBs
virtual std::vector< std::unique_ptr< eFEXegTOB > > getEmTOBs()
Definition: eFEXFPGA.cxx:440
LVL1::eFEXFPGA::getTauTOBs
std::vector< std::unique_ptr< eFEXtauTOB > > getTauTOBs(std::vector< std::unique_ptr< eFEXtauTOB > > &tauTobObjects)
Definition: eFEXFPGA.cxx:470
LVL1::eFEXFPGA::getTauHeuristicTOBs
virtual std::vector< std::unique_ptr< eFEXtauTOB > > getTauHeuristicTOBs()
Definition: eFEXFPGA.cxx:500
eFEXtauTOB.h
LVL1::eFEXFPGA::m_id
int m_id
Definition: eFEXFPGA.h:69
LVL1::eFEXFPGA::m_tauBDTTobObjects
std::vector< std::unique_ptr< eFEXtauTOB > > m_tauBDTTobObjects
Definition: eFEXFPGA.h:73
LVL1::eFEXFPGA::interfaceID
static const InterfaceID & interfaceID()
Definition: eFEXFPGA.h:41
LVL1::eFEXFPGA::SetTowersAndCells_SG
virtual void SetTowersAndCells_SG(int[][6])
Definition: eFEXFPGA.cxx:510
SG::ReadHandleKey< TrigConf::L1Menu >
LVL1::eFEXFPGA::SetIsoWP
virtual void SetIsoWP(const std::vector< unsigned int > &, const std::vector< unsigned int > &, unsigned int &, unsigned int) const
Definition: eFEXFPGA.cxx:555
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
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
LVL1::eFEXFPGA::m_eFexStep
const unsigned int m_eFexStep
Internal data.
Definition: eFEXFPGA.h:67
LVL1::eFEXFPGA::m_eFEXFormTOBsTool
ToolHandle< eFEXFormTOBs > m_eFEXFormTOBsTool
Definition: eFEXFPGA.h:96
LVL1::eFEXFPGA::~eFEXFPGA
virtual ~eFEXFPGA()
Destructor.
Definition: eFEXFPGA.cxx:38
LVL1::eFEXFPGA::m_eFEXtauAlgoTool
ToolHandle< eFEXtauAlgoBase > m_eFEXtauAlgoTool
Definition: eFEXFPGA.h:84
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
eFEXegAlgo.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
eFEXegTOB.h
TrigConf::name
Definition: HLTChainList.h:35
LVL1::eFEXFPGA::getID
virtual int getID() const
Definition: eFEXFPGA.h:53
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
LVL1::eFEXFPGA::reset
virtual void reset()
Definition: eFEXFPGA.cxx:67
LVL1::eFEXFPGA::m_efexid
int m_efexid
Definition: eFEXFPGA.h:70
LVL1::eFEXFPGA::eFEXFPGA
eFEXFPGA(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
Definition: eFEXFPGA.cxx:30
LVL1::eFEXFPGA
Definition: eFEXFPGA.h:38
eFEXtauAlgoBase.h
LVL1::eFEXFPGA::m_eFEXegAlgoTool
ToolHandle< eFEXegAlgo > m_eFEXegAlgoTool
Definition: eFEXFPGA.h:92
LVL1::eFEXFPGA::initialize
virtual StatusCode initialize()
standard Athena-Algorithm method
Definition: eFEXFPGA.cxx:44
AthAlgTool
Definition: AthAlgTool.h:26
eFEXFormTOBs.h
L1Menu.h
LVL1::eFEXOutputCollection
Definition: eFEXOutputCollection.h:23
CLASS_DEF.h
macros to associate a CLID to a type
LVL1::eFEXFPGA::m_eFEXtauBDTAlgoTool
ToolHandle< eFEXtauAlgoBase > m_eFEXtauBDTAlgoTool
Definition: eFEXFPGA.h:88
LVL1::eFEXFPGA::m_tauHeuristicTobObjects
std::vector< std::unique_ptr< eFEXtauTOB > > m_tauHeuristicTobObjects
Definition: eFEXFPGA.h:72
LVL1::eFEXFPGA::execute
virtual StatusCode execute(eFEXOutputCollection *inputOutputCollection)
Definition: eFEXFPGA.cxx:73