Upload
edwina-logan
View
217
Download
0
Embed Size (px)
DESCRIPTION
LHCb Software Week Tuesday, February 02, 2016 Objective n Results of the FORTRAN u Physics u Resources n To be better then FORTRAN u Object Orientation F Modularity F Interfaces
Citation preview
OO Implementationfor the LHCb Rich
Niko NeufeldDietrich Liko
LHCb Software WeekWednesday, May 3, 2023
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
LHCb Software WeekWednesday, May 3, 2023
Objective Results of the FORTRAN
Physics Resources
To be better then FORTRAN Object Orientation
Modularity Interfaces
LHCb Software WeekWednesday, May 3, 2023
UML Process Specification using UML
Use cases
Development using UML case tool Rational Rose
Iterative Development Several internal iterations
UMLUnified Modeling
Language
by
Booch, Jacobson &
Rumbaugh
LHCb Software WeekWednesday, May 3, 2023
Program Specification Technical Proposal LHCb Note FORTRAN Program
Summary with all information Partial capture in use cases
LHCb Software WeekWednesday, May 3, 2023
One page on physics Cherenkov Effect Emission of Photons
Aerogel & Gas Radiator Reflection of Photons Observation of Photons
Quantum Efficiency Detector Geometry
LHCb Software WeekWednesday, May 3, 2023
One page on algorithm Local Likelihood Global Likelihood
Very effective CPU intensive
Other Algorithm possible Average emission angle
LHCb Software WeekWednesday, May 3, 2023
Framework OO Framework to implement
reconstruction algorithms Simulation also possible
Here the Global Likelihood will be implemented
Benchmark for usability
LHCb Software WeekWednesday, May 3, 2023
Use Cases Question a Physicist might ask ...
to a particle ... to a pixel ...
Global Likelihood
ChanhLN
jjij
M
ii
N
jjj
111
lnln
LHCb Software WeekWednesday, May 3, 2023
Use cases
MomentumTrue Particle Code
Physicist Emitted Number of Photons
Expected Number Photons
Geometrical Efficiency
LHCb Software WeekWednesday, May 3, 2023
Detector
LHCb Software WeekWednesday, May 3, 2023
Detector
Rich
Radiator
Reflector
Detector
SimplifiedUML
Class Diagram
Static relations of Classes
LHCb Software WeekWednesday, May 3, 2023
Event Event
TrackPixel
TrackExtrapolation
TrackSegment
Photon
I should be called DetectorElement !
LHCb Software WeekWednesday, May 3, 2023
Other Entities
PhotonSpectrum
PixelID
GeneratedPhoton
LHCb Software WeekWednesday, May 3, 2023
Lifetime Present for all Events
Rich, Radiator, Reflector, Detector
Present for one Event Tracks, TrackExtrapolations,
Pixel, Photons
Temporary Photon Spectrum, PixelID, Single Photon
LHCb Software WeekWednesday, May 3, 2023
Pixelid
tube
RecPixelsignal
globalPositionlocalPosition
size
PhotonDetector
But I am smart!
• Example trivial
• expensive calculations
• context questions
The PhotonDetector does all the
work for me !
I am not so smart ...
LHCb Software WeekWednesday, May 3, 2023
Architecture
Interface
DetectorEvent
StrategyAlgorithm
LHCb Software WeekWednesday, May 3, 2023
Standalone Program Minimal Environment Contains its own Transient Event
Model Parameter Files Histograms from CLHEP
Only for this test!
LHCb Software WeekWednesday, May 3, 2023
LHCb Software WeekWednesday, May 3, 2023
LHCb Software WeekWednesday, May 3, 2023
LHCb Software WeekWednesday, May 3, 2023
Optimisations Since last presentation
two weeks ago Program about a factor 2 slower
Profiling and Debugging Allocation of STL container operator[] Algorithmic improvements
LHCb Software WeekWednesday, May 3, 2023
Technical Proposal
Rec True Pe K p X
e 6233 7 328 0.95 8 224 554 31 0.27 5 10 13114 1 8 0.99K 1 39 1083 11 0.96p 1 4 1 427 1 0.98X 3 8 197 27 3990 0.94 0.99 0.90 0.92 0.97 1.00 0.99
500 Events
B
background
“Clean”
LHCb Software WeekWednesday, May 3, 2023
Results
Rec True Pe K p X
e 8848 7 426 3 51 0.95 20 230 1163 3 57 0.16 8 13 10891 9 29 0.99K 2 1 39 1083 11 0.97p 1 4 1 427 1 0.98X 154 2 67 12 9700 0.98 0.98 0.91 0.87 0.97 1.00 0.99
Difference in particle population, in particular for X particles:
Different sample, small differences in the modeling of the inner edges
Migration to Reduced Efficiency
Reduced Purity
500 Events
B
background
“Clean”
LHCb Software WeekWednesday, May 3, 2023
CPU Comparison
500 MhzPentium III
G77 7.52
G++ 8.32
Sec/Event
7 8 9
100 Events
B
Background
“Clean”
LHCb Software WeekWednesday, May 3, 2023
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
LHCb Software WeekWednesday, May 3, 2023
CPU Comparison
500 MhzPentium III
G77 7.52
G++ 8.32
Sec/Event
7 8 9
KCC 7.32
100 Events
B
Background
“Clean”
LHCb Software WeekWednesday, May 3, 2023
Summary Outlined the development process Show physics results Show CPU comparisons
Why an OO program should be better ?
LHCb Software WeekWednesday, May 3, 2023
Track Segment Length
length
Aerogel Radiator
Track
LHCb Software WeekWednesday, May 3, 2023
FORTRANREAL FUNCTION DIST(POS,DIR)
C A line is given by POS and DISREAL POS(3), DIR(3)
C Radiator wall is described by its z positionREAL ZPOS(2)COMMON /RADIATOR/ ZPOS
DIST = ACOS(DIR(3),VMOD(DIR,3))*(ZPOS(2)-ZPOS(1))
END
LHCb Software WeekWednesday, May 3, 2023
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!
LHCb Software WeekWednesday, May 3, 2023
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
LHCb Software WeekWednesday, May 3, 2023
Object Based Assume two classes present
Plane Ray (can intersect with plane)
My program has ... class Algorithm dist method
LHCb Software WeekWednesday, May 3, 2023
Object Basedclass Algorithm {
Plane Radiator[2];
virtual double dist(const Ray & track) const;
}
double Algorithm::dist(const Ray & track) const {
return Radiator[1].intersect(track) - Radiator[0].intersect(track);
}
LHCb Software WeekWednesday, May 3, 2023
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
LHCb Software WeekWednesday, May 3, 2023
Object Orientedclass 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;}
LHCb Software WeekWednesday, May 3, 2023
Sequence DiagramRadiatorTrack
dist
dist
intersect
intersect
return dist
return dist
SimplifiedUML Sequence
Diagram
dynamic relation of classes
LHCb Software WeekWednesday, May 3, 2023
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
LHCb Software WeekWednesday, May 3, 2023
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
LHCb Software WeekWednesday, May 3, 2023
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 …..
LHCb Software WeekWednesday, May 3, 2023
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
LHCb Software WeekWednesday, May 3, 2023
Future in GAUDI Next steps …
Detector Description Other Algorithms Photon Detector Implementation
Not addressed
Structure of a general LHCb reconstruction program
LHCb Software WeekWednesday, May 3, 2023
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