Use of ROOT in factory-floor event-driven simulation

From: Pierre Mai (dent@cs.tu-berlin.de)
Date: Fri Feb 20 1998 - 13:24:28 MET


Hi!

I'm currently evaluating the use of ROOT in our in-house simulation of
factory-floor and warehouse operations, and am looking for comments on
this type of application...

Background:
Plattforms:  Intel/Linux, Alpha/Linux, Alpha/Digital Unix

The simulation currently is partitioned into 3 areas:
- Simulation-engine itself, i.e. no graphics, analysis, etc.
  This consists of 3 processes (warehouse, disposition and
  assembly-lines) communicating via pipes.  Input and output data
  (some 100Mb) is in ASCII format.  They are implemented in
  C++ using some self-made utility classes, and basically flat
  inheritance..

- The animation/visualization GUI:  Tcl/Tk, which reads the ASCII
  files produced by the engine

- Manual and automatic analysis generation, via perl, some clever
  Makefiles, output in SGML(DocBook).

As the current version suffers from some design and implementation
faults, and has to be adapted to new requirements, a nearly total
rework is planned.

My current plan would be to use ROOT as the application framework for
all three areas, utilizing the utility classes/RNG and TTrees in the
engine, and using the GUI and rest of the framework in animation and
analysis generation (which would probably be folded into one
application)...

Would anybody like to comment on this, i.e. do you think this makes
sense, is appropriate, etc.?  Things I should look out for?

A more specific question that I have:

Given a warehouse, which is partitioned into different named locations
(which are fixed within one simulation run, but may differ between
different runs), I would want to write out the current state
(i.e. number and type of parts, etc. in each location/sublocation)
every time an event has influenced the warehouse.

Using TTrees for output, I can't quite make up my mind, which would be
the best way of arranging the different parts, such that I can simply:

- write out the whole warehouse-state for every event during simulation,
- select only one location, and graph the resulting levels of usage
for the whole duration...

It seems to me, that branches would be the way to do it, but all the
examples either use auto-branching of a fixed object-type
(e.g. Event), or create branches manually for things that are totally
different in number and name between events (e.g. Tracks).

It seems to me, that this is a simple problem to solve, and I'm just
missing something...

Any help, comments, etc. will be much appreciated...

TIA

Regs, Pierre.

-- 
Pierre Mai <dent@cs.tu-berlin.de>	http://home.pages.de/~trillian/
  "Such is life." -- Fiona in "Four Weddings and a Funeral" (UK/1994)



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:30 MET