New Developments in GDML and in Generator Services
- Slides: 39
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 Binding to GDML • ROOT Binding to GDML • GDML Main Package Updates • Generator Services subproject Ben Lloyd 2
GDML Ben Lloyd 3
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 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
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 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 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 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 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” 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: • 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 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 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 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 • 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 -> 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 Volumes • Division Volumes • Reflected Volumes • All ROOT solids Ben Lloyd 21
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 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 a GDML file using the new GDML Importer… Ben Lloyd 24
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 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
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 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 PHP version… Ben Lloyd 31
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
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 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
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 help you have given me during my time at CERN. Ben Lloyd 38
Any Questions? Ben Lloyd 39
- G4tube
- Gdml manual
- In the colonial era developments such as the new england
- Human design projector
- Recent developments in ict
- Recent developments in object detection
- Sahelanthropus tchadensis cultural development brainly
- Chartered developments
- Political developments in the early republic
- Huron creek developments reviews
- Political developments in the early republic
- Netflaps
- Gte milano
- Target developments
- Patterns of development description
- Describe how sheet metal is used in pattern development.
- Asis atca
- Democratic developments in england
- Ska developments
- Name of prism
- Mdi vision
- American grassfed association standards
- How did parliament emerged victorious in medieval england
- You're so random
- Developing new products and services
- New york, new jersey, pennsylvania, and delaware
- Fresh oil new wine
- Both new hampshire and new york desire more territory
- New marketing realities
- New classical and new keynesian macroeconomics
- Chapter 16 toward a new heaven and a new earth
- Neil thisse is a loyalist answers
- New classical and new keynesian macroeconomics
- Intserv vs diffserv
- Wake county human services community services center
- Differentiation strategy
- Adding new unrelated products or services
- Nys division of criminal justice services
- New hampshire department of administrative services
- New speaker new line worksheet