|
Gaudi Framework, version v22r2 |
| Home | Generated: Tue May 10 2011 |
Generic converter to save/read AIDA_ROOT histograms using ROOT. More...
#include <RHistogramCnv.h>


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 () |
Static Public Member Functions | |
| static const CLID & | classID () |
| Inquire class type. | |
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 !
Definition at line 30 of file RHistogramCnv.h.
| RootHistCnv::RHistogramCnv< T, S, Q >::RHistogramCnv | ( | ISvcLocator * | svc ) | [inline] |
Standard constructor.
Definition at line 88 of file RHistogramCnv.h.
: RConverter(classID(), svc) {}
| virtual RootHistCnv::RHistogramCnv< T, S, Q >::~RHistogramCnv | ( | ) | [inline, virtual] |
Definition at line 89 of file RHistogramCnv.h.
{}
| const CLID & RootHistCnv::RootHistCnvH3DCnv::classID | ( | ) | [static] |
| 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 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 StatusCode::SUCCESS;
}
}
}
return error("Cannot create histogram - invalid address.");
}
| 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 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;
}
| 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 61 of file RHistogramCnv.h.
{
return StatusCode::SUCCESS;
}