Presentation is loading. Please wait.

Presentation is loading. Please wait.

ROOT Geometry PackageL1 The New ROOT Geometry Package ACAT2002 Moscow 24 June Ren é Brun, Andrei & Mihaela Gheata CERN.

Similar presentations


Presentation on theme: "ROOT Geometry PackageL1 The New ROOT Geometry Package ACAT2002 Moscow 24 June Ren é Brun, Andrei & Mihaela Gheata CERN."— Presentation transcript:

1

2 ROOT Geometry PackageL1 The New ROOT Geometry Package ACAT2002 Moscow 24 June Ren é Brun, Andrei & Mihaela Gheata CERN

3 ACAT2002ROOT Geometry Package2 Simulation tools Geant3 created in 1981 Still used by the majority of experiments Fluka State of the art for hadronics and neutron physics Geant4 A huge investment Slow penetration in experiments

4 ACAT2002ROOT Geometry Package3 Detector Geometry (way 1) Geant4 geometry Reconstruction program Simulation program Geant4-based XML files C++ classes MySQL Visualisation

5 ACAT2002ROOT Geometry Package4 The Virtual MonteCarlo DAQ Online TVirtualMC Geant3 Fluka Geant4 KinematicsGeometry Hits, Digits This strategy facilitates migration or comparisons with a common input and a common output Geant3.tar.gz includes an upgraded Geant3 with a C++ interface Geant4_mc.tar.gz includes the TVirtualMC Geant4 interface classes For example AliRoot in Alice

6 ACAT2002ROOT Geometry Package5 Virtual MC example (with G3) { // Load basic libraries gSystem->Load("libPhysics"); gSystem->Load("libMC"); gSystem->Load("$(MCINSTALL)/lib/Linux-g++/libexample01"); // Load Geant3 libraries // … skipped // MC application Ex01MCApplication* appl = new Ex01MCApplication("Example01", "The example01 MC application"); appl->InitMC("g3Config.C"); appl->RunMC(1); } void Config() g3Config.C { cout << "Create geant3" << endl; new TGeant3("C++ Interface to Geant3"); }

7 ACAT2002ROOT Geometry Package6 Virtual MC example (with G4) { // Load basic libraries gSystem->Load("libPhysics"); gSystem->Load("libMC"); gSystem->Load("$(MCINSTALL)/lib/Linux-g++/libexample01"); // Load Geant4 libraries // … skipped // MC application Ex01MCApplication* appl = new Ex01MCApplication("Example01", "The example01 MC application"); appl->InitMC("g4Config.C"); appl->RunMC(1); } void Config() { g4Config.C // RunConfiguration for Geant4 TG4RunConfiguration* runConfiguration = new TG4RunConfiguration(); // TGeant4 new TGeant4("TGeant4", "The Geant4 Monte Carlo", runConfiguration); }

8 ACAT2002ROOT Geometry Package7 Detector Geometry (way 2) Geometry package Reconstruction program Simulation program Geant3-based Geant4-based Fluka-based C++ classes MySQL Visualisation Modelling Visualisation Interactivity Where am I? Distance to boundary Closest boundary Persistency

9 ACAT2002ROOT Geometry Package8 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

10 ACAT2002ROOT Geometry Package9 The TGeo classes in html http://pcbrun.cern.ch/geo/ClassIndex.html

11 ACAT2002ROOT Geometry Package10 TGeoManager

12 ACAT2002ROOT Geometry Package11 TGeoShape

13 ACAT2002ROOT Geometry Package12 TGeoVolume

14 ACAT2002ROOT Geometry Package13 TGeoNode

15 ACAT2002ROOT Geometry Package14 Example

16 ACAT2002ROOT Geometry Package15 Automatic conversion from Geant3 Zebra memory Data structure JVOLUM JMATE,etc Geant > RZ/File 21 mygeom.geom on Zebra RZ mygeom.geom g2root mygeom.geom mygeom.C 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); mat = new TGeoMaterial("mat11","COPPER",63.54,29,8.96); Root >.x mygeom.C Mygeom.c

17 ACAT2002ROOT Geometry Package16 Example : gexam1 void gexam1() { TGeoMaterial *mat; TGeoMixture *mix; TGeoManager *gexam1; 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); 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->DefineElement(0,208.98,83,0.6710563); mix->DefineElement(1,72.59,32,0.1748205); mix->DefineElement(2,15.999,8,0.1541233); mix = new TGeoMixture("mix22","LEAD GLASS",6); mix->DefineElement(0,207.19,82,0.65994); mix->DefineElement(1,39.102,19,0.7990000E-02); mix->DefineElement(2,28.088,14,0.126676); mix->DefineElement(3,22.99,11,0.4007300E-02); mix->DefineElement(4,15.999,8,0.199281); mix->DefineElement(5,74.922,33,0.2004850E-02); //-----------List of Volumes-------------- TGeoVolume *ECAL ; ECAL = gexam1-> MakeTube("ECAL","mat15",0,5.898013,12.35774); LEAK = gexam1->MakeTube("LEAK","mat15",0,5.898013,0.5617155); LATR = gexam1->MakeTube("LATR","mat15",5.617156,5.813,11.23); BLOC = gexam1->MakeTube("BLOC","mix21",0,5.617156,11.23431); //-----------List of Nodes-------------- gexam1->SetTopVolume(ECAL); ECAL->AddNode(LEAK,1,new TGeoTranslation(0,0,-11.79603)); ECAL->AddNode(LEAK,2,new TGeoTranslation(0,0,11.79603)); ECAL->AddNode(LATR,1,gGeoIdentity); ECAL->AddNode(BLOC,1,gGeoIdentity); TGeoVolume *RTUB = BLOC->Divide("RTUB",1,20,0,0.2808578); TGeoVolume *RING = RTUB->Divide("RING",3,20,-11.31,1.131); gexam1->CloseGeometry(); } gexam1.C code generated automatically by g2root

18 ACAT2002ROOT Geometry Package17 Brahms 2649 nodes

19 ACAT2002ROOT Geometry Package18 CMS 1.3 million nodes

20 ACAT2002ROOT Geometry Package19 Atlas 29 million nodes

21 ACAT2002ROOT Geometry Package20 Atlas

22 ACAT2002ROOT Geometry Package21 Atlas

23 ACAT2002ROOT Geometry Package22 Alice

24 ACAT2002ROOT Geometry Package23 Alice 3 million nodes

25 ACAT2002ROOT Geometry Package24 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

26 ACAT2002ROOT Geometry Package25 BteV

27 ACAT2002ROOT Geometry Package26 Validation Procedure Use one million points generated by Geant3. Compare G3 path vs TGeo found path (pictures for a CDF event)

28 ACAT2002ROOT Geometry Package27 Validation Procedure Using points generated by Geant3 applications grecord.f --> 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)

29 ACAT2002ROOT Geometry Package28 Validation Procedure Differences 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.

30 ACAT2002ROOT Geometry Package29 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.

31 ACAT2002ROOT Geometry Package30 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.

32 ACAT2002ROOT Geometry Package31 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

33 ACAT2002ROOT Geometry Package32 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


Download ppt "ROOT Geometry PackageL1 The New ROOT Geometry Package ACAT2002 Moscow 24 June Ren é Brun, Andrei & Mihaela Gheata CERN."

Similar presentations


Ads by Google