Commit 63f4d571 authored by Jacob Julian Kempster's avatar Jacob Julian Kempster Committed by Vakhtang Tsulaia
Browse files

Implementation of jFEX mapping framework for forward detector regions. Small...

Implementation of jFEX mapping framework for forward detector regions.  Small eFEX mapping textual cleanup.
parent dcc7b3a1
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
# Declare the package name:
atlas_subdir( L1CaloFEXSim )
......
/*
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
//***************************************************************************
// FEXAlgoSpaceDefs.h -
// -------------------
// begin : 08 02 2021
// email : jacob.julian.kempster@cern.ch
// ***************************************************************************/
#ifndef FEXAlgoSpaceDefs_H
#define FEXAlgoSpaceDefs_H
namespace LVL1 {
//Doxygen class description below:
/** The FEXAlgoSpaceDefs class defines the size of a single jFEX algorithm window, for use in jFEXFPGA
*/
class FEXAlgoSpaceDefs {
public:
constexpr static int jFEX_wide_algoSpace_width = 45;
constexpr static int jFEX_thin_algoSpace_width = 24;
constexpr static int jFEX_algoSpace_height = 32;
};
} // end of namespace
#endif
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
/***************************************************************************
eFEXCompression.h - description
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
//***************************************************************************
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
//***************************************************************************
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
//***************************************************************************
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
//***************************************************************************
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
//***************************************************************************
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
//***************************************************************************
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
//***************************************************************************
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
//***************************************************************************
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
//***************************************************************************
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
//***************************************************************************
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
......
///////////////////////// -*- C++ -*- /////////////////////////////
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
// Stolen shamelessly from CaloCellContainer.h and modified as required
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
/***************************************************************************
jFEXCompression.h - description
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
//***************************************************************************
......@@ -24,6 +24,7 @@
#include "CaloIdentifier/CaloIdManager.h"
#include "CaloIdentifier/CaloCell_SuperCell_ID.h"
#include "L1CaloFEXSim/jFEXOutputCollection.h"
#include "L1CaloFEXSim/FEXAlgoSpaceDefs.h"
namespace LVL1 {
......@@ -31,7 +32,7 @@ namespace LVL1 {
/** The jFEXFPGA class defines the structure of a single jFEX FPGA
Its purpose is:
- to emulate the steps taken in processing data for a single jFEX FPGA in hardware and firmware
- It will need to interact with jTowers and produce the eTOBs. It will be created and handed data by jFEXSim
- It will need to interact with jTowers and produce the jTOBs. It will be created and handed data by jFEXSim
*/
class jFEXFPGA : public AthAlgTool, virtual public IjFEXFPGA {
......@@ -53,9 +54,8 @@ namespace LVL1 {
virtual int ID() override {return m_id;}
virtual void SetTowersAndCells_SG( int [][17] ) override ;
virtual void SetTowersAndCells_SG( int [][24] ) override ;
virtual void SetTowersAndCells_SG( int [][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width] ) override ;
virtual void SetTowersAndCells_SG( int [][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width] ) override ;
/**Form a tob word out of the potential candidate SmallRJet tob */
virtual uint32_t formSmallRJetTOB(int &, int &) override;
......@@ -71,8 +71,8 @@ namespace LVL1 {
int m_jfexid;
std::vector<uint32_t> m_tobwords;
int m_jTowersIDs_Wide [16*2][17];
int m_jTowersIDs_Thin [16*2][24];
int m_jTowersIDs_Wide [FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width];
int m_jTowersIDs_Thin [FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width];
std::map<int,jTower> m_jTowersColl;
CaloCellContainer m_sCellsCollection;
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
//***************************************************************************
......
/*
Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
*/
//***************************************************************************
......@@ -20,6 +20,7 @@
#include "CaloEvent/CaloCellContainer.h"
#include "CaloIdentifier/CaloIdManager.h"
#include "CaloIdentifier/CaloCell_SuperCell_ID.h"
#include "L1CaloFEXSim/FEXAlgoSpaceDefs.h"
namespace LVL1 {
......@@ -27,7 +28,7 @@ namespace LVL1 {
/** The jFEXSim class defines the structure of a single jFEX
Its purpose is:
- to emulate the steps taken in processing data for a single jFEX in hardware and firmware
- It will need to interact with jTowers and produce the eTOBs. It will be created and handed data by jFEXSysSim
- It will need to interact with jTowers and produce the jTOBs. It will be created and handed data by jFEXSysSim
*/
class jFEXSim : public AthAlgTool, virtual public IjFEXSim {
......@@ -49,15 +50,13 @@ namespace LVL1 {
virtual void reset () override ;
virtual void execute() override ;
virtual int ID() override {return m_id;}
virtual void SetTowersAndCells_SG(int tmp[16*2][17]) override;
virtual void SetTowersAndCells_SG(int tmp[16*2][24]) override;
virtual void SetTowersAndCells_SG(int tmp [FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]) override;
virtual void SetTowersAndCells_SG(int tmp [FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width]) override;
virtual StatusCode NewExecute(int tmp[16*4][17]) override;
virtual StatusCode NewExecute(int tmp[16*4][24]) override;
virtual StatusCode NewExecute(int tmp [FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width]) override;
virtual StatusCode NewExecute(int tmp [FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width]) override;
virtual std::vector<uint32_t> getSmallRJetTOBs() override;
virtual std::vector<uint32_t> getLargeRJetTOBs() override;
......@@ -67,8 +66,8 @@ namespace LVL1 {
static bool largeRJet_ET_Sort(uint32_t i, uint32_t j){ return (((i >> 0 ) & 0x1fff)> ((j >> 0) & 0x1fff));}
int m_id;
int m_jTowersIDs_Wide [16*4][17];
int m_jTowersIDs_Thin [16*4][24];
int m_jTowersIDs_Wide [FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_wide_algoSpace_width];
int m_jTowersIDs_Thin [FEXAlgoSpaceDefs::jFEX_algoSpace_height][FEXAlgoSpaceDefs::jFEX_thin_algoSpace_width];
std::map<int,jTower> m_jTowersColl;
CaloCellContainer m_sCellsCollection;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment