21 using namespace Gaudi;
46 if (
objType() == CLID_StatisticsDirectory ) {
47 dsc =
"Directory containing statistics results.";
48 }
else if (
objType() == CLID_StatisticsFile ) {
49 dsc =
"File containing statistics results.";
81 TBranch* b = con->
getBranch(
"##Descriptors",
"GaudiStatisticsDescription" );
83 for ( Long64_t
n = b->GetEntries(), i = 0; i <
n; ++i ) {
85 b->SetAddress( &ref );
86 int nb = b->GetEntry( i );
94 refs.push_back( ref );
106 for (
auto&
ref : refs ) {
110 [&]( Leaves::const_reference j ) {
return containerName( j ) ==
ref->container; } );
113 if (
ref->clid == CLID_StatisticsDirectory ||
ref->clid == CLID_StatisticsFile ||
114 ref->clid == CLID_RowWiseTuple ||
ref->clid == CLID_ColumnWiseTuple ) {
115 string spar[] = {fname,
ref->container};
116 unsigned long ipar[] = {~0x0UL, ~0x0UL};
121 string leaf_name = top +
ref->container.
substr( 7 );
127 makeError(
"Failed to register leaves to directory:" + ident,
false ).
ignore();
130 makeError(
"Failed to create leave address to directory:" + ident,
false ).
ignore();
134 makeError(
"Failed to add leaves to directory:" + ident,
false ).
ignore();
139 return makeError(
"Failed to access required tuple data description.",
false );
143 for (
auto&
ref : refs )
delete ref;
MsgStream & log() const
Helper to use mesage logger.
#define DECLARE_COMPONENT_WITH_ID(type, id)
The ISvcLocator is the interface implemented by the Service Factory in the Application Manager to loc...
RootDirectoryCnv(long typ, const CLID &clid, ISvcLocator *svc, RootCnvSvc *mgr)
Initializing Constructor.
virtual const std::string topLevel(IRegistry *pReg) const
Retrieve the full path of the file a given object is placed into.
const CLID & objType() const override
Retrieve the class type of objects the converter produces.
StatusCode createAddress(long svc_type, const CLID &clid, const std::string *par, const unsigned long *ip, IOpaqueAddress *&refpAddress) override
IAddressCreator implementation: Address creation.
bool isSuccess() const
Test for a status code of SUCCESS.
RootCnvSvc * m_dbMgr
Conversion service needed for proper operation to forward requests.
StatusCode updateRepRefs(IOpaqueAddress *pAddr, DataObject *pObj) override
Converter overrides: Update references of persistent object representation.
virtual IRegistry * registry() const =0
Update branch name.
StatusCode makeError(const std::string &msg, bool throw_exception=false) const
Helper method to issue error messages.
StatusCode connectDatabase(const std::string &dataset, int mode, RootDataConnection **con)
Connect the output file to the service with open mode.
StatusCode fillObjRefs(IOpaqueAddress *pAddr, DataObject *pObj) override
Converter overrides: Resolve the references of the transient object.
SmartIF< IDataManagerSvc > m_dataMgr
Reference to data manager service to manipulate the TES.
long repSvcType() const override
Retrieve the class type of the data store the converter uses.
StatusCode createRep(DataObject *pObj, IOpaqueAddress *&refpAddr) override
Converter overrides: Convert the transient object to the requested representation.
IRegistry * registry() const
Get pointer to Registry.
StatusCode createObj(IOpaqueAddress *pAddr, DataObject *&refpObj) override
Converter overrides: Create transient object from persistent data.
virtual const id_type & identifier() const =0
Full identifier (or key)
This class is used for returning status codes from appropriate routines.
virtual const std::string fileName(IRegistry *pReg) const
Retrieve the name of the file a given object is placed into.
TBranch * getBranch(const std::string §ion, const std::string &branch_name)
Access data branch by name: Get existing branch in read only mode.
StatusCode updateObj(IOpaqueAddress *pAddr, DataObject *pObj) override
Converter overrides: Update transient object from persistent data.
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.
The IRegistry represents the entry door to the environment any data object residing in a transient da...
unsigned int CLID
Class ID definition.
StatusCode fillRepRefs(IOpaqueAddress *pAddr, DataObject *pObj) override
Converter overrides: Fill references of persistent object representation.
virtual StatusCode objectLeaves(const DataObject *pObject, std::vector< IRegistry * > &refLeaves)=0
Explore the object store: retrieve all leaves attached to the object The object is identified by its ...
const long POOL_StorageType
Description: NTuple directory converter class definition Definition of the converter to manage the di...
std::string container
Identifier of description.
StatusCode updateObjRefs(IOpaqueAddress *pAddr, DataObject *pObj) override
Converter overrides: Update the references of an updated transient object.
virtual StatusCode registerAddress(const std::string &fullPath, IOpaqueAddress *pAddress)=0
Register object address with the data store.
StatusCode updateRep(IOpaqueAddress *pAddr, DataObject *pObj) override
Converter overrides: Update persistent object representation.
Opaque address interface definition.
virtual const std::string containerName(IRegistry *pDir) const
Retrieve the name of the container a given object is placed into.
Description: Base class converter for N-tuples and related classes.
A DataObject is the base class of any identifiable object on any data store.
Small class representing an N tuple directory in the transient store.
Concrete implementation of the IDataConnection interface to access ROOT files.
Helper functions to set/get the application return code.
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.