| # Gaudi Framework, version v25r0 |

Home |  | Generated: Mon Feb 17 2014

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

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

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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
virtual StatusCode | createObj (IOpaqueAddress *pAddr, DataObject *&refpObj)
| Create the transient representation of an object.
virtual StatusCode | updateObj (IOpaqueAddress *, DataObject *)
| Update the transient object from the other representation.
virtual TObject * | createPersistent (DataObject *pObj)
| Create the persistent representation of the histogram object.
| RHistogramCnv (ISvcLocator *svc)
| Standard constructor.
virtual | ~RHistogramCnv ()
Public Member Functions inherited from RootHistCnv::RConverter
virtual StatusCode | createRep (DataObject *pObj, IOpaqueAddress *&refpAddr)
| Convert the transient object to the requested representation.
long | repSvcType () const
| Retrieve the class type of the data store the converter uses.
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
virtual StatusCode | initialize ()
| Initialize the converter.
virtual StatusCode | finalize ()
| Initialize the converter.
virtual StatusCode | setDataProvider (IDataProviderSvc *svc)
| Set Data provider service.
virtual SmartIF < IDataProviderSvc > & | dataProvider () const
| Get Data provider service.
virtual StatusCode | setConversionSvc (IConversionSvc *svc)
| Set conversion service the converter is connected to.
virtual SmartIF< IConversionSvc > & | conversionSvc () const
| Get conversion service the converter is connected to.
virtual StatusCode | setAddressCreator (IAddressCreator *creator)
| Set address creator facility.
virtual SmartIF < IAddressCreator > & | addressCreator () const
| Retrieve address creator facility.
virtual const CLID & | objType () const
| Retrieve the class type of objects the converter produces.
virtual long | i_repSvcType () const
| Retrieve the class type of the data store the converter uses.
virtual StatusCode | fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)
| Resolve the references of the created transient object.
virtual StatusCode | updateObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)
| Update the references of an updated transient object.
virtual StatusCode | fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
| Resolve the references of the converted object.
virtual StatusCode | updateRep (IOpaqueAddress *pAddress, DataObject *pObject)
| Update the converted representation of a transient object.
virtual StatusCode | updateRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
| Update the references of an already converted object.
| Converter (long storage_type, const CLID &class_type, ISvcLocator *svc=0)
| Standard Constructor.
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.
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.
SmartIF< IService > | service (const std::string &name, const bool createIf=true) const
| Return a pointer to the service identified by name (or "type/name")

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

## Additional Inherited Members
Public Types inherited from Converter
typedef Gaudi::PluginService::Factory1 < IConverter *, ISvcLocator * > | Factory
Protected Member Functions inherited from RootHistCnv::RConverter
| RConverter (const CLID &clid, ISvcLocator *svc)
| Standard constructor.
virtual | ~RConverter ()
| Standard destructor.
virtual StatusCode | readObject (IOpaqueAddress *pAddr, DataObject *&refpObj)
| Create the transient representation of an object.
StatusCode | createAddress (DataObject *pObject, TDirectory *pDir, TObject *pTObject, IOpaqueAddress *&refpAddr)
| Create address of the transient object according to the requested representation.
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)

## 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 31 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 89 of file RHistogramCnv.h.

: RConverter(classID(), svc) {}
template<typename T , typename S , typename Q >

virtual RootHistCnv::RHistogramCnv< T, S, Q >::~RHistogramCnv | ( |  | ) |
| inline virtual

Definition at line 90 of file RHistogramCnv.h.

{}

## Member Function Documentation

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

Inquire class type.

Definition at line 7 of file RHistogramCnv.cpp.

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

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

Create the transient representation of an object.

Reimplemented from Converter.

Definition at line 37 of file RHistogramCnv.h.

{
refpObj = DataObjFactory::create(objType());
RootObjAddress *r = dynamic_cast<RootObjAddress*>(pAddr);
Q* h = dynamic_cast<Q*>(refpObj);
if ( r && h ) {
// Need to flip representation .... clumsy for the time being, because
// THXY constructor has no "generic" copy constructor
std::auto_ptr<T> p(new T());
S *s = dynamic_cast<S*>(r->tObj());
if ( s && p.get() ) {
TTH<S>* casted = (TTH<S>*)s;
TArray* a = dynamic_cast<TArray*>(s);
casted->CopyH(*p);
if ( 0 != a ) {
p->Set(a->GetSize());
p->Reset();
p->Add(s);
h->adoptRepresentation(p.release());
return StatusCode::SUCCESS;
}
}
}
return error("Cannot create histogram - invalid address.");
}
template<typename T , typename S , typename Q >

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

Create the persistent representation of the histogram object.

Reimplemented from RootHistCnv::RConverter.

Definition at line 66 of file RHistogramCnv.h.

{
Q* h = dynamic_cast<Q*>(pObj);
if ( 0 != h ) {
T *r = dynamic_cast<T*>(h->representation());
if ( r ) {
T* c = new T();
TArray* a = dynamic_cast<TArray*>(r);
((TTH<S>*)r)->CopyH(*c);
if ( 0 != a ) {
c->Set(a->GetSize());
c->Reset();
c->Add(r);
c->SetName(pObj->registry()->name().c_str()+1);
return c;
}
}
}
error("Histogram object is invalid!");
return 0;
}
template<typename T , typename S , typename Q >

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

Update the transient object from the other representation.

Reimplemented from Converter.

Definition at line 62 of file RHistogramCnv.h.

{
return StatusCode::SUCCESS;
}

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

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/RootHistCnv/src/RHistogramCnv.h
- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v25r0/RootHistCnv/src/RHistogramCnv.cpp