+ All Categories
Home > Documents > The New ROOT Geometry Package

The New ROOT Geometry Package

Date post: 17-Jan-2016
Category:
Upload: adsila
View: 31 times
Download: 0 times
Share this document with a friend
Description:
The New ROOT Geometry Package. ACAT2002 Moscow 24 June Ren é Brun, Andrei & Mihaela Gheata CERN. 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 - PowerPoint PPT Presentation
Popular Tags:
32
ROOT Geometry PackageL 1 The New ROOT Geometry Package ACAT2002 Moscow 24 June René Brun, Andrei & Mihaela Gheata CERN
Transcript
Page 1: The New ROOT Geometry Package

ROOT Geometry PackageL 1

The New ROOTGeometry Package

ACAT2002Moscow 24 June

René Brun, Andrei & Mihaela Gheata

CERN

Page 2: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 2

Simulation tools

Geant3created in 1981

Still used bythe majority

of experiments

FlukaState of the artfor hadronics

and neutron physics

Geant4A huge investment

Slow penetrationin experiments

Page 3: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 3

Detector Geometry (way 1)

Geant4geometry

Reconstructionprogram

Simulationprogram

Geant4-based

XMLfiles

C++classes

MySQL

Visualisation

Page 4: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 4

The Virtual MonteCarlo

DAQ

Online

TVirtualMC

Geant3

Fluka

Geant4Kinematics Geometry

Hits, Digits

This strategy facilitates

migration or comparisons

with a common input

and a common output

Geant3.tar.gz includesan upgraded Geant3

with a C++ interface

Geant4_mc.tar.gz includesthe TVirtualMC <-->Geant4

interface classes

For exampleAliRootin Alice

Page 5: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 5

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");}

Page 6: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 6

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);}

Page 7: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 7

Detector Geometry (way 2)

Geometrypackage

Reconstructionprogram

Simulationprogram

Geant3-basedGeant4-basedFluka-based

C++classes

MySQL

Visualisation

Modelling

Visualisation

Interactivity

Where am I?

Distance to boundary

Closest boundary

Persistency

Page 8: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 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

Page 9: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 9

The TGeo classes in htmlhttp://pcbrun.cern.ch/geo/ClassIndex.html

Page 10: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 10

TGeoManager

Page 11: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 11

TGeoShape

Page 12: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 12

TGeoVolume

Page 13: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 13

TGeoNode

Page 14: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 14

Example

Page 15: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 15

Automatic conversion from Geant3

Zebra memoryData structure

JVOLUMJMATE,etc

Geant > RZ/File 21 mygeom.geom on

Zebra RZmygeom.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

Page 16: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 16

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 codegenerated automatically

by g2root

Page 17: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 17

Brahms2649 nodes

Page 18: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 18

CMS

1.3 million nodes

Page 19: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 19

Atlas 29 million nodes

Page 20: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 20

Atlas

Page 21: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 21

Atlas

Page 22: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 22

Alice

Page 23: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 23

Alice 3 million nodes

Page 24: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 24

TGeo performance vs Geant3

Number gtmedi Root Geant3/ gtmedi Root Geant3/ nodes physics physics Root random random RootGexam1 425 3.08 1.84 1.67 6.60 4.39 1.50Gexam3 86 2.87 2.15 1.33 3.47 2.50 1.38Gexam4 12781 2.51 2.20 1.14 12.09 11.18 1.08Brahms 2649 5.82 3.04 1.91 4.17 1.93 2.16Tesla 15370 6.56 5.58 1.17 12.95 7.15 1.81CDF 24422 14.81 4.31 3.43 20.94 5.85 3.57Minos_near 30988 30.93 20.99 1.47 21.57 13.70 1.57BTeVEcal 52 1.57 1.08 1.45 1.78 0.73 2.43BTeV 295310 45.27 25.88 1.75 197.06 26.83 7.34CMSEcal 251713 5.60 1.81 3.09 5.69 1.74 3.27CMS 1166310 33.57 8.76 3.83 39.09 24.98 1.56LHCb 1533488 7.98 6.75 1.18 12.58 2.89 4.35Alice 3080198 11.50 8.63 1.33 11.45 7.28 1.57Atlas 29046966 8.90 9.94 0.89 32.48 23.39 1.38

Page 25: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 25

BteV

Page 26: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 26

Validation Procedure

Use one million points generated by Geant3.

Compare G3 path vs TGeo found path (pictures for a CDF event)

Page 27: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 27

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)

Page 28: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 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.

Page 29: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 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.

Page 30: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 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.

Page 31: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 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

SHAPE BOX PARA TUBE TUBS CONE CONS SPHEREFROM INFROM OUT

SHAPE TRD1 TRD2 TRAP GTRA CTUB PCON PGONFROM INFROM OUT

ALGO. GLOBAL VOXELS DIVISIONS"MANY"

Page 32: The New ROOT Geometry Package

ACAT2002 ROOT Geometry Package 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


Recommended