190 likes | 376 Views
G4/analysis. What is “analysis” ?. Histogram, Tuple, Fitter, Function, Plotter. What is “analysis” ?. Storage. Languages. Analysis = conjunction of everything !!!!. Net. Analysis. Data. Vis. Histo, Fitter,…. GUI. Huge turnover of facilities. C++, java. Objectivity, ?. Net.
E N D
G4/analysis G.Barrand, LAL-Orsay
What is “analysis” ? • Histogram, Tuple, Fitter, Function, Plotter. G.Barrand, LAL-Orsay
What is “analysis” ? Storage Languages • Analysis = conjunction of everything !!!! Net Analysis Data Vis Histo, Fitter,… GUI G.Barrand, LAL-Orsay
Huge turnover of facilities C++, java Objectivity, ? Net Analysis Data OpenGL, Inventor, j3D Histo, Fitter,… Gtk, Qt, awt, SWING How to face ? G.Barrand, LAL-Orsay
The TUniverse ? TC++ TIO TNet TData TAnalysis TVis TGeant TGUI THisto, TFitter,… TUniverse -> leave the real world ! (Zf77-Universe whilst the world migrates toward OO,…) G.Barrand, LAL-Orsay
What else ? • Have architectures able to evolve and that permits to share the work. • Abstract interfaces are one partof the solution (others are standards : XML, IDL, OpenGL, etc…) G.Barrand, LAL-Orsay
Abstract interfaces IHistogram { int dimensions() = 0; int entries() = 0; …. } Plotter(IHistogram) 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
AIDA • 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. G.Barrand, LAL-Orsay
AIDA difficulties • 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 ! G.Barrand, LAL-Orsay
Exa, IHistogram • 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) ? G.Barrand, LAL-Orsay
Geant4 and analysis • 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 ! G.Barrand, LAL-Orsay
Agreed interfaces permit to do something JAS • G4AnalysisManager = gateway toward analysis systems. • (G4VisManager hub for graphics systems) • First draft design get out from Naruto workshop. OpenScientist G4Kernel AAIDA G4AnalysisManager Lizard ? G.Barrand, LAL-Orsay
MyAnalysisManager v0 • 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();} G.Barrand, LAL-Orsay
Usage • 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. G.Barrand, LAL-Orsay
Source/analysis • Source/analysis/management : G4AnalysisManager • < source/analysis/<systems> > ? • No dependencies of the kernel toward analysis ! • G4AnalysisManager IS NOT AN ANALYSIS SYSTEM. G.Barrand, LAL-Orsay
v1 ? After (non?)discussion • Suppress Registration of systems ? Use dynamic loading of implementations by hooking “factories” ? • G4AnalysisManager :: IAnalysisManager • IAnalysisManager methods ? G.Barrand, LAL-Orsay
XrayTel • What are you buying at this workshop ? Agreed interfaces or interfaces of a specific analysis environment ? G.Barrand, LAL-Orsay
XrayTel & G4AnalysisManager v0 • 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 ! G.Barrand, LAL-Orsay
Then • 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 ! G.Barrand, LAL-Orsay