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

#include <MURoIThresholdsTool.h>

Inheritance diagram for MURoIThresholdsTool:
Collaboration diagram for MURoIThresholdsTool:

Public Types

using ThrVec
using ThrVecRef
using ExtraInfoRef

Public Member Functions

 MURoIThresholdsTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual uint64_t getPattern (const EventContext &ctx, const xAOD::MuonRoI &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 MURoIThresholdsTool.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

◆ MURoIThresholdsTool()

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

Definition at line 13 of file MURoIThresholdsTool.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 MURoIThresholdsTool::getPattern ( const EventContext & ctx,
const xAOD::MuonRoI & roi,
const ThrVec & menuThresholds,
const TrigConf::L1ThrExtraInfoBase & menuExtraInfo ) const
overridevirtual

Definition at line 9 of file MURoIThresholdsTool.cxx.

12 {
13 uint32_t thr_num = static_cast<uint32_t>(roi.getThrNumber());
14
15 uint64_t thresholdsPattern = 0;
16
17 // Iterate through thresholds and see which ones are passed
18 for (const std::shared_ptr<TrigConf::L1Threshold>& thrBase : menuThresholds) {
19 std::shared_ptr<TrigConf::L1Threshold_MU> thr = std::static_pointer_cast<TrigConf::L1Threshold_MU>(thrBase);
20
21 bool passed{false};
22
23 // e.g. threshold number is simply required.
24 if (thr_num >= thr->idxBarrel() || thr_num >= thr->idxEndcap() || thr_num >= thr->idxForward()) {
25 passed = true;
26 }
27
28 if (passed) {
29 // set the corresponding bit in the pattern
30 thresholdsPattern |= (1_u64 << thr->mapping());
31 }
32
33 } // loop over thresholds
34
35 return thresholdsPattern;
36}
bool passed(DecisionID id, const DecisionIDContainer &)
checks if required decision ID is in the set of IDs in the container
int getThrNumber() const
Get the logic number of the highest threshold this RoI passed.
setEventNumber uint32_t

◆ 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: