ATLAS Offline Software
Loading...
Searching...
No Matches
eFEXtauAlgoBase.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5//***********************************************************************************
6// eFEXtauAlgoBase.h
7// -------------------
8// begin : 08 05 2023
9// email : david.reikher@cern.ch,
10// nicholas.andrew.luongo@cern.ch
11// *********************************************************************************/
12
13#ifndef eFEXtauAlgoBase_H
14#define eFEXtauAlgoBase_H
15
21
22namespace LVL1 {
23// Doxygen class description below:
26 static const InterfaceID IID_IeFEXtauAlgoBase("LVL1::eFEXtauAlgoBase", 1, 0);
27
29
30public:
31 static const InterfaceID& interfaceID() { return IID_IeFEXtauAlgoBase; };
33 eFEXtauAlgoBase(const std::string &type, const std::string &name,
34 const IInterface *parent);
35
37 virtual ~eFEXtauAlgoBase();
38
39 virtual StatusCode safetyTest();
40
41 virtual void compute() {};
42 virtual bool isCentralTowerSeed() const;
43 virtual bool isBDT() const {return false;}
44 virtual void
45 setThresholds(const std::vector<unsigned int> & /*rHadThreshold*/,
46 const std::vector<unsigned int> & /*bdtThreshold*/,
47 unsigned int /*etThreshold*/,
48 unsigned int /*etThresholdForRHad*/,
49 unsigned int /*bdtMinEtThreshold*/, unsigned int /*etThresholdForRHadFrac*/) {};
50 virtual void getRCore(std::vector<unsigned int> &rCoreVec) const;
51 virtual unsigned int rCoreCore() const { return 0; }
52 virtual unsigned int rCoreEnv() const { return 0; }
53 virtual unsigned int rHadCore() const = 0;
54 virtual unsigned int rHadEnv() const = 0;
55 virtual float getRealRCore() const;
56 virtual void getRHad(std::vector<unsigned int> &rHadVec) const;
57 virtual float getRealRHad() const;
58 virtual void getSums(unsigned int seed, bool UnD,
59 std::vector<unsigned int> &RcoreSums,
60 std::vector<unsigned int> &Remums);
61 virtual void setAlgoVersion(unsigned int /*ver*/) {};
62 virtual unsigned int getBDTScore() const { return 0; }
63 virtual unsigned int getBDTCondition() const { return 0; }
64 virtual unsigned int getBDTHadFracCondition() const { return 0; }
66 virtual void setup(int inputTable[3][3], int efex_id, int fpga_id, int central_eta) = 0;
67 virtual std::unique_ptr<eFEXtauTOB> getTauTOB() const = 0;
68 virtual unsigned int getEt() const = 0;
69 virtual unsigned int getBitwiseEt() const = 0;
70 virtual bool getUnD() const { return false; }
71 virtual unsigned int getSeed() const = 0;
72 protected:
74 this, "MyETowers", "eTowerContainer", "Input container for eTowers"};
75 bool m_cellsSet = false;
76
77 int m_eFexalgoTowerID[3][3]{};
78
79 void buildLayers(int efex_id, int fpga_id, int central_eta);
81 void setSuperCells(eFEXtauTOB *tob, bool withSupercells);
82 virtual void setSupercellSeed() {};
83 virtual void setUnDAndOffPhi() {};
84
85
86
87
88 unsigned int m_em0cells[3][3]{};
89 unsigned int m_em1cells[12][3]{};
90 unsigned int m_em2cells[12][3]{};
91 unsigned int m_em3cells[3][3]{};
92 unsigned int m_hadcells[3][3]{};
93 unsigned int m_twrcells[3][3]{};
94
95};
96
97} // namespace LVL1
98
99#endif
Handle class for adding a decoration to an object.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
virtual unsigned int rCoreEnv() const
unsigned int m_em1cells[12][3]
virtual unsigned int rHadEnv() const =0
virtual unsigned int getBDTScore() const
virtual bool isBDT() const
virtual unsigned int getBDTCondition() const
virtual StatusCode safetyTest()
void setSCellEncoder(LVL1::eFEXtauTOB *tob) const
virtual unsigned int getEt() const =0
virtual bool isCentralTowerSeed() const
virtual void setThresholds(const std::vector< unsigned int > &, const std::vector< unsigned int > &, unsigned int, unsigned int, unsigned int, unsigned int)
SG::ReadHandleKey< LVL1::eTowerContainer > m_eTowerContainerKey
unsigned int m_twrcells[3][3]
unsigned int m_hadcells[3][3]
eFEXtauAlgoBase(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
virtual unsigned int rHadCore() const =0
virtual unsigned int getBitwiseEt() const =0
virtual ~eFEXtauAlgoBase()
Destructor.
virtual unsigned int getSeed() const =0
virtual bool getUnD() const
virtual void setUnDAndOffPhi()
virtual void getRHad(std::vector< unsigned int > &rHadVec) const
unsigned int m_em0cells[3][3]
unsigned int m_em2cells[12][3]
virtual unsigned int rCoreCore() const
virtual std::unique_ptr< eFEXtauTOB > getTauTOB() const =0
virtual void getSums(unsigned int seed, bool UnD, std::vector< unsigned int > &RcoreSums, std::vector< unsigned int > &Remums)
virtual float getRealRCore() const
virtual void getRCore(std::vector< unsigned int > &rCoreVec) const
void buildLayers(int efex_id, int fpga_id, int central_eta)
virtual void setup(int inputTable[3][3], int efex_id, int fpga_id, int central_eta)=0
virtual float getRealRHad() const
void setSuperCells(eFEXtauTOB *tob, bool withSupercells)
virtual void setAlgoVersion(unsigned int)
virtual void setSupercellSeed()
virtual unsigned int getBDTHadFracCondition() const
unsigned int m_em3cells[3][3]
static const InterfaceID & interfaceID()
Property holding a SG store/key/clid from which a ReadHandle is made.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
static const InterfaceID IID_IeFEXtauAlgoBase("LVL1::eFEXtauAlgoBase", 1, 0)
The eFEXtauBDTAlgo class calculates the tau BDT TOB variables.