37 {
38 using namespace TrigCompositeUtils;
39
40
45
46
49 std::optional<ThrVecRef> muThresholds;
51
53 const uint32_t roIWord = roi.roIWord();
54 unsigned int thresholdNumber = roi.pt();
55 ATH_MSG_DEBUG(
"MUON RoI with the threshold number: " << thresholdNumber );
56 if ( thresholdNumber < 1 or thresholdNumber > 6 ) {
57 ATH_MSG_WARNING(
"Incorrect threshold number, should be between 1 and 6 but is: "
58 << thresholdNumber << ", force setting it to 1" );
59 thresholdNumber = 1;
60 }
61
62 recRoIs->push_back(std::make_unique<LVL1::RecMuonRoI>(roIWord,
66 const LVL1::RecMuonRoI* recRoI = recRoIs->back();
67
68 trigRoIs->push_back( std::make_unique<TrigRoiDescriptor>(
69 roIWord, 0u ,0u,
72
73 ATH_MSG_DEBUG(
"RoI word: 0x" << MSG::hex << std::setw( 8 ) << roIWord );
74
75
78 ElementLink<TrigRoiDescriptorCollection>(
m_trigRoIsKey.key(), trigRoIs->size()-1, ctx) );
80 ElementLink<DataVector<LVL1::RecMuonRoI>>(
m_recRoIsKey.key(), recRoIs->size()-1, ctx) );
81
84 ElementLink<TrigRoiDescriptorCollection>(
m_trigRoIsKey.key(), trigRoIs->size()-1, ctx) );
86 ElementLink<DataVector<LVL1::RecMuonRoI>>(
m_recRoIsKey.key(), recRoIs->size()-1, ctx) );
87
88 std::vector<TrigCompositeUtils::DecisionID> passedThresholdIDs;
89
90 for (const auto& th : muThresholds.value().get()) {
91 if (
th->mapping() < thresholdNumber ) {
92
93 passedThresholdIDs.push_back(HLT::Identifier(
th->name()));
95 ATH_MSG_DEBUG(
"Passed Threshold names " <<
th->name() <<
" and " << thresholdProbeName);
98 }
99 }
100
101 decisionMain->
setDetail(
"thresholds", passedThresholdIDs);
102 decisionProbe->
setDetail(
"thresholds", passedThresholdIDs);
103 }
104
105
106 {
107 auto RoIsCount = Monitored::Scalar( "count", trigRoIs->size() );
110 Monitored::Group(
m_monTool, RoIsCount, RoIsEta, RoIsPhi );
111 }
112 return StatusCode::SUCCESS;
113}
#define ATH_MSG_WARNING(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.
virtual double eta() const =0
virtual double phi() const =0
Methods to retrieve data members.
virtual double eta() const
returns eta coord of ROI
virtual double phi() const
returns phi coord of ROI
const std::vector< MuCTPIRoI > & roIVec() const
Member function returning the RoI vector.
const MuCTPIResult & muCTPIResult() const
Gets the MuCTPI part of the L1 RDO.
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.
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.
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()