11 const std::string& name,
12 const IInterface* parent)
19 return StatusCode::SUCCESS;
30 const std::string tauStr{
"TAU"};
32 if (
auto pos =
threshold.name().find(tauStr); pos != std::string::npos ) {
33 std::string newThresholdName =
threshold.name();
34 newThresholdName.replace(pos, 3,
"HA");
35 ATH_MSG_INFO(
"Temporary fix due to renaming the HA to TAU thresholds, adding decoding of " << newThresholdName );
40 return StatusCode::SUCCESS;
58 std::optional<ThrVecRef> tauThresholds;
63 constexpr static unsigned int s_maxTauTOBs{5};
64 std::unordered_map<unsigned int, std::unordered_map<unsigned int, unsigned int>> tobCounts;
67 for (
const auto & emTauFragment : roib.
eMTauResult() ) {
68 for (
const auto & roi : emTauFragment.roIVec() ) {
69 uint32_t roIWord = roi.roIWord();
71 ATH_MSG_DEBUG(
"Skipping RoI as it is not TAU threshold " << roIWord );
78 overflow = (++tobCounts[crate][module] > s_maxTauTOBs);
81 recRoIs->push_back( std::make_unique<LVL1::RecEmTauRoI>(roIWord, l1Menu.
cptr()) );
84 trigRoIs->push_back( std::make_unique<TrigRoiDescriptor>(
89 ATH_MSG_DEBUG(
"RoI word: 0x" << MSG::hex << std::setw( 8 ) << roIWord << MSG::dec );
95 std::vector<TrigCompositeUtils::DecisionID> passedThresholdIDs;
97 for (
const auto& th : tauThresholds.value().get()) {
98 ATH_MSG_VERBOSE(
"Checking if the threshold " << th->name() <<
" passed" );
102 ATH_MSG_DEBUG(
"Passed Threshold names " << th->name() <<
" and " << thresholdProbeName);
107 static const std::string thresholdsStr{
"thresholds"};
108 decisionMain->
setDetail(thresholdsStr, passedThresholdIDs);
114 decisionProbe->
setDetail(thresholdsStr, passedThresholdIDs);
126 for (
Decision* decision : *decisionOutput) {
127 decision->setDetail(
"overflow",
static_cast<char>(overflow));
130 for (
auto roi: *trigRoIs ) {
131 ATH_MSG_DEBUG(
"RoI Eta: " << roi->eta() <<
" Phi: " << roi->phi() <<
" RoIWord: " << roi->roiWord() );
144 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x,...)
#define ATH_MSG_WARNING(x,...)
#define ATH_MSG_VERBOSE(x,...)
#define ATH_MSG_INFO(x,...)
xAOD::TrigComposite Decision
SG::WriteHandle< DecisionContainer > createAndStore(const SG::WriteHandleKey< DecisionContainer > &key, const EventContext &ctx)
Creates and right away records the DecisionContainer with the key.
Header file to be included by clients of the Monitored infrastructure.
ElementLink implementation for ROOT usage.
virtual double eta() const =0
virtual double phi() const =0
Methods to retrieve data members.
This class defines the reconstructed em/tau hadron ROI.
virtual double eta() const
returns eta coord of ROI
bool passedThreshold(unsigned int threshold_number) const
returns TRUE if threshold number threshold_number has been passed by this ROI.
virtual double phi() const
returns phi coord of ROI
Group of local monitoring quantities and retain correlation when filling histograms
Declare a monitored scalar variable.
Class holding the LVL1 RoIB result build by the RoIBuilder.
const std::vector< EMTauResult > & eMTauResult() const
Gets the egamma part of the L1 RDO.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
const_pointer_type cptr()
Dereference the pointer.
pointer_type ptr()
Dereference the pointer.
bool setObjectLink(const std::string &name, const ElementLink< CONTAINER > &link)
Set the link to an object.
bool setDetail(const std::string &name, const TYPE &value)
Set an TYPE detail on the object.
std::set< HLT::Identifier > IDSet
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())
SG::WriteHandle< CONT > createAndStoreNoAux(const SG::WriteHandleKey< CONT > &key, const EventContext &ctx)
Creates and right away records the Container CONT with the key.
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::string & initialRecRoIString()
const std::string & initialRoIString()
const std::string & hltSeedingNodeName()