Anaphe Developer Developer Anaphe Interfaces Interfaces Lorenzo - - PowerPoint PPT Presentation

anaphe developer developer anaphe interfaces interfaces
SMART_READER_LITE
LIVE PREVIEW

Anaphe Developer Developer Anaphe Interfaces Interfaces Lorenzo - - PowerPoint PPT Presentation

Anaphe Developer Developer Anaphe Interfaces Interfaces Lorenzo Moneta Lorenzo Moneta CERN AIDA Workshop 3/7/2003 http://lcgapp.cern.ch/project/pi/ Anaphe Architecture AIDA interfaces IHistogram IPlotter IFitter developer interf.


slide-1
SLIDE 1

http://lcgapp.cern.ch/project/pi/

Anaphe Anaphe Developer Developer Interfaces Interfaces

Lorenzo Moneta Lorenzo Moneta CERN AIDA Workshop 3/7/2003

slide-2
SLIDE 2

AIDA Workshop, July 2003 Lorenzo Moneta, CERN

Anaphe Architecture

Histo library Grace Plotter FML AIDA Plotter AIDA Fitter IHistogram IPlotter IFitter IDevFitter IDevPlotter IDevHistogram

Basic components wrapper layer developer interf. AIDA interfaces

slide-3
SLIDE 3

AIDA Workshop, July 2003 Lorenzo Moneta, CERN

Design

slide-4
SLIDE 4

AIDA Workshop, July 2003 Lorenzo Moneta, CERN

Histogram Developer Interfaces

Histogram Developer interface:

IDevHistogram :

– Inherits from IHistogram1D and IDevManagedObject – Methods:

bool setBinContents(iBin, entries, height, error , centre); bool setRms( rms); IDevHistogramFactory

– no inheritance from IHistogramFactory – Factory to create unmanaged objects – Same methods as in IHistogramFactory but without the name

IDevHistogram1D createCopy(const IHistogram1D & h); Anaphe::HistogramFactory implements IHistogramFactory using the

IDevHistogramFactory

slide-5
SLIDE 5

AIDA Workshop, July 2003 Lorenzo Moneta, CERN

Inheritance tree for Anaphe::Histogram1D

IHistogram1D IManagedObject IDevManagedObject IDevHistogram1D Anaphe::Histogram1D

slide-6
SLIDE 6

AIDA Workshop, July 2003 Lorenzo Moneta, CERN

Histogram Dev interfaces

slide-7
SLIDE 7

AIDA Workshop, July 2003 Lorenzo Moneta, CERN

IDevManagedObject

IDevManagedObject

All developer interfaces for objects which are going to be stored inherits

from IDevManagedObject

– Store needs to know if an update is needed of an existing persistency

  • bject

Methods:

bool isUpToDate(); void setUpToDate( bool isUpToDate ); bool setName( const std::string& newName ); std::string userLevelClassType();

slide-8
SLIDE 8

AIDA Workshop, July 2003 Lorenzo Moneta, CERN

Anaphe Store

Tree is separated from Store implementation

Depends only on developer interface IStore Store does not depend on the Tree

No dependency between Store and any particular

implementation of the data objects

Store deals only with IDevHistogram, IDevClouds, IDevTuple, etc…

– Copy them in the corresponding persistency objects when writing – Use developer factory interface to create them when reading

No need to use tree to create a IDevHistoframFactory

slide-9
SLIDE 9

AIDA Workshop, July 2003 Lorenzo Moneta, CERN

IStore developer interface

slide-10
SLIDE 10

AIDA Workshop, July 2003 Lorenzo Moneta, CERN

IDevTree interface

slide-11
SLIDE 11

AIDA Workshop, July 2003 Lorenzo Moneta, CERN

Factory Providers

Each component library defines a unique global symbol :

FactoryProvider for all the various data objects

– Histograms, Tuples, Functions and DataPointSet

StoreFactories fo each store implementation TreeFactoryProvider for the tree AnnotationFactory for the annotation implementation

Access to the symbol is provided through the

IDevAnalysisFactory interface

When the library is loaded it registers in the AnalysisFactory No dynamic loaded is supported but can be easley added, by

implementing the AnalysisFactory with a PluginManager

slide-12
SLIDE 12

AIDA Workshop, July 2003 Lorenzo Moneta, CERN

Tuples developer interfaces

IDevTuple IBackingStore

Read/write a row Bind variables

Other Tuple developer Interfaces: ITupleHeader, ITupleVariableDescription, ITupleVariableStatistics

slide-13
SLIDE 13

AIDA Workshop, July 2003 Lorenzo Moneta, CERN

Functions and Fitting

IDevFunction IDevFunctionCatalog IDevFunctionFactory IDevFitter IDevFitData IDevFitDataIterator IDevFitResult IDevFitParameterSettings

slide-14
SLIDE 14

AIDA Workshop, July 2003 Lorenzo Moneta, CERN

Conclusions

Need developer interfaces for AIDA objects :

Setter methods for efficient copying Some common properties for storing and plotting

– E.g. isValid() ?

Type information ?

Need to be able to create unmanaged objects

IDevFactories ? Can we remove managedObject from user interface ?

– Possibility to leave management to specific implementations – Now IManagedObject appear only in

IManagedObject * find(std::string path); std::string findPath(const IManagedObject & obj);

Store interface