ATLAS Offline Software
Loading...
Searching...
No Matches
jFEXForwardJetsAlgo.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// jFEXForwardJetsAlgo - Algorithm for small R jet Algorithm in jFEX
6// -------------------
7// begin : 07 06 2021
8// email : varsiha.sothilingam@cern.ch
9//***************************************************************************
10
11#ifndef jFEXForwardJetsAlgo_H
12#define jFEXForwardJetsAlgo_H
13
19
20#include <string>
21#include <vector>
22#include <array>
23#include <unordered_map>
24
25namespace LVL1 {
26
27 class jFEXForwardJetsAlgo : public AthAlgTool, virtual public IjFEXForwardJetsAlgo {
28
29 public:
31 jFEXForwardJetsAlgo(const std::string& type, const std::string& name, const IInterface* parent);
32
34 virtual StatusCode initialize() override;
35
37 virtual ~jFEXForwardJetsAlgo();
38
39 virtual StatusCode safetyTest() override;
40
42 virtual std::unordered_map<int, jFEXForwardJetsInfo> FcalJetsTowerIDLists(int seedThreshold) override;
43 virtual std::unordered_map<int, jFEXForwardJetsInfo> calculateJetETs(int seedThreshold) override;
44 virtual void setFPGAEnergy(std::unordered_map<int,std::vector<int> > et_map) override;
45
46 virtual int SumEtSeed(unsigned int TTID) const override;
47
48 protected:
49
50 private:
51 SG::ReadHandleKey<LVL1::jTowerContainer> m_jFEXForwardJetsAlgo_jTowerContainerKey {this, "MyjTowers", "jTowerContainer", "Input container for jTowers"};
54 std::unordered_map<int,std::vector<int> > m_map_Etvalues;
57 int m_jfex;
58
59 //This flag determines if the TT ID which are in the first and second energy rings are stored
60 //in the jFEXForwardJetsInfo class. It is set to false to reduce quantity data stored in class
62
63 //FWD CVMFS files
64 Gaudi::Property<std::string> m_SeedRingStr {this, "SeedRingMap", "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_seed.dat" , "Contains Trigger tower in seed"};
65 Gaudi::Property<std::string> m_1stRingStr {this, "Energy1stRingMap" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_1stRing.dat" , "Contains Trigger tower in 1st Energy ring"};
66 Gaudi::Property<std::string> m_2ndRingStr {this, "Energy2ndRingMap" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_2ndRing.dat" , "Contains Trigger tower in 2nd energy ring"};
67 Gaudi::Property<std::string> m_CorrStr {this, "CorrMap" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_corr.dat" , "Contains Trigger tower to correct displacement (greater than)"};
68 Gaudi::Property<std::string> m_Corr2Str {this, "Corr2Map" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_corr2.dat" , "Contains Trigger tower to correct displacement (greater or equal than)"};
69 Gaudi::Property<std::string> m_SearchGStr {this, "SearchGMap" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_searchG.dat" , "Contains Trigger tower to find local max (greater than)"};
70 Gaudi::Property<std::string> m_SearchGeStr {this, "SearchGeMap", "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_searchGe.dat", "Contains Trigger tower to find local max (greater or equal than)"};
71
72 std::unordered_map<unsigned int, std::vector<unsigned int> > m_SeedRingMap;
73 std::unordered_map<unsigned int, std::vector<unsigned int> > m_1stRingMap;
74 std::unordered_map<unsigned int, std::vector<unsigned int> > m_2ndRingMap;
75 std::unordered_map<unsigned int, std::vector<unsigned int> > m_CorrMap;
76 std::unordered_map<unsigned int, std::vector<unsigned int> > m_Corr2Map;
77 std::unordered_map<unsigned int, std::vector<unsigned int> > m_SearchGMap;
78 std::unordered_map<unsigned int, std::vector<unsigned int> > m_SearchGeMap;
79
80 StatusCode ReadfromFile(const std::string& , std::unordered_map<unsigned int, std::vector<unsigned int> >&) const;
81
82
83 int getEt(unsigned int TTID) const;
84 bool isLM(unsigned int TTID) const;
85 bool isLMabove(unsigned int TTID) const;
86 bool getTTowerSat(unsigned int TTID );
87
88 //Conditions for greater
89 unsigned int elementsCorr(unsigned int TTID) const;
90 bool condCorr(unsigned int TTID) const;
91 //Conditions for greater or equal
92 unsigned int elementsCorr2(unsigned int TTID) const;
93 bool condCorr2(unsigned int TTID) const;
94
95 std::array<float,2> globalEtaPhi(int TTID);
96
97 };
98}//end of namespace
99#endif
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
static constexpr int jFEX_wide_algoSpace_width
static constexpr int jFEX_algoSpace_height
virtual void setup(int inputTable[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width], int jfex) override
virtual void setFPGAEnergy(std::unordered_map< int, std::vector< int > > et_map) override
std::unordered_map< unsigned int, std::vector< unsigned int > > m_SearchGMap
bool condCorr(unsigned int TTID) const
unsigned int elementsCorr2(unsigned int TTID) const
Gaudi::Property< std::string > m_2ndRingStr
std::unordered_map< int, std::vector< int > > m_map_Etvalues
Gaudi::Property< std::string > m_Corr2Str
Gaudi::Property< std::string > m_CorrStr
std::unordered_map< unsigned int, std::vector< unsigned int > > m_2ndRingMap
Gaudi::Property< std::string > m_SeedRingStr
std::array< float, 2 > globalEtaPhi(int TTID)
virtual std::unordered_map< int, jFEXForwardJetsInfo > FcalJetsTowerIDLists(int seedThreshold) override
std::unordered_map< unsigned int, std::vector< unsigned int > > m_1stRingMap
virtual std::unordered_map< int, jFEXForwardJetsInfo > calculateJetETs(int seedThreshold) override
int getEt(unsigned int TTID) const
SG::ReadHandle< jTowerContainer > m_jTowerContainer
virtual StatusCode safetyTest() override
bool getTTowerSat(unsigned int TTID)
bool isLM(unsigned int TTID) const
virtual StatusCode initialize() override
standard Athena-Algorithm method
int m_jFEXalgoTowerID[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]
bool condCorr2(unsigned int TTID) const
jFEXForwardJetsAlgo(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
std::unordered_map< unsigned int, std::vector< unsigned int > > m_Corr2Map
Gaudi::Property< std::string > m_1stRingStr
std::unordered_map< unsigned int, std::vector< unsigned int > > m_SearchGeMap
std::unordered_map< unsigned int, std::vector< unsigned int > > m_SeedRingMap
StatusCode ReadfromFile(const std::string &, std::unordered_map< unsigned int, std::vector< unsigned int > > &) const
bool isLMabove(unsigned int TTID) const
virtual int SumEtSeed(unsigned int TTID) const override
SG::ReadHandleKey< LVL1::jTowerContainer > m_jFEXForwardJetsAlgo_jTowerContainerKey
virtual ~jFEXForwardJetsAlgo()
Destructor.
std::unordered_map< unsigned int, std::vector< unsigned int > > m_CorrMap
Gaudi::Property< std::string > m_SearchGStr
Gaudi::Property< std::string > m_SearchGeStr
unsigned int elementsCorr(unsigned int TTID) 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...