62 template <
class TOBObjectClass>
static bool TOBetSort(
const TOBObjectClass& i,
const TOBObjectClass& j,
bool isTau ) {
63 auto et_i = (i->getTobword() >> 0 ) & 0xfff;
64 auto et_j = (j->getTobword() >> 0 ) & 0xfff;
65 if(et_i > et_j)
return true;
68 auto procOrder = (
isTau) ? std::map<unsigned int,unsigned int>{{2,3},{1,2},{0,1},{3,0}} :
69 std::map<unsigned int,unsigned int>{{2,3},{1,2},{3,1},{0,0}};
70 auto proc_i = procOrder.at((i->getTobword()) >> 30);
71 auto proc_j = procOrder.at((j->getTobword()) >> 30);
72 if(proc_i > proc_j)
return true;
73 if (proc_i == proc_j) {
74 auto phi_i = (i->getTobword()) & 0x07000000;
75 auto phi_j = (j->getTobword()) & 0x07000000;
76 if(phi_i > phi_j)
return true;
78 auto eta_i = (i->getTobword()) & 0x38000000;
79 auto eta_j = (j->getTobword()) & 0x38000000;
80 if(eta_i > eta_j)
return true;
89 StatusCode
StoreTauTOBs(std::map<
int, std::vector<std::unique_ptr<eFEXtauTOB>> >& allTauTobObjects,
94 ToolHandle<eFEXSim>
m_eFEXSimTool {
this,
"eFEXSimTool",
"LVL1::eFEXSim",
"Tool that creates the eFEX Simulation"};
96 ToolHandle<eFEXFillEDM>
m_eFEXFillEDMTool {
this,
"eFEXFillEDMTool",
"LVL1::eFEXFillEDM",
"Tool to fille eFEX EDMs"};
107 ToolHandle<eFEXFPGATowerIdProvider>
m_eFEXFPGATowerIdProviderTool {
this,
"eFEXFPGATowerIdProviderTool",
"LVL1::eFEXFPGATowerIdProvider",
"Tool that provides tower-FPGA mapping"};
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
macros to associate a CLID to a type
ToolHandle< eFEXSim > m_eFEXSimTool
SG::WriteHandleKey< xAOD::eFexTauRoIContainer > m_eFexTauAltOutKey
eFEXSysSim && operator=(const eFEXSysSim &)=delete
Destructor.
static const InterfaceID & interfaceID()
SG::ReadHandleKey< TrigConf::L1Menu > m_l1MenuKey
SG::WriteHandleKey< xAOD::eFexEMRoIContainer > m_eFexOutKey
ToolHandle< eFEXFillEDM > m_eFEXFillEDMTool
virtual StatusCode execute(eFEXOutputCollection *inputOutputCollection)
ToolHandle< eFEXFPGATowerIdProvider > m_eFEXFPGATowerIdProviderTool
StatusCode StoreTauTOBs(std::map< int, std::vector< std::unique_ptr< eFEXtauTOB > > > &allTauTobObjects, SG::WriteHandleKey< xAOD::eFexTauRoIContainer > &eFexTauxTOBOutKey, SG::WriteHandleKey< xAOD::eFexTauRoIContainer > &eFexTauOutKey)
static bool TOBetSort(const TOBObjectClass &i, const TOBObjectClass &j, bool isTau)
Internal data.
SG::WriteHandleKey< xAOD::eFexEMRoIContainer > m_eFexEMxTOBOutKey
SG::WriteHandleKey< xAOD::eFexTauRoIContainer > m_eFexTauActivexTOBOutKey
virtual StatusCode initialize()
standard Athena-Algorithm method
eFEXSysSim(const std::string &type, const std::string &name, const IInterface *parent)
Constructors.
SG::WriteHandleKey< xAOD::eFexTauRoIContainer > m_eFexTauActiveOutKey
virtual int calcTowerID(int eta, int phi, int mod) const
SG::ReadHandleKey< LVL1::eTowerContainer > m_eTowerContainerSGKey
SG::WriteHandleKey< xAOD::eFexTauRoIContainer > m_eFexTauAltxTOBOutKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Provide tower-FPGA mapping.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
static const InterfaceID IID_IeFEXSysSim("LVL1::eFEXSysSim", 1, 0)
The eFEXSysSim class defines the structure of the eFEX system Its purpose is: