g.barrand, lal-orsay g4/analysis. g.barrand, lal-orsay what is “analysis” ? histogram, tuple,...

19
G.Barrand, LAL-Orsay G4/analysis

Upload: oswin-pierce

Post on 14-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

G4/analysis

Page 2: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

What is “analysis” ?

• Histogram, Tuple, Fitter, Function, Plotter.

Page 3: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

What is “analysis” ?

Languages

Data

Vis

Analysis

GUIHisto, Fitter,…

• Analysis = conjunction of everything !!!!

Storage

Net

Page 4: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

Huge turnover of facilities

C++, java

DataOpenGL, Inventor, j3D

Objectivity, ?

Analysis

Gtk, Qt, awt, SWINGHisto, Fitter,…

Net

How to face ?

Page 5: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

The TUniverse ?

TC++

TVis

TIO

TAnalysis

TGUITHisto, TFitter,…

TNet

TUniverse -> leave the real world ! (Zf77-Universe whilst the world migrates toward OO,…)

TData

TGeant

Page 6: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

• Have architectures able to evolve and that permits to share the work.

• Abstract interfaces are one part of the solution (others are standards : XML, IDL, OpenGL, etc…)

What else ?

Page 7: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

Abstract interfaces

Plotter(IHistogram)

IHistogram { int dimensions() = 0; int entries() = 0; ….}

A plotter in a dll does not depend of a concrete implementation of histogram -> modularity !

Sharing the work assumes an agreement over IHistogram.

Page 8: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

• Abstract interfaces exist in : JAS, Lizard, OpenScientist, Gaudi,…

• AIDA : the set of agreed one ! (?)

• AIDA : IHistogram1D, 2D, Factory.

• Take care of what you buy ! Agreed interfaces or interfaces of a specific analysis environment ?

• No agreement -> can’t share the work.

AIDA

Page 9: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

• Difficulties :– Agreement take times : because analysis things had never

been really formalised ! – Burden of historical design mistakes of well established

first generation of analysis tools.– The TUniverse do not want (obviously) to discuss !

AIDA difficulties

Page 10: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

• IHistogram1D : IHistogram { void fill(double,double) = 0; …

}

• Must it define only the “user interface” to histograms ?• Must it be the interface designed by architects to reach interoperabilities of implementations ?• Must it be the interface of the histogram embedded in a framework (then having store, vis,…

methods) ?

Exa, IHistogram

Page 11: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

• Did not take party for such or such analysis environment.• Does Geant4 collaboration have to take party for such or

such set of abstract interfaces ?• If answer is yes, it should be for a set of collaborative agreed

ones !

Geant4 and analysis

Page 12: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

Agreed interfaces permit to do something

G4Kernel

JAS

G4AnalysisManagerAAIDA

• G4AnalysisManager = gateway toward analysis systems.• (G4VisManager hub for graphics systems)• First draft design get out from Naruto workshop.

OpenScientist

?

Lizard

Page 13: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

• MyAnalysisManager : G4AnalysisManager { IHistogram1D* fEnteringEnergy;MyAnalysisManager(const G4String& aSystem) { RegisterAnalysisSystem(new G4JasSystem);

RegisterAnalysisSystem(new G4OpenScientistSystem); …IHistogramFactory* hFac = GetHistogramFactory(aSystem); fEnteringEnergy = hFac->createHistogram1D(“Entering energy”,100,0,0.002);

} void MyAnalysisManager::Step(G4Step *aStep) {

double energy = …;fEnteringEnergy->fill(energy); }

void EndOfRun(G4Run* aRun) { Store();}

MyAnalysisManager v0

Page 14: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

• void main() { G4AnalysisManager* am = new MyAnalysisManager (“JAS”); runManager->SetUserAction(new MyStepping(am)); runManager->SetUserAction(new MyRun(am)); …}

• MyStepping { G4AnalysisManager* fAM; MyStepping(G4AnalysisManager* aAM) :fAM(aAM){} void UserSteppingAction(G4Step* aStep) {

fAM->Step(aStep); } }

• Analysis concentrated in ONE CLASS.

Usage

Page 15: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

• Source/analysis/management : G4AnalysisManager• < source/analysis/<systems> > ?

• No dependencies of the kernel toward analysis !

• G4AnalysisManager IS NOT AN ANALYSIS SYSTEM.

Source/analysis

Page 16: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

• Suppress Registration of systems ? Use dynamic loading of implementations by hooking “factories” ?

• G4AnalysisManager :: IAnalysisManager • IAnalysisManager methods ?

v1 ? After (non?)discussion

Page 17: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

• What are you buying at this workshop ? Agreed interfaces or interfaces of a specific

analysis environment ?

XrayTel

Page 18: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

• XrayTel already shakes G4AM v0…– The Stepping action analysis does not rely only on the

G4Step received in argument.– The analysis uses tuples… ITuple (and then IStorage)

not yet in the set of agreed interfaces !

XrayTel & G4AnalysisManager v0

Page 19: G.Barrand, LAL-Orsay G4/analysis. G.Barrand, LAL-Orsay What is “analysis” ? Histogram, Tuple, Fitter, Function, Plotter

G.Barrand, LAL-Orsay

• Does Geant4 collaboration have to take party for a set of abstract interfaces ?

• If answer is yes, it should be for a set of collaborative agreed ones !

Then