37#include <unordered_map>
39class jFEXOutputCollection;
55 jFEXFPGA(
const std::string&
type,
const std::string&
name,
const IInterface* parent);
62 virtual StatusCode
init(
int id,
int efexid)
override ;
64 virtual StatusCode
execute(
jFEXOutputCollection* inputOutputCollection,
const std::pair<
unsigned int,
const std::vector<int>&> & jetCalibrationParameters)
override ;
66 virtual void reset()
override ;
68 virtual int ID()
override {
return m_id;}
78 virtual std::vector <std::vector <uint32_t>>
getFwdElTOBs()
override;
81 virtual std::vector<std::unique_ptr<jFEXTOB>>
getTauTOBs()
override;
84 virtual std::vector<std::unique_ptr<jFEXTOB>>
getSumEtTOBs()
override;
87 virtual std::vector<std::unique_ptr<jFEXTOB>>
getMetTOBs()
override;
97 template <
class TOBObjectClass>
static bool TOBetSort(
const TOBObjectClass& i,
const TOBObjectClass& j ,
uint bits,
uint mask) {
98 return (((i->getWord() >> bits ) & mask)>((j->getWord() >> bits ) & mask));
134 ToolHandle<IjFEXSmallRJetAlgo>
m_jFEXSmallRJetAlgoTool {
this,
"jFEXSmallRJetAlgoTool",
"LVL1::jFEXSmallRJetAlgo",
"Tool that runs the jFEX Small R Jet algorithm"};
135 ToolHandle<IjFEXLargeRJetAlgo>
m_jFEXLargeRJetAlgoTool {
this,
"jFEXLargeRJetAlgoTool",
"LVL1::jFEXLargeRJetAlgo",
"Tool that runs the jFEX Large R Jet algorithm"};
136 ToolHandle<IjFEXtauAlgo>
m_jFEXtauAlgoTool {
this,
"jFEXtauAlgoTool" ,
"LVL1::jFEXtauAlgo" ,
"Tool that runs the jFEX tau algorithm"};
137 ToolHandle<IjFEXsumETAlgo>
m_jFEXsumETAlgoTool {
this,
"jFEXsumETAlgoTool" ,
"LVL1::jFEXsumETAlgo" ,
"Tool that runs the jFEX sumET algorithm"};
138 ToolHandle<IjFEXmetAlgo>
m_jFEXmetAlgoTool {
this,
"jFEXmetAlgoTool" ,
"LVL1::jFEXmetAlgo" ,
"Tool that runs the jFEX met algorithm"};
139 ToolHandle<IjFEXForwardJetsAlgo>
m_jFEXForwardJetsAlgoTool {
this,
"jFEXForwardJetsAlgoTool" ,
"LVL1::jFEXForwardJetsAlgo" ,
"Tool that runs the jFEX FCAL Jets algorithm"};
140 ToolHandle<IjFEXForwardElecAlgo>
m_jFEXForwardElecAlgoTool {
this,
"jFEXForwardElecAlgoTool" ,
"LVL1::jFEXForwardElecAlgo" ,
"Tool that runs the jFEX FCAL Electrons algorithm"};
141 ToolHandle<IjFEXPileupAndNoise>
m_jFEXPileupAndNoiseTool {
this,
"jFEXPileupAndNoiseTool",
"LVL1::jFEXPileupAndNoise",
"Tool that applies Pileup and Noise"};
142 ToolHandle<IjFEXFormTOBs>
m_IjFEXFormTOBsTool {
this,
"IjFEXFormTOBsTool",
"LVL1::jFEXFormTOBs",
"Tool that forms TOB words"};
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Handle class for reading from StoreGate.
static constexpr int jFEX_wide_algoSpace_width
static constexpr int jEM_etBit
static constexpr int jFEX_thin_algoSpace_width
static constexpr int jFEX_algoSpace_height
The jFEXFPGA class defines the structure of a single jFEX FPGA Its purpose is:
static bool etFwdElSort(const std::vector< uint32_t > &i, const std::vector< uint32_t > &j)
virtual std::vector< std::unique_ptr< jFEXTOB > > getMetTOBs() override
Form a tob word out of the potential candidate MET tob.
std::unordered_map< int, jTower > m_jTowersColl
std::vector< std::vector< uint32_t > > m_FwdEl_tobwords
ToolHandle< IjFEXSmallRJetAlgo > m_jFEXSmallRJetAlgoTool
std::unordered_map< int, std::vector< int > > m_map_Etvalues_FPGA
virtual void reset() override
std::string m_jfex_string[6]
int getTTowerET(unsigned int TTID) override
std::unordered_map< int, std::vector< int > > m_map_EM_Etvalues_FPGA
ToolHandle< IjFEXPileupAndNoise > m_jFEXPileupAndNoiseTool
virtual StatusCode execute(jFEXOutputCollection *inputOutputCollection, const std::pair< unsigned int, const std::vector< int > & > &jetCalibrationParameters) override
static bool TOBetSort(const TOBObjectClass &i, const TOBObjectClass &j, uint bits, uint mask)
Internal data.
int getTTowerET_forMET(unsigned int TTID) override
ToolHandle< IjFEXForwardJetsAlgo > m_jFEXForwardJetsAlgoTool
virtual std::vector< std::vector< uint32_t > > getFwdElTOBs() override
sorted Electron tobs
ToolHandle< IjFEXmetAlgo > m_jFEXmetAlgoTool
int getTTowerET_EM(unsigned int TTID) override
virtual std::vector< std::unique_ptr< jFEXTOB > > getLargeRJetTOBs() override
std::vector< std::unique_ptr< jFEXTOB > > m_tau_tobwords
virtual std::vector< std::unique_ptr< jFEXTOB > > getSumEtTOBs() override
Form a tob word out of the potential candidate SumET tob.
jFEXFPGA(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
SG::ReadHandleKey< TrigConf::L1Menu > m_l1MenuKey
std::unordered_map< int, std::vector< int > > m_map_HAD_Etvalues_FPGA
int m_jTowersIDs_Thin[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width]
virtual int ID() override
virtual ~jFEXFPGA()
Destructor.
ToolHandle< IjFEXFormTOBs > m_IjFEXFormTOBsTool
std::vector< std::unique_ptr< jFEXTOB > > m_sumET_tobwords
std::vector< std::unique_ptr< jFEXTOB > > m_SRJet_tobwords
ToolHandle< IjFEXsumETAlgo > m_jFEXsumETAlgoTool
virtual StatusCode initialize() override
standard Athena-Algorithm method
virtual std::vector< std::unique_ptr< jFEXTOB > > getSmallRJetTOBs() override
Form a tob word out of the potential candidate SmallRJet tob.
ToolHandle< IjFEXtauAlgo > m_jFEXtauAlgoTool
std::unordered_map< int, jFEXForwardJetsInfo > m_FCALJets
std::vector< std::unique_ptr< jFEXTOB > > m_Met_tobwords
virtual StatusCode init(int id, int efexid) override
std::vector< std::unique_ptr< jFEXTOB > > m_LRJet_tobwords
virtual void SetTowersAndCells_SG(int[][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]) override
std::unordered_map< uint, jFEXForwardElecInfo > m_ForwardElecs
int getTTowerET_SG(unsigned int TTID)
int getTTowerET_HAD(unsigned int TTID) override
SG::ReadHandleKey< LVL1::jTowerContainer > m_jTowerContainerKey
ToolHandle< IjFEXLargeRJetAlgo > m_jFEXLargeRJetAlgoTool
int m_jTowersIDs_Wide[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]
ToolHandle< IjFEXForwardElecAlgo > m_jFEXForwardElecAlgoTool
virtual std::vector< std::unique_ptr< jFEXTOB > > getTauTOBs() override
Property holding a SG store/key/clid from which a ReadHandle is made.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...