anaphe developer interfaces

13
http://lcgapp.cern.ch/project/pi/ Anaphe Developer Anaphe Developer Interfaces Interfaces Lorenzo Moneta Lorenzo Moneta CERN AIDA Workshop 3/7/2003

Upload: royce

Post on 18-Jan-2016

23 views

Category:

Documents


0 download

DESCRIPTION

Lorenzo Moneta CERN AIDA Workshop 3/7/2003. Anaphe Developer Interfaces. Anaphe Architecture. AIDA interfaces. IHistogram. IPlotter. IFitter. developer interf. IDevHistogram. IDevPlotter. IDevFitter. wrapper layer. AIDA Plotter. AIDA Fitter. Basic components. Histo library. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Anaphe Developer Interfaces

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

Anaphe Developer InterfacesAnaphe Developer Interfaces

Lorenzo Moneta Lorenzo Moneta

CERN

AIDA Workshop

3/7/2003

Page 2: Anaphe Developer Interfaces

AIDA Workshop, July 2003 Lorenzo Moneta, CERN 2

Anaphe ArchitectureAnaphe Architecture

Histo library Grace Plotter FML

AIDA Plotter AIDA Fitter

IHistogram IPlotter IFitter

IDevFitterIDevPlotterIDevHistogram

Basic components

wrapper layer

developer interf.

AIDA interfaces

Page 3: Anaphe Developer Interfaces

AIDA Workshop, July 2003 Lorenzo Moneta, CERN 3

DesignDesign

Page 4: Anaphe Developer Interfaces

AIDA Workshop, July 2003 Lorenzo Moneta, CERN 4

Histogram Developer InterfacesHistogram 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

Page 5: Anaphe Developer Interfaces

AIDA Workshop, July 2003 Lorenzo Moneta, CERN 5

Inheritance tree for Inheritance tree for Anaphe::Histogram1DAnaphe::Histogram1D

IHistogram1D IManagedObject

IDevManagedObject

IDevHistogram1D

Anaphe::Histogram1D

Page 6: Anaphe Developer Interfaces

AIDA Workshop, July 2003 Lorenzo Moneta, CERN 7

IDevManagedObjectIDevManagedObject

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 object

Methods:

bool isUpToDate();

void setUpToDate( bool isUpToDate );

bool setName( const std::string& newName );

std::string userLevelClassType();

Page 7: Anaphe Developer Interfaces

AIDA Workshop, July 2003 Lorenzo Moneta, CERN 8

Anaphe Store 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

Page 8: Anaphe Developer Interfaces

AIDA Workshop, July 2003 Lorenzo Moneta, CERN 9

IStore developer interface IStore developer interface

Page 9: Anaphe Developer Interfaces

AIDA Workshop, July 2003 Lorenzo Moneta, CERN 10

IDevTree interfaceIDevTree interface

Page 10: Anaphe Developer Interfaces

AIDA Workshop, July 2003 Lorenzo Moneta, CERN 11

Factory ProvidersFactory 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

Page 11: Anaphe Developer Interfaces

AIDA Workshop, July 2003 Lorenzo Moneta, CERN 12

Tuples developer interfacesTuples developer interfaces

IDevTuple IBackingStore

Read/write a row Bind variables

Other Tuple developer Interfaces: ITupleHeader, ITupleVariableDescription, ITupleVariableStatistics

Page 12: Anaphe Developer Interfaces

AIDA Workshop, July 2003 Lorenzo Moneta, CERN 13

Functions and FittingFunctions and Fitting

IDevFunction IDevFunctionCatalog IDevFunctionFactory

IDevFitter IDevFitData IDevFitDataIterator IDevFitResult IDevFitParameterSettings

Page 13: Anaphe Developer Interfaces

AIDA Workshop, July 2003 Lorenzo Moneta, CERN 14

ConclusionsConclusions

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