Skip to content
Snippets Groups Projects
Commit cc1bd2f9 authored by Vakhtang Tsulaia's avatar Vakhtang Tsulaia
Browse files

Merge branch 'dev/master/updateGaudi' into 'master'

update Gaudi to v30r3.004

See merge request atlas/athena!14056
parents 9168d444 827903c7
No related branches found
No related tags found
No related merge requests found
......@@ -20,7 +20,6 @@
#include "GaudiKernel/IAlgorithm.h"
#include "GaudiKernel/SmartIF.h"
#include "GaudiKernel/Incident.h"
#include "GaudiKernel/DataSelectionAgent.h"
#include "GaudiKernel/DataObject.h"
#include "GaudiKernel/IIncidentSvc.h"
#include "GaudiKernel/IEvtSelector.h"
......@@ -447,68 +446,52 @@ StatusCode AthenaEventLoopMgr::finalize()
//=========================================================================
StatusCode AthenaEventLoopMgr::writeHistograms(bool force) {
StatusCode sc (StatusCode::SUCCESS);
if ( 0 != m_histoPersSvc && m_writeHists ) {
DataSelectionAgent agent;
StatusCode iret = m_histoDataMgrSvc->traverseTree( &agent );
if( iret.isFailure() ) {
sc = iret;
error()
<< "Error while traversing Histogram data store"
<< endmsg;
std::vector<DataObject*> objects;
sc = m_histoDataMgrSvc->traverseTree( [&objects]( IRegistry* reg, int ) {
DataObject* obj = reg->object();
if ( !obj || obj->clID() == CLID_StatisticsFile ) return false;
objects.push_back( obj );
return true;
} );
if ( !sc.isSuccess() ) {
error() << "Error while traversing Histogram data store" << endmsg;
return sc;
}
IDataSelector* objects = agent.selectedObjects();
// skip /stat entry!
if ( objects->size() > 0 ) {
if ( objects.size() > 0) {
int writeInterval(m_writeInterval.value());
IDataSelector::iterator i;
for ( i = objects->begin(); i != objects->end(); i++ ) {
StatusCode iret(StatusCode::SUCCESS);
if ( m_nevt == 1 || force ||
(writeInterval != 0 && m_nevt%writeInterval == 0) ) {
bool crt(false);
IOpaqueAddress* pAddr = (*i)->registry()->address();
if (pAddr == nullptr) {
iret = m_histoPersSvc->createRep(*i, pAddr);
if ( iret.isSuccess() ) {
(*i)->registry()->setAddress(pAddr);
crt = true;
} else {
error() << "calling createRep for "
<< (*i)->registry()->identifier() << endmsg;
}
}
if (iret.isSuccess()) {
assert(pAddr != nullptr);
iret = m_histoPersSvc->updateRep(pAddr, *i);
if (iret.isSuccess() && crt == true) {
iret = m_histoPersSvc->fillRepRefs(pAddr,*i);
}
}
}
if ( iret.isFailure() ) {
sc = iret;
}
} // end of loop over Objects
if ( m_nevt == 1 || force ||
(writeInterval != 0 && m_nevt%writeInterval == 0) ) {
// skip /stat entry!
sc = std::accumulate( begin( objects ), end( objects ), sc, [&]( StatusCode isc, auto& i ) {
IOpaqueAddress* pAddr = nullptr;
StatusCode iret = m_histoPersSvc->createRep( i, pAddr );
if ( iret.isFailure() ) return iret;
i->registry()->setAddress( pAddr );
return isc;
} );
sc = std::accumulate( begin( objects ), end( objects ), sc, [&]( StatusCode isc, auto& i ) {
IRegistry* reg = i->registry();
StatusCode iret = m_histoPersSvc->fillRepRefs( reg->address(), i );
return iret.isFailure() ? iret : isc;
} );
if ( ! sc.isSuccess() ) {
error() << "Error while saving Histograms." << endmsg;
}
}
if (force || (writeInterval != 0 && m_nevt%writeInterval == 0) ) {
if (msgLevel(MSG::DEBUG)) { debug() << "committing Histograms" << endmsg; }
m_histoPersSvc->conversionSvc()->commitOutput("",true).ignore();
if (msgLevel(MSG::DEBUG)) { debug() << "committing Histograms" << endmsg; }
m_histoPersSvc->conversionSvc()->commitOutput("",true).ignore();
}
} // end of objects->size() > 0
}
}
return sc;
......
......@@ -22,7 +22,6 @@
#include "GaudiKernel/IAlgorithm.h"
#include "GaudiKernel/SmartIF.h"
#include "GaudiKernel/Incident.h"
#include "GaudiKernel/DataSelectionAgent.h"
#include "GaudiKernel/DataObject.h"
#include "GaudiKernel/IIncidentSvc.h"
#include "GaudiKernel/IEvtSelector.h"
......@@ -502,67 +501,52 @@ StatusCode AthenaHiveEventLoopMgr::finalize()
//=========================================================================
StatusCode AthenaHiveEventLoopMgr::writeHistograms(bool force) {
StatusCode sc (StatusCode::SUCCESS);
if ( 0 != m_histoPersSvc && m_writeHists ) {
DataSelectionAgent agent;
StatusCode iret = m_histoDataMgrSvc->traverseTree( &agent );
if( iret.isFailure() ) {
sc = iret;
error() << "Error while traversing Histogram data store"
<< endmsg;
std::vector<DataObject*> objects;
sc = m_histoDataMgrSvc->traverseTree( [&objects]( IRegistry* reg, int ) {
DataObject* obj = reg->object();
if ( !obj || obj->clID() == CLID_StatisticsFile ) return false;
objects.push_back( obj );
return true;
} );
if ( !sc.isSuccess() ) {
error() << "Error while traversing Histogram data store" << endmsg;
return sc;
}
IDataSelector* objects = agent.selectedObjects();
// skip /stat entry!
if ( objects->size() > 0 ) {
unsigned int writeInterval(m_writeInterval.value());
IDataSelector::iterator i;
for ( i = objects->begin(); i != objects->end(); i++ ) {
StatusCode iret(StatusCode::SUCCESS);
if ( m_nevt == 1 || force ||
(writeInterval != 0 && m_nevt%writeInterval == 0) ) {
bool crt(false);
IOpaqueAddress* pAddr = (*i)->registry()->address();
if (pAddr == 0) {
iret = m_histoPersSvc->createRep(*i, pAddr);
if ( iret.isSuccess() ) {
(*i)->registry()->setAddress(pAddr);
crt = true;
} else {
error() << "calling createRep for "
<< (*i)->registry()->identifier() << endmsg;
}
}
if (iret.isSuccess()) {
assert(pAddr != 0);
iret = m_histoPersSvc->updateRep(pAddr, *i);
if (iret.isSuccess() && crt == true) {
iret = m_histoPersSvc->fillRepRefs(pAddr,*i);
}
}
}
if ( iret.isFailure() ) {
sc = iret;
}
} // end of loop over Objects
if ( objects.size() > 0) {
int writeInterval(m_writeInterval.value());
if ( m_nevt == 1 || force ||
(writeInterval != 0 && m_nevt%writeInterval == 0) ) {
// skip /stat entry!
sc = std::accumulate( begin( objects ), end( objects ), sc, [&]( StatusCode isc, auto& i ) {
IOpaqueAddress* pAddr = nullptr;
StatusCode iret = m_histoPersSvc->createRep( i, pAddr );
if ( iret.isFailure() ) return iret;
i->registry()->setAddress( pAddr );
return isc;
} );
sc = std::accumulate( begin( objects ), end( objects ), sc, [&]( StatusCode isc, auto& i ) {
IRegistry* reg = i->registry();
StatusCode iret = m_histoPersSvc->fillRepRefs( reg->address(), i );
return iret.isFailure() ? iret : isc;
} );
if ( ! sc.isSuccess() ) {
error() << "Error while saving Histograms." << endmsg;
}
}
if (force || (writeInterval != 0 && m_nevt%writeInterval == 0) ) {
if (msgLevel(MSG::DEBUG)) { debug() << "committing Histograms" << endmsg; }
m_histoPersSvc->conversionSvc()->commitOutput("",true).ignore();
if (msgLevel(MSG::DEBUG)) { debug() << "committing Histograms" << endmsg; }
m_histoPersSvc->conversionSvc()->commitOutput("",true).ignore();
}
} // end of objects->size() > 0
}
}
return sc;
......
......@@ -9,4 +9,4 @@
AthSimulationExternalsVersion = 2.0.10
# The version of atlas/Gaudi to use:
GaudiVersion = v30r3.003
GaudiVersion = v30r3.004
......@@ -9,4 +9,4 @@
AthenaExternalsVersion = 2.0.10
# The version of atlas/Gaudi to use:
GaudiVersion = v30r3.003
GaudiVersion = v30r3.004
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