140 likes | 306 Views
A Geometrical Modeller for HEP. René Brun, Andrei Gheata, Mihaela Gheata. General introduction. Intended as a toolkit to provide geometrical description of an experiment, full navigation functionality and additional tools to ease-up building, checking and debugging a geometry.
E N D
A Geometrical Modeller for HEP René Brun, Andrei Gheata, Mihaela Gheata CHEP03
General introduction • Intended as a toolkit to provide geometrical description of an experiment, full navigation functionality and additional tools to ease-up building, checking and debugging a geometry. • Its development is a common ALICE/ ROOT effort that started 1.5 years ago. • Driven by ALICE specific needs related to the simulation/ reconstruction framework, it is however designed as an experiment-independent package. • This component is being integrated in a general Virtual Monte Carlo scheme enabling running transparently several simulation MC’s starting from the same user code (see talk of Ivana Hrivnacova) and using the same geometry. • Based on a GEANT-like architecture, it is able to map and confirmed to optimize the geometry performance of several HEP experiments. The gain in speed for navigation tasks ranges from 20% (ATLAS) to 800% (CDF) compared to G3 CHEP03
Handling so many geometries in a single • framework can be painful ... Simulation program Geant3-based Geant4-based Fluka-based Other geometries... G3 geometry Monitoring C++ classes G4 geometry Geometry package FLUKA geometry Geometry, Calibration, Alignment DB Geometry, Calibration, Alignment DB Reconstruction program Visualization Event display Reconstruction geometry Why a new geometrical modeller • The idea would be to be able to provide a unique geometry description CHEP03
Design overview • Based on some initial requirements • Provide basic navigation features : “Where am I?”, “How far from next boundary ?”, … • Map Geant3 geometries -> smooth transition • Scalability : we deal with big geometries • Performance : it rather be faster than existing modelers • Interactivity : should be at highest possible level - users should easily build, access and debug their geometry • GEANT-like flavor (CSG based on container-contained concept) • main elements : volumes and nodes • Extensible set of 16 primitives + composite (boolean) + parametrized shapes + support for “MANY” concept • Volumetric pixelized navigation • Make use of symmetries - divisions • Geometry checking interactive tool CHEP03
Navigation features • These make the difference between a geometrical modeller and a transient store providing geometrical input for other applications. • Long way from implementing to validating/optimizing/ tuning these features => took most of the time • Luckily we had a gold mine of G3 geometries to test upon. • ''Where am I ?'' =>up to 2000% performance gain compared to GEANT3 • Computing the distance to next boundary =>up to 800% gain; • Safety =>computed when needed • Normals to crossed surfaces =>on demand(ongoing work) CHEP03
Mygeom.C Root > .x mygeom.C Zebra memory Data structure JVOLUM JMATE,etc void gexam1() {TGeoMaterial *mat; TGeoMixture *mix; TGeoManager *gexam1 = new TGeoManager("gexam1", "gexam1.C"); //-----------List of Materials and Mixtures-------------- mat = new TGeoMaterial("mat9","ALUMINIUM", 26.98,13,2.7); mix = new TGeoMixture("mix10","IRON(COMPOUND)“ ,3); mix->DefineElement(0,55.847,26,0.703964); mix->DefineElement(1,58.71,28,0.9900000E-01); mix->DefineElement(2,51.998,24,0.197); Geant > RZ/File 21 mygeom.geom on Zebra RZ mygeom.geom g2root mygeom.geom mygeom.C Automatic conversion from G3 CHEP03
Used one million points generated by Geant3 with full physics switched on Collecting samples & validation CHEP03
Benchmarks & performance for “Where am I?” vs. GEANT3 CHEP03
User interface & other features • Quite simple API : Material(), Volume(), Node(), Division(), … managed by a single class. • Browsable geometry with functionality in the context menus : ray-tracing, lego plots, weight estimation, geometry checking tool, … • Perspective geometry viewing allowing picking, zooming, animation. • ROOT I/O – size of geometry and time to load are very important during geometry design/testing CHEP03
Detected Not detected Geometry checker • It has to be able to check (in reasonable time) for illegal extrusions/overlaps in the geometry definition. • Extrusions • Overlaps Detected Not detected No error-free geometry found…(up to 20K > 1mm) CHEP03
Geant3.tar.gz includes an upgraded Geant3 with a C++ interface Geant4_mc.tar.gz includes the TVirtualMC <--> Geant4 interface classes G3 G3 transport VMC G4 G4 transport FLUKA transport FLUKA Virtual Geometrical Modeller Geometrical Modeller Visualisation Reconstruction The Virtual MC integration • Allows running several MC's starting from the same code and having the same geometry for simulation, reconstruction and event display User code CHEP03
Conclusions • A new geometrical modeller able to represent a large number of HEP experiments is being developed by ALICE and ROOT teams. • This will provide an unique representation of ALICE geometry and will allow running transparently several MC’s starting from the same user-code. • Performance was the highest priority during the development and this is reflected by the benchmarks. • The code is available in ROOT and we welcome everybody to use it ! CHEP03
Benchmarks & performance for “distance to next” vs. G3 CHEP03