|
ATLAS Offline Software
|
#include <EMRoIsUnpackingTool.h>
|
| EMRoIsUnpackingTool (const std::string &type, const std::string &name, const IInterface *parent) |
|
StatusCode | unpack (const EventContext &ctx, const ROIB::RoIBResult &roib, const HLT::IDSet &activeChains) const override |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | start () override |
|
virtual StatusCode | unpack (const EventContext &, const ROIB::RoIBResult &, const HLT::IDSet &) const override |
|
virtual StatusCode | unpack (const EventContext &, const xAOD::TrigComposite &, const HLT::IDSet &) const override |
|
virtual StatusCode | unpack (const EventContext &, const xAOD::TrigComposite &, const HLT::IDSet &) const override |
|
Definition at line 13 of file EMRoIsUnpackingTool.h.
◆ ThrVec
◆ ThrVecRef
◆ EMRoIsUnpackingTool()
EMRoIsUnpackingTool::EMRoIsUnpackingTool |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
◆ addChainsToDecision()
Definition at line 88 of file RoIsUnpackingToolBase.cxx.
98 for (
auto chainId:
chains->second ) {
99 if ( activeChains.find(chainId) != activeChains.end() ) {
100 ids.insert( chainId.numeric() );
101 ATH_MSG_DEBUG(
"Added " << chainId <<
" to the RoI/threshold decision " << thresholdId );
106 if ( activeChains.find( legIterator->second ) != activeChains.end() ) {
107 ids.insert( chainId.numeric() );
108 ATH_MSG_DEBUG(
"Added " << chainId <<
" to the RoI/threshold decision " << thresholdId );
114 ATH_MSG_DEBUG(
"Number of decisions in this RoI after adding chains using threshold " << thresholdId
◆ decodeMapping()
StatusCode RoIsUnpackingToolBase::decodeMapping |
( |
std::function< bool(const std::string &)> && |
filter | ) |
|
|
protectedinherited |
Fills mapping from L1 threshold -> to HLT chain.
- filter Function that, using the threshold name, defines if this decoder instance should take care of this threshold
Definition at line 52 of file RoIsUnpackingToolBase.cxx.
60 const std::vector<std::string> thresholds{
chain.l1thresholds() };
61 const std::vector<size_t> legMultiplicities{
chain.legMultiplicities() };
62 if (thresholds.size() != legMultiplicities.size()) {
63 ATH_MSG_ERROR(
"Encountered a chain " <<
chain.name() <<
" with " << legMultiplicities.size()
64 <<
" legs but only " << thresholds.size() <<
" thresholds. These should be the same.");
65 return StatusCode::FAILURE;
68 for (
const std::string&
th: thresholds ) {
72 ATH_MSG_DEBUG(
"Associating " << chainIdentifier <<
" with threshold " <<
th );
73 if ( thresholds.size() > 1 ) {
77 ATH_MSG_DEBUG(
"Associating additional chain leg " << legIdentifier
78 <<
" with threshold " << thresholdIdentifier );
84 return StatusCode::SUCCESS;
◆ getL1Thresholds()
Retrieve a vector of thresholds with type thrType
from L1Menu.
- Parameters
-
[in] | l1Menu | The L1Menu object |
[in] | thrType | The threshold type, e.g. EM, MU, eTAU |
[out] | thrVec | The output will be passed into this parameter |
- Returns
- FAILURE on exception reading the menu (e.g. thrType not in menu), SUCCESS otherwise
Definition at line 33 of file RoIsUnpackingToolBase.cxx.
40 ATH_MSG_ERROR(
"Failed to retrieve " << thrType <<
" thresholds from L1 menu. Exception:" << ex.what());
41 return StatusCode::FAILURE;
43 return StatusCode::SUCCESS;
◆ getProbeThresholdName()
std::string RoIsUnpackingToolBase::getProbeThresholdName |
( |
const std::string & |
thresholdName | ) |
|
|
staticprotectedinherited |
Concatenate the probe identifier string with the threshold name string.
Creates an alternate threshold name, used by lower pT probe legs of tag+probe chains.
Definition at line 47 of file RoIsUnpackingToolBase.cxx.
48 return "PROBE" + thresholdName;
◆ initialize()
StatusCode EMRoIsUnpackingTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ start()
StatusCode EMRoIsUnpackingTool::start |
( |
| ) |
|
|
overridevirtual |
◆ unpack() [1/4]
virtual StatusCode RoIsUnpackingToolBase::unpack |
|
inlineoverride |
◆ unpack() [2/4]
virtual StatusCode RoIsUnpackingToolBase::unpack |
|
inlineoverride |
◆ unpack() [3/4]
|
inlineoverridevirtualinherited |
◆ unpack() [4/4]
Reimplemented from RoIsUnpackingToolBase.
Definition at line 32 of file EMRoIsUnpackingTool.cxx.
46 std::optional<ThrVecRef> emThresholds;
51 constexpr
static unsigned int s_maxEmTOBs{5};
52 std::unordered_map<unsigned int, std::unordered_map<unsigned int, unsigned int>> tobCounts;
55 for (
const auto & emTauFragment : roib.
eMTauResult() ) {
56 for (
const auto & roi : emTauFragment.roIVec() ) {
59 ATH_MSG_DEBUG(
"Skipping RoI as it is not EM threshold " << roIWord );
66 overflow = (++tobCounts[crate][
module] > s_maxEmTOBs);
69 recRoIs->push_back( std::make_unique<LVL1::RecEmTauRoI>(roIWord, l1Menu.
cptr()) );
72 trigRoIs->
push_back( std::make_unique<TrigRoiDescriptor>(
77 ATH_MSG_DEBUG(
"RoI word: 0x" << MSG::hex << std::setw( 8 ) << roIWord << MSG::dec );
83 std::vector<TrigCompositeUtils::DecisionID> passedThresholdIDs;
85 for (
const auto&
th : emThresholds.value().get()) {
90 ATH_MSG_DEBUG(
"Passed Threshold names " <<
th->name() <<
" and " << thresholdProbeName);
96 decisionMain->
setDetail(
"thresholds", passedThresholdIDs );
102 decisionProbe->
setDetail(
"thresholds", passedThresholdIDs );
114 for (
Decision* decision : *decisionOutput) {
115 decision->setDetail(
"overflow",
static_cast<char>(overflow));
118 for (
auto roi: *trigRoIs ) {
119 ATH_MSG_DEBUG(
"RoI Eta: " << roi->eta() <<
" Phi: " << roi->phi() <<
" RoIWord: " << roi->roiWord() );
132 return StatusCode::SUCCESS;
◆ m_cpDecoder
◆ m_decisionsKey
Initial value:{
this, "Decisions", "RoIDecisions", "Decisions for each RoI"}
Definition at line 51 of file RoIsUnpackingToolBase.h.
◆ m_decisionsKeyProbe
Initial value:{
this, "DecisionsProbe", "", "Optional secondary set of Decisions for each RoI for probe a.k.a. delayed a.k.a. rerun chains"}
Definition at line 54 of file RoIsUnpackingToolBase.h.
◆ m_HLTMenuKey
Initial value:{
this, "HLTTriggerMenu", "DetectorStore+HLTTriggerMenu", "Name of the HLTMenu object to read configuration from"}
Definition at line 63 of file RoIsUnpackingToolBase.h.
◆ m_l1MenuKey
Initial value:{
this, "L1TriggerMenu", "DetectorStore+L1TriggerMenu", "Name of the L1Menu object to read configuration from"}
Definition at line 60 of file RoIsUnpackingToolBase.h.
◆ m_legToChainMapping
◆ m_monTool
◆ m_recRoIsKey
Initial value:{
this, "OutputRecRoIs", "HLT_RecEMRoIs",
"Name of the RoIs object produced by the unpacker"}
Definition at line 29 of file EMRoIsUnpackingTool.h.
◆ m_roiupdater
ToolHandle<IRoiUpdaterTool> RoIsUnpackingToolBase::m_roiupdater { this, "RoiUpdater", "", "Roi Updater" } |
|
protectedinherited |
◆ m_roIWidth
Gaudi::Property<float> EMRoIsUnpackingTool::m_roIWidth |
|
private |
Initial value:{
this, "RoIWidth", 0.2, "Size of RoI in eta/ phi"}
Definition at line 33 of file EMRoIsUnpackingTool.h.
◆ m_thresholdToChainMapping
◆ m_trigRoIsKey
Initial value:{
this, "OutputTrigRoIs", "", "Name of the RoIs collection produced by the unpacker"}
Definition at line 57 of file RoIsUnpackingToolBase.h.
The documentation for this class was generated from the following files:
unsigned int crate(const unsigned int roiWord) const
Decode crate number from RoI word.
bool setDetail(const std::string &name, const TYPE &value)
Set an TYPE detail on the object.
Group
Properties of a chain group.
const_pointer_type cptr()
Dereference the pointer.
const std::string & hltSeedingNodeName()
Decision * newDecisionIn(DecisionContainer *dc, const std::string &name)
Helper method to create a Decision object, place it in the container and return a pointer to it.
const std::vector< EMTauResult > & eMTauResult() const
Gets the egamma part of the L1 RDO.
void insertDecisionIDs(const Decision *src, Decision *dest)
Appends the decision IDs of src to the dest decision object.
SG::WriteHandle< DecisionContainer > createAndStore(const SG::WriteHandleKey< DecisionContainer > &key, const EventContext &ctx)
Creates and right away records the DecisionContainer with the key.
const std::string & initialRecRoIString()
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
@ u
Enums for curvilinear frames.
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
bool passedThreshold(unsigned int threshold_number) const
returns TRUE if threshold number threshold_number has been passed by this ROI.
bool setObjectLink(const std::string &name, const ElementLink< CONTAINER > &link)
Set the link to an object.
const std::string & initialRoIString()
pointer_type ptr()
Dereference the pointer.
This class defines the reconstructed em/tau hadron ROI.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
SG::WriteHandle< CONT > createAndStoreNoAux(const SG::WriteHandleKey< CONT > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Creates and right away records the Container CONT with the key.
Class used to describe composite objects in the HLT.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
virtual double phi() const
returns phi coord of ROI
value_type push_back(value_type pElem)
Add an element to the end of the collection.
HLT::Identifier createLegName(const HLT::Identifier &chainIdentifier, size_t counter)
Generate the HLT::Identifier which corresponds to a specific leg of a given chain.
std::set< DecisionID > DecisionIDContainer
#define ATH_MSG_WARNING(x)
virtual double phi() const override final
Methods to retrieve data members.
unsigned int module(const unsigned int roiWord) const
Decode module number from RoI word.
void decisionIDs(const Decision *d, DecisionIDContainer &destination)
Extracts DecisionIDs stored in the Decision object.
virtual double eta() const override final
Declare a monitored scalar variable.
virtual double eta() const
returns eta coord of ROI
size_type size() const noexcept
Returns the number of elements in the collection.