7#include "Gaudi/Property.h"
31 return StatusCode::SUCCESS;
38 return StatusCode::SUCCESS;
45 const EventContext& ctx = getContext();
48 auto profileCallback = [
this, slot=ctx.slot()]( IScheduler::OccupancySnapshot snap ) ->
void {
49 std::string states =
"";
50 for (
int const stateTotal : snap.states[slot] ) {
51 states += std::to_string( stateTotal ) +
" ";
53 ATH_MSG_INFO(
"Slot " << slot <<
" snapshot time " << snap.time.time_since_epoch().count() <<
" states: " << states );
55 m_scheduler->recordOccupancy( 0, std::move( profileCallback ) );
58 std::vector<int> viewData;
59 auto viewVector = std::make_unique<ViewContainer>();
60 for (
int viewIndex = 0; viewIndex <
m_viewNumber; ++viewIndex )
62 viewData.push_back( ( viewIndex * 10 ) + 10 + ctx.evt() );
76 if ( parentViewHandle->size() == viewVector->size() )
78 for (
unsigned int viewIndex = 0; viewIndex < parentViewHandle->size(); ++viewIndex )
80 ATH_MSG_INFO(
"Linking view " << viewVector->at( viewIndex )->name() <<
" to parent " << parentViewHandle->at( viewIndex )->name() );
81 viewVector->at( viewIndex )->linkParent( parentViewHandle->at( viewIndex ) );
94 CHECK( outputViewHandle.
record( std::move( viewVector ) ) );
96 return StatusCode::SUCCESS;
#define CHECK(...)
Evaluate an expression and check for errors.
Handle class for recording to StoreGate.
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)
virtual StatusCode finalize()
Gaudi::Property< int > m_viewNumber
virtual ~ViewSubgraphAlg()
Destructor:
virtual StatusCode initialize()
SG::WriteHandleKey< ViewContainer > m_w_views
SG::ReadHandleKey< ViewContainer > m_r_views
Gaudi::Property< std::string > m_viewBaseName
Gaudi::Property< std::string > m_viewNodeName
virtual StatusCode execute()
ServiceHandle< IScheduler > m_scheduler
Containers.
SG::WriteHandleKey< int > m_w_int
ViewSubgraphAlg()
Default constructor:
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
StatusCode scheduleViews(ViewContainer *viewVector, std::string const &nodeName, EventContext const &sourceContext, SmartIF< IScheduler > scheduler, bool reverseOrder=false)
StatusCode makeAndPopulate(std::string const &viewNameRoot, ViewContainer *viewVector, SG::WriteHandleKey< T > const &populateKey, EventContext const &sourceContext, std::vector< T > const &inputData, bool const allowFallThrough=true)