| The Gaudi Framework v29r1 (5cd95fa2)

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Classes | Public Member Functions | Static Public Member Functions | List of all members
RootHistCnv::RHistogramCnv< T, S, Q > Class Template Reference

Generic converter to save/read AIDA_ROOT histograms using ROOT. More...

`#include <RHistogramCnv.h>`

Inheritance diagram for RootHistCnv::RHistogramCnv< T, S, Q >:
[legend]
Collaboration diagram for RootHistCnv::RHistogramCnv< T, S, Q >:
[legend]

## Classes
struct | TTH

## Public Member Functions
StatusCode | createObj (IOpaqueAddress *pAddr, DataObject *&refpObj) override
| Create the transient representation of an object. More...
StatusCode | updateObj (IOpaqueAddress *, DataObject *) override
| Update the transient object from the other representation. More...
TObject * | createPersistent (DataObject *pObj) override
| Create the persistent representation of the histogram object. More...
| RHistogramCnv (ISvcLocator *svc)
| Standard constructor. More...
| ~RHistogramCnv () override=default
Public Member Functions inherited from RootHistCnv::RConverter
StatusCode | createRep (DataObject *pObj, IOpaqueAddress *&refpAddr) override
| Convert the transient object to the requested representation. More...
long | repSvcType () const override
StatusCode | error (const std::string &msg)
StatusCode | regTFile (const std::string, const TFile *)
StatusCode | findTFile (const std::string, TFile *&)
std::string | diskDirectory (const std::string &loc)
std::string | directory (const std::string &loc)
void | setDirectory (const std::string &loc)
void | setDiskDirectory (const std::string &loc)
StatusCode | createDirectory (const std::string &loc)
StatusCode | createDiskDirectory (const std::string &loc)
std::string | getDirectory ()
std::string | convertId (const std::string &) const
Public Member Functions inherited from Converter
StatusCode | initialize () override
| Initialize the converter. More...
StatusCode | finalize () override
| Initialize the converter. More...
StatusCode | setDataProvider (IDataProviderSvc *svc) override
| Set Data provider service. More...
SmartIF< IDataProviderSvc > & | dataProvider () const override
| Get Data provider service. More...
StatusCode | setConversionSvc (IConversionSvc *svc) override
| Set conversion service the converter is connected to. More...
SmartIF< IConversionSvc > & | conversionSvc () const override
| Get conversion service the converter is connected to. More...
StatusCode | setAddressCreator (IAddressCreator *creator) override
| Set address creator facility. More...
SmartIF< IAddressCreator > & | addressCreator () const override
| Retrieve address creator facility. More...
const CLID & | objType () const override
| Retrieve the class type of objects the converter produces. More...
virtual long | i_repSvcType () const
| Retrieve the class type of the data store the converter uses. More...
StatusCode | createObj (IOpaqueAddress *pAddress, DataObject *&refpObject) override
| Create the transient representation of an object. More...
StatusCode | fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject) override
| Resolve the references of the created transient object. More...
StatusCode | updateObj (IOpaqueAddress *pAddress, DataObject *refpObject) override
| Update the transient object from the other representation. More...
StatusCode | updateObjRefs (IOpaqueAddress *pAddress, DataObject *pObject) override
| Update the references of an updated transient object. More...
StatusCode | createRep (DataObject *pObject, IOpaqueAddress *&refpAddress) override
| Convert the transient object to the requested representation. More...
StatusCode | fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject) override
| Resolve the references of the converted object. More...
StatusCode | updateRep (IOpaqueAddress *pAddress, DataObject *pObject) override
| Update the converted representation of a transient object. More...
StatusCode | updateRepRefs (IOpaqueAddress *pAddress, DataObject *pObject) override
| Update the references of an already converted object. More...
| Converter (long storage_type, const CLID &class_type, ISvcLocator *svc=0)
| Standard Constructor. More...
template<class T >
StatusCode | service (const std::string &name, T *&psvc, bool createIf=false) const
| Access a service by name, creating it if it doesn't already exist. More...
template<class T >
StatusCode | service (const std::string &type, const std::string &name, T *&psvc) const
| Access a service by name, type creating it if it doesn't already exist. More...
SmartIF< IService > | service (const std::string &name, const bool createIf=true) const
| Return a pointer to the service identified by name (or "type/name") More...
Public Member Functions inherited from implements< IConverter >
void * | i_cast (const InterfaceID &tid) const override
| Implementation of IInterface::i_cast. More...
StatusCode | queryInterface (const InterfaceID &ti, void **pp) override
| Implementation of IInterface::queryInterface. More...
std::vector< std::string > | getInterfaceNames () const override
| Implementation of IInterface::getInterfaceNames. More...
| implements ()=default
| Default constructor. More...
| implements (const implements &)
| Copy constructor (zero the reference count) More...
implements & | operator= (const implements &)
| Assignment operator (do not touch the reference count). More...
| ~implements () override=default
| Virtual destructor. More...
unsigned long | addRef () override
| Reference Interface instance. More...
unsigned long | release () override
| Release Interface instance. More...
unsigned long | refCount () const override
| Current reference count. More...
Public Member Functions inherited from extend_interfaces< Interfaces... >
| ~extend_interfaces () override=default
| Virtual destructor. More...

## Static Public Member Functions
static const CLID & | classID ()
| Inquire class type. More...
Static Public Member Functions inherited from RootHistCnv::RConverter
static long | storageType ()
| Inquire storage type. More...

## Additional Inherited Members
Public Types inherited from Converter
typedef Gaudi::PluginService::Factory< IConverter *, ISvcLocator * > | Factory
Public Types inherited from implements< IConverter >
using | base_class = implements< Interfaces... >
| Typedef to this class. More...
using | extend_interfaces_base = extend_interfaces< Interfaces... >
| Typedef to the base of this class. More...
using | iids = typename extend_interfaces_base::ext_iids
Public Types inherited from extend_interfaces< Interfaces... >
using | ext_iids = typename Gaudi::interface_list_cat< typename Interfaces::ext_iids... >::type
| take union of the ext_iids of all Interfaces... More...
Protected Member Functions inherited from RootHistCnv::RConverter
| RConverter (const CLID &clid, ISvcLocator *svc)
| Standard constructor. More...
| ~RConverter () override=default
| Standard destructor. More...
virtual StatusCode | readObject (IOpaqueAddress *pAddr, DataObject *&refpObj)
| Create the transient representation of an object. More...
StatusCode | createAddress (DataObject *pObject, TDirectory *pDir, TObject *pTObject, IOpaqueAddress *&refpAddr)
| Create address of the transient object according to the requested representation. More...
StatusCode | createAddress (const std::string &rzdir, const CLID &clid, long id, TObject *pTobj, IOpaqueAddress *&refpAddress)
StatusCode | createAddress (const std::string &rzdir, const CLID &clid, const std::string &title, TObject *pTobj, IOpaqueAddress *&refpAddress)
TDirectory * | changeDirectory (DataObject *pObject)
| Switch to object directory (=Parent directory) More...
Protected Member Functions inherited from Converter
| ~Converter () override=default
| Standard Destructor. More...
SmartIF< ISvcLocator > & | serviceLocator () const
| Retrieve pointer to service locator. More...
SmartIF< IMessageSvc > & | msgSvc () const
| Retrieve pointer to message service. More...
SmartIF< IDataManagerSvc > & | dataManager () const
| Get Data Manager service. More...
Protected Attributes inherited from implements< IConverter >
std::atomic_ulong | m_refCount
| Reference counter. More...

## Detailed Description

### template<typename T, typename S, typename Q>
class RootHistCnv::RHistogramCnv< T, S, Q >

Generic converter to save/read AIDA_ROOT histograms using ROOT.

This converter shortcuts the AIDA binding and takes advantage of the underlying implementation of transient histograms using ROOT.

Note: THxY::Copy cannot be used - only THxY::Add !

Author
  Markus Frank

Definition at line 32 of file RHistogramCnv.h.

## Constructor & Destructor Documentation

template<typename T , typename S , typename Q >

RootHistCnv::RHistogramCnv< T, S, Q >::RHistogramCnv | ( | ISvcLocator * | svc | ) |
| inline

Standard constructor.

Definition at line 93 of file RHistogramCnv.h.

93 : RConverter( classID(), svc ) {}
RootHistCnv::RConverter::RConverter
RConverter(const CLID &clid, ISvcLocator *svc)
Standard constructor.
Definition: RConverter.h:58
RootHistCnv::RHistogramCnv::classID
static const CLID & classID()
Inquire class type.
Definition: RHistogramCnv.cpp:9
template<typename T , typename S , typename Q >

RootHistCnv::RHistogramCnv< T, S, Q >::~RHistogramCnv | ( |  | ) |
| override default

## Member Function Documentation

const CLID & RootHistCnv::RootHistCnvH3DCnv::classID | ( |  | ) |
| static

Inquire class type.

Definition at line 9 of file RHistogramCnv.cpp.

10 {
11 return CLID_ProfileH;
12 }
template<typename T , typename S , typename Q >

StatusCode RootHistCnv::RHistogramCnv< T, S, Q >::createObj | ( | IOpaqueAddress * | pAddr,
|  | DataObject *& | refpObj
| ) |  |
| inline override

Create the transient representation of an object.

Definition at line 41 of file RHistogramCnv.h.

42 {
43 refpObj = DataObjFactory::create( objType() );
44 RootObjAddress* r = dynamic_cast<RootObjAddress*>( pAddr );
45 Q* h = dynamic_cast<Q*>( refpObj );
46 if ( r && h ) {
47 // Need to flip representation .... clumsy for the time being, because
48 // THXY constructor has no "generic" copy constructor
49 std::unique_ptr<T> p( new T() );
50 S* s = dynamic_cast<S*>( r->tObj() );
51 if ( s && p.get() ) {
52 TTH<S>* casted = (TTH<S>*)s;
53 TArray* a = dynamic_cast<TArray*>( s );
54 casted->CopyH( *p );
55 if ( 0 != a ) {
56 p->Set( a->GetSize() );
57 p->Reset();
58 p->Add( s );
59 h->adoptRepresentation( p.release() );
60 return StatusCode::SUCCESS;
61 }
62 }
63 }
64 return error( "Cannot create histogram - invalid address." );
65 }
StatusCode::SUCCESS
Definition: StatusCode.h:31
Converter::objType
const CLID & objType() const override
Retrieve the class type of objects the converter produces.
Definition: Converter.cpp:14
HiveAlgSequencer.h
h
Definition: HiveAlgSequencer.py:24
std::unique_ptr
STL class.
RootHistCnv::RConverter::error
StatusCode error(const std::string &msg)
Definition: RConverter.cpp:337
gaudirun.s
string s
Definition: gaudirun.py:253
template<typename T , typename S , typename Q >

TObject* RootHistCnv::RHistogramCnv< T, S, Q >::createPersistent | ( | DataObject * | pObj | ) |
| inline override virtual

Create the persistent representation of the histogram object.

Reimplemented from RootHistCnv::RConverter.

Definition at line 69 of file RHistogramCnv.h.

70 {
71 Q* h = dynamic_cast<Q*>( pObj );
72 if ( 0 != h ) {
73 T* r = dynamic_cast<T*>( h->representation() );
74 if ( r ) {
75 T* c = new T();
76 TArray* a = dynamic_cast<TArray*>( r );
77 ( (TTH<S>*)r )->CopyH( *c );
78 if ( 0 != a ) {
79 c->Set( a->GetSize() );
80 c->Reset();
81 c->Add( r );
82 c->SetName( pObj->registry()->name().c_str() + 1 );
83 return c;
84 }
85 }
86 }
87 error( "Histogram object is invalid!" );
88 return 0;
89 }
gaudirun.c
c
Definition: gaudirun.py:407
IRegistry::name
virtual const name_type & name() const =0
Name of the directory (or key)
DataObject::registry
IRegistry * registry() const
Get pointer to Registry.
Definition: DataObject.h:72
HiveAlgSequencer.h
h
Definition: HiveAlgSequencer.py:24
RootHistCnv::RConverter::error
StatusCode error(const std::string &msg)
Definition: RConverter.cpp:337
std::string::c_str
T c_str(T...args)
template<typename T , typename S , typename Q >

StatusCode RootHistCnv::RHistogramCnv< T, S, Q >::updateObj | ( | IOpaqueAddress * | ,
|  | DataObject * |
| ) |  |
| inline override

Update the transient object from the other representation.

Definition at line 67 of file RHistogramCnv.h.

67 { return StatusCode::SUCCESS; }
StatusCode::SUCCESS
Definition: StatusCode.h:31

The documentation for this class was generated from the following files:

- RootHistCnv/src/RHistogramCnv.h
- RootHistCnv/src/RHistogramCnv.cpp