ATLAS Offline Software
Loading...
Searching...
No Matches
eFEXtauBDTAlgo.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// eFEXtauBDTAlgo.h -
7// -------------------
8// begin : 14 07 2022
9// email : david.reikher@cern.ch
10// ***************************************************************************/
11
12#ifndef eFEXtauBDTAlgo_H
13#define eFEXtauBDTAlgo_H
14
21//#include "L1CaloFEXToolInterfaces/IeFEXtauAlgo.h"
22
23namespace LVL1 {
24// Doxygen class description below:
27
29
30public:
32 eFEXtauBDTAlgo(const std::string &type, const std::string &name,
33 const IInterface *parent);
34
36 virtual StatusCode initialize() override;
37
39 virtual ~eFEXtauBDTAlgo();
40
41 virtual void setup(int inputTable[3][3], int efex_id, int fpga_id,
42 int central_eta) override;
43 virtual void compute() override;
44
45 virtual std::unique_ptr<eFEXtauTOB> getTauTOB() const override;
46 virtual unsigned int rHadCore() const override;
47 virtual unsigned int rHadEnv() const override;
48 virtual unsigned int getEt() const override;
49 virtual unsigned int getBitwiseEt() const override;
50 virtual unsigned int getBDTScore() const override;
51 virtual unsigned int getBDTCondition() const override;
52 virtual unsigned int getBDTHadFracCondition() const override;
53 virtual bool isBDT() const override;
54 virtual void setThresholds(const std::vector<unsigned int> &rHadThreshold,
55 const std::vector<unsigned int> &bdtThreshold,
56 unsigned int etThreshold,
57 unsigned int etThresholdForRHad,
58 unsigned int bdtMinEtThreshold, unsigned int etThresholdForRHadFrac) override;
59
60 // Seed is hard-coded to 1 to reduce eta asymmetry
61 // which is stronger when it's hard-coded to 0 and
62 // also to avoid modifications in L1Topo
63 virtual unsigned int getSeed() const override { return 1; }
64
65protected:
66private:
67 StatusCode initBDTVars();
68
69 void setSCellPointers();
71
72 unsigned int m_hadFracMultipliers[3]{};
73 unsigned int m_bdtThresholds[3]{};
74 unsigned int m_etThreshold{};
75 unsigned int m_maxEtThreshold{};
76 unsigned int m_maxEtThresholdFrac{};
77 unsigned int m_bdtMinEtThreshold{};
78
79 unsigned int m_bdtScore{};
80
81 // Final computed BDT variables
82 std::vector<unsigned int> m_bdtVars;
83
84 // BDT variables are sums of supercells. The pointers to the memory locations
85 // containing the supercell ET values for each variable are stores in the
86 // following vector. Index in the vector corresponds to index of the variable.
87 std::vector<std::vector<unsigned int *>> m_bdtVarComputeSCellPointers;
88
89 Gaudi::Property<std::string> m_bdtJsonConfigPath{
90 this, "BDTJsonConfigPath", "",
91 "Path to BDT json config file"};
92 std::unique_ptr<eFEXtauBDT> m_bdtAlgoImpl;
93
94 bool m_bdtVarsComputed = false;
95};
96
97} // namespace LVL1
98
99// CLASS_DEF( LVL1::eFEXtauBDTAlgo , 140708609 , 1 )
100
101#endif
macros to associate a CLID to a type
eFEXtauAlgoBase(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
Gaudi::Property< std::string > m_bdtJsonConfigPath
eFEXtauBDTAlgo(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
unsigned int m_etThreshold
unsigned int m_maxEtThresholdFrac
unsigned int m_bdtScore
std::unique_ptr< eFEXtauBDT > m_bdtAlgoImpl
virtual StatusCode initialize() override
standard Athena-Algorithm method
virtual ~eFEXtauBDTAlgo()
Destructor.
unsigned int m_bdtMinEtThreshold
std::vector< std::vector< unsigned int * > > m_bdtVarComputeSCellPointers
unsigned int m_maxEtThreshold
virtual unsigned int getSeed() const override
virtual std::unique_ptr< eFEXtauTOB > getTauTOB() const override
virtual void setup(int inputTable[3][3], int efex_id, int fpga_id, int central_eta) override
virtual void setThresholds(const std::vector< unsigned int > &rHadThreshold, const std::vector< unsigned int > &bdtThreshold, unsigned int etThreshold, unsigned int etThresholdForRHad, unsigned int bdtMinEtThreshold, unsigned int etThresholdForRHadFrac) override
virtual unsigned int getBDTScore() const override
virtual unsigned int getBDTHadFracCondition() const override
virtual bool isBDT() const override
unsigned int m_hadFracMultipliers[3]
std::vector< unsigned int > m_bdtVars
virtual unsigned int rHadEnv() const override
virtual unsigned int getBitwiseEt() const override
virtual unsigned int getBDTCondition() const override
unsigned int m_bdtThresholds[3]
StatusCode initBDTVars()
virtual unsigned int rHadCore() const override
virtual void compute() override
virtual unsigned int getEt() const override
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...