The New ROOT Geometry Package - PowerPoint PPT Presentation

1 / 32
About This Presentation
Title:

The New ROOT Geometry Package

Description:

Brahms. 2649 nodes. ACAT2002. ROOT Geometry Package. 18. CMS. 1.3 ... Brahms 2649 5.82 3.04 1.91 4.17 1.93 2.16. Tesla 15370 6.56 5.58 1.17 12.95 7.15 1.81 ... – PowerPoint PPT presentation

Number of Views:47
Avg rating:3.0/5.0
Slides: 33
Provided by: fons86
Category:
Tags: root | brahms | geometry | new | package

less

Transcript and Presenter's Notes

Title: The New ROOT Geometry Package


1
The New ROOTGeometry Package
  • ACAT2002
  • Moscow 24 June
  • René Brun, Andrei Mihaela Gheata
  • CERN

2
Simulation tools
Geant3 created in 1981 Still used by the
majority of experiments
Geant4 A huge investment Slow penetration in
experiments
Fluka State of the art for hadronics and neutron
physics
3
Detector Geometry (way 1)
Simulation program Geant4-based
C classes
Geant4 geometry
Visualisation
XML files
Reconstruction program
MySQL
4
The Virtual MonteCarlo
For example AliRoot in Alice
DAQ Online
This strategy facilitates migration or
comparisons with a common input and a common
output
Geant3
Kinematics
Geometry
Geant4
Fluka
TVirtualMC
Geant3.tar.gz includes an upgraded Geant3 with a
C interface
Hits, Digits
Geant4_mc.tar.gz includes the TVirtualMC
lt--gtGeant4 interface classes
5
Virtual MC example (with G3)
// Load basic libraries gSystem-gtLoad("libPhy
sics") gSystem-gtLoad("libMC")
gSystem-gtLoad("(MCINSTALL)/lib/Linux-g/libexamp
le01") // Load Geant3 libraries //
skipped // MC application Ex01MCApplication
appl new Ex01MCApplication("Example01",
"The example01 MC application")
appl-gtInitMC("g3Config.C") appl-gtRunMC(1)
void Config()

g3Config.C cout ltlt "Create geant3" ltlt endl
new TGeant3("C Interface to Geant3")
6
Virtual MC example (with G4)
// Load basic libraries gSystem-gtLoad("libPhy
sics") gSystem-gtLoad("libMC")
gSystem-gtLoad("(MCINSTALL)/lib/Linux-g/libexamp
le01") // Load Geant4 libraries //
skipped // MC application Ex01MCApplication
appl new Ex01MCApplication("Example01",
"The example01 MC application")
appl-gtInitMC("g4Config.C") appl-gtRunMC(1)
void Config()

g4Config.C // RunConfiguration for Geant4
TG4RunConfiguration runConfiguration new
TG4RunConfiguration() // TGeant4 new
TGeant4("TGeant4", "The Geant4 Monte Carlo",
runConfiguration)
7
Detector Geometry (way 2)
Modelling Visualisation Interactivity Where am
I? Distance to boundary Closest
boundary Persistency
Simulation program Geant3-based Geant4-based Fluka
-based
C classes
Geometry package
MySQL
Reconstruction program
Visualisation
8
The new ROOT Geometry package
  • Was the request Nr 1 at ROOT FNAL workshop in
    June 2001
  • The package is being developed in collaboration
    with Alice (Andrei Mihaela Gheata)
  • Alpha release in July
  • faster than Geant3
  • Import from Geant3 (eg 4 LHC detectors)
  • Interfaces to Geant3,4, Fluka in view
  • Demos on request

9
The TGeo classes in htmlhttp//pcbrun.cern.ch/geo
/ClassIndex.html
10
TGeoManager
11
TGeoShape
12
TGeoVolume
13
TGeoNode
14
Example
15
Automatic conversion from Geant3
Zebra memory Data structure JVOLUM JMATE,etc
Root gt .x mygeom.C
Mygeom.c
void gexam1() TGeoMaterial mat TGeoMixture
mix TGeoManager gexam1 new
TGeoManager("gexam1","gexam1.C") //-----------Li
st of Materials and Mixtures-------------- mat
new TGeoMaterial("mat9","ALUMINIUM",26.98,13,2.7)
mix new TGeoMixture("mix10","IRON(COMPOUND)",3)
mix-gtDefineElement(0,55.847,26,0.703964)
mix-gtDefineElement(1,58.71,28,0.9900000E-01)
mix-gtDefineElement(2,51.998,24,0.197) mat new
TGeoMaterial("mat11","COPPER",63.54,29,8.96)
Geant gt RZ/File 21 mygeom.geom on
Zebra RZ mygeom.geom
g2root mygeom.geom mygeom.C
16
Example gexam1
//-----------List of Volumes-------------- TGeoV
olume ECAL ECAL gexam1-gt MakeTube("ECAL","mat
15",0,5.898013,12.35774) LEAK
gexam1-gtMakeTube("LEAK","mat15",0,5.898013,0.56171
55) LATR gexam1-gtMakeTube("LATR","mat15",5.6171
56,5.813,11.23) BLOC gexam1-gtMakeTube("BLOC","m
ix21",0,5.617156,11.23431) //-----------List of
Nodes-------------- gexam1-gtSetTopVolume(ECAL)
ECAL-gtAddNode(LEAK,1,new TGeoTranslation(0,0,-11.7
9603)) ECAL-gtAddNode(LEAK,2,new
TGeoTranslation(0,0,11.79603))
ECAL-gtAddNode(LATR,1,gGeoIdentity)
ECAL-gtAddNode(BLOC,1,gGeoIdentity) TGeoVolume
RTUB BLOC-gtDivide("RTUB",1,20,0,0.2808578)
TGeoVolume RING RTUB-gtDivide("RING",3,20,-11.31
,1.131) gexam1-gtCloseGeometry()
void gexam1() TGeoMaterial mat TGeoMixture
mix TGeoManager gexam1 gexam1 new
TGeoManager("gexam1","gexam1.C") //-----------Li
st of Materials and Mixtures-------------- mat
new TGeoMaterial("mat9","ALUMINIUM",26.98,13,2.7)
mix new TGeoMixture("mix10","IRON(COMPOUND)",3)
mix-gtDefineElement(0,55.847,26,0.703964)
mix-gtDefineElement(1,58.71,28,0.9900000E-01)
mix-gtDefineElement(2,51.998,24,0.197) mat new
TGeoMaterial("mat11","COPPER",63.54,29,8.96) mat
new TGeoMaterial("mat13","LEAD",207.19,82,11.35)
mat new TGeoMaterial("mat14","URANIUM",238.03,
92,18.95) mat new TGeoMaterial("mat15","AIR",14
.61,7.3,0.1205E-02) mat new TGeoMaterial("mat16
","VACUUM",0,0,0) mix new TGeoMixture("mix21","
BGO(COMPOUND)",3) mix-gtDefineElement(0,208.98,8
3,0.6710563) mix-gtDefineElement(1,72.59,32,0.17
48205) mix-gtDefineElement(2,15.999,8,0.1541233)
mix new TGeoMixture("mix22","LEAD GLASS",6)
mix-gtDefineElement(0,207.19,82,0.65994)
mix-gtDefineElement(1,39.102,19,0.7990000E-02)
mix-gtDefineElement(2,28.088,14,0.126676)
mix-gtDefineElement(3,22.99,11,0.4007300E-02)
mix-gtDefineElement(4,15.999,8,0.199281)
mix-gtDefineElement(5,74.922,33,0.2004850E-02)
gexam1.C code generated automatically by g2root
17
Brahms
2649 nodes
18
CMS
1.3 million nodes
19
Atlas
29 million nodes
20
Atlas
21
Atlas
22
Alice
23
Alice
3 million nodes
24
TGeo performance vs Geant3
Number gtmedi Root
Geant3/ gtmedi Root Geant3/
nodes physics physics Root random random
Root Gexam1 425 3.08 1.84 1.67
6.60 4.39 1.50 Gexam3 86
2.87 2.15 1.33 3.47 2.50
1.38 Gexam4 12781 2.51 2.20 1.14
12.09 11.18 1.08 Brahms 2649
5.82 3.04 1.91 4.17 1.93
2.16 Tesla 15370 6.56 5.58 1.17
12.95 7.15 1.81 CDF 24422
14.81 4.31 3.43 20.94 5.85
3.57 Minos_near 30988 30.93 20.99 1.47
21.57 13.70 1.57 BTeVEcal 52
1.57 1.08 1.45 1.78 0.73
2.43 BTeV 295310 45.27 25.88 1.75
197.06 26.83 7.34 CMSEcal 251713
5.60 1.81 3.09 5.69 1.74 3.27 CMS
1166310 33.57 8.76 3.83 39.09
24.98 1.56 LHCb 1533488 7.98
6.75 1.18 12.58 2.89 4.35 Alice
3080198 11.50 8.63 1.33 11.45 7.28
1.57 Atlas 29046966 8.90 9.94
0.89 32.48 23.39 1.38
25
BteV
26
Validation Procedure
Use one million points generated by
Geant3. Compare G3 path vs TGeo found path
(pictures for a CDF event)
27
Validation Procedure
  • Using points generated by Geant3 applications
  • grecord.f --gt mygeom.geom, mygeom.hbook
  • Play-back these points in Geant3 using only the
    Geant3 geometry package. Compute g3path, snext,
    safety in myresults.hbook
  • h2root myresults.hbook myresults.root
  • Same operation with TGeo classes. Compare g3path
    with tgeopath, same for snext, safety
  • Some discrepancies with Geant3 (see next)

28
Validation ProcedureDifferences Geant3 TGeo
  • Due to precision problems in Geant3, points
    recorded at the volume boundaries may be found on
    the other side by TGeo.
  • When volumes declared MANY in Geant3 overlap and
    have sub-volumes also MANY, Geant3 is not always
    reporting the right answer. In general it does
    not matter, sometimes it does.
  • In this exercise, we also found original errors
    in the detector description, eg wrong parameters.

29
Status of the implementation - test of gtnext
  • Visualization - best tool for checking the
    algorithms
  • The "width" of the boundaries due to floating
    point limitations was determined for some shapes
  • This diffusion effect is crucial for fixing
    stepping actions in order to trigger expected
    inside/ouside response of the modeler
  • The diffusion was defined as the distance between
    extrapolated point from step and closest point
    that changes this in/out response.

30
Status of the implementation
  • Geant3 geometries - almost fully mapped (still
    not supporting multiple positioning for volumes
    having shapes with negative parameters which then
    are divided - quite seldom topology)
  • "Where am I ?" - fully implemented
  • Tested on a dozen of geometries, including all 4
    LHC experiments
  • Performance w.r.t GEANT3 - OK. The average gain
    factor 1.5-2.0 , increasing for flat-like
    geometries
  • Consistency vs. GEANT3 response reasonable
    still few differences, but fully understood
  • Still scope for increasing speed, specially for
    cylindrical symmetries, where the current
    voxelization algorithm is not efficient enough.

31
Status of the implementation - gtnext
  • "Which is the next crossed boundary ?" - about
    80 implemented, still a couple of weeks to work
    on it.
  • Algorithms per shape improved w.r.t G3 for some
    shapes
  • New functionalities added normals to surfaces
    at crossing points, accurate distance to closest
    node, direction vector to closest point
  • Features for stepping added flags for entering
    and exiting

32
Summary
  • The new Geometry Package looks very promising.
  • We have been able to model all existing large
    detectors.
  • Performance is better than Geant3.
  • We are planing to interface it via TVirtualMC to
    Geant3, Geant4 and Fluka.
  • Alpha release with ROOT version 3.03/07
Write a Comment
User Comments (0)
About PowerShow.com