New Developments in GDML and in Generator Services

  • Slides: 39
Download presentation
New Developments in GDML and in Generator Services Ben Lloyd University of the West

New Developments in GDML and in Generator Services Ben Lloyd University of the West of England, Bristol, UK 11. 04. 2007 Ben Lloyd 1

Outline What have I been working on all year? • GDML • Geant 4

Outline What have I been working on all year? • GDML • Geant 4 Binding to GDML • ROOT Binding to GDML • GDML Main Package Updates • Generator Services subproject Ben Lloyd 2

GDML Ben Lloyd 3

GDML Ben Lloyd 3

What is GDML? • Geometry Description Markup Language “Providing a means to share Geometry

What is GDML? • Geometry Description Markup Language “Providing a means to share Geometry Information among applications” • XML is used to provide: - Ben Lloyd An application independent format Also architecture & platform independent Extensible and Modular friendly The ability to use standard I/O to read/write GDML Easy to edit GDML files 4

GDML Currently. . Geant 4 GDML ROOT G 4 Box box = new G

GDML Currently. . Geant 4 GDML ROOT G 4 Box box = new G 4 Box; TGeo. BBox box = new TGeo. BBox; G 4 Physical. Volume = … TGeo. Volume = … … … ile F L M GD GDML Currently has good bindings to Geant 4 and ROOT. Allowing import or export of GDML to/from these formats. Ben Lloyd 5

Geant 4 Binding to GDML Ben Lloyd 6

Geant 4 Binding to GDML Ben Lloyd 6

Supported Solids The final solids supported by Geant 4 were added to the GDML

Supported Solids The final solids supported by Geant 4 were added to the GDML <-> Geant 4 Binding. . This process consists of: • Add solid to GDML Schema • Adding Subscribers to read/convert GDML to Geant 4 objects • Adding G 4 Processors to read Geant 4 code and convert to GDML Ben Lloyd 7

Auxiliary Tag The auxiliary tag in GDML is there to carry information inside GDML

Auxiliary Tag The auxiliary tag in GDML is there to carry information inside GDML volumes that is not widely supported. Information such as… • Sensitive Detector Information • Geometry colours An ‘aux pair’ consists of the type and value: <auxiliary auxtype="Sens. Det" auxvalue="velo. SD 1"/> Ben Lloyd 8

Auxiliary Tag This sits within a GDML volume like so: <volume name="World" > <materialref

Auxiliary Tag This sits within a GDML volume like so: <volume name="World" > <materialref ref="Air" /> <solidref ref="Box" /> <physvol> <volumeref ref="Boxvol" /> <positionref ref="R" /> <rotationref ref="V" /> </physvol> <auxiliary auxtype="Sens. Det" auxvalue="velo. SD 1"/> </volume> You can use the auxiliary tag as many times as you like in a volume. The <auxiliary/> tag was in the schema but user had no access to it. Ben Lloyd 9

Auxiliary Tag map < G 4 Logical. Volume*, vector<pair<string, string>> > • The above

Auxiliary Tag map < G 4 Logical. Volume*, vector<pair<string, string>> > • The above map is populated during import of a GDML file. • The current volume’s pointer is used as the key • Each volume has a vector of aux pairs GDMLProcessor: : Auxiliary. Pairs. Map* Get. Auxiliary. Map(); vector<pair<string, string>>* Get. Aux. Vector(G 4 Logical. Volume* auxvol); Ben Lloyd 10

Definition of Rotations GDML allows the definition of a position (x, y, z) and

Definition of Rotations GDML allows the definition of a position (x, y, z) and also it’s rotation. A rotation is also defined using x, y and z. Natively these values are resolved from a 3 x 3 matrix. I am currently extending GDML to allow the definition of a rotation through a 3 x 3 matrix. Ben Lloyd 11

Definition of Rotations This was previously restricted to: <rotation name=“oldrot” x=“ 0. 5” y=“-1”

Definition of Rotations This was previously restricted to: <rotation name=“oldrot” x=“ 0. 5” y=“-1” z=“ 1” unit=“rad”/> Soon to be available in addition to above… As matrices can already be defined independently, the author will be able to directly reference to a previously defined 3 x 3 matrix: <rotation name=“newrot 1”> <matrixref ref=“old_matrix”/> </rotation> Also the ability to directly define a new 3 x 3 matrix within the rotation definition: <rotation name=“newrot 2” unit=“rad”> <matrix name=“new_matrix” xx=“-1” xy=“ 1” xz=“ 1” yx=“ 1” yy=“-1” yz=“ 1” zx=“ 1” zy=“ 1” zz=“-1” /> </rotation> Ben Lloyd 12

GDML Installation Previously the GDML package did not guide you through installation. It had:

GDML Installation Previously the GDML package did not guide you through installation. It had: • Default script in CVS for CERN installation: • User to modify by hand configure switches in this script • Somewhat unclear to the user what switches they could & couldn’t change • For external installation, the script would need to be completely modified Ben Lloyd 13

GDML Installation A New script was created to collect information from the user including

GDML Installation A New script was created to collect information from the user including path’s to dependencies, enable features etc. By running the script, it will do the following: • Requests user input (paths, options etc) • Creates My. Configure. (c)sh from this - This can be used in the future for clean installation • Runs My. Configure. (c)sh • Issues make install (if required) Installation Complete! Ben Lloyd 14

GDML Installation Preview of script. . Ben Lloyd 15

GDML Installation Preview of script. . Ben Lloyd 15

GDML Manual • Previous revision barely existed, had not even been published. • New

GDML Manual • Previous revision barely existed, had not even been published. • New Manual now represents GDML Package in its entirety. Small contributions from other authors. • Now available from http: //cern. ch/gdml Ben Lloyd 16

Current Status of GDML <-> G 4 • Installation of GDML in one easy

Current Status of GDML <-> G 4 • Installation of GDML in one easy step • ALL G 4 Solids now supported and implemented • Auxiliary information accessible • Definition of volume/geometry rotations through matrices • GDML Manual now up-to-date and accessible Ben Lloyd 17

What’s Next for G 4<->GDML Xerses. C Geant 4 Installation GDML Common GDML Package

What’s Next for G 4<->GDML Xerses. C Geant 4 Installation GDML Common GDML Package • Remove G 4 Binding from GDMLGeant 4 Installation • Fully integrate GDML <-> G 4 bind in Geant 4 Binding • Make GDML Package stand-alone Ben Lloyd 18

ROOT Binding to GDML Ben Lloyd 19

ROOT Binding to GDML Ben Lloyd 19

ROOT -> GDML The ROOT to GDML binding is implemented in python. Converts geometry

ROOT -> GDML The ROOT to GDML binding is implemented in python. Converts geometry imported into ROOT into GDML and outputs a GDML file. Was found to be incredibly slow. An optimisation of the python code done by Daniele Kruse (summer student) and myself reduced export times significantly. Example Times: ATLAS: 255 sec (previously 4707 sec) LHCb: 12 sec (previously 15 sec) ALICE: 129 sec (previously 620 sec) Times will vary with machine performance. All other detectors showing similar results, reductions not consistent based on detector geometries being structured differently Ben Lloyd 20

ROOT -> GDML’s export from ROOT has been extended to now support… • Assembly

ROOT -> GDML’s export from ROOT has been extended to now support… • Assembly Volumes • Division Volumes • Reflected Volumes • All ROOT solids Ben Lloyd 21

GDML -> ROOT Originally implemented in Python. No optimisation could resolve the fact that

GDML -> ROOT Originally implemented in Python. No optimisation could resolve the fact that to import GDML to ROOT was too SLOW! Completely re-developed from scratch in C++. Fully integrated into ROOT as GDML library. Ben Lloyd 22

GDML -> ROOT • Before building ROOT use: . /configure --enable-gdml • To import

GDML -> ROOT • Before building ROOT use: . /configure --enable-gdml • To import a GDML file to ROOT root [0] TGeo. Manager: : Import(“test. root”) root [1] TGeo. Manager: : Import(“test. gdml”) Ben Lloyd 23

GDML-> ROOT Using ROOT’s built in viewer, here is CMS after being imported from

GDML-> ROOT Using ROOT’s built in viewer, here is CMS after being imported from a GDML file using the new GDML Importer… Ben Lloyd 24

GDML -> ROOT • On completion of the import the GDML geometry will be

GDML -> ROOT • On completion of the import the GDML geometry will be fully converted into ROOT format and in memory. • Excellent improvements on import time also seen here. Example Times: CMS: 27 sec (previously 390 sec) LHCb: 6 sec (previously 37 sec) ATLAS: 103 sec (previously ~1900 sec) BABAR: 17 sec (previously 102 sec) As with the Export, same reasons apply for inconsistency. Ben Lloyd 25

Current Status of GDML <-> ROOT • GDML Export optimised and remains as a

Current Status of GDML <-> ROOT • GDML Export optimised and remains as a Python implementation • GDML Import re-done in C++ and now fully integrated into the ROOT framework - Supports new features such as Modular GDML files • GDML’s interaction with ROOT now has significantly reduced processing times • All ROOT solids supported for Import and Export of GDML Ben Lloyd 26

Generator Services Subproject Ben Lloyd 27

Generator Services Subproject Ben Lloyd 27

Pythia 8 Online Manual Pythia 8 has an online manual which contains an extensive

Pythia 8 Online Manual Pythia 8 has an online manual which contains an extensive list of parameters to construct a configuration file from. . The author wanted to make this list interactive so the user could pick options, change defaults and the result… Your own customised configuration file! Ben Lloyd 28

Pythia 8 Online Manual Currently the author had this in place: • The webpage

Pythia 8 Online Manual Currently the author had this in place: • The webpage content in XML files • Converted the XML to HTML using a C++ program My task was to change this C++ program to convert the XML into an interactive web page manual The solution was using PHP, a server-side web scripting language… Ben Lloyd 29

Pythia 8 Online Manual The HTML version. . Ben Lloyd 30

Pythia 8 Online Manual The HTML version. . Ben Lloyd 30

Pythia 8 Online Manual The PHP version… Ben Lloyd 31

Pythia 8 Online Manual The PHP version… Ben Lloyd 31

Pythia 8 Online Manual Once the user finished customising their file, it would generate

Pythia 8 Online Manual Once the user finished customising their file, it would generate the file on the web-server and they can download it. . Ben Lloyd 32

Pythia 8 Online Manual Ben Lloyd 33

Pythia 8 Online Manual Ben Lloyd 33

Generator Services FAQ • Requests from Generator Authors for an online FAQ page for

Generator Services FAQ • Requests from Generator Authors for an online FAQ page for their generator • The solution was using - Ben Lloyd A web based Wiki tool Can provide easy online editing for the authors FAQ’s can be structured within categories Removes the administration responsibility from Generator Services as opposed to a ‘home-made’ solution 34

Generator Services FAQ We now have in place: • A template for each Generator’s

Generator Services FAQ We now have in place: • A template for each Generator’s FAQ homepage that can be replicated for new Generators • A How-To guide containing all the need to know information for an author to create their FAQ • Each FAQ will provide: - Ben Lloyd FAQ Search Engine Simple rules & syntax for editing Ability to attach documents to an FAQ (Images, PDF’s, . ppt etc. ) Daily Email Notification (for changes) RSS subscription User Submission for questions not in the FAQ Revision control 35

Ben Lloyd 36

Ben Lloyd 36

In Conclusion • GDML/Geant 4 binding - Now Complete to support full range of

In Conclusion • GDML/Geant 4 binding - Now Complete to support full range of G 4 solids - Extended functionality - GDML Installation is now one smooth process • GDML/ROOT binding: - Import/Export times significantly shortened. - Fully integrated within ROOT - Now supports almost the complete GDML Schema • Pythia 8 now has a fully interactive webpage/manual to generate setup script • Generator Services FAQ is now up and running Ben Lloyd 37

And finally… Thank You!!! My Supervisor - Witek Pokorski For all the support and

And finally… Thank You!!! My Supervisor - Witek Pokorski For all the support and help you have given me during my time at CERN. Ben Lloyd 38

Any Questions? Ben Lloyd 39

Any Questions? Ben Lloyd 39