ATLAS Offline Software
Loading...
Searching...
No Matches
jFEXForwardJetsAlgo.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// 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
21namespace LVL1 {
22
23 class jFEXForwardJetsAlgo : public AthAlgTool, virtual public IjFEXForwardJetsAlgo {
24
25 public:
27 jFEXForwardJetsAlgo(const std::string& type, const std::string& name, const IInterface* parent);
28
30 virtual StatusCode initialize() override;
31
33 virtual ~jFEXForwardJetsAlgo();
34
35 virtual StatusCode safetyTest() override;
36 virtual StatusCode reset() override;
37
39 virtual std::unordered_map<int, jFEXForwardJetsInfo> FcalJetsTowerIDLists(int seedThreshold) override;
40 virtual std::unordered_map<int, jFEXForwardJetsInfo> calculateJetETs(int seedThreshold) override;
41 virtual void setFPGAEnergy(std::unordered_map<int,std::vector<int> > et_map) override;
42
43 virtual int SumEtSeed(unsigned int TTID) const override;
44
45 protected:
46
47 private:
48 SG::ReadHandleKey<LVL1::jTowerContainer> m_jFEXForwardJetsAlgo_jTowerContainerKey {this, "MyjTowers", "jTowerContainer", "Input container for jTowers"};
51 std::unordered_map<int,std::vector<int> > m_map_Etvalues;
54 int m_jfex;
55
56 //This flag determines if the TT ID which are in the first and second energy rings are stored
57 //in the jFEXForwardJetsInfo class. It is set to false to reduce quantity data stored in class
59
60 //FWD CVMFS files
61 Gaudi::Property<std::string> m_SeedRingStr {this, "SeedRingMap", "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_seed.dat" , "Contains Trigger tower in seed"};
62 Gaudi::Property<std::string> m_1stRingStr {this, "Energy1stRingMap" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_1stRing.dat" , "Contains Trigger tower in 1st Energy ring"};
63 Gaudi::Property<std::string> m_2ndRingStr {this, "Energy2ndRingMap" , "Run3L1CaloSimulation/JetMaps/2024_04_09/jFEX_FWD_2ndRing.dat" , "Contains Trigger tower in 2nd energy ring"};
64 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)"};
65 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)"};
66 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)"};
67 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)"};
68
69 std::unordered_map<unsigned int, std::vector<unsigned int> > m_SeedRingMap;
70 std::unordered_map<unsigned int, std::vector<unsigned int> > m_1stRingMap;
71 std::unordered_map<unsigned int, std::vector<unsigned int> > m_2ndRingMap;
72 std::unordered_map<unsigned int, std::vector<unsigned int> > m_CorrMap;
73 std::unordered_map<unsigned int, std::vector<unsigned int> > m_Corr2Map;
74 std::unordered_map<unsigned int, std::vector<unsigned int> > m_SearchGMap;
75 std::unordered_map<unsigned int, std::vector<unsigned int> > m_SearchGeMap;
76
77 StatusCode ReadfromFile(const std::string& , std::unordered_map<unsigned int, std::vector<unsigned int> >&) const;
78
79
80 int getEt(unsigned int TTID) const;
81 bool isLM(unsigned int TTID) const;
82 bool isLMabove(unsigned int TTID) const;
83 bool getTTowerSat(unsigned int TTID );
84
85 //Conditions for greater
86 unsigned int elementsCorr(unsigned int TTID) const;
87 bool condCorr(unsigned int TTID) const;
88 //Conditions for greater or equal
89 unsigned int elementsCorr2(unsigned int TTID) const;
90 bool condCorr2(unsigned int TTID) const;
91
92 std::array<float,2> globalEtaPhi(int TTID);
93
94 };
95}//end of namespace
96#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
virtual StatusCode reset() override
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...