ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Trigger
TrigSteer
DecisionHandling
src
TriggerSummaryAlg.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "Gaudi/Property.h"
6
#include "
TriggerSummaryAlg.h
"
7
#include "
AthenaMonitoringKernel/Monitored.h
"
8
9
TriggerSummaryAlg::TriggerSummaryAlg
(
const
std::string& name,
10
ISvcLocator* pSvcLocator ) :
11
::
AthReentrantAlgorithm
( name, pSvcLocator ) {}
12
13
TriggerSummaryAlg::~TriggerSummaryAlg
()
14
{}
15
16
StatusCode
TriggerSummaryAlg::initialize
()
17
{
18
19
ATH_CHECK
(
m_inputDecisionKey
.initialize() );
20
21
renounceArray
(
m_finalDecisionKeys
);
22
ATH_CHECK
(
m_finalDecisionKeys
.initialize() );
23
24
ATH_MSG_DEBUG
(
"Will consume implicit decisions:"
);
25
for
(
auto
& input:
m_finalDecisionKeys
){
26
ATH_MSG_DEBUG
(
" "
<<input.key() );
27
}
28
29
ATH_CHECK
(
m_startStampKey
.initialize() );
30
31
ATH_CHECK
(
m_outputTools
.retrieve() );
32
33
if
( !
m_monTool
.empty() )
ATH_CHECK
(
m_monTool
.retrieve() );
34
35
return
StatusCode::SUCCESS;
36
}
37
38
StatusCode
TriggerSummaryAlg::execute
(
const
EventContext& context)
const
39
{
40
41
// that is certain input
42
auto
l1DecisionHandle =
SG::makeHandle
(
m_inputDecisionKey
, context );
43
auto
inputHandles
(
m_finalDecisionKeys
.makeHandles(context) );
44
TrigCompositeUtils::DecisionIDContainer
allPassingIDs;
45
for
(
auto
input:
inputHandles
) {
46
if
( input.isValid() ) {
47
for
(
auto
decisionObject: *input ) {
48
TrigCompositeUtils::decisionIDs
( decisionObject, allPassingIDs );
49
}
50
ATH_MSG_DEBUG
(
"Found "
<<input->size()<<
" Decisions for "
<< input.key() );
51
}
else
{
52
ATH_MSG_DEBUG
(
"Missing decisions for "
<< input.key() <<
" which may be perfectly correct"
);
53
}
54
}
55
56
if
(
msgLvl
( MSG::DEBUG ) ){
57
ATH_MSG_DEBUG
(
"In summary "
<< allPassingIDs.size() <<
" chains passed:"
);
58
for
(
TrigCompositeUtils::DecisionID
id
: allPassingIDs ) {
59
ATH_MSG_DEBUG
(
" +++ "
<<
HLT::Identifier
(
id
) );
60
}
61
}
62
63
for
(
auto
& tool:
m_outputTools
) {
64
ATH_CHECK
( tool->createOutput( context ) );
65
}
66
67
auto
timeStampHandle =
SG::makeHandle
(
m_startStampKey
, context );
68
ATH_MSG_DEBUG
(
"Time since the start of L1 decoding "
<< timeStampHandle.cptr()->millisecondsSince() <<
" ms"
);
69
Monitored::Group
(
m_monTool
,
Monitored::Scalar
(
"TIME_SinceEventStart"
, timeStampHandle.cptr()->millisecondsSince() ) );
70
71
return
StatusCode::SUCCESS;
72
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
Monitored.h
Header file to be included by clients of the Monitored infrastructure.
TriggerSummaryAlg.h
AthCommonAlgorithm< Gaudi::Algorithm >::inputHandles
virtual std::vector< Gaudi::DataHandle * > inputHandles() const override
AthCommonAlgorithm< Gaudi::Algorithm >::renounceArray
void renounceArray(SG::VarHandleKeyArray &handlesArray)
Definition
AthCommonDataStore.h:364
AthCommonAlgorithm< Gaudi::Algorithm >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition
AthCommonMsg.h:30
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition
AthReentrantAlgorithm.h:74
HLT::Identifier
Definition
TrigCompositeUtils/TrigCompositeUtils/HLTIdentifier.h:19
Monitored::Group
Group of local monitoring quantities and retain correlation when filling histograms
Definition
MonitoredGroup.h:53
Monitored::Scalar
Declare a monitored scalar variable.
Definition
MonitoredScalar.h:34
TriggerSummaryAlg::~TriggerSummaryAlg
virtual ~TriggerSummaryAlg()
Definition
TriggerSummaryAlg.cxx:13
TriggerSummaryAlg::execute
virtual StatusCode execute(const EventContext &context) const override
Definition
TriggerSummaryAlg.cxx:38
TriggerSummaryAlg::TriggerSummaryAlg
TriggerSummaryAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition
TriggerSummaryAlg.cxx:9
TriggerSummaryAlg::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition
TriggerSummaryAlg.h:50
TriggerSummaryAlg::m_outputTools
ToolHandleArray< IHLTOutputTool > m_outputTools
Definition
TriggerSummaryAlg.h:48
TriggerSummaryAlg::m_startStampKey
SG::ReadHandleKey< TrigTimeStamp > m_startStampKey
Definition
TriggerSummaryAlg.h:41
TriggerSummaryAlg::m_finalDecisionKeys
SG::ReadHandleKeyArray< TrigCompositeUtils::DecisionContainer > m_finalDecisionKeys
Definition
TriggerSummaryAlg.h:38
TriggerSummaryAlg::initialize
virtual StatusCode initialize() override
Definition
TriggerSummaryAlg.cxx:16
TriggerSummaryAlg::m_inputDecisionKey
SG::ReadHandleKey< TrigCompositeUtils::DecisionContainer > m_inputDecisionKey
Definition
TriggerSummaryAlg.h:35
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition
ReadCondHandle.h:269
TrigCompositeUtils::DecisionID
unsigned int DecisionID
Definition
TrigComposite_v1.h:27
TrigCompositeUtils::DecisionIDContainer
std::set< DecisionID > DecisionIDContainer
Definition
TrigComposite_v1.h:28
TrigCompositeUtils::decisionIDs
void decisionIDs(const Decision *d, DecisionIDContainer &destination)
Extracts DecisionIDs stored in the Decision object.
Definition
TrigCompositeUtilsRoot.cxx:65
Generated on
for ATLAS Offline Software by
1.17.0