source: trunk/documents/UserDoc/DocBookUsersGuides/ForApplicationDeveloper/xml/Visualization/visdrivers.xml @ 1222

Last change on this file since 1222 was 1222, checked in by garnier, 15 years ago

CVS update

File size: 49.6 KB
Line 
1<!-- ******************************************************** -->
2<!--                                                          -->
3<!--  [History]                                               -->
4<!--    Changed by: Dennis Wright, 27-Nov-2001                -->
5<!--    Converted to DocBook: Katsuya Amako, Aug-2006         -->
6<!--    Updates for Qt and HepRApp: Joseph Perl, Dec-2008     -->
7<!--    Added a reference: Laurent Garnier, Dec-2009          -->
8<!--    Updates for gMocren and HepRepFile:                   -->
9<!--                            Joseph Perl, Dec-2009         -->
10<!--                                                          -->
11<!-- ******************************************************** -->
12
13
14<!-- ******************* Section (Level#1) ****************** -->
15<sect1 id="sect.VisDrv">
16<title>
17The Visualization Drivers
18</title>
19
20<para>
21As explained in the
22<!-- !!! xref linkend=""/ or ulink url="" -->
23Introduction to Visualization
24<!-- !! /ulink (remove this tag for xref) -->
25, Geant4 provides many different choices of
26visualization systems. Features and notes on each driver are
27briefly described here along with links to detailed web pages for
28the various drivers.
29</para>
30
31<para>
32Details are given below for:
33
34<itemizedlist spacing="compact">
35  <listitem><para>
36    <xref linkend="sect.VisDrv.OpenGL" />
37    OpenGL
38  </para></listitem>
39  <listitem><para>
40    <xref linkend="sect.VisDrv.Qt" />
41    Qt
42  </para></listitem>
43  <listitem><para>
44    <xref linkend="sect.VisDrv.OpenInv" />
45    OpenInventor
46  </para></listitem>
47  <listitem><para>
48    <xref linkend="sect.VisDrv.HepRep" />
49    HepRepFile
50  </para></listitem>
51  <listitem><para>
52    <xref linkend="sect.VisDrv.HepRepXML" />
53    HepRepXML
54  </para></listitem>
55  <listitem><para>
56    <xref linkend="sect.VisDrv.DAWN" />
57    DAWN
58  </para></listitem>
59  <listitem><para>
60    <xref linkend="sect.VisDrv.VRML" />
61    VRML
62  </para></listitem>
63  <listitem><para>
64    <xref linkend="sect.VisDrv.RayTrc" />
65    RayTracer
66  </para></listitem>
67  <listitem><para>
68    <xref linkend="sect.VisDrv.Mocren" />
69    gMocren
70  </para></listitem>
71  <listitem><para>
72    <xref linkend="sect.VisDrv.DetTree" />
73    ASCIITree
74  </para></listitem>
75  <listitem><para>
76    <xref linkend="sect.VisDrv.GAGTree" />
77    GAGTree
78  </para></listitem>
79  <listitem><para>
80    <xref linkend="sect.VisDrv.XMLTree" />
81    XMLTree
82  </para></listitem>
83</itemizedlist>
84</para>
85
86
87<!-- ******************* Section (Level#2) ****************** -->
88<sect2 id="sect.VisDrv.Avail">
89<title>
90Availability of drivers on the supported systems
91</title>
92
93<para>
94<xref linkend="table.VisDrv_1" /> lists required graphics systems
95and supported platforms for the various visualization drivers
96
97<table id="table.VisDrv_1">
98<title>
99Required graphics systems and supported platforms for the various
100visualization drivers.
101</title>
102
103<tgroup cols="3">
104  <tbody>
105  <row>
106    <entry>
107      <emphasis role="bold">Driver</emphasis>
108    </entry>
109    <entry>
110      <emphasis role="bold">Required Graphics System</emphasis>
111    </entry>
112    <entry>
113      <emphasis role="bold">Platform</emphasis>
114    </entry>
115  </row>
116  <row>
117    <entry>
118      OpenGL-Xlib
119    </entry>
120    <entry>
121      OpenGL
122    </entry>
123    <entry>
124      Linux, UNIX, Mac with Xlib
125    </entry>
126  </row>
127  <row>
128    <entry>
129      OpenGL-Motif
130    </entry>
131    <entry>
132      OpenGL
133    </entry>
134    <entry>
135      Linux, UNIX, Mac with Motif
136    </entry>
137  </row>
138  <row>
139    <entry>
140      OpenGL-Win32
141    </entry>
142    <entry>
143      OpenGL
144    </entry>
145    <entry>
146      Windows
147    </entry>
148  </row>
149  <row>
150    <entry>
151      Qt
152    </entry>
153    <entry>
154      Qt, OpenGL
155    </entry>
156    <entry>
157      Linux, UNIX, Mac, Windows
158    </entry>
159  </row>
160  <row>
161    <entry>
162      OpenInventor-X
163    </entry>
164    <entry>
165      OpenInventor, OpenGL
166    </entry>
167    <entry>
168      Linux, UNIX, Mac with Xlib or Motif
169    </entry>
170  </row>
171  <row>
172    <entry>
173      OpenInventor-Win32
174    </entry>
175    <entry>
176      OpenInventor, OpenGL
177    </entry>
178    <entry>
179      Windows
180    </entry>
181  </row>
182  <row>
183    <entry>
184      HepRep
185    </entry>
186    <entry>
187      HepRApp, FRED or WIRED4 HepRep Browser
188    </entry>
189    <entry>
190      Linux, UNIX, Mac, Windows
191    </entry>
192  </row>
193  <row>
194    <entry>
195      DAWNFILE
196    </entry>
197    <entry>
198      Fukui Renderer DAWN
199    </entry>
200    <entry>
201      Linux, UNIX, Mac, Windows
202    </entry>
203  </row>
204  <row>
205    <entry>
206      DAWN-Network
207    </entry>
208    <entry>
209      Fukui Renderer DAWN
210    </entry>
211    <entry>
212      Linux, UNIX
213    </entry>
214  </row>
215  <row>
216    <entry>
217      VRMLFILE
218    </entry>
219    <entry>
220      any VRML viewer
221    </entry>
222    <entry>
223      Linux, UNIX, Mac, Windows
224    </entry>
225  </row>
226  <row>
227    <entry>
228      VRML-Network
229    </entry>
230    <entry>
231      any network-enabled VRML viewer
232    </entry>
233    <entry>
234      Linux, UNIX
235    </entry>
236  </row>
237  <row>
238    <entry>
239      RayTracer
240    </entry>
241    <entry>
242      any JPEG viewer
243    </entry>
244    <entry>
245      Linux, UNIX, Mac, Windows
246    </entry>
247  </row>
248  <row>
249    <entry>
250      ASCIITree
251    </entry>
252    <entry>
253      none
254    </entry>
255    <entry>
256      Linux, UNIX, Mac, Windows
257    </entry>
258  </row>
259  <row>
260    <entry>
261      GAGTree
262    </entry>
263    <entry>
264      GAG
265    </entry>
266    <entry>
267      Linux, UNIX, Mac, Windows
268    </entry>
269  </row>
270  <row>
271    <entry>
272      XMLTree
273    </entry>
274    <entry>
275      any XML viewer
276    </entry>
277    <entry>
278      Linux, UNIX, Mac, Windows
279    </entry>
280  </row>
281  </tbody>
282</tgroup>
283</table>
284</para>
285
286</sect2>
287
288
289<!-- ******************* Section (Level#2) ****************** -->
290<sect2 id="sect.VisDrv.OpenGL">
291<title>
292OpenGL
293</title>
294
295<para>
296These drivers have been developed by John Allison and Andrew
297Walkden (University of Manchester). It is an interface to the de
298facto standard 3D graphics library, OpenGL. It is well suited for
299real-time fast visualization and demonstration. Fast visualization
300is realized with hardware acceleration, reuse of shapes stored in a
301display list, etc. NURBS visualization is also supported.
302</para>
303
304<para>
305Several versions of the OpenGL drivers are prepared. Versions
306for Xlib, Motif and Win32 platforms are available by default. For
307each version, there are two modes: immediate mode and stored mode.
308The former has no limitation on data size, and the latter is fast
309for visualizing large data repetitively, and so is suitable for
310animation.
311</para>
312
313<para>
314Output can be exported to EPS (both vector and pixel graphics)
315using vis/ogl/printEPS.
316</para>
317<para>
318More information can be found here :  <xref linkend="sect.VisCntCmmd.SvVwPs" />
319</para>
320
321<para>
322If you don't have Motif or Qt, all control is done from Geant4
323commands:
324
325<?soft-pagebreak ?>
326<informalexample>
327<programlisting>
328     /vis/open OGLIX
329     /vis/viewer/set/viewpointThetaPhi 70 20
330     /vis/viewer/zoom 2
331     etc.
332</programlisting>
333</informalexample>
334</para>
335
336<para>
337But if you have Motif libraries, you can control Geant4 from Motif
338widgets:
339
340<informalexample>
341<programlisting>
342     /vis/open OGLIXm
343</programlisting>
344</informalexample>
345</para>
346
347<para>
348If you have Qt, see the Qt section below.
349</para>
350
351<para>
352The OpenGL driver added Smooth shading and Transparency since
353Geant4 release 8.0.
354</para>
355
356<para>
357<emphasis role="bold">Further information (OpenGL and Mesa):</emphasis>
358
359<itemizedlist spacing="compact">
360  <listitem><para>
361    <ulink url="http://www.opengl.org/">
362    http://www.opengl.org/
363    </ulink>
364  </para></listitem>
365  <listitem><para>
366    <ulink url="http://www.mesa3d.org">
367    http://www.mesa3d.org
368    </ulink>
369  </para></listitem>
370  <listitem><para>
371    <ulink url="http://geant4.slac.stanford.edu/Presentations/vis/G4OpenGLTutorial/G4OpenGLTutorial.html">
372    http://geant4.slac.stanford.edu/Presentations/vis/G4OpenGLTutorial/G4OpenGLTutorial.html
373    </ulink>
374    using the OpenGL Graphics System
375  </para></listitem>
376</itemizedlist>
377</para>
378
379</sect2>
380
381
382<!-- ******************* Section (Level#2) ****************** -->
383<sect2 id="sect.VisDrv.Qt">
384<title>
385Qt
386</title>
387
388<para>
389This driver has been developed by Laurent Garnier (IN2P3, LAL Orsay). 
390It is an interface to the powerful application framework, Qt, now free on most 
391platforms. This driver also requires the OpenGL library.
392</para><para>
393The Qt driver is well suited for real-time fast visualization and demonstration.
394Fast visualization is realized with hardware acceleration, reuse of shapes stored in a
395display list, etc. NURBS visualization is also supported. All OpenGL 
396features are implemented in the Qt driver, but one also gets mouse
397control of rotation/translation/zoom, the ability to save your scene in many formats
398(both vector and pixel graphics) and an easy interface for making movies.
399</para><para> 
400Two display modes are available: immediate mode and stored mode.
401The former has no limitation on data size, and the latter is fast
402for visualizing large data repetitively, and so is suitable for
403animation.
404</para>
405
406<para>
407To see the visualization window :
408
409<?soft-pagebreak ?>
410<informalexample>
411<programlisting>
412     /vis/open OGLSQt  (for Stored mode)
413or
414     /vis/open OGLIQt  (for Immediate mode)
415</programlisting>
416</informalexample>
417</para>
418
419<para>
420<emphasis role="bold">Further information (Qt):</emphasis>
421<itemizedlist spacing="compact">
422  <listitem><para>
423    <ulink url="http://trolltech.com/">
424    Qt
425    </ulink>
426  </para></listitem>
427  <listitem><para>
428    <ulink url="http://users.lal.in2p3.fr/garnier/G4QtTutorial.html">
429    Geant4 Visualization Tutorial
430    </ulink>
431    using the Qt Driver
432  </para></listitem>
433</itemizedlist>
434</para>
435</sect2>
436
437
438<!-- ******************* Section (Level#2) ****************** -->
439<sect2 id="sect.VisDrv.OpenInv">
440<title>
441OpenInventor
442</title>
443
444<para>
445These drivers were developed by Jeff Kallenbach (FNAL) and Guy
446Barrand (IN2P3) based on the
447<ulink url="http://www-pat.fnal.gov/graphics/HEPVis/www">
448Hepvis class library
449</ulink>
450 originated by Joe Boudreau (Pittsburgh University). The
451OpenInventor drivers and the Hepvis class library are based on the
452well-established OpenInventor technology for scientific
453visualization. They have high extendibility. They support high
454interactivity, e.g., attribute e diting of picked objects. Some
455OpenInventor viewers support "stereoscopic" effects.
456</para>
457
458<para>
459It is also possible to save a visualized 3D scene as an
460OpenInventor-formatted file, and re-visualize the scene
461afterwards.
462</para>
463
464<para>
465Because it is connected directly to the Geant4 kernel, using
466same language as that kernel (C++), OpenInventor systems can have
467direct access to Geant4 data (geometry, trajectories, etc.).
468</para>
469
470<para>
471Because OpenInventor uses OpenGL for rendering, it supports
472lighting and transparency.
473</para>
474
475<para>
476OpenInventor provides thumbwheel control to rotate and zoom.
477</para>
478
479<para>
480OpenInventor supports picking to ask about data. [Control
481Clicking] on a volume turns on rendering of that volume's
482daughters. [Shift Clicking] a daughter turns that rendering off: If
483modeling opaque solid, effect is like opening a box to look
484inside.
485</para>
486
487<para>
488<emphasis role="bold">Further information (HEPVis and OpenScientist):</emphasis>
489
490<itemizedlist spacing="compact">
491  <listitem><para>
492    Geant4 Inventor Visualization with OpenScientist
493    <ulink url="http://openscientist.lal.in2p3.fr/v15r0/html/osc_g4_vis_ui.html">
494    http://openscientist.lal.in2p3.fr/v15r0/html/osc_g4_vis_ui.html
495    </ulink>
496  </para></listitem>
497  <listitem><para>
498    Overall OpenScientist Home
499    <ulink url="http://openscientist.lal.in2p3.fr/v15r0/html/osc_g4_vis_ui.html">
500    http://openscientist.lal.in2p3.fr/v15r0/html/osc_g4_vis_ui.html
501    </ulink>
502  </para></listitem>
503  <listitem><para>
504    HEPVis
505    <ulink url="http://www-pat.fnal.gov/graphics/HEPVis/www">
506    http://www-pat.fnal.gov/graphics/HEPVis/www
507    </ulink>
508  </para></listitem>
509</itemizedlist>
510</para>
511
512<para>
513<emphasis role="bold">Further information (OpenInventor):</emphasis>
514
515<itemizedlist spacing="compact">
516  <listitem><para>
517    <ulink url="http://oss.sgi.com/projects/inventor">
518      http://oss.sgi.com/projects/inventor
519    </ulink>
520  </para></listitem>
521  <listitem><para>
522    Josie Wernecke, "The Inventor Mentor", Addison Wesley
523    (ISBN 0-201-62495-8)
524  </para></listitem>
525  <listitem><para>
526    Josie Wernecke, "The Inventor Toolmaker", Addison Wesley
527    (ISBN 0-201-62493-1)
528  </para></listitem>
529  <listitem><para>
530    "The Open Inventor C++ Reference Manual", Addison Wesley
531    (ISBN 0-201-62491-5)
532  </para></listitem>
533</itemizedlist>
534</para>
535
536</sect2>
537
538
539<!-- ******************* Section (Level#2) ****************** -->
540<sect2 id="sect.VisDrv.HepRep">
541<title>
542HepRepFile
543</title>
544
545<para>
546The HepRepFile driver creates a HepRep XML file in the HepRep1
547format suitable for viewing with the
548<ulink url="http://www.slac.stanford.edu/~perl/HepRApp/">
549HepRApp</ulink> HepRep Browser.
550</para>
551
552<para>
553The HepRep graphics format is further described at
554<ulink url="http://www.slac.stanford.edu/~perl/heprep">
555http://www.slac.stanford.edu/~perl/heprep
556</ulink>
557.
558</para>
559
560<para>
561To write just the detector geometry to this file, use the
562command:
563
564<informalexample>
565<programlisting>
566     /vis/viewer/flush
567</programlisting>
568</informalexample>
569</para>
570
571<para>
572Or, to also include trajectories and hits (after the appropriate
573/vis/viewer/add/trajectories or /vis/viewer/add/hits commands),
574just issue:
575
576<informalexample>
577<programlisting>
578     /run/beamOn 1
579</programlisting>
580</informalexample>
581</para>
582
583<para>
584HepRepFile will write a file called G4Data0.heprep to the
585current directory. Each subsequent file will have a file name like
586G4Data1.heprep, G4Data2.heprep, etc.
587</para>
588
589<para>
590View the file using the HepRApp HepRep Browser, available from:
591</para>
592<para>
593<ulink url="http://www.slac.stanford.edu/~perl/HepRApp/">
594http://www.slac.stanford.edu/~perl/HepRApp/
595</ulink>
596.
597</para>
598
599<para>
600HepRApp allows you to pick on volumes, trajectories and hits to
601find out their associated HepRep Attributes, such as volume name,
602particle ID, momentum, etc. These same attributes can be displayed
603as labels on the relevant objects, and you can make visibility cuts
604based on these attributes ("show me only the photons", or "omit any
605volumes made of iron").
606</para>
607
608<para>
609HepRApp can read heprep files in zipped format as well as
610unzipped, so you can save space by applying gzip to the heprep
611file. This will reduce the file to about five percent of its
612original size.
613</para>
614
615<para>
616Several commands are available to override some of
617HepRepFile's defaults
618
619<itemizedlist spacing="compact">
620  <listitem><para>
621    You can specify a different directory for the heprep output
622    files by using the setFileDir command, as in:
623
624    <informalexample>
625    <programlisting>
626    /vis/heprep/setFileDir &lt;someOtherDir/someOtherSubDir&gt;
627    </programlisting>
628    </informalexample>
629  </para></listitem>
630  <listitem><para>
631    You can specify a different file name (the part before the
632    number) by using the setFileName command, as in:
633
634    <informalexample>
635    <programlisting>
636    /vis/heprep/setFileName &lt;my_file_name&gt;
637    </programlisting>
638    </informalexample>
639
640    which will produce files named &lt;my_file_name&gt;0.heprep,
641    &lt;my_file_name&gt;1.heprep, etc.
642  </para></listitem>
643  <listitem><para>
644    You can specify that each file should overwrite the previous
645    file (always rewriting to the same file name) by using the setOverwrite command, as in:
646
647    <informalexample>
648    <programlisting>
649    /vis/heprep/setOverwrite true
650    </programlisting>
651    </informalexample>
652
653    This may be useful in some automated applications where you always
654    want to see the latest output file in the same location.
655  </para></listitem>
656</itemizedlist>
657
658<?soft-pagebreak ?>
659<itemizedlist>
660  <listitem><para>
661    Geant4 visualization supports a concept called "culling", by
662    which certain parts of the detector can be made invisible. Since
663    you may want to control visibility from the HepRep browser, turning
664    on visibility of detector parts that had defaulted to be invisible,
665    the HepRepFile driver does not omit these invisible detector parts
666    from the HepRep file. But for very large files, if you know that
667    you will never want to make these parts visible, you can choose to
668    have them left entirely out of the file. Use the /vis/heprep/setCullInvisibles command, as in:
669
670    <informalexample>
671    <programlisting>
672    /vis/heprep/setCullInvisibles true
673    </programlisting>
674    </informalexample>
675  </para></listitem>
676</itemizedlist>
677</para>
678
679<para>
680<emphasis role="bold">Further information:</emphasis>
681
682<itemizedlist spacing="compact">
683  <listitem><para>
684    HepRApp Users Home Page:
685    <para>
686    <ulink url="http://www.slac.stanford.edu/~perl/HepRApp/">
687    http://www.slac.stanford.edu/~perl/HepRApp/
688    </ulink>
689    .
690    </para>
691  </para></listitem>
692  <listitem><para>
693    HepRep graphics format:
694    <para>
695    <ulink url="http://www.slac.stanford.edu/~perl/heprep">
696    http://www.slac.stanford.edu/~perl/heprep
697    </ulink>
698    </para>
699  </para></listitem>
700  <listitem><para>
701    Geant4 Visualization Tutorial using the HepRApp HepRep Browser
702    <para>
703    <ulink url="http://geant4.slac.stanford.edu/Presentations/vis/G4HepRAppTutorial/G4HepRAppTutorial.html">
704    http://geant4.slac.stanford.edu/Presentations/vis/G4HepRAppTutorial/G4HepRAppTutorial.html
705    </ulink>
706    </para>
707  </para></listitem>
708</itemizedlist>
709</para>
710
711</sect2>
712
713
714<!-- ******************* Section (Level#2) ****************** -->
715<sect2 id="sect.VisDrv.HepRepXML">
716<title>
717HepRepXML
718</title>
719
720<para>
721The HepRepXML driver creates a HepRep file in the HepRep2 format
722suitable for viewing with the
723<ulink url="http://wired.freehep.org/index.html">
724WIRED4
725</ulink>
726 Plugin to the JAS3 Analysis System or the
727<ulink url="http://www.fisica.uniud.it/~glast/FRED/">
728FRED
729</ulink>
730 event display.
731</para>
732
733<para>
734This driver can write both Binary HepRep (.bheprep) and XML
735HepRep (.heprep) files. Binary HepRep files are a one-to-one
736translation of XML HepRep files, but they are considerably shorter
737and faster to parse by a HepRepViewer such as WIRED 4.
738</para>
739
740<para>
741Both Binary HepRep and XML HepRep can be compressed using the
742standard zlib library if linked into Geant4 using G4LIB_USE_ZLIB.
743If a standard zlib is not available (WIN32-VC for instance) you
744should also set G4LIB_BUILD_ZLIB to build G4zlib included with
745Geant4.
746</para>
747
748<para>
749HepRep files (Binary and XML) can contain multiple HepRep
750events/geometries. If the file contains more than one HepRep it is
751not strictly XML anymore. Files can be written in .heprep.zip,
752.heprep.gz or .heprep format and their binary versions
753.bheprep.zip, .bheprep.gz or .bheprep.
754</para>
755
756<para>
757The .heprep.zip is the default for file output, the .heprep is
758the default for stdout and stderr.
759</para>
760
761<para>
762(Optional) To set the filename with a particular extension such
763as: .heprep.zip, .heprep.gz, .heprep, .bheprep.zip, .bheprep.gz or
764.bheprep use for instance:
765
766<informalexample>
767<programlisting>
768     /vis/scene/create filename.bheprep.zip
769</programlisting>
770</informalexample>
771</para>
772
773<para>
774(Optional) To create separate files for each event, you can set
775a suffix such as "-0001" to start writing files from
776filename-0001.bheprep.zip to filename-9999.bheprep.zip (or up),
777while "-55-sub" will start write files filename-55-sub.bheprep.zip
778to filename-99-sub.bheprep.zip (or up).
779
780<informalexample>
781<programlisting>
782     /vis/heprep/setEventNumberSuffix -0001
783</programlisting>
784</informalexample>
785</para>
786
787<para>
788(Note: suffix has to contain at least one digit)
789</para>
790
791<para>
792(Optional) To route the HepRep XML output to stdout (or stderr),
793by default uncompressed, use:
794
795<informalexample>
796<programlisting>
797     /vis/scene/create stdout
798</programlisting>
799</informalexample>
800</para>
801
802<para>
803(Optional) To add attributes to each point on a trajectory, use:
804
805<informalexample>
806<programlisting>
807     /vis/heprep/addPointAttributes 1
808</programlisting>
809</informalexample>
810</para>
811
812<para>
813Be aware that this may increase the size of the output
814dramatically.
815</para>
816
817<para>
818(Optional) You may use the commands:
819
820<informalexample>
821<programlisting>
822     /vis/viewer/zoom                            to set an initial zoom factor
823
824     /vis/viewer/set/viewpointThetaPhi           to set an initial view point
825
826     /vis/heprep/setCoordinateSystem uvw         to change the coordinate system, where uvw
827                                                 can be "xyz", "zxy", ...
828</programlisting>
829</informalexample>
830</para>
831
832<para>
833(Optional) You may decide to write .zip files with events and
834geometry separated (but linked). This results in a smaller zip
835file, as the geometry is only written once. Use the command:
836
837<informalexample>
838<programlisting>
839     /vis/heprep/appendGeometry false
840</programlisting>
841</informalexample>
842</para>
843
844<para>
845(Optional) To close the file, remove the SceneHandler, use:
846
847<informalexample>
848<programlisting>
849     /vis/sceneHandler/remove scene-handler-0
850</programlisting>
851</informalexample>
852</para>
853
854<para>
855Limitations: Only one SceneHandler can exist at any time,
856connected to a single Viewer. Since the HepRep format is a model
857rather than a view this is not a real limitation. In WIRED 4 you
858can create as many views (SceneHandlers) as you like.
859</para>
860
861<para>
862<emphasis role="bold">Further information:</emphasis>
863
864<itemizedlist spacing="compact">
865  <listitem><para>
866    <ulink url="http://wired.freehep.org/index.html">
867    WIRED4</ulink> Plugin to the JAS3 Analysis System
868  </para></listitem>
869  <listitem><para>
870    <ulink url="http://www.fisica.uniud.it/~glast/FRED/">
871    FRED</ulink> event display
872  </para></listitem>
873  <listitem><para>
874    HepRep graphics format:
875    <para>
876    <ulink url="http://www.slac.stanford.edu/~perl/heprep">
877    http://www.slac.stanford.edu/~perl/heprep
878    </ulink>
879    </para>
880  </para></listitem>
881</itemizedlist>
882</para>
883
884</sect2>
885
886
887<!-- ******************* Section (Level#2) ****************** -->
888<sect2 id="sect.VisDrv.DAWN">
889<title>
890DAWN
891</title>
892
893<para>
894The DAWN drivers are interfaces to
895<ulink url="http://geant4.kek.jp/GEANT4/vis/DAWN/About_DAWN.html">
896Fukui Renderer DAWN</ulink>, which has been developed by Satoshi Tanaka,
897Minato Kawaguti et al (Fukui University). It is a vectorized 3D
898PostScript processor, and so well suited to prepare technical high
899quality outputs for presentation and/or documentation. It is also
900useful for precise debugging of detector geometry. Remote
901visualization, off-line re-visualization, cut view, and many other
902useful functions of detector simulation are supported. A DAWN
903process is automatically invoked as a co-process of Geant4 when
904visualization is performed, and 3D data are passed with
905inter-process communication, via a file, or the TCP/IP socket.
906</para>
907
908<para>
909When Geant4 Visualization is performed with the DAWN driver, the
910visualized view is automatically saved to a file named
911<literal>g4.eps</literal> in the current directory, which describes a
912vectorized (Encapsulated) PostScript data of the view.
913</para>
914
915<para>
916There are two kinds of DAWN drivers, the DAWNFILE driver and the
917DAWN-Network driver. The DAWNFILE driver is usually recommended,
918since it is faster and safer in the sense that it is not affected
919by network conditions.
920</para>
921
922<para>
923The DAWNFILE driver sends 3D data to DAWN via an intermediate
924file, named <literal>g4.prim</literal> in the current directory. The file
925<literal>g4.prim</literal> can be re-visualized later without the help of
926Geant4. This is done by invoking DAWN by hand:
927
928<informalexample>
929<programlisting>
930     % dawn g4.prim
931</programlisting>
932</informalexample>
933</para>
934
935<para>
936DAWN files can also serve as input to two additional programs:
937
938<itemizedlist spacing="compact">
939  <listitem><para>
940    A standalone program, DAWNCUT, can perform a planar cut on a
941    DAWN image. DAWNCUT takes as input a .prim file and some cut
942    parameters. Its output is a new .prim file to which the cut has
943    been applied.
944  </para></listitem>
945  <listitem><para>
946    Another standalone program, DAVID, can show you any volume
947    overlap errors in your geometry. DAVID takes as input a .prim file
948    and outputs a new .prim file in which overlapping volumes have been
949    highlighted. The use of DAVID is described in section
950    <xref linkend="sect.Geom.Overlap" /> of this manual.
951  </para></listitem>
952</itemizedlist>
953</para>
954
955<para>
956The DAWN-Network driver is almost the same as the DAWNFILE
957driver except that
958
959<itemizedlist spacing="compact">
960  <listitem><para>
961    3D data are passed to DAWN via the TCP/IP the socket (default)
962    or the named pipe, and that,
963  </para></listitem>
964</itemizedlist>
965</para>
966
967<para>
968If you have not set up network configurations of your host machine,
969set the environment variable <literal>G4DAWN_NAMED_PIPE</literal> to "1",
970e.g., <literal>% setenv G4DAWN_NAMED_PIPE 1</literal>. This setting switches
971the default socket connection to the named-pipe connection within
972the same host machine. The DAWN-Network driver also saves the 3D
973data to the file <literal>g4.prim</literal> in the current directory.
974</para>
975
976</sect2>
977
978
979<!-- ******************* Section (Level#2) ****************** -->
980<sect2 id="sect.VisDrv.RemDAWN">
981<title>
982Remote Visualization with the DAWN-Network Driver
983</title>
984
985<para>
986Visualization in Geant4 is considered to be "remote" when it is
987performed on a machine other than the Geant4 host. Some of the
988visualization drivers support this feature.
989</para>
990
991<para>
992Usually, the visualization host is your local host, while the
993Geant4 host is a remote host where you log in, for example, with
994the <literal>telnet</literal> command. This enables distributed
995processing of Geant4 visualization, avoiding the transfer of large
996amounts of visualization data to your terminal display via the
997network. This section describes how to perform remote Geant4
998visualization with the DAWN-Network driver. In order to do it,
999you must install the Fukui Renderer DAWN on your local host
1000beforehand.
1001</para>
1002
1003<para>
1004The following steps realize remote Geant4 visualization viewed
1005by DAWN.
1006
1007<orderedlist spacing="compact">
1008  <listitem><para>
1009    Invoke DAWN with "-G" option on your local host:
1010
1011    <informalexample>
1012    <programlisting>
1013       Local_Host&gt; dawn -G
1014    </programlisting>
1015    </informalexample>
1016
1017    This invokes DAWN with the network connection mode.
1018  </para></listitem>
1019  <listitem><para>
1020    Login to the remote host where a Geant4 executable is placed.
1021  </para></listitem>
1022  <listitem><para>
1023    Set an environment variable on the remote host as follows:
1024
1025    <informalexample>
1026    <programlisting>
1027       Remote_Host&gt; setenv G4DAWN_HOST_NAME local_host_name
1028    </programlisting>
1029    </informalexample>
1030
1031    For example, if you are working in the local host named
1032    "arkoop.kek.jp", set this environment variable as follows:
1033
1034    <informalexample>
1035    <programlisting>
1036       Remote_Host&gt; setenv G4DAWN_HOST_NAME arkoop.kek.jp
1037    </programlisting>
1038    </informalexample>
1039
1040    This tells a Geant4 process running on the remote host where Geant4
1041    Visualization should be performed, i.e., where the visualized views
1042    should be displayed.
1043  </para></listitem>
1044  <listitem><para>
1045    Invoke a Geant4 process and perform visualization with the
1046    DAWN-Network driver. For example:
1047
1048    <informalexample>
1049    <programlisting>
1050       Idle&gt; /vis/open DAWN
1051       Idle&gt; /vis/drawVolume
1052       Idle&gt; /vis/viewer/flush
1053    </programlisting>
1054    </informalexample>     
1055  </para></listitem>
1056</orderedlist>
1057</para>
1058
1059<para>
1060In step 4, 3D scene data are sent from the remote host to the
1061local host as
1062<ulink url="http://geant4.kek.jp/GEANT4/vis/DAWN/G4PRIM_FORMAT_24/">
1063DAWN-formatted data</ulink>, and the local DAWN will visualize the data. The
1064transferred data are saved as a file named <literal>g4.prim</literal> in the
1065current directory of the local host.
1066</para>
1067
1068<para>
1069<emphasis role="bold">Further information:</emphasis>
1070
1071<itemizedlist spacing="compact">
1072  <listitem><para>
1073    <ulink url="http://geant4.kek.jp/GEANT4/vis/DAWN/About_DAWN.html">
1074    http://geant4.kek.jp/GEANT4/vis/DAWN/About_DAWN.html
1075    </ulink>
1076  </para></listitem>
1077  <listitem><para>
1078    <ulink url="http://geant4.kek.jp/GEANT4/vis/DAWN/G4PRIM_FORMAT_24/">
1079    http://geant4.kek.jp/GEANT4/vis/DAWN/G4PRIM_FORMAT_24/
1080    </ulink>
1081  </para></listitem>
1082</itemizedlist>
1083</para>
1084
1085<para>
1086<emphasis role="bold">Further information:</emphasis>
1087
1088<itemizedlist spacing="compact">
1089  <listitem><para>
1090    Fukui Renderer DAWN:
1091    <para>
1092    <ulink url="http://geant4.kek.jp/GEANT4/vis/DAWN/About_DAWN.html">
1093    http://geant4.kek.jp/GEANT4/vis/DAWN/About_DAWN.html
1094    </ulink>
1095    </para>
1096  </para></listitem>
1097  <listitem><para>
1098    The DAWNFILE driver:
1099    <para>
1100    <ulink url="http://geant4.kek.jp/GEANT4/vis/GEANT4/DAWNFILE_driver.html">
1101    http://geant4.kek.jp/GEANT4/vis/GEANT4/DAWNFILE_driver.html
1102    </ulink>
1103    </para>
1104  </para></listitem>
1105  <listitem><para>
1106    The DAWN-Network driver:
1107    <para>
1108    <ulink url="http://geant4.kek.jp/GEANT4/vis/GEANT4/DAWNNET_driver.html">
1109    http://geant4.kek.jp/GEANT4/vis/GEANT4/DAWNNET_driver.html
1110    </ulink>
1111    </para>
1112  </para></listitem>
1113  <listitem><para>
1114    Environmental variables to customize DAWN and DAWN drivers:
1115    <para>
1116    <ulink url="http://geant4.kek.jp/GEANT4/vis/DAWN/DAWN_ENV.html">
1117    http://geant4.kek.jp/GEANT4/vis/DAWN/DAWN_ENV.html
1118    </ulink>
1119    </para>
1120    <para>
1121    <ulink url="http://geant4.kek.jp/GEANT4/vis/GEANT4/g4vis_on_linux.html">
1122    http://geant4.kek.jp/GEANT4/vis/GEANT4/g4vis_on_linux.html
1123    </ulink>
1124    </para>
1125  </para></listitem>
1126  <listitem><para>
1127    DAWN format (g4.prim format) manual:
1128    <para>
1129    <ulink url="http://geant4.kek.jp/GEANT4/vis/DAWN/G4PRIM_FORMAT_24/">
1130    http://geant4.kek.jp/GEANT4/vis/DAWN/G4PRIM_FORMAT_24/
1131    </ulink>
1132    </para>
1133  </para></listitem>
1134  <listitem><para>
1135    Geant4 Fukui University Group Home Page:
1136    <para>
1137    <ulink url="http://geant4.kek.jp/GEANT4/vis/">
1138    http://geant4.kek.jp/GEANT4/vis/
1139    </ulink>
1140    </para>
1141  </para></listitem>
1142  <listitem><para>
1143    DAWNCUT:
1144    <para>
1145    <ulink url="http://geant4.kek.jp/GEANT4/vis/DAWN/About_DAWNCUT.html">
1146    http://geant4.kek.jp/GEANT4/vis/DAWN/About_DAWNCUT.html
1147    </ulink>
1148    </para>
1149  </para></listitem>
1150  <listitem><para>
1151   DAVID:
1152   <para>
1153   <ulink url="http://geant4.kek.jp/GEANT4/vis/DAWN/About_DAVID.html">
1154   http://geant4.kek.jp/GEANT4/vis/DAWN/About_DAVID.html
1155   </ulink>
1156   </para> 
1157  </para></listitem>
1158  <listitem><para>
1159    Geant4 Visualization Tutorial using the DAWN Renderer:
1160    <para>
1161    <ulink url="http://geant4.slac.stanford.edu/Presentations/vis/GDAWNTutorial/G4DAWNTutorial.html">
1162    http://geant4.slac.stanford.edu/Presentations/vis/GDAWNTutorial/G4DAWNTutorial.html
1163    </ulink>
1164    </para>
1165  </para></listitem>
1166</itemizedlist>
1167</para>
1168
1169</sect2>
1170
1171
1172<!-- ******************* Section (Level#2) ****************** -->
1173<sect2 id="sect.VisDrv.VRML">
1174<title>
1175VRML
1176</title>
1177
1178<para>
1179These drivers were developed by Satoshi Tanaka and Yasuhide Sawada
1180(Fukui University). They generate VRML files, which describe 3D
1181scenes to be visualized with a proper VRML viewer, at either a
1182local or a remote host. It realizes virtual-reality visualization
1183with your WWW browser. There are many excellent VRML viewers, which
1184enable one to perform interactive spinning of detectors, walking
1185and/or flying inside detectors or particle showers, interactive
1186investigation of detailed detector geometry etc.
1187</para>
1188
1189<para>
1190There are two kinds of VRML drivers: the VRMLFILE driver, and
1191the VRML-Network driver. The VRMLFILE driver is usually
1192recommended, since it is faster and safer in the sense that it is
1193not affected by network conditions.
1194</para>
1195
1196<para>
1197The VRMLFILE driver sends 3D data to your VRML viewer, which is
1198running on the same host machine as Geant4, via an intermediate
1199file named <literal>g4.wrl</literal> created in the current directory. This
1200file can be re-visualization afterwards. In visualization, the name
1201of the VRML viewer should be specified by setting the environment
1202variable <literal>G4VRML_VIEWER</literal> beforehand. For example,
1203
1204<informalexample>
1205<programlisting>
1206     % setenv G4VRML_VIEWER  "netscape"
1207</programlisting>
1208</informalexample>
1209</para>
1210
1211<para>
1212Its default value is <literal>NONE</literal>, which means that no viewer
1213is invoked and only the file <literal>g4.wrl</literal> is generated.
1214</para>
1215
1216
1217<!-- ******* Bridgehead ******* -->
1218<bridgehead renderas='sect4'>
1219Remote Visualization with the VRML-Network Driver
1220</bridgehead>
1221
1222<para>
1223Visualization in Geant4 is considered to be "remote" when it is
1224performed on a machine other than the Geant4 host. Some of the
1225visualization drivers support this feature.
1226</para>
1227
1228<para>
1229Usually, the visualization host is your local host, while the
1230Geant4 host is a remote host where you log in, for example, with
1231the <literal>telnet</literal> command. This enables distributed processing of
1232Geant4 visualization, avoiding the transfer of large amounts of
1233visualization data to your terminal display via the network.
1234</para>
1235
1236<para>
1237In order to perform remote visualization with the VRML-Network
1238driver, the following must be installed on your local host
1239beforehand:
1240
1241<orderedlist spacing="compact">
1242  <listitem><para>
1243    a VRML viewer
1244  </para></listitem>
1245  <listitem><para>
1246    the Java application <literal>g4vrmlview</literal>.
1247  </para></listitem>
1248</orderedlist>
1249</para>
1250
1251<para>
1252The Java application <literal>g4vrmlview</literal> is included as part of the
1253Geant4 package and is located at:
1254
1255<informalexample>
1256<programlisting>
1257     source/visualization/VRML/g4vrmlview/
1258</programlisting>
1259</informalexample>
1260</para>
1261
1262<para>
1263Installation instructions for <literal>g4vrmlview</literal> can be found in
1264the <literal>README</literal> file there, or on the WWW page below.
1265</para>
1266
1267<para>
1268The following steps realize remote Geant4 visualization
1269displayed with your local VRML browser:
1270
1271<orderedlist spacing="compact">
1272  <listitem><para>
1273    Invoke the <literal>g4vrmlview</literal> on your local host, giving a
1274    VRML viewer name as its argument:
1275
1276    <informalexample>
1277<programlisting>
1278       Local_Host&gt; java g4vrmlview  VRML_viewer_name
1279    </programlisting>
1280</informalexample>
1281
1282    For example, if you want to use the Netscape browser as your VRML
1283    viewer, execute <literal>g4vrmlview</literal> as follows:
1284
1285    <informalexample>
1286    <programlisting>
1287       Local_Host&gt; java g4vrmlview  netscape
1288    </programlisting>
1289    </informalexample>
1290
1291    Of course, the command path to the VRML viewer should be properly set.
1292  </para></listitem>
1293  <listitem><para>
1294    Log in to the remote host where a Geant4 executable is placed.
1295  </para></listitem>
1296  <listitem><para>
1297    Set an environment variable on the remote host as follows:
1298
1299    <informalexample>
1300    <programlisting>
1301       Remote_Host&gt; setenv G4VRML_HOST_NAME local_host_name
1302    </programlisting>
1303    </informalexample>
1304
1305    For example, if you are working on the local host named
1306    "arkoop.kek.jp", set this environment variable as follows:
1307
1308    <informalexample>
1309    <programlisting>
1310       Remote_Host&gt; setenv G4VRML_HOST_NAME arkoop.kek.jp
1311    </programlisting>
1312    </informalexample>
1313
1314    This tells a Geant4 process running on the remote host where Geant4
1315    Visualization should be performed, i.e., where the visualized views
1316    should be displayed.
1317  </para></listitem>
1318  <listitem><para>
1319    Invoke a Geant4 process and perform visualization with the
1320    VRML-Network driver. For example:
1321
1322    <informalexample>
1323    <programlisting>
1324       Idle&gt; /vis/open VRML2
1325       Idle&gt; /vis/drawVolume
1326       Idle&gt; /vis/viewer/update
1327    </programlisting>
1328    </informalexample>       
1329  </para></listitem>
1330</orderedlist>
1331</para>
1332
1333<para>
1334In step 4, 3D scene data are sent from the remote host to the
1335local host as VRML-formatted data, and the VRML viewer specified in
1336step 3 is invoked by the <literal>g4vrmlview</literal> process to visualize
1337the VRML data. The transferred VRML data are saved as a file named
1338<literal>g4.wrl</literal> in the current directory of the local host.
1339</para>
1340
1341<para>
1342<emphasis role="bold">Further information:</emphasis>
1343
1344<?soft-pagebreak ?>
1345<itemizedlist spacing="compact">
1346  <listitem><para>
1347    <ulink url="http://geant4.kek.jp/GEANT4/vis/GEANT4/VRML_net_driver.html">
1348    http://geant4.kek.jp/GEANT4/vis/GEANT4/VRML_net_driver.html
1349    </ulink>
1350  </para></listitem>
1351</itemizedlist>
1352</para>
1353
1354<para>
1355<emphasis role="bold">Further information (VRML drivers):</emphasis>
1356
1357<?soft-pagebreak ?>
1358<itemizedlist spacing="compact">
1359  <listitem><para>
1360    <ulink url="http://geant4.kek.jp/GEANT4/vis/GEANT4/VRML_file_driver.html">
1361    http://geant4.kek.jp/GEANT4/vis/GEANT4/VRML_file_driver.html
1362    </ulink>
1363  </para></listitem>
1364  <listitem><para>
1365    <ulink url="http://geant4.kek.jp/GEANT4/vis/GEANT4/VRML_net_driver.html">
1366    http://geant4.kek.jp/GEANT4/vis/GEANT4/VRML_net_driver.html
1367    </ulink>
1368  </para></listitem>
1369</itemizedlist>
1370</para>
1371
1372<para>
1373<emphasis role="bold">Sample VRML files:</emphasis>
1374
1375<?soft-pagebreak ?>
1376<itemizedlist spacing="compact">
1377  <listitem><para>
1378    <ulink url="http://geant4.kek.jp/GEANT4/vis/GEANT4/VRML2_FIG/">
1379    http://geant4.kek.jp/GEANT4/vis/GEANT4/VRML2_FIG/
1380    </ulink>
1381  </para></listitem>
1382</itemizedlist>
1383</para>
1384
1385<para>
1386<emphasis role="bold">Further information (VRML language and browsers):</emphasis>
1387
1388<itemizedlist spacing="compact">
1389  <listitem><para>
1390    <ulink url="http://www.vrmlsite.com/">http://www.vrmlsite.com/
1391    </ulink>
1392  </para></listitem>
1393</itemizedlist>
1394</para>
1395
1396</sect2>
1397
1398
1399<!-- ******************* Section (Level#2) ****************** -->
1400<sect2 id="sect.VisDrv.RayTrc">
1401<title>
1402RayTracer
1403</title>
1404
1405<para>
1406This driver was developed by Makoto Asai and Minamimoto (Hirosihma
1407Instutute of Technology). It performs ray-tracing visualization
1408using the tracking routines of Geant4. It is, therefore, available
1409for every kinds of shapes/solids which Geant4 can handle. It is
1410also utilized for debugging the user's geometry for the tracking
1411routines of Geant4. It is well suited for photo-realistic high
1412quality output for presentation, and for intuitive debugging of
1413detector geometry. It produces a JPEG file. This driver is by
1414default listed in the available visualization drivers of user's
1415application.
1416</para>
1417
1418<para>
1419Some pieces of geometries may fail to show up in other
1420visualization drivers (due to algorithms those drivers use to
1421compute visualizable shapes and polygons), but RayTracer can handle
1422any geometry that the Geant4 navigator can handle.
1423</para>
1424
1425<para>
1426Because RayTracer in essence takes over Geant4's tracking
1427routines for its own use, RayTracer cannot be used to visualize
1428Trajectories or hits.
1429</para>
1430
1431<para>
1432An X-Window version, called RayTracerX, can be selected by
1433setting <literal>G4VIS_BUILD_RATRACERX_DRIVER</literal> at Geant4 library
1434build time and <literal>G4VIS_USE_RAYTRACERX</literal> at application (user
1435code) build time (assuming you use the standard visualization
1436manager, <literal>G4VisExecutive</literal>, or an equally smart vis manager).
1437RayTracerX builds the same jpeg file as RayTracer, but
1438simultaneously renders to screen so you can watch as rendering
1439grows progressively smoother.
1440</para>
1441
1442<para>
1443RayTracer has its own built-in commands -
1444<literal>/vis/rayTracer/</literal>.... Alternatively, you can treat it as a
1445normal vis system and use <literal>/vis/viewer/</literal>... commands,
1446e.g:
1447
1448<informalexample>
1449<programlisting>
1450  /vis/open RayTracerX
1451  /vis/drawVolume
1452  /vis/viewer/set/viewpointThetaPhi 30 30
1453  /vis/viewer/refresh
1454</programlisting>
1455</informalexample>
1456</para>
1457
1458<para>
1459The view parameters are translated into the necessary RayTracer
1460parameters.
1461</para>
1462
1463<para>
1464RayTracer is compute intensive. If you are unsure of a good
1465viewing angle or zoom factor, you might be advised to choose them
1466with a faster renderer, such as OpenGL, and transfer the view
1467parameters with <literal>/vis/viewer/set/all</literal>:
1468
1469<informalexample>
1470<programlisting>
1471  /vis/open OGLSXm  # or any of the OGL options.  Opens, say, viewer-0.
1472  /vis/drawVolume
1473  /vis/viewer/zoom  # plus any /vis/viewer/commands that get you the view you want.
1474  /vis/open RayTracerX
1475  /vis/viewer/set/all viewer-0
1476  /vis/viewer/refresh
1477</programlisting>
1478</informalexample>
1479</para>
1480
1481</sect2>
1482
1483
1484<!-- ******************* Section (Level#2) ****************** -->
1485<sect2 id="sect.VisDrv.Mocren">
1486<title>
1487gMocren
1488</title>
1489
1490<para>
1491The gMocrenFile driver creates a gdd file
1492suitable for viewing with the gMocren volume visualizer.
1493gMocren, a sophisticated tool for rendering volume data,
1494can show volume data such as Geant4 dose distrubutions
1495overlaid with scoring grids, trajectories and detector geometry.
1496gMocren provides additional advanced functionality such as transfer functions, colormap editing,
1497image rotation, image scaling, and image clipping.
1498</para>
1499
1500<para>
1501gMocren is further described at
1502<ulink url="http://geant4.kek.jp/gMocren/">
1503http://geant4.kek.jp/gMocren/
1504</ulink>.
1505At this link you will find the gMocren download, the user manual, a tutorial and some example gdd data files.
1506</para>
1507
1508<para>
1509Please note that the gMocren file driver is currently considered a Beta release.
1510Users are encouraged to try this driver, and feedback is welcome, but users should be aware that features of
1511this driver may change in upcoming releases.
1512</para>
1513
1514<para>
1515To send volume data from Geant4 scoring to a gMocren file, the user needs to tell the gMocren driver the
1516name of the specific scoring volume that is to be displayed.
1517For scoring done in C++, this is the name of the sensitive volume.
1518For command-based scoring, this is the name of the scoring mesh.
1519
1520<informalexample>
1521<programlisting>
1522     /vis/gMocren/setVolumeName &lt;volume_name&gt;
1523</programlisting>
1524</informalexample>
1525</para>
1526
1527<para>
1528The following is an example of the minimum command sequence to send command-based scoring data to the a gMocren file:
1529
1530<informalexample>
1531<programlisting>
1532    # an example of a command-based scoring definition
1533    /score/create/boxMesh scoringMesh       # name of the scoring mesh
1534    /score/mesh/boxSize 10. 10. 10. cm      # dimension of the scoring mesh
1535    /score/mesh/nBin 10 10 10               # number of divisions of the scoring mesh
1536    /score/quantity/energyDeposit eDep      # quantity to be scored
1537    /score/close
1538    # configuration of the gMocren-file driver
1539    /vis/scene/create
1540    /vis/open gMocrenFile
1541    /vis/gMocren/setVolumeName scoringMesh
1542</programlisting>
1543</informalexample>
1544</para>
1545
1546<para>
1547To add detector geometry to this file:
1548
1549<informalexample>
1550<programlisting>
1551    /vis/viewer/flush
1552</programlisting>
1553</informalexample>
1554</para>
1555
1556<para>
1557To add trajectories and primitive scorer hits to this file:
1558
1559<informalexample>
1560<programlisting>
1561    /vis/scene/add/trajectories
1562    /vis/scene/add/pshits
1563    /run/beamOn 1
1564</programlisting>
1565</informalexample>
1566</para>
1567
1568<para>
1569gMocrenFile will write a file named G4_00.gd to the current directory.
1570Subsequent draws will create files named g4_01.gdd, g4_02.gdd, etc.
1571An alternate output directory can be specified with an environment variable:
1572
1573<informalexample>
1574<programlisting>
1575    export G4GMocrenFile_DEST_DIR=&lt;someOtherDir/someOtherSubDir/&gt;
1576</programlisting>
1577</informalexample>
1578</para>
1579
1580<para>
1581View the resuling gMocren files with the gMocren viewer, available from:
1582<ulink url="http://geant4.kek.jp/gMocren/">
1583http://geant4.kek.jp/gMocren/
1584</ulink>.
1585</para>
1586
1587</sect2>
1588
1589
1590<!-- ******************* Section (Level#2) ****************** -->
1591<sect2 id="sect.VisDrv.DetTree">
1592<title>
1593Visualization of detector geometry tree
1594</title>
1595
1596<para>
1597ASCIITREE is a visualization driver that is not actually graphical
1598but that dumps the volume hierarchy as a simple text tree.
1599</para>
1600
1601<para>
1602Each call to /vis/viewer/flush or /vis/drawTree will dump the
1603tree.
1604</para>
1605
1606<para>
1607ASCIITree has command to control its verbosity,
1608<literal>/vis/ASCIITree/verbose</literal>. The verbosity value controls the
1609amount of information available, e.g., physical volume name alone,
1610or also logical volume and solid names. If the volume is
1611"sensitive" and/or has a "readout geometry", this may also be
1612indicated. Also, the mass of the physical volume tree(s) can be
1613printed (but beware - higher verbosity levels can be
1614computationally intensive).
1615</para>
1616
1617<para>
1618At verbosity level 4, ASCIITree calculates the mass of the
1619complete geometry tree taking into account daughters up to the
1620depth specified for each physical volume. The calculation involves
1621subtracting the mass of that part of the mother that is occupied by
1622each daughter and then adding the mass of the daughter, and so on
1623down the hierarchy.
1624
1625<informalexample>
1626<programlisting>
1627     /vis/ASCIITree/Verbose 4
1628     /vis/viewer/flush
1629     "HadCalorimeterPhysical":0 / "HadCalorimeterLogical" / "HadCalorimeterBox"(G4Box),
1630                                  1.8 m3 , 11.35 g/cm3
1631     "HadCalColumnPhysical":-1 (10 replicas) / "HadCalColumnLogical" / "HadCalColumnBox"(G4Box),
1632                                               180000 cm3, 11.35 g/cm3
1633     "HadCalCellPhysical":-1 (2 replicas) / "HadCalCellLogical" / "HadCalCellBox"(G4Box),
1634                                            90000 cm3, 11.35 g/cm3
1635     "HadCalLayerPhysical":-1 (20 replicas) / "HadCalLayerLogical" / "HadCalLayerBox"(G4Box),
1636                                              4500 cm3, 11.35 g/cm3
1637     "HadCalScintiPhysical":0 / "HadCalScintiLogical" / "HadCalScintiBox"(G4Box),
1638                                900 cm3, 1.032 g/cm3
1639     
1640     Calculating mass(es)...
1641     Overall volume of "worldPhysical":0, is 2400 m3
1642     Mass of tree to unlimited depth is 22260.5 kg
1643</programlisting>
1644</informalexample>
1645</para>
1646
1647<para>
1648Some more examples of ASCIITree in action:
1649
1650<informalexample>
1651<programlisting>
1652     Idle&gt; /vis/ASCIITree/verbose 1
1653     Idle&gt; /vis/drawTree
1654     #  Set verbosity with "/vis/ASCIITree/verbose
1655     #    &lt;  10: - does not print daughters of repeated placements, does not repeat replicas.
1656     #    &gt;= 10: prints all physical volumes.
1657     #  The level of detail is given by verbosity%10:
1658     #  for each volume:
1659     #    &gt;=  0: physical volume name.
1660     #    &gt;=  1: logical volume name (and names of sensitive detector and readout geometry, if any).
1661     #    &gt;=  2: solid name and type.
1662     #    &gt;=  3: volume and density.
1663     #    &gt;=  5: daughter-subtracted volume and mass.
1664     #  and in the summary at the end of printing:
1665     #    &gt;=  4: daughter-included mass of top physical volume(s) in scene to depth specified.
1666     .....
1667     "Calorimeter", copy no. 0, belongs to logical volume "Calorimeter"
1668       "Layer", copy no. -1, belongs to logical volume "Layer" (10 replicas)
1669         "Absorber", copy no. 0, belongs to logical volume "Absorber"
1670           "Gap", copy no. 0, belongs to logical volume "Gap"
1671     .....
1672     Idle&gt; /vis/ASCIITree/verbose 15
1673     Idle&gt; /vis/drawTree
1674     ....
1675      "tube_phys":0 / "tube_L" / "tube"(G4Tubs), 395841 cm3, 1.782 mg/cm3,
1676                                9.6539e-08 mm3, 1.72032e-10 mg
1677        "divided_tube_phys":0 / "divided_tube_L" / "divided_tube"(G4Tubs), 65973.4 cm3,
1678                                1.782 mg/cm3, 7587.54 cm3, 13.521 g
1679          "divided_tube_inset_phys":0 / "divided_tube_inset_L" / "divided_tube_inset"(G4Tubs),
1680                                        58385.9 cm3, 1.782 mg/cm3, 6.03369e-09 mm3, 1.0752e-11 mg
1681            "sub_divided_tube_phys":0 / "sub_divided_tube_L" / "sub_divided_tube"(G4Tubs),
1682                                        14596.5 cm3, 1.782 mg/cm3, 12196.5 cm3, 21.7341 g
1683     .....
1684     Calculating mass(es)...
1685     Overall volume of "expHall_P":0, is 8000 m3  and the daughter-included mass to unlimited depth
1686                                      is 78414 kg
1687     .....
1688</programlisting>
1689</informalexample>
1690</para>
1691
1692<para>
1693For the complete list of commands and options, see the
1694<ulink url="./AllResources/Control/UIcommands/_vis_.html">
1695Control...UICommands</ulink>  section of this user guide.
1696</para>
1697
1698</sect2>
1699
1700
1701<!-- ******************* Section (Level#2) ****************** -->
1702<sect2 id="sect.VisDrv.GAGTree">
1703<title>
1704GAG Tree
1705</title>
1706
1707<para>
1708The GAGTree driver provides a listing of the detector geometry tree
1709within GAG, the Geant Adaptive GUI, from $G4INSTALL/environments/MOMO/MOMO.jar.
1710GAG allows "folding/un-folding" a part of the geometry tree, using
1711the <emphasis>Tree Widget</emphasis> in Java:
1712
1713<informalfigure id="fig.VisDrv_1">
1714<mediaobject>
1715  <imageobject role="fo">
1716    <imagedata fileref="./AllResources/Visualization/visualization.src/gagtree.jpg" 
1717               format="JPG" contentwidth="12.0cm" align="center" />
1718  </imageobject>
1719  <imageobject role="html">
1720    <imagedata fileref="./AllResources/Visualization/visualization.src/gagtree.jpg"
1721               format="JPG" align="center" />
1722  </imageobject>
1723</mediaobject>
1724</informalfigure>
1725</para>
1726
1727</sect2>
1728
1729
1730<!-- ******************* Section (Level#2) ****************** -->
1731<sect2 id="sect.VisDrv.XMLTree">
1732<title>
1733XML Tree
1734</title>
1735
1736<para>
1737The XML description of the geometry tree can be created in Geant4
1738by the XML Tree driver. The XML source can also be edited on the
1739fly. The created XML files are visualizable with any XML browser
1740(in Windows, a good XML viewer is <emphasis>XML Notepad</emphasis>).
1741
1742<itemizedlist spacing="compact">
1743  <listitem><para>
1744    Folding and un-folding:
1745
1746    <informalfigure id="fig.VisDrv_2">
1747    <mediaobject>
1748      <imageobject role="fo">
1749        <imagedata fileref="./AllResources/Visualization/visualization.src/xmlnp.jpg" 
1750                   format="JPG" contentwidth="12.0cm" align="center" />
1751      </imageobject>
1752      <imageobject role="html">
1753        <imagedata fileref="./AllResources/Visualization/visualization.src/xmlnp.jpg"
1754                   format="JPG" align="center" />
1755        </imageobject>
1756    </mediaobject>
1757    </informalfigure>
1758  </para></listitem>
1759</itemizedlist>
1760
1761<?soft-pagebreak ?>
1762<itemizedlist>
1763  <listitem><para>
1764    Searching a string:
1765
1766    <informalfigure id="fig.VisDrv_3">
1767    <mediaobject>
1768      <imageobject role="fo">
1769        <imagedata fileref="./AllResources/Visualization/visualization.src/xmlnpfind.jpg" 
1770                   format="JPG" contentwidth="12.0cm" align="center" />
1771      </imageobject>
1772      <imageobject role="html">
1773        <imagedata fileref="./AllResources/Visualization/visualization.src/xmlnpfind.jpg"
1774                   format="JPG" align="center" />
1775      </imageobject>
1776    </mediaobject>
1777    </informalfigure>
1778  </para></listitem>
1779</itemizedlist>
1780</para>
1781
1782
1783</sect2>
1784</sect1>
Note: See TracBrowser for help on using the repository browser.