1 / 43

OO Implementation for the LHCb Rich

OO Implementation for the LHCb Rich. Niko Neufeld Dietrich Liko. Introduction. Study of OO Implementation of a Reconstruction program Based on Standalone Program by Roger Forty et al. Present a comparison Review Object Oriented features. Objective. Results of the FORTRAN Physics

arlene
Télécharger la présentation

OO Implementation for the LHCb Rich

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. OO Implementationfor the LHCb Rich Niko Neufeld Dietrich Liko

  2. Introduction • Study of OO Implementation of a Reconstruction program • Based on Standalone Programby Roger Forty et al. • Present a comparison • Review Object Oriented features

  3. Objective • Results of the FORTRAN • Physics • Resources • To be better then FORTRAN • Object Orientation • Modularity • Interfaces

  4. UML Process UML Unified Modeling Language by Booch, Jacobson & Rumbaugh • Specification using UML • Use cases • Development using UML case tool • Rational Rose • Iterative Development • Several internal iterations

  5. Program Specification • Technical Proposal • LHCb Note • FORTRAN Program • Summary with all information • Partial capture in use cases

  6. One page on physics • Cherenkov Effect • Emission of Photons • Aerogel & Gas Radiator • Reflection of Photons • Observation of Photons • Quantum Efficiency • Detector Geometry

  7. One page on algorithm • Local Likelihood • Global Likelihood • Very effective • CPU intensive • Other Algorithm possible • Average emission angle

  8. Framework • OO Framework to implement reconstruction algorithms • Simulation also possible • Here the Global Likelihood will be implemented • Benchmark for usability

  9. Use Cases • Question a Physicist might ask ... • to a particle ... • to a pixel ... • Global Likelihood

  10. Use cases

  11. Detector

  12. Detector Simplified UML Class Diagram Static relations of Classes Rich Radiator Detector Reflector

  13. I should be called DetectorElement ! Event Event Track Pixel Track Extrapolation Photon Track Segment

  14. Other Entities PhotonSpectrum PixelID GeneratedPhoton

  15. Lifetime • Present for all Events • Rich, Radiator, Reflector, Detector • Present for one Event • Tracks, TrackExtrapolations,Pixel, Photons • Temporary • Photon Spectrum, PixelID, Single Photon

  16. I am not so smart ... Pixel id tube But I am smart! RecPixel signal globalPosition localPosition size The PhotonDetector does all the work for me ! Photon Detector • Example trivial • expensive calculations • context questions

  17. Architecture Algorithm Strategy Interface Event Detector

  18. Standalone Program • Minimal Environment • Contains its own Transient Event Model • Parameter Files • Histograms from CLHEP • Only for this test!

  19. Optimisations • Since last presentation • two weeks ago • Program about a factor 2 slower • Profiling and Debugging • Allocation of STL container • operator[] • Algorithmic improvements

  20. 500 Events B pp background “Clean” Technical Proposal

  21. 500 Events B pp background “Clean” Results Difference in particle population, in particular for X particles: Different sample, small differences in the modeling of the inner edges Reduced m Purity Migration p to m Reduced p Efficiency

  22. CPU Comparison 100 Events B  Background “Clean” G77 7.52 G++ 8.32 500 Mhz Pentium III Sec/Event 7 8 9

  23. Kuck & Associates, Inc. • Commercial C++ compiler • Standard compliant • Templates • Patented optimization techniques • Precompiled headers • http://www.kai.com • Time-locked trial version for RH6.1

  24. CPU Comparison 100 Events B  Background “Clean” G77 7.52 G++ 8.32 500 Mhz Pentium III KCC 7.32 Sec/Event 7 8 9

  25. Summary • Outlined the development process • Show physics results • Show CPU comparisons • Why an OO program should be better ?

  26. Track Segment Length Track length Aerogel Radiator

  27. FORTRAN REAL FUNCTION DIST(POS,DIR) C A line is given by POS and DIS REAL POS(3), DIR(3) C Radiator wall is described by its z position REAL ZPOS(2) COMMON /RADIATOR/ ZPOS DIST = ACOS(DIR(3),VMOD(DIR,3))*(ZPOS(2)-ZPOS(1)) END

  28. FORTRAN • Does what it should • Math is simple • Probably more complicated in praxis • walls not normal to z • more then one radiator • Some variables which are interpreted in the context • But your program works soon!

  29. Sometimes later ... • … you want to improve the program • More realistic tracks • More realistic radiators • But assumptions are not isolated • There will be other places which depend on these variables • You have to find all uses of the variables • In your program at n places • In other people programs at unknown places

  30. Object Based • Assume two classes present • Plane • Ray (can intersect with plane) • My programhas ... • class Algorithm • dist method

  31. Object Based class Algorithm { PlaneRadiator[2]; virtual double dist(const Ray & track) const; } double Algorithm::dist(const Ray & track) const { return Radiator[1].intersect(track) - Radiator[0].intersect(track); }

  32. Object Based • More compact • Probably more general • Math is done by somebody else But main critic remains • If you want to improve the program,you have to find ... •  n places in your own program •  unknown places in other programs

  33. Object Oriented class Track { public: virtual double dist() const; virtual double intersect(const Plane & plane) const; virtual double intersect(……) const; private: Radiator * radiator_; } class Radiator { public: virtual double dist(const Track & track) const; }

  34. Sequence Diagram Track Radiator Simplified UML Sequence Diagram dynamic relation of classes dist dist intersect intersect return dist return dist

  35. Object Oriented • If one changes the Radiator ... • One place to do the modifications • If one changes the Track ... • Another single place to do the change • Implementation is hidden behind the interface • No dependency on the implementation details Visitor Pattern

  36. Summarize • FORTRAN • does the job • difficult to maintain • Object Based C++ • does the job probably better • still difficult to maintain • Object Oriented C++ • dependencies are reduced

  37. Our Program does not depend on ... • Track implementation • Pixel implementation • General Detector Geometry • Photon radiation process • Mirror choice • Type of Photon Detector • Photon Detector Assembly Details • Reconstruction Strategy • …..

  38. Integration to GAUDI • Algorithm is interfaced • Package is nearly ready • Release next week • Detailed documentation from the Rose Model available • We plan to include some “hand written” documentation for the release

  39. Future in GAUDI • Next steps … • Detector Description • Other Algorithms • Photon Detector Implementation • Not addressed • Structure of a general LHCb reconstruction program

  40. Final Summary • UML process for software development • Standalone program has similar performance as the TP • Pleasant surprise: you can do a lot OO for reconstruction applications • There is the promise for a program that will be easier to maintain • You can try it yourself in GAUDI

More Related