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