Go to the documentation of this file.
31 using namespace Gaudi;
52 if (
objType() == CLID_StatisticsDirectory ) {
53 dsc =
"Directory containing statistics results.";
54 }
else if (
objType() == CLID_StatisticsFile ) {
55 dsc =
"File containing statistics results.";
85 TBranch* b = con->
getBranch(
"##Descriptors",
"GaudiStatisticsDescription" );
87 for ( Long64_t
n = b->GetEntries(), i = 0; i <
n; ++i ) {
89 b->SetAddress( &
ref );
90 int nb = b->GetEntry( i );
92 string s =
ref->container.substr( 0, cntName.
length() );
96 if (
ref->container.length() >= cntName.
length() + 1 ) {
97 if (
ref->container.find(
'/', cntName.
length() + 1 ) == string::npos ) {
98 refs.push_back(
ref );
108 status =
m_dataMgr->objectLeaves( pObject, leaves );
110 for (
auto&
ref : refs ) {
117 if (
ref->clid == CLID_StatisticsDirectory ||
ref->clid == CLID_StatisticsFile ||
118 ref->clid == CLID_RowWiseTuple ||
ref->clid == CLID_ColumnWiseTuple ) {
119 string spar[] = { fname,
ref->container };
120 unsigned long ipar[] = { ~0x0UL, ~0x0UL };
125 string leaf_name =
top +
ref->container.substr( 7 );
126 status =
m_dataMgr->registerAddress( leaf_name, pA );
143 return makeError(
"Failed to access required tuple data description.",
false );
147 for (
auto&
ref : refs )
delete ref;
StatusCode fillObjRefs(IOpaqueAddress *pAddr, DataObject *pObj) override
Converter overrides: Resolve the references of the transient object.
StatusCode updateRep(IOpaqueAddress *pAddr, DataObject *pObj) override
Converter overrides: Update persistent object representation.
StatusCode connectDatabase(const std::string &dataset, int mode, RootDataConnection **con)
Connect the output file to the service with open mode.
Small class representing an N tuple directory in the transient store.
RootCnvSvc * m_dbMgr
Conversion service needed for proper operation to forward requests.
StatusCode updateObj(IOpaqueAddress *pAddr, DataObject *pObj) override
Converter overrides: Update transient object from persistent data.
StatusCode updateRepRefs(IOpaqueAddress *pAddr, DataObject *pObj) override
Converter overrides: Update references of persistent object representation.
#define DECLARE_COMPONENT_WITH_ID(type, id)
StatusCode createAddress(long svc_type, const CLID &clid, const std::string *par, const unsigned long *ip, IOpaqueAddress *&refpAddress) override
IAddressCreator implementation: Address creation.
virtual const std::string containerName(IRegistry *pDir) const
Retrieve the name of the container a given object is placed into.
StatusCode saveDescription(const std::string &path, const std::string &ident, const std::string &desc, const std::string &opt, const CLID &clid)
Save statistics object description.
StatusCode updateObjRefs(IOpaqueAddress *pAddr, DataObject *pObj) override
Converter overrides: Update the references of an updated transient object.
StatusCode makeError(const std::string &msg, bool throw_exception=false) const
Helper method to issue error messages.
StatusCode createRep(DataObject *pObj, IOpaqueAddress *&refpAddr) override
Converter overrides: Convert the transient object to the requested representation.
StatusCode createObj(IOpaqueAddress *pAddr, DataObject *&refpObj) override
Converter overrides: Create transient object from persistent data.
const long POOL_StorageType
long repSvcType() const override
Retrieve the class type of the data store the converter uses.
unsigned int CLID
Class ID definition.
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
const CLID & objType() const override
Retrieve the class type of objects the converter produces.
virtual IRegistry * registry() const =0
Update branch name.
This file provides a Grammar for the type Gaudi::Accumulators::Axis It allows to use that type from p...
const StatusCode & ignore() const
Allow discarding a StatusCode without warning.
MsgStream & log() const
Helper to use mesage logger.
constexpr static const auto SUCCESS
virtual const std::string topLevel(IRegistry *pReg) const
Retrieve the full path of the file a given object is placed into.
SmartIF< IDataManagerSvc > m_dataMgr
Reference to data manager service to manipulate the TES.
virtual const id_type & identifier() const =0
Full identifier (or key)
virtual const std::string fileName(IRegistry *pReg) const
Retrieve the name of the file a given object is placed into.
constexpr static const auto FAILURE
StatusCode fillRepRefs(IOpaqueAddress *pAddr, DataObject *pObj) override
Converter overrides: Fill references of persistent object representation.
TBranch * getBranch(std::string_view section, std::string_view branch_name)
Access data branch by name: Get existing branch in read only mode.
RootDirectoryCnv(long typ, const CLID &clid, ISvcLocator *svc, RootCnvSvc *mgr)
Initializing Constructor.
IRegistry * registry() const
Get pointer to Registry.