source: trunk/Documentation/geant4/support/faq.shtml @ 901

Last change on this file since 901 was 901, checked in by garnier, 16 years ago

Add Geant4 Documentation at 8.12.2008

File size: 25.5 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3<html>
4
5<head>
6<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
7<title>FAQ</title>
8<link rel="stylesheet" type="text/css" href="../includes/geantstyle.css" />
9</head>
10
11<body>
12
13<!-- stop index -->
14<table id="top" cellpadding="0" cellspacing="0" width="100%">
15  <tr>
16    <td><a href="index.shtml">
17    <img alt="Geant4 Home" src="http://cern.ch/geant4/images/geanttiny.gif" width="164" height="40" /></a></td>
18    <td align="right" class="doNotPrint">
19    <a href="http://cern.ch/geant4/support/download.shtml">Download</a>
20    | <a href="http://hypernews.slac.stanford.edu/HyperNews/geant4/cindex">User
21    Forum</a> | <a href="http://cern.ch/geant4/gallery/index.html">
22    Gallery</a><br />
23    <a href="http://cern.ch/geant4/collaboration/contacts.shtml">
24    Contact Us</a><br />
25      <form method="get" action="http://www.cern.ch/cgi-bin/directory-search.pl">
26      <input type="hidden" value="No" name="SubSearch" />
27      <input type="hidden" value="url:wwwinfo.cern.ch/asd/geant4/G4UsersDocuments/
28url:geant4.web.cern.ch/geant4/G4UsersDocuments/" name="AdditionalQuery" />
29      <input type="hidden" value="searchbrowse.html" name="TemplateFile" />
30      <input type="hidden" value="http://wwwinfo.cern.ch/asd/" name="Referer" />
31      <input type="hidden" value="cern" name="qc" />
32      <input type="hidden" value="cern" name="col" />
33      <input size="35" name="qt" />
34      <input type="submit" value="Search Geant4" />
35    </form>
36    </td>
37  </tr>
38</table>
39
40<!-- start index -->
41
42<table border="0" cellpadding="4" cellspacing="0" width="100%">
43  <tr>
44    <td id="breadcrumb">
45    <!-- start bread crumb --><a href="../index.shtml">Home</a> &gt;
46                <a href="index.shtml">User Support</a> &gt;
47                <a href="gettingstarted.shtml">Getting Started</a> &gt;
48                 FAQ<!-- end bread crumb --></td>
49  </tr>
50  <tr>
51    <td id="main">
52<h1>Frequently Asked Questions</h1>
53<H2>(See also
54     <A TARGET="_top" HREF="http://geant4.slac.stanford.edu/Tips">Useful Tips</A> page
55     at SLAC)</H2></DIV>
56<P></P>
57
58<UL>
59  <LI> <B><A NAME="q-general"></A><A HREF="#a-general">General</A></B>
60    <OL>
61      <LI><A HREF="#gen-1">How do I add a FAQ to this page?</A></LI>
62    </OL>
63  </LI>
64  <BLOCKQUOTE>
65    <P>&nbsp; </P>
66  </BLOCKQUOTE>
67  <LI><B><A NAME="q-install"></A><A HREF="#a-install">Installation</A></B>
68    <OL>
69      <LI><A HREF="#install-1">When I download the source from the web, and unpack
70        the tar file, some files unpack into the top level directory.</A> </LI>
71      <LI><A HREF="#install-2">I cannot find CLHEP files or library and I have it
72        installed in my system</A>. </LI>
73      <LI><a href="#install-3">While installing the Geant4 libraries I get the
74        following message printed:</a><br>
75        <code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gmake[1]: cernlib:
76        Command not found</code> <br>
77        <a href="#install-3">Has Geant4 been installed properly ? What to do to
78        solve this error ? </a> </LI>
79      <LI><a href="#install-4">Trying building the Geant4 libraries I see several
80        of these errors appearing and my installation fails:</a><br>
81        <code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .....G4Exception.d:1:
82        *** missing separator. Stop.<br>
83        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </code><code>...../G4DalitzDecayChannel.d:1:
84        *** missing separator. Stop. <br>
85        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :<br>
86        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : </code>
87        <br>
88        <a href="#install-4">Has Geant4 been installed properly ? What to do to
89        solve this error ? </a> </LI>
90    </OL>
91  </LI>
92  <BLOCKQUOTE>
93    <P>&nbsp; </P>
94  </BLOCKQUOTE>
95  <LI><B><A NAME="q-run"></A><A HREF="#a-run">Runtime Problems</A></B>
96    <OL>
97      <LI><A HREF="#runtime-1">On Linux, I get a segmentation fault
98        as soon as I run one of the official examples.</A>
99      </LI>
100      <LI><a href="#runtime-2">I installed Geant4 libraries and built my application,
101        when I try to run it I get:</a><br>
102        <code>
103         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
104           error in loading shared libraries:<br>
105         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
106           libCLHEP.so: cannot open shared object file:<br>
107         &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
108           No such file or directory</code>.
109      </LI>
110      <LI><A HREF="#runtime-3">On my system I get a Floating Point Exception
111        (FPE) since some physics processes sometimes return DBL_MAX as interaction
112        length and this number is afterwards multiplied by a number greater than
113        1.</A>
114      </LI>
115    </OL>
116  </LI>
117  <BLOCKQUOTE>
118    <P>&nbsp; </P>
119  </BLOCKQUOTE>
120  <LI><A NAME="q-geometry"></A><B><A HREF="#a-geometry">Geometry</A></B>
121    <OL>
122      <LI><A HREF="#a-geom-1">I have a generic point and I would like to know
123        in which physical volume I'm located in my detector geometry.</A></LI>
124      <LI><A HREF="#a-geom-2">How can I access the daughter volumes of a specific
125        physical volume?</A></LI>
126      <LI><A HREF="#a-geom-3">How can I identify the exact copy-number of a specific
127        physical volume in my mass geometry?  I tried with <code>GetCopyNo()</code>
128        from my physical volume pointer, but it doesn't seem to work!</A></LI>
129      <LI><A HREF="#a-geom-4">How can I determine the exact position in global coordinates
130        in my mass geometry during tracking and how can I convert it to coordinates local to
131        the current volume ?</A></LI>
132    </OL>
133  </LI>
134  <BLOCKQUOTE>
135    <P>&nbsp; </P>
136  </BLOCKQUOTE>
137  <LI><B><A NAME="q-track"></A><A HREF="#a-track">Tracks and steps</A></B>
138    <OL>
139      <LI><A HREF="#TRACK-1">How can I access the track information through
140        the step object and what information am I allowed to access ?</A>
141    </OL>
142  </LI>
143  <BLOCKQUOTE>
144    <P>&nbsp; </P>
145  </BLOCKQUOTE>
146  <LI><B><A NAME="q-phys"></A><A HREF="#a-phys">Physics and cuts</A></B>
147    <OL>
148      <LI><A HREF="#PHYS-1">How do production cuts (in range) work in Geant4 ?
149        Are they also used in tracking ?  If a particle has an energy lower than the
150        converted cut in energy for the given material and the distance to the next
151        boundary is smaller than the cut in range, is the particle killed ?</A>
152    </OL>
153  </LI>
154  <BLOCKQUOTE>
155    <P>&nbsp; </P>
156  </BLOCKQUOTE>
157  <LI><B><A NAME="q-vis"></A><A HREF="#a-vis">Visualization</A></B>
158    <OL>
159      <LI><A HREF="#VIS-1">I have set G4VIS... environmental variables but visualization
160        does not appear to be enabled.</A>
161    </OL>
162  </LI>
163</UL>
164
165<HR>
166
167<H3><A NAME="a-general"></A><A HREF="#q-general">General</A></H3>
168<OL>
169<LI><A NAME="gen-1"></A><I>How do I add a FAQ to this page?</I>
170  <BR><BR>
171  <I>Solution:</I><BR>
172  This is done manually at the moment. Please send your FAQ with solution
173  to the <A HREF="mailto:Gunter.Folger@cern.ch, Gabriele.Cosmo@cern.ch">editors</A>.
174</LI>
175</OL>
176
177<HR>
178
179<H3> <A NAME="a-install"></A><A HREF="#q-install">Installation</A> </H3>
180<OL>
181  <LI><A NAME="install-1"></A><I>When I download the source from the web, and unpack
182    the tar file, some files unpack into the top level directory.</I><BR>
183    <BR>
184    <I>Solution:</I><BR>
185    The problem you describe usually is the result of using "UNIX" tar to
186    unpack the gtar ("GNU-tar") file, or vice versa, or using zip on either the
187    gtar or tar file. Please make certain that you download the correct file for
188    your system, and that you use the correct unpacking tool. Note that for Linux
189    you must download the gtar.gz file.<P>
190  </LI>
191  <LI><A NAME="install-2"></A><I>I cannot find CLHEP files or library and I have
192    it installed in my system.</I><BR>
193    <BR>
194    <I>Solution:</I><BR>
195    If the standard CLHEP installation procedure has been adopted, the variable
196    <tt>CLHEP_BASE_DIR</tt> should point to the area where <tt>include/</tt> and
197    <tt>lib/</tt> directories for CLHEP headers & library are installed in your
198    system. In case the <B>library file name</B> is different than the one
199    expected (<tt>libCLHEP.a</tt>), you should either create a symbolic
200    link with the expected name, or define the variable <tt>CLHEP_LIB</tt> in
201    your environment which explicitly sets the name of the CLHEP library.
202    If a non-standard CLHEP installation has been adopted, define variables
203    <tt>CLHEP_INCLUDE_DIR</tt>, <tt>CLHEP_LIB_DIR</tt> (and <tt>CLHEP_LIB</tt>)
204    to refer explicitly to the place where headers, library (and library-name)
205    respectively are placed in your system.<BR>
206    On Windows systems, the full library file name (with extension) should be
207    specified as <tt>CLHEP_LIB</tt>, while for UNIX-like systems, just the name
208    is required (i.e. <tt>CLHEP</tt> for <tt>libCLHEP.a</tt>)<P>
209  </LI>
210  <li><a name="install-3"></a><i>While installing the Geant4 libraries I get
211    the following message printed:</i><br>
212      &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
213      gmake[1]: cernlib: Command not found <br>
214    <i>Has Geant4 been installed properly ? What to do to solve this error ?</i><br>
215    <br>
216    <i>Solution:</i><br>
217    The message:<br>
218    <code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
219           gmake[1]: cernlib: Command not found
220    </code> <br>
221    shows that you don't have the 'cernlib' command installed in your system;
222    'cernlib' is a command from the CERN program library (cernlib) returning a
223    list of libraries needed to link a cernlib application. This command is only
224    used in the 'g3tog4' module, however, if you do not make use of the 'g3tog4'
225    tool, it's harmless. The cernlib script (and the needed cernlib libraries)
226    are available from: <a href="http://cern.ch/cernlib">http://cern.ch/cernlib</a>.<P>
227  </li>
228  <li><a name="install-4"></a> <i>Trying building the Geant4 libraries I see several
229    of these errors appearing and my installation fails:</i><br>
230    <code> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
231           .....G4Exception.d:1:
232           *** missing separator. Stop.<br>
233           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
234           ...../G4DalitzDecayChannel.d:1:
235           *** missing separator. Stop. <br>
236           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
237           :<br>
238           &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
239           :
240    </code> <br>
241    <i>Has Geant4 been installed properly ? What to do to solve this error ?</i><br>
242    <br>
243    <i>Solution:</i><br>
244    It looks like some file dependencies (.d) are corrupted, possibly
245    due to previous build attempts which failed for some reason.<br>
246    You need to remove each of them. A quick recipe for doing this is to:
247    <ul>
248    <li>Configure the environment with the installation to be repaired</li>
249    <li>Unset the <tt>G4WORKDIR</tt> environment variable (in case it is
250        eventually set)</li>
251    <li>Type:
252    <pre>
253       gmake clean dependencies=''
254    </pre>
255    from the affected module (i.e. for this case, from
256    <tt>$G4INSTALL/source/global/management</tt> and
257    <tt>$G4INSTALL/source/particles/management</tt>)
258    and rebuild.
259    <br>Alternatively, you may use:
260    <pre>
261       gmake clean dependencies=''
262    </pre>
263    from <tt>$G4INSTALL/source</tt> and rebuild.</li>
264    </ul>
265  </li>
266</ol>
267 
268<HR>
269
270<H3><A NAME="a-run"></A><A HREF="#q-run">Run Time Problems</A> </H3>
271<OL>
272  <LI><A NAME="runtime-1"></A><I>On Linux, I get a segmentation fault
273    as soon as I run one of the official examples.</I><BR>
274    <BR>
275    <I>Solution:</I><BR>
276    Check that the CLHEP library has been installed and compiled coherently with
277    the same compiler you use for installing Geant4 and for the same version of Linux
278    distribution.
279    For example, a binary object produced with Red-Hat 7.X is not fully compatible with
280    binaries running on RH 9.X or higher, due to different <tt>libc</tt> used in the two
281    configurations.<P>
282  </li>
283  <li><a name="runtime-2"></a><i>I installed Geant4 libraries and built my application,
284    when I try to run it I get:</i><br>
285    <code>
286     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
287     error in loading shared libraries:<br>
288     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
289     libCLHEP.so: cannot open shared object file:<br>
290     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
291     No such file or directory.
292    </code><br>
293    <br>
294    <i>Solution:</i><br>
295    Your installation of CLHEP includes shared libraries. You need to specify
296    the path where <tt>libCLHEP.so</tt> is installed through your environment
297    variable <tt>LD_LIBRARY_PATH</tt>. For example, in <tt>tcsh</tt> UNIX shell:
298    <pre>
299       setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:$CLHEP_BASE_DIR/lib
300    </pre><P>
301  </li>
302  <LI><A NAME="runtime-3"></A><I>On my system I get a Floating Point Exception
303    (FPE) since some physics processes sometimes return </I>DBL_MAX<I> as interaction
304    length and this number is afterwards multiplied by a number greater than 1.</I><BR>
305    <BR>
306    <I>Solution:</I><BR>
307    Geant4 coding conventions and installation setup explicitly follow the ANSI/IEEE-754
308    Standard for the initialization of floating-point arithmetic hardware and
309    portability. The Standard foresees floating-point arithmetic to be nonstop
310    and underflows to be gradual. On DEC platforms, for example, the ANSI/IEEE-754
311    Standard compliance needs to be explicitly set (since deactivated by default);
312    in this case we use infact the option "-ieee" on the DEC/cxx native C++ compiler
313    to achieve this. You should check if your compiler provides compilation options
314    for activating Standard initialization of FP arithmetic (it may be platform
315    specific).
316  </LI>
317</OL>
318
319<HR>
320
321<H3><A NAME="a-geometry"></A><A HREF="#q-geometry">Geometry</A> </H3>
322<OL>
323<LI><A NAME="a-geom-1"></A><I>I have a generic point and I would like to know
324  in which physical volume I'm located in my detector geometry.</I>
325  <BR><BR>
326  <I>Solution:</I><BR>
327  The best way of doing this is by invoking the <code>G4Navigator</code>.
328  First get a pointer of the navigator through the <code>G4TransportationManager</code>,
329  and then locate the point.
330  i.e.
331  <pre>
332     #include "G4TransportationManager.hh"
333     #include "G4Navigator.hh"
334     G4ThreeVector myPoint = ....;
335     G4Navigator* theNavigator = G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking();
336     G4VPhysicalVolume* myVolume = theNavigator->LocateGlobalPointAndSetup(myPoint);
337  </pre>
338  NOTE 1: it is advisable to perform the call for locating the point when the
339        geometry is "closed", i.e. after the geometry optimisation has been
340        generated.<P></P>
341  NOTE 2: by using the navigator for tracking as shown above, the actual particle
342        gets also -relocated- in the specified position. Therefore, if this
343        information is needed during tracking time, in order to avoid affecting
344        tracking, you should either use an alternative <code>G4Navigator</code>
345        object (which you then assign to your world-volume), or you access the
346        information through the track or touchable as specified in the FAQ
347        for <A HREF="#TRACK-1">tracking and steps</A>.<P></P>
348</LI>
349<LI><A NAME="a-geom-2"></A><I>How can I access the daughter volumes of a specific
350  physical volume?</I>
351  <BR><BR>
352  <I>Solution:</I><BR>
353  Through the associated logical volume.
354  <pre>
355      G4VPhysicalVolume* myPVolume = ....;
356      G4LogicalVolume* myLVolume = myPVolume->GetLogicalVolume();
357      for (G4int i=0; i < myLVolume->GetNoDaughters(); i++) 
358        myPVolume = myLVolume->GetDaughter(i);
359  </pre>
360</LI>
361<LI><A NAME="a-geom-3"></A><I>How can I identify the exact copy-number of a specific
362   physical volume in my mass geometry?  I tried with <code>GetCopyNo()</code>
363   from my physical volume pointer, but it doesn't seem to work!</I>
364   <BR><BR>
365  <I>Solution:</I><BR>
366  The correct way to identify -uniquely- a physical volume in your
367  mass geometry is by using the touchables (see also section 4.1.5 of the
368  User's Guide for Application Developers), as follows:
369  <pre>
370      G4Step* aStep = ..;
371      G4StepPoint* preStepPoint = aStep->GetPreStepPoint();
372      G4TouchableHandle theTouchable = preStepPoint->GetTouchableHandle();
373      G4int copyNo = theTouchable->GetCopyNumber();
374      G4int motherCopyNo = theTouchable->GetCopyNumber(1);
375  </pre>
376  where <code>Copy</code> here stays for any duplicated instance of a physical
377  volume, either if it is a <code>G4PVPlacement</code> (multiple placements of the
378  same logical volume) or a <code>G4PVReplica</code>/<code>G4PVParameterised</code>.<BR>
379  The method <code>GetCopyNo()</code> is meant to return only the serial
380  number of placements not duplicated in the geometry tree.<P>
381</LI>
382<LI><A NAME="a-geom-4"></A><I>How can I determine the exact position in global coordinates
383   in my mass geometry during tracking and how can I convert it to coordinates local to
384   the current volume ?</I>
385   <BR><BR>
386  <I>Solution:</I><BR>
387  You need again to do it through the touchables (see also section 4.1.5 of the
388  User's Guide for Application Developers), as follows:
389  <pre>
390      G4Step* aStep = ..;
391      G4StepPoint* preStepPoint = aStep->GetPreStepPoint();
392      G4TouchableHandle theTouchable = preStepPoint->GetTouchableHandle();
393      G4ThreeVector worldPosition = preStepPoint->GetPosition();
394      G4ThreeVector localPosition = theTouchable->GetHistory()->
395                                    GetTopTransform().TransformPoint(worldPosition);
396  </pre>
397  where <code>worldPosition</code> here stays for the position related to the world
398  volume, while <code>localPosition</code> refers to the coordinates local to the
399  volume where the particle is currently placed.
400</LI>
401</OL>
402
403<HR>
404
405<H3><A NAME="a-track"></A><A HREF="#q-track">Tracks and steps</A> </H3>
406<OL>
407<LI><I><A NAME="TRACK-1"></A>How can I access the track information through
408  the step object and what information am I allowed to access ?</I>
409  <BR><BR>
410  <I>Answer:</I><BR>
411  A <code>G4Step</code> object consists of two points:
412  <pre>
413      G4StepPoint* point1 = step->GetPreStepPoint();
414      G4StepPoint* point2 = step->GetPostStepPoint();
415  </pre>
416  To get their positions in the global coordinate system:
417  <pre>
418      G4ThreeVector pos1 = point1->GetPosition();
419      G4ThreeVector pos2 = point2->GetPosition();
420  </pre>
421  Hereafter we call <i>current volume</i> the volume where the step has just
422  gone through. Geometrical informations are available from
423  <code>preStepPoint</code>.<BR>
424  <code>G4VTouchable</code> and its derivates keep these geometrical
425  informations. We retrieve a <i>touchable</i> by creating a <i>handle</i>
426  for it:
427  <pre>
428      G4TouchableHandle touch1 = point1->GetTouchableHandle();
429  </pre>
430  To get the current volume:
431  <pre>
432       G4VPhysicalVolume* volume = touch1->GetVolume();
433  </pre>
434  To get its name:
435  <pre>
436      G4String name = volume->GetName();
437  </pre>
438  To get the physical volume copy number:
439  <pre>
440      G4int copyNumber = touch1->GetCopyNumber();
441  </pre>
442  To get logical volume:
443  <pre>
444      G4LogicalVolume* lVolume = volume->GetLogicalVolume();
445  </pre>
446  To get the associated material: the following statements are equivalent:
447  <pre>
448      G4Material* material = point1  ->GetMaterial();
449      G4Material* material = lVolume ->GetMaterial();
450  </pre>
451  To get the geometrical region:
452  <pre>
453      G4Region* region = lVolume->GetRegion();
454  </pre>
455  To get its mother volume:
456  <pre>
457      G4VPhysicalVolume* mother = touch1->GetVolume(depth=1);
458      grandMother: depth=2 ...etc...
459  </pre>
460  To get the copy number of the mother volume:
461  <pre>
462      G4int copyNumber = touch1->GetCopyNumber(depth=1);
463      grandMother: depth=2 ...etc...
464  </pre>
465  To get the process which has limited the current step:
466  <pre>
467      G4VProcess* aProcess = point2->GetProcessDefinedStep();
468  </pre>
469  To check that the particle has just entered in the current volume
470  (i.e. it is at the first step in the volume; the <code>preStepPoint</code>
471  is at the boundary):
472  <pre>
473      if (point1->GetStepStatus() == fGeomBoundary)
474  </pre>
475  To check that the particle is leaving the current volume
476  (i.e. it is at the last step in the volume; the <code>postStepPoint</code>
477  is at the boundary):
478  <pre>
479      if (point2->GetStepStatus() == fGeomBoundary)
480  </pre>
481  In the above situation, to get touchable of the next volume:
482  <pre>
483      G4TouchableHandle touch2 = point2->GetTouchableHandle();
484  </pre>
485  From <code>touch2</code>, all informations on the next volume can
486  be retrieved as above.
487  <p></p>
488  Physics quantities are available from the step (<code>G4Step</code>) or
489  from the track (<code>G4Track</code>).
490  <p></p>
491  To get the energy deposition, step length, displacement and time of flight
492  spent by the current step:
493  <pre>
494      G4double eDeposit      = step->GetTotalEnergyDeposit();
495      G4double sLength       = step->GetStepLength();
496      G4ThreeVector displace = step->GetDeltaPosition();
497      G4double tof           = step->GetDeltaTime();
498  </pre>
499  To get momentum, kinetic energy and global time (time since the beginning
500  of the event) of the track after the completion of the current step:
501  <pre>
502      G4Track* track         = step->GetTrack();
503      G4ThreeVector momentum = track->GetMomentum();
504      G4double kinEnergy     = track->GetKineticEnergy();
505      G4double globalTime    = track->GetGlobalTime();
506      ...etc...
507  </pre>
508  <u>Remark</u> - To transform a position from the global coordinate
509  system to the local system of the current volume, use the
510  <code>preStepPoint</code> transformation, as described in the
511  <a href="#a-geom-4">geometry section</a> above.
512</LI>
513</OL>
514
515<HR>
516
517<H3><A NAME="a-phys"></A><A HREF="#q-phys">Physics and cuts</A> </H3>
518<OL>
519<LI><I><A NAME="PHYS-1"></A>How do production cuts (in range) work in Geant4 ?
520  Are they also used in tracking ?  If a particle has an energy lower than the
521  converted cut in energy for the given material and the distance to the next
522  boundary is smaller than the cut in range, is the particle killed ?</I>
523  <BR><BR>
524  <I>Answer:</I><BR>
525  Geant4 does NOT have a "tracking cut". The toolkit's default behaviour
526  is to track particles down to zero range (i.e. zero energy).<BR>
527  Of course, it is possible for the user to create and register a process
528  that kills particles below a certain energy or range; this is however
529  NOT provided by default in Geant4. So there's NO "tracking cut".<BR>
530  For example, suppose a particle that is nearing zero energy will at some point
531  be proposed by its Ionisation process to undergo one final step, from its current
532  energy down to zero energy. This is still only a proposal. If during this step
533  the particle crosses a boundary, then the transportation will limit the step at
534  a length smaller than the Ionisation -- so the particle will still see and cross
535  the relevant boundary, and another step will occur on the other side of that
536  boundary.<BR>
537  In summary the "production threshold" range and its equivalent in
538  energy are not utilised as a "tracking cut". A particle is not abandoned
539  by Geant4 below a certain range/energy unless the user registers a process
540  to do this by him/her-self.
541</LI>
542</OL>
543
544<HR>
545
546<H3><A NAME="a-vis"></A><A HREF="#q-vis">Visualization</A> </H3>
547<OL>
548<LI><I><A NAME="VIS-1"></A>I have set G4VIS... environmental variables but
549  visualization does not appear to be enabled.</I>
550  <BR><BR>
551  <I>Solution:</I><BR>
552  This might be
553  because you set the environment variables *after* already compiling. The environment
554  variables control C-pre-processor macros of the same name and therefore influence
555  what code gets compiled. It is suggested to proceed with the following manual procedure
556  to correct the current installation:
557  <UL>
558  <LI>Configure the environment according to the installation making sure to -unset-
559      the <tt>G4WORKDIR</tt> environment variable, if set.</LI>
560  <LI>Verify and eventually set the environment variables of the visualization module
561      [name] concerned (setenv or export both <TT>G4VIS_BUILD_[name]_DRIVER</TT> and
562      <TT>G4VIS_USE_[name]</TT> variables according to the UNIX shell used), and then
563      proceed as follows:
564  <PRE>
565     cd $G4INSTALL/source/visualization
566     gmake clean
567     gmake
568     cd $G4INSTALL/source/interfaces
569     gmake clean
570     gmake
571     cd $G4INSTALL/source
572     gmake libmap
573     setenv G4WORKDIR [your working directory]   (or export)
574     cd [your application directory]
575     gmake clean
576     gmake
577  </PRE></LI>
578  </UL>
579</LI>
580</OL>
581      </td>
582    </tr>
583  </table>
584
585<!-- start footer -->
586<div id="bottom">
587  <br/><br/>
588<a href="http://cern.ch/geant4/applications/index.shtml">Applications</a> |
589<a href="http://cern.ch/geant4/support/index.shtml">User Support</a> |
590<a href="http://cern.ch/geant4/results/index.shtml">Results &amp; Publications</a> |
591<a href="http://cern.ch/geant4/collaboration/index.shtml">Collaboration</a> |
592<a href="http://cern.ch/geant4/sitemap.shtml">Site Map</a><br />
593<p></p>
594<script type="text/javascript">
595<!--//
596var zap_domain = "cern.ch"
597var zap_user = "Gunter.Folger"
598var zap_recipient = zap_user + "@" + zap_domain
599var zap_url = "mailto:" + zap_recipient +"?subject=Feedback&body=My feedback concerns the page at: " + " " + escape(top.parent.location.href)
600document.write('<a href="' + zap_url + '" target=>Contact Webmaster</a>')
601//-->
602</script>
603
604
605  <div id="update">
606  <p>Last updated:
607 
608   09/27/2007
609  </p>
610  </div>
611</div>
612<!-- End footer -->
613
614</body>
615
616</html>
617
Note: See TracBrowser for help on using the repository browser.