ATLAS Offline Software
Loading...
Searching...
No Matches
jFexLRJetRoIThresholdsTool Class Referenceabstract

#include <jFexLRJetRoIThresholdsTool.h>

Inheritance diagram for jFexLRJetRoIThresholdsTool:
Collaboration diagram for jFexLRJetRoIThresholdsTool:

Public Types

using ThrVec
using ThrVecRef
using ExtraInfoRef

Public Member Functions

 jFexLRJetRoIThresholdsTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual uint64_t getPattern (const EventContext &ctx, const xAOD::jFexLRJetRoI &roi, const ThrVec &menuThresholds, const TrigConf::L1ThrExtraInfoBase &menuExtraInfo) const override
virtual StatusCode initialize () override
virtual std::optional< ThrVecRefgetMenuThresholds (const TrigConf::L1Menu &l1Menu) const
virtual std::optional< ExtraInfoRefgetMenuThresholdExtraInfo (const TrigConf::L1Menu &l1Menu) const
virtual StatusCode decorateThresholds (const EventContext &eventContext) const override
virtual uint64_t getPattern (const EventContext &ctx, const T_RoI &roi, const ThrVec &menuThresholds, const TrigConf::L1ThrExtraInfoBase &menuExtraInfo) const=0
 To be implemented by each template instance.

Protected Attributes

SG::ReadHandleKey< TrigConf::L1Menum_l1MenuKey
SG::WriteDecorHandleKey< T_RoIContainer > m_thresholdPatternsKey

Detailed Description

Definition at line 11 of file jFexLRJetRoIThresholdsTool.h.

Member Typedef Documentation

◆ ExtraInfoRef

using RoIThresholdsTool< T_RoI, T_RoIContainer, N_RoIContainer, N_ThresholdType >::ExtraInfoRef
inherited

Definition at line 26 of file IRoIThresholdsTool.h.

◆ ThrVec

using RoIThresholdsTool< T_RoI, T_RoIContainer, N_RoIContainer, N_ThresholdType >::ThrVec
inherited

Definition at line 24 of file IRoIThresholdsTool.h.

◆ ThrVecRef

using RoIThresholdsTool< T_RoI, T_RoIContainer, N_RoIContainer, N_ThresholdType >::ThrVecRef
inherited

Definition at line 25 of file IRoIThresholdsTool.h.

Constructor & Destructor Documentation

◆ jFexLRJetRoIThresholdsTool()

jFexLRJetRoIThresholdsTool::jFexLRJetRoIThresholdsTool ( const std::string & type,
const std::string & name,
const IInterface * parent )
inline

Definition at line 13 of file jFexLRJetRoIThresholdsTool.h.

RoIThresholdsTool< T_RoI, T_RoIContainer, ContainerName, ThresholdType > ThresholdBaseClass

Member Function Documentation

◆ decorateThresholds()

virtual StatusCode RoIThresholdsTool< T_RoI, T_RoIContainer, N_RoIContainer, N_ThresholdType >::decorateThresholds ( const EventContext & eventContext) const
inlineoverridevirtualinherited

Definition at line 63 of file IRoIThresholdsTool.h.

63 {
64 // Retrieve the L1 menu configuration
66 ATH_CHECK(l1Menu.isValid());
68 ATH_CHECK(menuThresholds.has_value());
70 ATH_CHECK(menuExtraInfo.has_value());
71
72 // Decorate the RoI objects with threshold patterns
74 for (const T_RoI* roi: *thresholdPatterns) {
75 try {
76 thresholdPatterns(*roi) = getPattern(eventContext, *roi, menuThresholds.value().get(), menuExtraInfo.value().get());
77 }
78 catch (const std::exception& ex) {
79 ATH_MSG_ERROR("getPattern() for " << N_RoIContainer << " failed with exception: " << ex.what());
81 }
82 }
83
85 }
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
virtual std::optional< ThrVecRef > getMenuThresholds(const TrigConf::L1Menu &l1Menu) const
virtual std::optional< ExtraInfoRef > getMenuThresholdExtraInfo(const TrigConf::L1Menu &l1Menu) const
virtual uint64_t getPattern(const EventContext &ctx, const T_RoI &roi, const ThrVec &menuThresholds, const TrigConf::L1ThrExtraInfoBase &menuExtraInfo) const=0
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())

◆ getMenuThresholdExtraInfo()

virtual std::optional< ExtraInfoRef > RoIThresholdsTool< T_RoI, T_RoIContainer, N_RoIContainer, N_ThresholdType >::getMenuThresholdExtraInfo ( const TrigConf::L1Menu & l1Menu) const
inlinevirtualinherited

Definition at line 50 of file IRoIThresholdsTool.h.

50 {
51 // Retrieve the thresholds vector from L1 menu configuration
53 try {
54 menuExtraInfo = ExtraInfoRef(l1Menu.thrExtraInfo().thrExtraInfo(N_ThresholdType));
55 }
56 catch (const std::exception& ex) {
57 ATH_MSG_ERROR("Failed to retrieve " << N_ThresholdType << " threshold extra info from L1 menu. Exception:" << ex.what());
58 return {};
59 }
60 return menuExtraInfo;
61 }
std::reference_wrapper< const TrigConf::L1ThrExtraInfoBase > ExtraInfoRef

◆ getMenuThresholds()

virtual std::optional< ThrVecRef > RoIThresholdsTool< T_RoI, T_RoIContainer, N_RoIContainer, N_ThresholdType >::getMenuThresholds ( const TrigConf::L1Menu & l1Menu) const
inlinevirtualinherited

Definition at line 37 of file IRoIThresholdsTool.h.

37 {
38 // Retrieve the thresholds vector from L1 menu configuration
40 try {
42 }
43 catch (const std::exception& ex) {
44 ATH_MSG_ERROR("Failed to retrieve " << N_ThresholdType << " thresholds from L1 menu. Exception:" << ex.what());
45 return {};
46 }
47 return menuThresholds;
48 }

◆ getPattern() [1/2]

uint64_t jFexLRJetRoIThresholdsTool::getPattern ( const EventContext & ctx,
const xAOD::jFexLRJetRoI & roi,
const ThrVec & menuThresholds,
const TrigConf::L1ThrExtraInfoBase & menuExtraInfo ) const
overridevirtual

Definition at line 8 of file jFexLRJetRoIThresholdsTool.cxx.

11 {
12
13 // Get RoI properties (once, rather than for every threshold in the menu)
14 unsigned int et = roi.et();
15 int ieta = roi.menuEta();
16 uint64_t thresholdMask = 0;
17
18 // Iterate through thresholds and see which ones are passed
19 for (const std::shared_ptr<TrigConf::L1Threshold>& thrBase : menuThresholds) {
20 auto thr = static_cast<TrigConf::L1Threshold_jLJ*>(thrBase.get());
21
22 //Checking et thresholds
23 if (et > thr->thrValueMeV(ieta)) {
24 thresholdMask |= (1_u64<<thr->mapping());
25 }
26
27 ATH_MSG_DEBUG("jFEX LRjets HLT seeding for ("<< thr->name() <<"): et=" << et << " > "<<thr->thrValueMeV(ieta));
28 }
29 return thresholdMask;
30
31}
#define ATH_MSG_DEBUG(x)
float et(const xAOD::jFexSRJetRoI *j)
unsigned int et() const
Methods that require combining results or applying scales.
int menuEta() const
the eta index to use for looking up thresholds in the menu

◆ getPattern() [2/2]

virtual uint64_t RoIThresholdsTool< T_RoI, T_RoIContainer, N_RoIContainer, N_ThresholdType >::getPattern ( const EventContext & ctx,
const T_RoI & roi,
const ThrVec & menuThresholds,
const TrigConf::L1ThrExtraInfoBase & menuExtraInfo ) const
pure virtualinherited

To be implemented by each template instance.

◆ initialize()

virtual StatusCode RoIThresholdsTool< T_RoI, T_RoIContainer, N_RoIContainer, N_ThresholdType >::initialize ( )
inlineoverridevirtualinherited

Reimplemented in cTauRoIThresholdsTool.

Definition at line 31 of file IRoIThresholdsTool.h.

31 {
32 ATH_CHECK(m_l1MenuKey.initialize());
35 }

Member Data Documentation

◆ m_l1MenuKey

SG::ReadHandleKey<TrigConf::L1Menu> RoIThresholdsTool< T_RoI, T_RoIContainer, N_RoIContainer, N_ThresholdType >::m_l1MenuKey
protectedinherited

Definition at line 94 of file IRoIThresholdsTool.h.

94 {
95 this, "L1TriggerMenu", "DetectorStore+L1TriggerMenu",
96 "Name of the L1Menu object to read configuration from"};

◆ m_thresholdPatternsKey

SG::WriteDecorHandleKey<T_RoIContainer> RoIThresholdsTool< T_RoI, T_RoIContainer, N_RoIContainer, N_ThresholdType >::m_thresholdPatternsKey
protectedinherited

Definition at line 98 of file IRoIThresholdsTool.h.

98 {
99 this, "ThresholdPatternsDecorKey", std::string(N_RoIContainer)+".thresholdPatterns",
100 "Decoration for the threshold patterns"};

The documentation for this class was generated from the following files: