Gaudi Framework, version v24r2

Home   Generated: Wed Dec 4 2013
 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 >:
Inheritance graph
[legend]
Collaboration diagram for RootHistCnv::RHistogramCnv< T, S, Q >:
Collaboration graph
[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 CLIDobjType () 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< IServiceservice (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 CLIDclassID ()
 Inquire class type.
 
- Static Public Member Functions inherited from RootHistCnv::RConverter
static long storageType ()
 Inquire storage type.
 

Additional Inherited Members

- Public Types inherited from implements1< IConverter >
typedef implements1 base_class
 Typedef to this class.
 
typedef extend_interfaces1
< IConverter
extend_interfaces_base
 Typedef to the base of this class.
 
typedef
extend_interfaces_base::ext_iids 
interfaces
 MPL set of all the implemented interfaces.
 
- 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 30 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 88 of file RHistogramCnv.h.

: RConverter(classID(), svc) {}
template<typename T , typename S , typename Q >
virtual RootHistCnv::RHistogramCnv< T, S, Q >::~RHistogramCnv ( )
inlinevirtual

Definition at line 89 of file RHistogramCnv.h.

{}

Member Function Documentation

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

Inquire class type.

Definition at line 9 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 
)
inlinevirtual

Create the transient representation of an object.

Reimplemented from Converter.

Definition at line 36 of file RHistogramCnv.h.

{
refpObj = ROOT::Reflex::PluginService::CreateWithId<DataObject*>(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 error("Cannot create histogram - invalid address.");
}
template<typename T , typename S , typename Q >
virtual TObject* RootHistCnv::RHistogramCnv< T, S, Q >::createPersistent ( DataObject pObj)
inlinevirtual

Create the persistent representation of the histogram object.

Reimplemented from RootHistCnv::RConverter.

Definition at line 65 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  
)
inlinevirtual

Update the transient object from the other representation.

Reimplemented from Converter.

Definition at line 61 of file RHistogramCnv.h.

{
}

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

Generated at Wed Dec 4 2013 14:33:24 for Gaudi Framework, version v24r2 by Doxygen version 1.8.2 written by Dimitri van Heesch, © 1997-2004