g.barrand, lal-orsay g4/analysis. g.barrand, lal-orsay what is “analysis” ? histogram, tuple,...
TRANSCRIPT
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
G.Barrand, LAL-Orsay
Huge turnover of facilities
C++, java
DataOpenGL, Inventor, j3D
Objectivity, ?
Analysis
Gtk, Qt, awt, SWINGHisto, Fitter,…
Net
How to face ?
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
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 ?
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.
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
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
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
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
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
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
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
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
G.Barrand, LAL-Orsay
• Suppress Registration of systems ? Use dynamic loading of implementations by hooking “factories” ?
• G4AnalysisManager :: IAnalysisManager • IAnalysisManager methods ?
v1 ? After (non?)discussion
G.Barrand, LAL-Orsay
• What are you buying at this workshop ? Agreed interfaces or interfaces of a specific
analysis environment ?
XrayTel
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
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