Applying STEP Principles to Product Models in High Energy Physics Research

Similar documents
REPORT SERIES HU - SEFT RD U3. The CADIN T Interface in GEANT. N. Hsbimyr, J. Vuoskoski. CERN. Geneva. Switzerland ISSN

Introduction to Geant4

A Geometrical Modeller for HEP

Chapter 12 Solid Modeling. Disadvantages of wireframe representations

Using STEP in exchange of digital product information.

Generalized Document Data Model for Integrating Autonomous Applications

TGeoCad: an Interface between ROOT and CAD Systems

Fundamentals of STEP Implementation

Short Notes of CS201

CS201 - Introduction to Programming Glossary By

Solids as point set. Solid models. Solid representation schemes (cont d) Solid representation schemes. Solid representation schemes (cont d)

UNIT - V DHARANI KUMAR.S/AP/MECH

Implementing manufacturing feature based design in CAD/CAM

An Introduction to Subtyping

Data structures for electronic product catalogues for building services. Part 2: Geometry

VALLIAMMAI ENGINEERING COLLEGE

Designing Procedural 4GL Applications through UML Modeling

LABORATORY 1 REVISION

Geometric Modeling. Introduction

ISO INTERNATIONAL STANDARD. Language resource management Feature structures Part 1: Feature structure representation

Overview of Product Information Interoperability Using STEP (ISO 10303)

L1 - Introduction. Contents. Introduction of CAD/CAM system Components of CAD/CAM systems Basic concepts of graphics programming

STEP-based feature modeller for computer-aided process planning

Lesson 5 Solid Modeling - Constructive Solid Geometry

Introduction Primitive Data Types Character String Types User-Defined Ordinal Types Array Types. Record Types. Pointer and Reference Types

Solid Modelling. Graphics Systems / Computer Graphics and Interfaces COLLEGE OF ENGINEERING UNIVERSITY OF PORTO

TOWARDS STEP-BASED CAD/CAPP/CAM SYSTEMS

SOME 024: Computer Aided Design. E. Rozos

GUIMesh: a tool to import STEP geometries into Geant4 via GDML

B.Sc. Final B.SC. PART-III PAPER I COMPUTER ORGANIZATION II

Fundamentals of Programming Languages. Data Types Lecture 07 sl. dr. ing. Ciprian-Bogdan Chirila

Integration of Parametric Geometry into IFC-Bridge

Standard Component Library Design and Implementation for Plastic Injection Mold Design with a CAD Tool

CAD/CAPP Integration using Feature Ontology

What are the characteristics of Object Oriented programming language?

Weiss Chapter 1 terminology (parenthesized numbers are page numbers)

Object oriented data analysis in ALEPH

Introduction to Programming Using Java (98-388)

Three-Dimensional Reconstruction from Projections Based On Incidence Matrices of Patterns

CSG obj. oper3. obj1 obj2 obj3. obj5. obj4

Fundamentals of Programming Languages

GEOMETRIC OBJECTS AND TRANSFORMATIONS I

IJCSI International Journal of Computer Science Issues, Vol. 9, Issue 5, No 2, September 2012 ISSN (Online):

INSTITUTE OF AERONAUTICAL ENGINEERING

Virtual Plant for Control Program Verification

Autodesk Conceptual Design Curriculum 2011 Student Workbook Unit 2: Parametric Exploration Lesson 1: Parametric Modeling

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch

Chapter 9 3D Modeling

FRAMEWORK OF THE EXTENDED PROCESS TO PRODUCT MODELING (XPPM) FOR EFFICIENT IDM DEVELOPMENT


Introduction to Solid Modeling Parametric Modeling. Mechanical Engineering Dept.

Chapter 6 Introduction to Defining Classes

3D Modeling: Solid Models

Software Paradigms (Lesson 3) Object-Oriented Paradigm (2)

ETSI ETR 346 TECHNICAL December 1996 REPORT

Python Scripting for Computational Science

Solid Modeling Lecture Series. Prof. Gary Wang Department of Mechanical and Manufacturing Engineering The University of Manitoba

Pro/ENGINEER Concepts

CPSC 3740 Programming Languages University of Lethbridge. Data Types

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved.

1. Write two major differences between Object-oriented programming and procedural programming?

On 17 June 2006, the editor provided the following list via an to the convener:

Java- and CORBA-Based Network Management. Mika Leppinen, Pekka Pulkkinen, and Aapo Rautiainen

Automated Drill Design Software

This document is a preview generated by EVS

Distributed Engineering Data Management (EDM) using HyperText

Geographic Information Fundamentals Overview

Introduction to Computer Graphics

White Paper 3D Geometry Visualization Capability for MCNP

LAB # 2 3D Modeling, Properties Commands & Attributes

Unit 7. Functions. Need of User Defined Functions

2. The object-oriented paradigm

New software library of geometrical primitives for modeling of solids used in Monte Carlo detector simulations

SOFTWARE ENGINEERING. Software Specification Software Design and Implementation Software Validation. Peter Mileff PhD

Introduction to Solid Modeling

Introduction to ANSYS DesignModeler

G Programming Languages - Fall 2012

INTEGRATED BUILDING SIMULATION TOOL - RIUSKA

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch

Stylus Studio Case Study: FIXML Working with Complex Message Sets Defined Using XML Schema

Bellevue Community College Summer 2009 Interior Design 194 SPECIAL TOPIC: SKETCHUP

Table 2 1. F90/95 Data Types and Pointer Attributes. Data Option. (Default Precision) Selected-Int-Kind

Experiences with Open Inventor. 1 Introduction. 2 HEP Visualization in an Object-Oriented Environment

Chapter 1: Object-Oriented Programming Using C++

Physically-Based Modeling and Animation. University of Missouri at Columbia

Python Scripting for Computational Science

A System for Managing the CLEO III Detector Geometry

Programming Languages Third Edition. Chapter 7 Basic Semantics

EDMS. Architecture and Concepts

The ITAPS Mesh Interface

CS112 Lecture: Primitive Types, Operators, Strings

Introduction. Primitive Data Types: Integer. Primitive Data Types. ICOM 4036 Programming Languages

Lecture 7. Neutral File. Lecture 7 1

2D1358 Object Oriented Program Construction in C++ Exercises & Labs. Course Registration / Accounts. Course Literature

Designing Procedural 4GL Applications through UML Modeling

Modeling Basics for 3D Printing Using AutoCAD

Geometric Modeling Systems

INTERNATIONAL STANDARD

Computer Aided Design. Solid models and B-REP

«Computer Science» Requirements for applicants by Innopolis University

Transcription:

Applying STEP Principles to Product Models in High Energy Physics Research Miroslaw Dach, Nils Høimyr CERN, Geneva Janne Saarela Helsinki University of Technology Jouko Vuoskoski Institute of Particle Physics Technology, Espoo and CERN, Geneva March 1, 1994 Report TKK-F-A724 ABSTRACT STEP is a new International Standard to exchange and represent product model data. It uses an object-flavoured data specification language to specify the representation of the data. This report describes how the STEP principles can be applied to product models in high energy physics research. We present the design and implementation of a program where STEP principles were applied to detector models used by the GEANT detector simulation package. The design and implementation of the program were carried out using object-oriented tecnology. Possible applications which can profit from this program are discussed briefly. ISSN 0355-7790 ISBN 951-22-1997-2 TKK OFFSET

Contents 1.0 Introduction 1 1.1 STEP 1 1.2 GEANT 2 2.0 Principle of the Program 3 3.0 Design of the Class Library 3 4.0 Implementation of the Program 7 5.0 Implementation of he Class Library. 7 6.0 Implementation of the Conversions 8 6.1 Conversions from GEANT into the Class Library 9 6.2 Conversions from the Class Library into GEANT 9 7.0 Possible Applications for Detector Models 11 8.0 Conclusions 12 Acknowledgments 12 References 13

Introduction 1.0 Introduction STEP [1, 2] (STandard for the Exchange of Product model data) is a new International Standard for representing and exchanging product model information. It includes an object-flavoured data specification language, EXPRESS [3], to describe the representation of the data. STEP defines also a physical transfer file [4]. STEP provides a systemindependent way of implementation. These features offered a possibility to apply the STEP principles to product models using modern object-oriented design and implementation. The object-oriented methodology is a style of thinking about given problems. The fundamental construct is the object. In object-oriented methodology a software is organized as a collection of discrete objects that incorporate both data structure and behavior. This is in contrast to conventional way of programming where data and behavior are separated. This report describes the design and implementation of a program where STEP principles were applied to detector models used by the GEANT [5] detector simulation package. The design of the program was carried out using the Object Modeling Technique (OMT) [6]. The C++ programming language [7] and the NIST STEP Toolkit [8] were used in the implementation. The program consists of the file I/O and the class library. It provides routines to access the class library. It includes routines to convert detector models between the program and GEANT. STEP physical files can be used to store or transfer GEANT detector models. The physical files are written according to the GEANT geometric representation. The file is a human-readable ASCII-file. The program is to be used as a basis to implement different applications. The class library access routines offer an environment to implement different applications within the program in order to manipulate or use GEANT detector models. 1.1 STEP STEP is a collection of standards to represent and exchange product information. The objective of STEP is to offer a system-independent mechanism to describe the product information in computer aided systems throughout its lifetime. It separates the representation of product information from the implementation methods. Implementation meth- Applying STEP Principles to Product Models in High Energy Physics Research 1 of 14

Introduction ods are used for data exchange. The representation offers a definition of product information to many applications. STEP provides also a basis for archiving product information and a methodology for the conformance testing of implementations. EXPRESS is a formal data specification language used to specify the representation of product information. The use of a formal data specification language facilitates development of implementation. It also enables consistency of representation. STEP specifies the implementation methods used for data exchange that support the representation of product information. STEP does not only define the geometric shape of a product it also includes topology, features, tolerance specifications, material properties, etc. necessary to completely define a product for the purposes of design, analysis, manufacture, test, inspection and product support. 1.2 GEANT GEANT is a detector simulation program used in the design of detectors used in High Energy Physics (HEP) experiments. The simulation program has been developed at CERN by the HEP community and it is now in use in more than 600 research institutions in over 50 countries. Its applications are not limited to physics, but range from space science to medical research. The GEANT version 3.20 to be released sometime in the future will have a new geometric modeler [9] which uses a constructive solid geometry (CSG) [10] approach. The internal geometric representation consists of half spaces. In GEANT a solid object composing a part of a detector is called a volume. Internally a volume is represented by a union of caves and a cave is represented by an intersection of half-spaces. The GEANT 3.20 user interface will be FORTRAN 77 code written using a so called Shape Definition Language (SDL) [9]. SDL contains a set of subroutine calls to define shapes. Volumes are parameterized instances of shapes. A shape is constructed by simple entities, operations on and between them, predefined volume primitives and Boolean operations. A volume is created by giving dimensions to a shape. A detector model is created by positioning volumes inside each other by specifying the coordinates and orientation. Special GEANT mechanisms like divisions, etc. [5] are applied to volumes in order to create a detector model which is suitable for fast tracking. GEANT is written in FORTRAN 77 and it uses the ZEBRA [11] memory manager. The current version, GEANT 3.16, offers 16 basic shapes, i.e. volume primitives, to construct a detector model. 2 of 14 Applying STEP Principles to Product Models in High Energy Physics Research

Principle of the Program 2.0 Principle of the Program The principle of the program is shown in Figure 1. A detector model is read either from a GEANT database file (RZ-file) using ZEBRA or from a STEP physical file and loaded into the class library. In the case of reading from an RZ-file, the GEANT entities are converted to object instances and loaded into the class library. The relationships between the entities are converted to pointers and loaded as attributes within the classes. The detector model can be written out in a STEP physical file or in a GEANT database file. The implementation of the program was performed in two parts: the class library creation and the actual program. The class library is created by compiling the EXPRESS schema of the GEANT geometric representation with an EXPRESS compiler. RZ-file STEP physical file Model of the GEANT geometric representation ZEBRA Conversions File I/O EXPRESS schema Instance handling routines GEANT class library EXPRESS compiler Figure 1 The principle of the program 3.0 Design of the Class Library In object-oriented design, in general, the leading idea is to identify objects and their relationships in a system. An object model describes the static structure of the objects and their relationships. An object diagram is a graph whose nodes are object classes and whose arcs are relationships among classes. In order to implement the class library for the program, we described the geometric representation of GEANT using object diagrams. The iteration of the diagrams was done with the help of instance diagrams. An instance diagram describes how a particular set of objects relate to each other. Applying STEP Principles to Product Models in High Energy Physics Research 3 of 14

Design of the Class Library The object model of GEANT 3.20 geometric representation is described as object diagrams in Figures 3 and 4. The core objects are GEANT_volume and GEANT_shape. The model consists of two different kinds of information: geometric information (shape, volume and volume positioning information); topological information (relationships between geometric components). Geometric information contains the geometry of the shapes and their dimensions. It contains also the coordinates and orientation of the volumes. The topological information contains the links between the geometric components. The links between volumes (i.e. solids) define the mother-daughter relationships; a volume is always positioned inside a mother volume (except the global mother volume). The notations of object and instance diagrams in this report follow the Object Modeling Technique (OMT) [6]. In the Figure 4 some objects are repeated in order to clarify the diagram. The meaning of the symbols used in the diagrams are shown in Figure 2. Object class class class name name Object instance (class name) Association one to n class-1 class-1 nn class-2 class-2 Association one to many (empty ball zero or one) class-1 class-1 class-2 class-2 Aggregation class-1 class-1 class-2 class-2 Inheritance super-class super-class sub-class sub-class Figure 2 The OMT notations used in this report 4 of 14 Applying STEP Principles to Product Models in High Energy Physics Research

Design of the Class Library rotation_matrix rotation_matrix_number rotation_angles_array matrix_elements_array material material_name material_number atomic_weight atomic_number density shape shape_name see Fig. 4 1+ 1+ 1+ daughter daughter_index x_coordinate y_coordinate z_coordinate volume volume_name number_of_parameters parameters_array division number_of_divisions step_of_division offset_of_division division_axis_nr volume_normal volume_divided daughter_p number_of_parameters parameters_array axis see Fig. 4 Figure 3 The object model of GEANT 3.20 volume representation Applying STEP Principles to Product Models in High Energy Physics Research 5 of 14

Design of the Class Library shape body body of_boolean basic body half-space body of_closed_face body body body of_revolution of_extrusion of_join 1,2 1,2 body point face axis line point face face face face body_of_box body_of_trd1 body_of_trd2 of_closed_line of_revolution of_extrusion of_join 2 1,2 body_of_trap body_of_tube body_of_tubs line axis line point body_of_cone body_of_cons body_of_sphe line line line of_entity of_revolution of_join body_of_para segment axis 2 point 2,3,4,5 line point vector Figure 4 The object model of GEANT 3.20 shape representation 6 of 14 Applying STEP Principles to Product Models in High Energy Physics Research

Implementation of the Program 4.0 Implementation of the Program The different parts of software which are used in the program are principally: C++ steering program; GEANT library routines; ZEBRA library routines; NIST STEP toolkit; C++ Binding for OSF/Motif. The C++ steering program is the main program which performs user actions and conversions between GEANT and the class library. The GEANT library routines are linked with the main program. They are needed for creating a detector model in the ZEBRA data structure. The ZEBRA library routines give access to a detector model which is saved in an RZ-file. The NIST STEP toolkit [8] provides routines to manage object instances and file I/O. It contains an EXPRESS compiler in order to create a C++ class library from an EXPRESS schema. A C++ Binding for OSF/Motif [12] is needed in order to create visual interface to the program. The US National Institute of Standards and Technology (NIST) has developed the NIST STEP toolkit to handle objects described in STEP. The toolkit is written in C++. The toolkit can be divided in three parts which are: Fed-X [14] EXPRESS compiler; a library to manage instances, attributes and file I/O; a visual interface to manipulate entities in X-windowing system. The NIST STEP toolkit library is linked with the main program. The library contains the InstanceManager class to manage object instances, the file I/O routines to perform the I/O to STEP physical files, and different Aggregate classes to manipulate attributes within the classes. These allow a conforming access to object instances. The visual interface of the toolkit is not used. Fed-X is a stand-alone program which reads an EXPRESS schema file as an input and creates C++ class definitions and methods in order to access attributes. When transferring data from GEANT to the class library, the C++ main program calls the FORTRAN routines of ZEBRA which transfer the RZ-file into memory. After this we can access the geometric data through ZEBRA banks from C++ and convert and transfer the data into object instances which are derived from the class library. When transferring data from the class library to an RZ-file, the C++ program calls GEANT library routines which transform the geometric information into ZEBRA data structures and create an RZ-file. 5.0 Implementation of he Class Library. EXPRESS is a data specification language. It allows the encapsulation of data, implement constraints and relationships among objects. In the EXPRESS language objects Applying STEP Principles to Product Models in High Energy Physics Research 7 of 14

Implementation of the Conversions are called entities. EXPRESS is not a programming language; it does not support input/ output elements, information processing etc. However, the EXPRESS language can be processed by a computer. With the assistance of the object diagrams we wrote the description of the GEANT 3.20 geometric representation in EXPRESS. All the geometric entities and the topology (i.e. relationships between geometric entities) of GEANT 3.20 have been expressed in an EXPRESS schema. By compiling the EXPRESS schema of the GEANT geometric representation, the corresponding class library is created. The Fed-X compiler is used to create C++ class definitions from EXPRESS schemas. The similarity between EXPRESS entities and C++ classes is shown in Figure 5. In addition to class definitions, Fed-X also creates methods to access attributes within the classes and data structures to store attributes. EXPRESS schema SCHEMA test;... ENTITY body_of_extrusion SUBTYPE OF (body); my_guide_line : line; my_face : face; END_ENTITY; END_SCHEMA; C++ class definition class SdaiBody_of_extrusion : public SdaiBody { protected: STEPentity * _my_guide_line ; STEPentity * _my_face ; public: SdaiBody_of_extrusion ( ); SdaiBody_of_ extrusion(sdaibody_of_extrusion& e ); ~SdaiBody_of_extrusion (); char *Name () { return Body_Of_Extrusion ; } int opcode () { return 24 ; } class SdaiLine * my_guide_line(); void my_guide_line (SdaiLine * x); class SdaiFace * my_face(); void my_face (SdaiFace * x); }; Figure 5 A C++ implementation of an EXPRESS schema 6.0 Implementation of the Conversions The NIST toolkit library includes the InstanceManager class which is a data structure manager not only to manipulate multiple instances of one set of class definitions (i.e. instances of one schema) but to manage multiple schemas as well. InstanceManager is a storage handler; it manages the object instances which are located somewhere in physical memory but belong to a specific class library. InstanceManager can either append, get, remove or find instances by name or index. 8 of 14 Applying STEP Principles to Product Models in High Energy Physics Research

Implementation of the Conversions The toolkit library includes the STEPfile class which implements the read and write operations to STEP physical files. By deriving an instance from this class, the corresponding InstanceManager and STEPfile can be linked together and file I/O can be implemented. At the code level the read and write operations are implemented by a single call to a member function of the STEPfile class. The toolkit has also routines to check the consistency and validity of the physical file during I/O operations. 6.1 Conversions from GEANT into the Class Library GEANT manages information via the ZEBRA memory management package. In GEANT 3.20 the geometric data is placed into two data structures: 1. shapes (SDL data structure); 2. volumes and their positioning information (JVOLUM data structure). SDL data consist of strings which are the arguments passed to shape creation subroutines. The strings are evaluated only when a corresponding call to volume creation routines is performed. Thus, the conversions of the GEANT geometric data must start from the JVOLUM data. When a volume is encountered, the corresponding shape (SDL data) is evaluated before creating the volume in the class library. The volume topology of GEANT detector models is determined by the mother-daughter relationships. A daughter volume is always placed inside a mother volume and they have links to each other. GEANT provides library routines to retrieve and store information in ZEBRA which is written in FORTRAN. Thus, the linking of C++ and FORTRAN had to be accomplished. 6.2 Conversions from the Class Library into GEANT GEANT detector models are created in three consecutive steps: 1. generating SDL calls (Shape Definition Language); 2. creating volumes by giving parameters to shapes; 3. positioning volumes. SDL is a language in GEANT 3.20 whereby new shapes are defined by the means of CSG. An example structure of a block (solid of extrusion) created by GEANT 3.20 is represented in the instance diagram shown in Figure 6. An SDL call for each entity can then be created from the SDL data of corresponding shape by using a postorder-tree traversal algorithm. The postorder-tree traversal algorithm is used since a shape is created starting from simple entities. This algorithm is easily implemented by using a virtual function [7] which always calls its components before creating its own SDL call. This function is then overridden in each class. A volume for GEANT is created using GEANT volume creation routines which assume that the corresponding shape has already been created. The dimensions and material are supplied as parameters. A special case called a divided volume can be created from an Applying STEP Principles to Product Models in High Energy Physics Research 9 of 14

Implementation of the Conversions existing volume by a call to division subroutines which divide the volume along a given axis into a specified number of slices. The volumes (excluding the global mother volume) are positioned inside a mother volume by specifying the mother volume, the coordinates within the mother volume and optionally a rotation matrix as parameters. A rotation matrix is used to rotate the volume in space. The volumes have a mother-daughter relationship. For example, when a block contains two other blocks and one of these two blocks contains two identical cylinders, the relations are as shown in the instance diagram in Figure 7. The volume My_cylinder is positioned twice inside My_block_2. Each item of positioning information contains links to mother and daughter volumes. Volumes have links to their daughters positioning data and to their own positioning data. Position and volume creation calls are performed in the following order: first creating the volume, then defining the possible rotation matrix and finally positioning the volume. (shape) My_shape_block (body_of_extrusion) My_body_of_extrusion 3 6 4 5 1 2 (line_of_entity) My_guide_line (face_of_closed_line) My_face (point) P1 (point) P2 (line_of_entity) My_close_line (point) (point) (point) (point) P3 P4 P5 P6 Figure 6 An example of constructing a block in GEANT 3.20 10 of 14 Applying STEP Principles to Product Models in High Energy Physics Research

Possible Applications for Detector Models (volume_normal) My_global_block (daughter) x 1,y 1,z 1 (daughter) x 2,y 2,z 2 (volume_normal) My_block_1 ( volume_normal) My_block_2 (daughter) x 3,y 3,z 3 (daughter) x 4,y 4,z 4 (volume_normal) My_cylinder Figure 7 The relationships between GEANT volumes 7.0 Possible Applications for Detector Models The program provides a framework to implement different applications. The program itself is capable to transfer detector models via STEP physical files which are written according GEANT schema. Different applications in order to manipulate or use GEANT detector models might be implemented within the program. For example, a detector model might be created from scratch and transferred to GEANT. Detector models might also be changed or they can be listed and checked. This kind of application could be easily implemented within the program. An application where graphical navigation through a detector model is possible could be implemented as well. Some existing STEP toolkits provide already these kinds of functions [14]. It is also possible to use the program for a geometry engine. A geometric modeler can make use of the instance handling routines, data structure and file I/O. The program can be used for implementing an interface between GEANT and CAD systems. This work is already under development at CERN. The interface application, Applying STEP Principles to Product Models in High Energy Physics Research 11 of 14

Conclusions called CADGE [15], will convert detector models between GEANT and CAD systems using STEP physical file as an exchange format. The conversions will be performed between GEANT and STEP Part 42 [16]. 8.0 Conclusions The design and implementation of a program where STEP principles were applied for detector models used by GEANT detector simulation program have been described. Possible applications which can profit from the program where discussed briefly. The program is linked with GEANT 3.16 since the version 3.20 is still under development. However, the both class libraries have been implemented. The conversions between GEANT and the class library are implemented for version 3.16 and only partly for version 3.20. GEANT 3.16 has 16 basic volume primitives (i.e. shapes) to describe detector models. The current version of the program runs on SunOS 4.1.3 and is compiled with g++ v 2.4.5. The implementation of the program was a part of the GEANT-CAD interface project. The program serves as a basis for the project. The interface is still under development and the prototype version is expected to be ready in the summer 1994. The work on GEANT is specific to the High Energy Physics community, but the problem of the transfer of large engineering products from one CAD package to another is general and it is receiving a great deal of attention in various standards committees. The exchange format to be used, STEP, is now an ISO standard. The GEANT-CAD interface project will result in a real application whose target is the integrated management of data concerning the detectors throughout their lifetime. Nevertheless the project will give experience in the transfer of information via STEP in a very demanding application domain. At a moment where use of computer-based tools in the design and simulation of complex systems in industry is expanding, smooth exchange of complex product data in a heterogeneous environment is of ever-increasing importance. 9.0 Acknowledgments We are grateful to our colleagues at European Laboratory for Particle Research (CERN) for their help. In particular we would like to thank Federico Carminati and Mik Ferran. We are also grateful to the staff of US National Institute of Standards and Technology (NIST) and many others for their help in this project. Financial support is acknowledged from the Finnish Ministry of Trade and Education, Institute of Particle Physics Technology (HTI) in Espoo, Finland and from the European Laboratory for Particle Physics (CERN) in Geneva, Switzerland. 12 of 14 Applying STEP Principles to Product Models in High Energy Physics Research

References 10.0 References [1] International Organization for Standardization: ISO 10303 Industrial Automation Systems and Integration - Product Data Representation and Exchange - Overview and Fundamental Principles (ISO TC 184/SC4, 1992) [2] Bradford M. Smith: The STEP Project (ISO bulletin, June 1992) [3] International Organization for Standardization: ISO 10303 Industrial Automation Systems and Integration - Product Data Representation and Exchange - Clear Text Encoding of the Exchange Structure (ISO TC 184/SC4, 1992) [4] International Organization for Standardization: ISO 10303 Industrial Automation Systems and Integration - Product Data Representation and Exchange - Description Methods: The EXPRESS Language Reference Manual (ISO TC 184/SC4, 1992) [5] R. Brun and F. Carminati: GEANT Detector Description and Simulation Tool (CERN Program Library, W5013, 1993) [6] J. Rumbaugh et. al.: Object-Oriented Modeling and Design (Prentice-Hall, Inc., 1991) [7] K. Weiskamp and B. Flaming: The Complete C++ Primer (Academic Press, Inc., 1992) [8] K.C. Morris, D. Sauder, S. Ressler: Validation Testing System: Reusable Software Component Design (National Institute of Standards and Technology, Gaithersburg, MD, NISTIR 4937, 1992) [9] J. Vuoskoski: The New Geometrical Modeller of GEANT 3.20 (1993, unpublished) [10] M. Mäntylä: An Introduction to Solid Modeling (Computer Science Press, 1988) [11] R. Brun, M. Goossens and J. Zoll: ZEBRA - Data Structure Management System (CERN Program Library, Q100, 1991) [12] K. Seetharaman, C. F. Rei, B. R. Montague: A C++ Binding for OSF/Motif (Univ. of Lowell, 1990) [13] Clark, S.N., Libes, D.: Fed-X: The NIST Express Translator (National Institute of Standards and Technology, Gaithersburg, MD, NISTIR 4822, 1992) [14] Peter R. Wilson: Processing Tools for EXPRESS (Rensselaer Polytechnic Institute, CII 7015, 1992) [15] J. Vuoskoski: CADGE - A Proposal for a General CAD-GEANT Interface Application (Helsinki University of Technology, Report TKK-F-A715, 1993) [16] International Organization for Standardization: ISO 10303 Industrial Automation Applying STEP Principles to Product Models in High Energy Physics Research 13 of 14

References Systems and Integration - Product Data Representation and Exchange - Geometric and Topological Representation (ISO TC 184/SC4, 1992) 14 of 14 Applying STEP Principles to Product Models in High Energy Physics Research