1 / 19

G4/analysis

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.

armani
Télécharger la présentation

G4/analysis

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. G4/analysis G.Barrand, LAL-Orsay

  2. What is “analysis” ? • Histogram, Tuple, Fitter, Function, Plotter. G.Barrand, LAL-Orsay

  3. What is “analysis” ? Storage Languages • Analysis = conjunction of everything !!!! Net Analysis Data Vis Histo, Fitter,… GUI G.Barrand, LAL-Orsay

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. v1 ? After (non?)discussion • Suppress Registration of systems ? Use dynamic loading of implementations by hooking “factories” ? • G4AnalysisManager :: IAnalysisManager • IAnalysisManager methods ? G.Barrand, LAL-Orsay

  17. XrayTel • What are you buying at this workshop ? Agreed interfaces or interfaces of a specific analysis environment ? G.Barrand, LAL-Orsay

  18. 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

  19. 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

More Related