Skip to content
Snippets Groups Projects
Commit af8f7892 authored by Stewart Martin-Haugh's avatar Stewart Martin-Haugh
Browse files

Merge branch 'change-algorithm' into 'master'

change algorithm to AthReentrantAlgorithm

See merge request atlas/athena!24365
parents 367c791f 04fff8d4
No related branches found
No related tags found
No related merge requests found
......@@ -10,7 +10,7 @@
TrigSignatureMoniMT::TrigSignatureMoniMT( const std::string& name,
ISvcLocator* pSvcLocator ) :
::AthAlgorithm( name, pSvcLocator )
::AthReentrantAlgorithm( name, pSvcLocator )
{}
StatusCode TrigSignatureMoniMT::initialize() {
......@@ -110,7 +110,7 @@ StatusCode TrigSignatureMoniMT::finalize() {
return StatusCode::SUCCESS;
}
StatusCode TrigSignatureMoniMT::fillPassEvents(const TrigCompositeUtils::DecisionIDContainer& dc, int row, LockedHandle<TH2>& histogram) {
StatusCode TrigSignatureMoniMT::fillPassEvents(const TrigCompositeUtils::DecisionIDContainer& dc, int row, LockedHandle<TH2>& histogram) const {
for ( auto id : dc ) {
auto id2bin = m_chainIDToBinMap.find( id );
if ( id2bin == m_chainIDToBinMap.end() ) {
......@@ -122,7 +122,7 @@ StatusCode TrigSignatureMoniMT::fillPassEvents(const TrigCompositeUtils::Decisio
return StatusCode::SUCCESS;
}
StatusCode TrigSignatureMoniMT::fillDecisionCount(const std::vector<TrigCompositeUtils::DecisionID>& dc, int row) {
StatusCode TrigSignatureMoniMT::fillDecisionCount(const std::vector<TrigCompositeUtils::DecisionID>& dc, int row) const {
for ( auto id : dc ) {
auto id2bin = m_chainIDToBinMap.find( id );
if ( id2bin == m_chainIDToBinMap.end() ) {
......@@ -133,13 +133,13 @@ StatusCode TrigSignatureMoniMT::fillDecisionCount(const std::vector<TrigComposit
return StatusCode::SUCCESS;
}
StatusCode TrigSignatureMoniMT::fillRate(const TrigCompositeUtils::DecisionIDContainer& dc, int row) {
StatusCode TrigSignatureMoniMT::fillRate(const TrigCompositeUtils::DecisionIDContainer& dc, int row) const {
return fillPassEvents(dc, row, m_rateHistogram);
}
StatusCode TrigSignatureMoniMT::execute() {
StatusCode TrigSignatureMoniMT::execute( const EventContext& context ) const {
auto l1Decisions = SG::makeHandle( m_l1DecisionsKey );
auto l1Decisions = SG::makeHandle( m_l1DecisionsKey, context );
const TrigCompositeUtils::Decision* l1SeededChains = nullptr; // Activated by L1
const TrigCompositeUtils::Decision* unprescaledChains = nullptr; // Activated and passed prescale check
......@@ -186,7 +186,7 @@ StatusCode TrigSignatureMoniMT::execute() {
}
const int row = m_passHistogram->GetYaxis()->GetNbins();
auto finalDecisionsHandle = SG::makeHandle( m_finalDecisionKey );
auto finalDecisionsHandle = SG::makeHandle( m_finalDecisionKey, context );
ATH_CHECK( finalDecisionsHandle.isValid() );
TrigCompositeUtils::DecisionIDContainer finalIDs;
for (const TrigCompositeUtils::Decision* decisionObject : *finalDecisionsHandle) {
......@@ -206,9 +206,6 @@ StatusCode TrigSignatureMoniMT::execute() {
return StatusCode::SUCCESS;
}
int TrigSignatureMoniMT::nBinsY() const {
return m_collectorTools.size()+3; // in, after ps, out
}
......
......@@ -9,7 +9,7 @@
#include <memory>
#include <TH2.h>
#include "AthenaBaseComps/AthAlgorithm.h"
#include "AthenaBaseComps/AthReentrantAlgorithm.h"
#include "GaudiKernel/ITHistSvc.h"
#include "GaudiKernel/LockedHandle.h"
#include "DecisionHandling/TrigCompositeUtils.h"
......@@ -22,19 +22,19 @@
**/
class TrigSignatureMoniMT : public ::AthAlgorithm
class TrigSignatureMoniMT : public ::AthReentrantAlgorithm
{
public:
TrigSignatureMoniMT( const std::string& name, ISvcLocator* pSvcLocator );
virtual StatusCode initialize() override;
virtual StatusCode execute() override;
virtual StatusCode execute( const EventContext& context ) const override;
virtual StatusCode finalize() override;
private:
TrigSignatureMoniMT();
SG::ReadHandleKey<TrigCompositeUtils::DecisionContainer> m_l1DecisionsKey{ this, "L1Decisions", "L1DecoderSummary", "Chains activated after the L1" };
......@@ -48,18 +48,18 @@ class TrigSignatureMoniMT : public ::AthAlgorithm
ServiceHandle<ITHistSvc> m_histSvc{ this, "THistSvc", "THistSvc/THistSvc", "Histogramming svc" };
Gaudi::Property<std::string> m_bookingPath{ this, "HistParh", "/EXPERT/TrigSteer_HLT", "Booking path for the histogram"};
LockedHandle<TH2> m_passHistogram;
LockedHandle<TH2> m_countHistogram;
LockedHandle<TH2> m_rateHistogram;
mutable LockedHandle<TH2> m_passHistogram;
mutable LockedHandle<TH2> m_countHistogram;
mutable LockedHandle<TH2> m_rateHistogram;
ToolHandleArray<DecisionCollectorTool> m_collectorTools{ this, "CollectorTools", {}, "Tools that collect decisions for steps" };
int nBinsX() const;
int nBinsY() const;
StatusCode initHist(LockedHandle<TH2>&);
StatusCode fillDecisionCount(const std::vector<TrigCompositeUtils::DecisionID>& dc, int row);
StatusCode fillPassEvents(const TrigCompositeUtils::DecisionIDContainer& dc, int row, LockedHandle<TH2>& histogram);
StatusCode fillRate(const TrigCompositeUtils::DecisionIDContainer& dc, int row);
StatusCode fillDecisionCount(const std::vector<TrigCompositeUtils::DecisionID>& dc, int row) const;
StatusCode fillPassEvents(const TrigCompositeUtils::DecisionIDContainer& dc, int row, LockedHandle<TH2>& histogram) const;
StatusCode fillRate(const TrigCompositeUtils::DecisionIDContainer& dc, int row) const;
};
inline int TrigSignatureMoniMT::nBinsX() const {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment