Title: Use of Object-Oriented Programming in Particle Accelerator Alignment*
1Use of Object-Oriented Programming in Particle
Accelerator Alignment
Use of Object-Oriented Programming in Particle
Accelerator Alignment
Class Diagram (Booch notation)
Application Dependent
Catherine Le CocqStanford Linear Accelerator
Center, Stanford, CA, USA
feedback
input
Exports user alarms and logging primitives.
Loads the public data members of project.
Thesis Until now, most of the effort in network
analysis has been devoted to achieving faster
resolution and treating larger data sets. This
has led to the creation of large dedicated
FORTRAN programs well adapted to their task. When
the object of the survey is changing fast in
size, shape and content, the architecture of the
program has to be flexible enough to accommodate
constant redesign. I propose the object oriented
paradigm in C programming language as a new
focus of network analysis programming.
resect
Finds the position and orientation of a
theodolite station given a set of known targets.
- Major geodetic features
- Blunder detection data snooping and L1 norm
resolution - Approximation computations automatic for
semi-leveled stations - Datum choice free, constrained and connected
networks - Observation variety gravity based or not
- Dynamic measurements inside adjustment or
a-posteriori computations
Discussion The LEGO classes are not the product
of an a-priori design. Instead, they were
abstracted from the structures of the early C
version of the program. The first motivation was
to provide clean and simple interfaces as well as
data hiding in order to facilitate code sharing
with user interface designers. This lead to the
creation of the two main classes project and
lego and the idea of two other application
dependent classes feedback and input.The immense
benefit of the concept encapsulation provided by
the classes became further evident in the
maintenance of the core algorithms and the port
to different environments. From then on, new
extensions were designed from an object-oriented
point of view. Examinations of the LEGO
algorithms showed structure and interface
similarities. This was easily translated into two
fundamental features of object-oriented
programming inheritance from a common base class
and polymorphism through virtual functions. The
class method was created to encapsulate all the
data members and functions common to all solving
algorithms. Currently LEGO maintains three
derived classes compact and jordan for the L2
resolution and simplex for the L1 resolution. The
first one is the one called in most applications
because of its computational speed. This
architecture has been very efficient these past 4
years, allowing the introduction of additional
measurement types (photogrammetry) as well as new
capabilities (dynamic measurements and connected
networks).
project
interplus
Holds the input data and results in a form
convenient for user display and editing.
Finds the position of a target given a set of
known stations.
closedphoto
Finds the position and orientation of a camera
station given a set of known targets.
lego
simili
Checks the coherence of all entries. Converts
them into storage and access efficient forms.
Exports high-level interface for solving loaded
algorithms.
Finds the 7 parameter transformation between 2
coordinate systems.
Results The LEGO architecture has been used
routinely at SLAC for 4 years for the precise
mapping of the magnets which focus and bend the
high energy electron/positron beam.
approx
Next Generation The Next Linear Collider project
presents new challenges for the particle
accelerator surveying community for two reasons
its size (30 km long linear accelerator) and its
positioning accuracy (30 µm placement
requirements for adjacent components). To answer,
SLAC is embarking on two complementary axes of
research development of new alignment
techniques, primarily based on various kinds of
reference lines, and study of appropriate
coordinate systems. The LEGO architecture is
ready for the addition of new measurement
techniques. On the other hand, it is too
monolithic to allow for different extensions of
the same method to be tested in parallel. The
main classes could use subclasses to unify access
to the data no matter the representation system
and to work on this unified data model through
virtual functions. A new implementation based on
a hierarchical point-classes diagram is on its
way. These new classes will be integrated into
the production version of the program at a later
date.
Finds an approximate solution for a network of
loosely leveled theodolites and/or trackers.
has a
The last major application at SLAC was the
mapping of the PEP-II Asymmetric B-factory
consisting of two independent storage rings,
located one above the other in a tunnel. The
tunnel has a circumference of 2.2 kilometers with
an average height and width of 2.5 meters and 3.5
meters respectively.
Network characteristics
catstat
Exports all the usual statistical distributions.
method
Base class
Generic interface to solve
Magnet fiducials as well as floor and wall
monuments have been surveyed using SMX 4000 laser
trackers, Leica TC2002 total stations and a Leica
NA3000 precise digital level.
Home SLAC 2575 Sand Hill Road Menlo Park, CA
94025 USA www.slac.stanford.edu
Collaboration SMX 222 Gale Lane Kennett Square,
PA 19348 USA www.smxcorp.com
is a
For more information and access to LEGO Windows
DLLs, please email lecocq_at_slac.stanford.edu
jordan
simplex
compact
Algorithm Simplex Storage full design matrix
Algorithm Modified Gauss elimination Storage
envelope of normal matrix
Algorithm Gauss Jordan with partial
pivoting Storage full normal matrix
Work supported by Department of Energy under
Contract DE-AC03-76SF00515