ATLAS Offline Software
Loading...
Searching...
No Matches
gFEXJwoJAlgo.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4//***************************************************************************
5// gFEXJwoJAlgo - Jets without jets algorithm for gFEX
6// -------------------
7// begin : 10 08 2021
8// email : cecilia.tosciri@cern.ch
9//***************************************************************************
10
11#ifndef gFEXJwoJAlgo_H
12#define gFEXJwoJAlgo_H
13
15#include "L1CaloFEXToolInterfaces/IgFEXJwoJAlgo.h" //also has gTowersType typedef
17#include "TrigConfData/L1Menu.h"
18
19#include <vector>
20#include <memory>
21#include <cstdint>
22#include <string>
23#include <array>
24
25class gFEXJwoJTOB;
26
27namespace LVL1 {
28
29 class gFEXJwoJAlgo : public AthAlgTool, virtual public IgFEXJwoJAlgo {
30
31 public:
33 gFEXJwoJAlgo(const std::string& type, const std::string& name, const IInterface* parent);
34
36 virtual StatusCode initialize() override;
37
38 virtual std::vector<std::unique_ptr<gFEXJwoJTOB>> jwojAlgo(const EventContext& ctx,
39 const gTowersType& Atwr, int pucA_JWJ,
40 const gTowersType& Btwr, int pucB_JWJ,
41 const gTowersType& Ctwr, int pucC_JWJ,
42 std::array<int32_t, 4> & outTOB) const override;
43
44
45
46 private:
47
48 SG::ReadCondHandleKey<gFEXDBCondData> m_DBToolKey{this, "DBToolKey", "gFEXDBParams", "Database tool key"};
49
50 SG::ReadHandleKey<TrigConf::L1Menu> m_l1MenuKey{this, "L1TriggerMenu", "DetectorStore+L1TriggerMenu","Name of the L1Menu object to read configuration from"};
51
52
53 void gBlockAB(const gTowersType & twrs, gTowersType & gBlkSum, gTowersType & hasSeed, int seedThreshold) const;
54
55 void metFPGA_rho(int FPGAnum, const gTowersType& twrs, int puc_jwj,
56 const gTowersType & gBlkSum, int gBlockthreshold,
57 int aFPGA, int bFPGA,
58 int & MHT_x, int & MHT_y,
59 int & MST_x, int & MST_y,
60 int & MET_x, int & MET_y) const;
61
62 void metFPGA(int FPGAnum,const gTowersType& twrs,
63 const gTowersType & gBlkSum, int gBlockthreshold,
64 int aFPGA, int bFPGA,
65 int & MHT_x, int & MHT_y,
66 int & MST_x, int & MST_y,
67 int & MET_x, int & MET_y) const;
68
69 void etFPGA(int FPGAnum,const gTowersType& twrs, gTowersType &gBlkSum,
70 int gBlockthreshold, int A, int B, int &eth, int &ets, int &etw) const;
71
72 void etFastFPGA(int FPGAnum,const gTowersType& twrs, gTowersType &gBlkSum,
73 int gBlockthreshold, int A, int B, int &eth, int &ets, int &etw) const;
74
75 void metTotal(int A_MET_x, int A_MET_y,
76 int B_MET_x, int B_MET_y,
77 int C_MET_x, int C_MET_y,
78 int & MET_x, int & MET_y) const;
79
80 void etTotal(int A_ET,
81 int B_ET,
82 int C_ET,
83 int & ET ) const;
84
85 float sinLUT(unsigned int phiIDX, unsigned int aw) const;
86
87 float cosLUT(unsigned int phiIDX, unsigned int aw) const;
88
89
90 };
91
92} // end of namespace
93
94
95#endif
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
void etFastFPGA(int FPGAnum, const gTowersType &twrs, gTowersType &gBlkSum, int gBlockthreshold, int A, int B, int &eth, int &ets, int &etw) const
void metFPGA(int FPGAnum, const gTowersType &twrs, const gTowersType &gBlkSum, int gBlockthreshold, int aFPGA, int bFPGA, int &MHT_x, int &MHT_y, int &MST_x, int &MST_y, int &MET_x, int &MET_y) const
SG::ReadCondHandleKey< gFEXDBCondData > m_DBToolKey
void etFPGA(int FPGAnum, const gTowersType &twrs, gTowersType &gBlkSum, int gBlockthreshold, int A, int B, int &eth, int &ets, int &etw) const
virtual StatusCode initialize() override
standard Athena-Algorithm method
float cosLUT(unsigned int phiIDX, unsigned int aw) const
void metFPGA_rho(int FPGAnum, const gTowersType &twrs, int puc_jwj, const gTowersType &gBlkSum, int gBlockthreshold, int aFPGA, int bFPGA, int &MHT_x, int &MHT_y, int &MST_x, int &MST_y, int &MET_x, int &MET_y) const
SG::ReadHandleKey< TrigConf::L1Menu > m_l1MenuKey
void metTotal(int A_MET_x, int A_MET_y, int B_MET_x, int B_MET_y, int C_MET_x, int C_MET_y, int &MET_x, int &MET_y) const
float sinLUT(unsigned int phiIDX, unsigned int aw) const
void gBlockAB(const gTowersType &twrs, gTowersType &gBlkSum, gTowersType &hasSeed, int seedThreshold) const
virtual std::vector< std::unique_ptr< gFEXJwoJTOB > > jwojAlgo(const EventContext &ctx, const gTowersType &Atwr, int pucA_JWJ, const gTowersType &Btwr, int pucB_JWJ, const gTowersType &Ctwr, int pucC_JWJ, std::array< int32_t, 4 > &outTOB) const override
gFEXJwoJAlgo(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
void etTotal(int A_ET, int B_ET, int C_ET, int &ET) const
Property holding a SG store/key/clid from which a ReadHandle is made.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
std::array< std::array< int, 12 >, 32 > gTowersType
Definition IgFEXFPGA.h:25
hold the test vectors and ease the comparison