|  | ATLAS Offline Software
    | 
 
 
 
Go to the documentation of this file.
   37 #include <unordered_map> 
   39 class jFEXOutputCollection;
 
   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"};
 
  
virtual std::vector< std::unique_ptr< jFEXTOB > > getMetTOBs() override
Form a tob word out of the potential candidate MET tob.
std::vector< std::vector< uint32_t > > m_FwdEl_tobwords
jFEXFPGA(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
SG::ReadHandleKey< TrigConf::L1Menu > m_l1MenuKey
virtual void reset() override
constexpr static int jFEX_thin_algoSpace_width
SG::ReadHandleKey< LVL1::jTowerContainer > m_jTowerContainerKey
ToolHandle< IjFEXtauAlgo > m_jFEXtauAlgoTool
std::string m_jfex_string[6]
ToolHandle< IjFEXSmallRJetAlgo > m_jFEXSmallRJetAlgoTool
int getTTowerET(unsigned int TTID) override
std::vector< std::unique_ptr< jFEXTOB > > m_Met_tobwords
std::vector< std::unique_ptr< jFEXTOB > > m_sumET_tobwords
constexpr static int jFEX_algoSpace_height
int getTTowerET_HAD(unsigned int TTID) override
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
virtual StatusCode initialize() override
standard Athena-Algorithm method
virtual std::vector< std::unique_ptr< jFEXTOB > > getTauTOBs() override
ToolHandle< IjFEXForwardJetsAlgo > m_jFEXForwardJetsAlgoTool
std::vector< std::unique_ptr< jFEXTOB > > m_SRJet_tobwords
int getTTowerET_forMET(unsigned int TTID) override
std::vector< std::unique_ptr< jFEXTOB > > m_tau_tobwords
int m_jTowersIDs_Wide[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]
ToolHandle< IjFEXsumETAlgo > m_jFEXsumETAlgoTool
virtual StatusCode init(int id, int efexid) override
std::unordered_map< uint, jFEXForwardElecInfo > m_ForwardElecs
::StatusCode StatusCode
StatusCode definition for legacy code.
virtual int ID() override
constexpr static int jFEX_wide_algoSpace_width
virtual std::vector< std::unique_ptr< jFEXTOB > > getLargeRJetTOBs() override
std::unordered_map< int, jFEXForwardJetsInfo > m_FCALJets
static bool TOBetSort(const TOBObjectClass &i, const TOBObjectClass &j, uint bits, uint mask)
Internal data.
std::unordered_map< int, std::vector< int > > m_map_Etvalues_FPGA
virtual std::vector< std::unique_ptr< jFEXTOB > > getSmallRJetTOBs() override
Form a tob word out of the potential candidate SmallRJet tob.
ToolHandle< IjFEXFormTOBs > m_IjFEXFormTOBsTool
virtual void SetTowersAndCells_SG(int[][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]) override
std::vector< std::unique_ptr< jFEXTOB > > m_LRJet_tobwords
virtual std::vector< std::vector< uint32_t > > getFwdElTOBs() override
sorted Electron tobs
static bool etFwdElSort(const std::vector< uint32_t > &i, const std::vector< uint32_t > &j)
ToolHandle< IjFEXForwardElecAlgo > m_jFEXForwardElecAlgoTool
ToolHandle< IjFEXmetAlgo > m_jFEXmetAlgoTool
virtual StatusCode execute(jFEXOutputCollection *inputOutputCollection, const std::pair< unsigned int, const std::vector< int > & > &jetCalibrationParameters) override
virtual std::vector< std::unique_ptr< jFEXTOB > > getSumEtTOBs() override
Form a tob word out of the potential candidate SumET tob.
std::unordered_map< int, jTower > m_jTowersColl
std::unordered_map< int, std::vector< int > > m_map_EM_Etvalues_FPGA
std::unordered_map< int, std::vector< int > > m_map_HAD_Etvalues_FPGA
virtual ~jFEXFPGA()
Destructor.
int getTTowerET_EM(unsigned int TTID) override
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
Handle class for reading from StoreGate.
constexpr static int jEM_etBit
int getTTowerET_SG(unsigned int TTID)
macros to associate a CLID to a type
The jFEXFPGA class defines the structure of a single jFEX FPGA Its purpose is:
ToolHandle< IjFEXLargeRJetAlgo > m_jFEXLargeRJetAlgoTool
ToolHandle< IjFEXPileupAndNoise > m_jFEXPileupAndNoiseTool
int m_jTowersIDs_Thin[FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width]