<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.hep.ucl.ac.uk/pbt/pbtWiki/index.php?action=history&amp;feed=atom&amp;title=Software%2FGeant4%2FIntroduction</id>
	<title>Software/Geant4/Introduction - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.hep.ucl.ac.uk/pbt/pbtWiki/index.php?action=history&amp;feed=atom&amp;title=Software%2FGeant4%2FIntroduction"/>
	<link rel="alternate" type="text/html" href="https://www.hep.ucl.ac.uk/pbt/pbtWiki/index.php?title=Software/Geant4/Introduction&amp;action=history"/>
	<updated>2026-05-13T04:34:48Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://www.hep.ucl.ac.uk/pbt/pbtWiki/index.php?title=Software/Geant4/Introduction&amp;diff=14&amp;oldid=prev</id>
		<title>SimonJolly at 15:23, 30 March 2016</title>
		<link rel="alternate" type="text/html" href="https://www.hep.ucl.ac.uk/pbt/pbtWiki/index.php?title=Software/Geant4/Introduction&amp;diff=14&amp;oldid=prev"/>
		<updated>2016-03-30T15:23:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:23, 30 March 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l9&quot;&gt;Line 9:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 9:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The interaction with GEANT4 is done via base classes.     &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The interaction with GEANT4 is done via base classes.     &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Mandatory &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;classes: &lt;/del&gt;===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Mandatory &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Classes &lt;/ins&gt;===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; G4VUserDetectorConstruction : Describe the experimental setup, geometry and materials.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; G4VUserDetectorConstruction : Describe the experimental setup, geometry and materials.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l15&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; G4VUserPrimaryGeneratorAction : Describe particle source, source dimensions, initial position, energy spectrum, angular distributions.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; G4VUserPrimaryGeneratorAction : Describe particle source, source dimensions, initial position, energy spectrum, angular distributions.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Optional &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;classes: &lt;/del&gt;===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Optional &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Classes &lt;/ins&gt;===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; G4UserRunAction : Define and store histograms.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; G4UserRunAction : Define and store histograms.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l23&quot;&gt;Line 23:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 23:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; G4UserSteppingAction : Kill, suspend, postpone a track.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; G4UserSteppingAction : Kill, suspend, postpone a track.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Manager &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;class &lt;/del&gt;===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Manager &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Class &lt;/ins&gt;===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; G4RunManager : Manages processing the run.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; G4RunManager : Manages processing the run.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l167&quot;&gt;Line 167:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 167:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; SetCuts() : Define production thresholds in terms of range.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; SetCuts() : Define production thresholds in terms of range.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Simple example of class &amp;lt;code&amp;gt;MyPhysicsList&amp;lt;/code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: &lt;/del&gt;====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Simple example of class &amp;lt;code&amp;gt;MyPhysicsList&amp;lt;/code&amp;gt; ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l185&quot;&gt;Line 185:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 185:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Implement &amp;lt;code&amp;gt;ConstructParticle()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ConstructProcess()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SetCuts()&amp;lt;/code&amp;gt; methods&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: &lt;/del&gt;====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Implement &amp;lt;code&amp;gt;ConstructParticle()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ConstructProcess()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SetCuts()&amp;lt;/code&amp;gt; methods ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l294&quot;&gt;Line 294:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 294:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In &amp;lt;code&amp;gt;G4VModularPhysicsList&amp;lt;/code&amp;gt; you can group the physics processes into separate modules which are already pre-build physics list and later chose one of those modules.    &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In &amp;lt;code&amp;gt;G4VModularPhysicsList&amp;lt;/code&amp;gt; you can group the physics processes into separate modules which are already pre-build physics list and later chose one of those modules.    &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Simple example of class &amp;lt;code&amp;gt;MyPhysicsList&amp;lt;/code&amp;gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: &lt;/del&gt;====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Simple example of class &amp;lt;code&amp;gt;MyPhysicsList&amp;lt;/code&amp;gt; ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l325&quot;&gt;Line 325:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 325:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Now build the physics lists&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;: &lt;/del&gt;====&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==== Now build the physics lists ====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>SimonJolly</name></author>
	</entry>
	<entry>
		<id>https://www.hep.ucl.ac.uk/pbt/pbtWiki/index.php?title=Software/Geant4/Introduction&amp;diff=13&amp;oldid=prev</id>
		<title>SimonJolly at 15:21, 30 March 2016</title>
		<link rel="alternate" type="text/html" href="https://www.hep.ucl.ac.uk/pbt/pbtWiki/index.php?title=Software/Geant4/Introduction&amp;diff=13&amp;oldid=prev"/>
		<updated>2016-03-30T15:21:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:21, 30 March 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l11&quot;&gt;Line 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Mandatory classes: ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Mandatory classes: ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;&lt;/del&gt;G4VUserDetectorConstruction&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/del&gt;: Describe the experimental setup, geometry and materials;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;; &lt;/ins&gt;G4VUserDetectorConstruction : Describe the experimental setup, geometry and materials&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;&lt;/del&gt;G4VUserPhysicsList&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/del&gt;: Define particles, physics processes and range cuts;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; G4VUserPhysicsList : Define particles, physics processes and range cuts&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;&lt;/del&gt;G4VUserPrimaryGeneratorAction&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/del&gt;: Describe particle source, source dimensions, initial position, energy spectrum, angular distributions.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; G4VUserPrimaryGeneratorAction : Describe particle source, source dimensions, initial position, energy spectrum, angular distributions.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Optional classes: ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Optional classes: ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;&lt;/del&gt;G4UserRunAction&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/del&gt;: Define and store histograms;  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;; &lt;/ins&gt;G4UserRunAction : Define and store histograms&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;&lt;/del&gt;G4UserEventAction&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/del&gt;: Event selection and analysis of simulation data;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; G4UserEventAction : Event selection and analysis of simulation data&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;&lt;/del&gt;G4UserStackingAction&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/del&gt;: Customize priority of tracks;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; G4UserStackingAction : Customize priority of tracks&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;&lt;/del&gt;G4UserTrackingAction&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/del&gt;: Decide whether a trajectory should be stored or not;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; G4UserTrackingAction : Decide whether a trajectory should be stored or not&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;&lt;/del&gt;G4UserSteppingAction&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/del&gt;: Kill, suspend, postpone a track.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;; G4UserSteppingAction : Kill, suspend, postpone a track.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Manager class ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Manager class ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;&lt;/del&gt;G4RunManager&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&lt;/del&gt;: Manages processing the run.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;; &lt;/ins&gt;G4RunManager : Manages processing the run.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Useful terminology ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Useful terminology ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>SimonJolly</name></author>
	</entry>
	<entry>
		<id>https://www.hep.ucl.ac.uk/pbt/pbtWiki/index.php?title=Software/Geant4/Introduction&amp;diff=12&amp;oldid=prev</id>
		<title>SimonJolly: Created page with &quot;== Introduction ==  GEANT4 is a software toolkit based on C++. In your code you have to define:   * Your experimental setup: geometry, materials and primary particles. * Which ph...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.hep.ucl.ac.uk/pbt/pbtWiki/index.php?title=Software/Geant4/Introduction&amp;diff=12&amp;oldid=prev"/>
		<updated>2016-03-30T15:19:29Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== Introduction ==  GEANT4 is a software toolkit based on C++. In your code you have to define:   * Your experimental setup: geometry, materials and primary particles. * Which ph...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
GEANT4 is a software toolkit based on C++. In your code you have to define: &lt;br /&gt;
&lt;br /&gt;
* Your experimental setup: geometry, materials and primary particles.&lt;br /&gt;
* Which physics process you are interested in. &lt;br /&gt;
* Take actions during the simulation to inspect and store results. &lt;br /&gt;
&lt;br /&gt;
The interaction with GEANT4 is done via base classes.    &lt;br /&gt;
&lt;br /&gt;
=== Mandatory classes: ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;G4VUserDetectorConstruction&amp;#039;&amp;#039;&amp;#039;: Describe the experimental setup, geometry and materials;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;G4VUserPhysicsList&amp;#039;&amp;#039;&amp;#039;: Define particles, physics processes and range cuts;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;G4VUserPrimaryGeneratorAction&amp;#039;&amp;#039;&amp;#039;: Describe particle source, source dimensions, initial position, energy spectrum, angular distributions.&lt;br /&gt;
&lt;br /&gt;
=== Optional classes: ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;G4UserRunAction&amp;#039;&amp;#039;&amp;#039;: Define and store histograms; &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;G4UserEventAction&amp;#039;&amp;#039;&amp;#039;: Event selection and analysis of simulation data;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;G4UserStackingAction&amp;#039;&amp;#039;&amp;#039;: Customize priority of tracks;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;G4UserTrackingAction&amp;#039;&amp;#039;&amp;#039;: Decide whether a trajectory should be stored or not;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;G4UserSteppingAction&amp;#039;&amp;#039;&amp;#039;: Kill, suspend, postpone a track.&lt;br /&gt;
&lt;br /&gt;
=== Manager class ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;G4RunManager&amp;#039;&amp;#039;&amp;#039;: Manages processing the run.&lt;br /&gt;
&lt;br /&gt;
=== Useful terminology ===&lt;br /&gt;
&lt;br /&gt;
; Step : The smallest unit of Geant4 simulation, a particle is transported from one point to another.&lt;br /&gt;
; Trajectory and TrajectoryPoint : Collection of steps and step points.&lt;br /&gt;
; Process : Physics along the step.&lt;br /&gt;
; Track : A snapshot of a particle at some point along its path (not the same as trajectory).&lt;br /&gt;
; Event : A collection of information from tracks and trajectories.&lt;br /&gt;
; Run :  A collection of events.&lt;br /&gt;
&lt;br /&gt;
== The function &amp;lt;code&amp;gt;main()&amp;lt;/code&amp;gt; ==&lt;br /&gt;
&lt;br /&gt;
The function &amp;lt;code&amp;gt;main()&amp;lt;/code&amp;gt; defines the skeleton of your simulation code.  &lt;br /&gt;
Inside the function you instantiate &amp;lt;code&amp;gt;G4RunManager&amp;lt;/code&amp;gt; and notify it of your mandatory and optional classes.  &lt;br /&gt;
This is an example &amp;lt;code&amp;gt;main()&amp;lt;/code&amp;gt; function, where &amp;lt;code&amp;gt;MyDetectorConstruction&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MyPhysicsList&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MyPrimaryGeneratorAction&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;MyEventAction&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;MyRunAction&amp;lt;/code&amp;gt; are derived classes from the GEANT4 base classes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int main() { &lt;br /&gt;
  &lt;br /&gt;
// Run manager construction &lt;br /&gt;
&lt;br /&gt;
G4RunManager* runManager = new G4RunManager; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// mandatory user initialization classes&lt;br /&gt;
&lt;br /&gt;
runManager-&amp;gt;SetUserInitialization(new MyDetectorConstruction); &lt;br /&gt;
&lt;br /&gt;
runManager-&amp;gt;SetUserInitialization(new MyPhysicsList);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// mandatory user action classes  &lt;br /&gt;
&lt;br /&gt;
runManager-&amp;gt;SetUserAction(new MyPrimaryGeneratorAction); &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// optional user action classes &lt;br /&gt;
&lt;br /&gt;
runManager-&amp;gt;SetUserAction(new MyEventAction);  &lt;br /&gt;
&lt;br /&gt;
runManager-&amp;gt;SetUserAction(new MyRunAction); ... } &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
== Experimental setup ==&lt;br /&gt;
&lt;br /&gt;
You derive your own class from the &amp;lt;code&amp;gt;G4VUserDetectorConstruction&amp;lt;/code&amp;gt; base class.  &lt;br /&gt;
In the derived class you will: &lt;br /&gt;
&lt;br /&gt;
* Describe the shape and the size of your detector using &amp;lt;code&amp;gt;G4VSolid&amp;lt;/code&amp;gt;;&lt;br /&gt;
* Construct materials and electromagnetic fields using &amp;lt;code&amp;gt;G4Logical Volume&amp;lt;/code&amp;gt;;&lt;br /&gt;
* Place volumes of your detector geometry using &amp;lt;code&amp;gt;G4VPhysical Volume&amp;lt;/code&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
=== Simple example of class &amp;lt;code&amp;gt;MyDetectorConstruction&amp;lt;/code&amp;gt; === &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class MyDetectorConstruction:public G4VUserDetectorConstruction { &lt;br /&gt;
&lt;br /&gt;
public:  &lt;br /&gt;
    &lt;br /&gt;
MyDetectorConstruction();&lt;br /&gt;
&lt;br /&gt;
~MyDetectorConstruction(); &lt;br /&gt;
    &lt;br /&gt;
virtual G4VPhysicalVolume* Construct(); &lt;br /&gt;
&lt;br /&gt;
     &lt;br /&gt;
private: &lt;br /&gt;
   &lt;br /&gt;
void  DefineMaterials(); };    &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Detector Construction ===&lt;br /&gt;
&lt;br /&gt;
Now construct the detector.  &lt;br /&gt;
Your detector is always placed in a mother volume called the world volume.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
G4PhysicalVolume* MyDetectorConstruction::Construct() {  &lt;br /&gt;
&lt;br /&gt;
...  &lt;br /&gt;
&lt;br /&gt;
// World volume &lt;br /&gt;
&lt;br /&gt;
G4VSolid* pWorld = new G4Box(&amp;quot;World&amp;quot;,5*m,5*m,5*m); &lt;br /&gt;
                                         &lt;br /&gt;
G4LogicalVolume* pWorldLog = new G4LogicalVolume(pWorld,vacuum, &amp;quot;World&amp;quot;);    &lt;br /&gt;
                                                                           &lt;br /&gt;
G4VPhysicalVolume* pWorldPhys = new G4PVPlacement(0,G4ThreeVector(),pWorldLog,&amp;quot;World&amp;quot;,0,false,0);  &lt;br /&gt;
&lt;br /&gt;
// Water box &lt;br /&gt;
&lt;br /&gt;
G4VSolid* pBoxSolid = new G4Box(“WaterBox”, 1.*m, 2.*m, 3.*m);  &lt;br /&gt;
&lt;br /&gt;
G4LogicalVolume* pBoxLog = new G4LogicalVolume( pBoxSolid, water, “WaterBox”); &lt;br /&gt;
&lt;br /&gt;
G4VPhysicalVolume* aBoxPhys = new G4PVPlacement( pRotation, G4ThreeVector(posX, posY, posZ), pBoxLog, &lt;br /&gt;
&lt;br /&gt;
“WaterBox”, pWorldLog, false, copyNo); ... } &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Define Elements and Materials ===&lt;br /&gt;
&lt;br /&gt;
The elements and materials are defined using classes &amp;lt;code&amp;gt;G4Element&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G4Material&amp;lt;/code&amp;gt;.  &lt;br /&gt;
For example water, hydrogen and oxygen are defined as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void MyDetectorConstruction::DefineMaterials() { &lt;br /&gt;
&lt;br /&gt;
... &lt;br /&gt;
&lt;br /&gt;
G4Element* H = new G4Element(&amp;quot;Hydrogen&amp;quot;,&amp;quot;H&amp;quot;,z=1.,a= 1.01*g/mole); &lt;br /&gt;
 &lt;br /&gt;
G4Element* O = new G4Element(&amp;quot;Oxygen&amp;quot;,&amp;quot;O&amp;quot;,z=8.,a=16.00*g/mole); &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
density = 1.000*g/cm3; &lt;br /&gt;
&lt;br /&gt;
G4Material* water = new G4Material(&amp;quot;Water&amp;quot;,density,ncomp=2);  &lt;br /&gt;
&lt;br /&gt;
water-&amp;gt;AddElement(H, natoms=2);  &lt;br /&gt;
&lt;br /&gt;
water-&amp;gt;AddElement(O, natoms=1); ...}  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can find more examples of DetectorConstruction classes [http://geant4.web.cern.ch/geant4/UserDocumentation/Doxygen/examples_doc/html/group__extended__common__detectorConstruction.html on the Geant4 website].&lt;br /&gt;
&lt;br /&gt;
== Physics Processes == &lt;br /&gt;
&lt;br /&gt;
You can build your own physics list or chose from already built physics lists. To build your own physics lists, you can use two base physics list classes: &amp;lt;code&amp;gt;G4VUserPhysicsList&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G4ModularPhysicsList&amp;lt;/code&amp;gt;.  &lt;br /&gt;
The class &amp;lt;code&amp;gt;G4VUserPhysicsList&amp;lt;/code&amp;gt; is used for simple physics lists while &amp;lt;code&amp;gt;G4ModularPhysicsList&amp;lt;/code&amp;gt; is used to build more complex physics lists.  &lt;br /&gt;
There also exist already built pre-packaged physics lists.&lt;br /&gt;
&lt;br /&gt;
=== Simple physics lists ===  &lt;br /&gt;
&lt;br /&gt;
If the particles in your simulation undergo a discrete number of physics processes you can use the class &amp;lt;code&amp;gt;G4VUserPhysicsList&amp;lt;/code&amp;gt; to define them.  &lt;br /&gt;
This class has three methods:&lt;br /&gt;
&lt;br /&gt;
; ConstructParticles() : Define all necessary particles.&lt;br /&gt;
; ConstructProcesses() : Define all necessary processes and assign them to corresponding particles.&lt;br /&gt;
; SetCuts() : Define production thresholds in terms of range.&lt;br /&gt;
&lt;br /&gt;
==== Simple example of class &amp;lt;code&amp;gt;MyPhysicsList&amp;lt;/code&amp;gt;: ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class MyPhysicsList:public G4VUserPhysicsList() { &lt;br /&gt;
&lt;br /&gt;
public: &lt;br /&gt;
&lt;br /&gt;
MyPhysicsList(); &lt;br /&gt;
&lt;br /&gt;
~MyPhysicsList(); &lt;br /&gt;
&lt;br /&gt;
void ConstructParticle(); &lt;br /&gt;
&lt;br /&gt;
void ConstructProcess(); &lt;br /&gt;
&lt;br /&gt;
void SetCuts(); } &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
==== Implement &amp;lt;code&amp;gt;ConstructParticle()&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ConstructProcess()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;SetCuts()&amp;lt;/code&amp;gt; methods: ====&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void MyPhysicsList::ConstructParticle() { &lt;br /&gt;
&lt;br /&gt;
// Define the particles &lt;br /&gt;
&lt;br /&gt;
G4Electron::ElectronDefinition(); &lt;br /&gt;
&lt;br /&gt;
G4Positron::PositronDefinition(); &lt;br /&gt;
&lt;br /&gt;
G4Proton::ProtonDefinition(); &lt;br /&gt;
&lt;br /&gt;
G4Neutron::NeutronDefinition(); &lt;br /&gt;
&lt;br /&gt;
G4Gamma::GammaDefinition(); ... } &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Relevant physics processes ====&lt;br /&gt;
&lt;br /&gt;
GEANT4 provides a variety of physics processes.  &lt;br /&gt;
These processes are decoupled from one another and you can select those which are relevant to your simulation.  &lt;br /&gt;
The processes are grouped in seven categories:&lt;br /&gt;
&lt;br /&gt;
* Electromagnetic &lt;br /&gt;
* Hadronic&lt;br /&gt;
* Decay&lt;br /&gt;
* Photolepton-hadron&lt;br /&gt;
* Optical&lt;br /&gt;
* Parameterization&lt;br /&gt;
* Transportation &lt;br /&gt;
&lt;br /&gt;
and their list is available [http://geant4.cern.ch/support/proc_mod_catalog/processes/ on the Geant4 website].  &lt;br /&gt;
For each particle in &amp;lt;code&amp;gt;ConstructParticle()&amp;lt;/code&amp;gt; assign all the physics processes you want to consider in your simulation: &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void MyPhysicsList::ConstructProcess() { &lt;br /&gt;
&lt;br /&gt;
AddTransportation(); // Assign transportation process to all particles &lt;br /&gt;
&lt;br /&gt;
ConstructEM(); // Electromagnetic processes &lt;br /&gt;
&lt;br /&gt;
ConstructGeneral(); // Other processes }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In methods &amp;lt;code&amp;gt;ConstructEM()&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ConstructGeneral()&amp;lt;/code&amp;gt; assign the physics processes to the corresponding particles: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void MyPhysicsList::ConstructEM() { &lt;br /&gt;
&lt;br /&gt;
aParticleIterator-&amp;gt;reset(); &lt;br /&gt;
&lt;br /&gt;
while((*aParticleIterator)()){ &lt;br /&gt;
&lt;br /&gt;
G4ParticleDefinition* particle = aParticleIterator-&amp;gt;value(); &lt;br /&gt;
 &lt;br /&gt;
G4ProcessManager* pmanager = particle-&amp;gt;GetProcessManager(); &lt;br /&gt;
&lt;br /&gt;
G4String particleName = particle-&amp;gt;GetParticleName(); &lt;br /&gt;
     &lt;br /&gt;
if (particleName == &amp;quot;gamma&amp;quot;) { &lt;br /&gt;
     &lt;br /&gt;
pmanager-&amp;gt;AddDiscreteProcess(new G4GammaConversion); ...} &lt;br /&gt;
&amp;lt;/pre&amp;gt;  &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void MyPhysicsList::ConstructGeneral() { &lt;br /&gt;
&lt;br /&gt;
G4Decay* theDecayProcess = new G4Decay() &lt;br /&gt;
&lt;br /&gt;
aParticleIterator-&amp;gt;reset(); &lt;br /&gt;
&lt;br /&gt;
while((*aParticleIterator)()) { &lt;br /&gt;
&lt;br /&gt;
G4ParticleDefinition* particle = aParticleIterator-&amp;gt;value(); &lt;br /&gt;
 &lt;br /&gt;
G4ProcessManager* pmanager = particle-&amp;gt;GetProcessManager(); &lt;br /&gt;
&lt;br /&gt;
if theDecayProcess-&amp;gt;IsApplicable(*particle)) { &lt;br /&gt;
     &lt;br /&gt;
pmanager-&amp;gt;AddProcess(theDecayProcess); &lt;br /&gt;
     &lt;br /&gt;
pmanager-&amp;gt;SetProcessOrdering(theDecayProcess,idxPostStep);  &lt;br /&gt;
    &lt;br /&gt;
pmanager-&amp;gt;SetProcessOrdering(theDecayProcess,idxAtRest); }}} &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[http://geant4.cern.ch/support/proc_mod_catalog/particles/ This is the full list] of physics processes available for every particle.  &lt;br /&gt;
Finally, in method &amp;lt;code&amp;gt;SetCuts()&amp;lt;/code&amp;gt; you can define cuts on the particles:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void MyPhysicsList::SetCuts() {&lt;br /&gt;
&lt;br /&gt;
defaultCutValue = 1.0*mm; &lt;br /&gt;
&lt;br /&gt;
SetCutValue(defaultCutValue, &amp;quot;gamma&amp;quot;); &lt;br /&gt;
&lt;br /&gt;
SetCutValue(defaultCutValue, &amp;quot;e+&amp;quot;); &lt;br /&gt;
&lt;br /&gt;
SetCutValue(defaultCutValue, &amp;quot;e-&amp;quot;); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See the [[Geant4/Tutorials/Advanced/Computed Tomography|Computed Tomography]] tutorial to learn more about simple physics lists.&lt;br /&gt;
&lt;br /&gt;
=== Detailed Physics Lists === &lt;br /&gt;
&lt;br /&gt;
If you want to build more realistic physics list you have to use the class &amp;lt;code&amp;gt;G4VModularPhysicsList&amp;lt;/code&amp;gt;.  &lt;br /&gt;
In &amp;lt;code&amp;gt;G4VModularPhysicsList&amp;lt;/code&amp;gt; you can group the physics processes into separate modules which are already pre-build physics list and later chose one of those modules.   &lt;br /&gt;
&lt;br /&gt;
==== Simple example of class &amp;lt;code&amp;gt;MyPhysicsList&amp;lt;/code&amp;gt;: ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class MyPhysicsList:public G4VModularPhysicsList { &lt;br /&gt;
&lt;br /&gt;
public: &lt;br /&gt;
&lt;br /&gt;
MyPhysicsList(); &lt;br /&gt;
&lt;br /&gt;
~MyPhysicsList(); &lt;br /&gt;
&lt;br /&gt;
virtual void ConstructParticle(); &lt;br /&gt;
    &lt;br /&gt;
virtual void SetCuts(); &lt;br /&gt;
        &lt;br /&gt;
void AddPhysicsList(const G4String&amp;amp; name); &lt;br /&gt;
&lt;br /&gt;
virtual void ConstructProcess(); &lt;br /&gt;
&lt;br /&gt;
      &lt;br /&gt;
private: &lt;br /&gt;
    &lt;br /&gt;
G4String                             fEmName; &lt;br /&gt;
&lt;br /&gt;
G4VPhysicsConstructor*               fEmPhysicsList; &lt;br /&gt;
&lt;br /&gt;
G4VPhysicsConstructor*               fDecPhysicsList; &lt;br /&gt;
&lt;br /&gt;
std::vector&amp;lt;G4VPhysicsConstructor*&amp;gt;  fHadronPhysicsList; };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Now build the physics lists: ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void MyPhysicsList::AddPhysicsList(const G4String&amp;amp; name) { &lt;br /&gt;
&lt;br /&gt;
... &lt;br /&gt;
&lt;br /&gt;
if (name == &amp;quot;emstandard_opt3&amp;quot;) { &lt;br /&gt;
    &lt;br /&gt;
fEmName = name;   &lt;br /&gt;
    &lt;br /&gt;
delete fEmPhysicsList; &lt;br /&gt;
    &lt;br /&gt;
fEmPhysicsList = new G4EmStandardPhysics_option3(); &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
} else if (name == &amp;quot;emlivermore&amp;quot;) { &lt;br /&gt;
   &lt;br /&gt;
fEmName = name; &lt;br /&gt;
    &lt;br /&gt;
delete fEmPhysicsList; &lt;br /&gt;
    &lt;br /&gt;
fEmPhysicsList = new G4EmLivermorePhysics(); &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
} else if (name == &amp;quot;empenelope&amp;quot;) { &lt;br /&gt;
    &lt;br /&gt;
fEmName = name; &lt;br /&gt;
    &lt;br /&gt;
delete fEmPhysicsList; &lt;br /&gt;
    &lt;br /&gt;
fEmPhysicsList = new G4EmPenelopePhysics(); &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
} else if (name == &amp;quot;HElastic&amp;quot;) { &lt;br /&gt;
    &lt;br /&gt;
fHadronPhysicsList.push_back( new G4HadronHElasticPhysics()); &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
} else if (name == &amp;quot;HInelastic&amp;quot;) { &lt;br /&gt;
   &lt;br /&gt;
fHadronPhysicsList.push_back(new G4HadronInelasticQBBC()); &lt;br /&gt;
    &lt;br /&gt;
} ... } &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void MyPhysicsList::ConstructProcess() { &lt;br /&gt;
 &lt;br /&gt;
AddTransportation(); // transportation &lt;br /&gt;
  &lt;br /&gt;
fEmPhysicsList-&amp;gt;ConstructProcess(); // electromagnetic physics list &lt;br /&gt;
&lt;br /&gt;
fDecPhysicsList-&amp;gt;ConstructProcess(); // decay physics list &lt;br /&gt;
  &lt;br /&gt;
for(size_t i=0; i&amp;lt;fHadronPhys.size(); i++) { // hadronic physics lists &lt;br /&gt;
  &lt;br /&gt;
fHadronPhys[i]-&amp;gt;ConstructProcess(); } } &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
See the [[Software/Geant4/Tutorials/Basic/Monoenergetic Proton Pencil Beam|Monoenergetic Proton Pencil Beam]] tutorial to learn more about detailed physics lists.&lt;br /&gt;
&lt;br /&gt;
=== Pre-Packaged Physics Lists ===&lt;br /&gt;
&lt;br /&gt;
Some built-in pre-packaged physics lists [http://geant4.web.cern.ch/geant4/support/proc_mod_catalog/physics_lists/referencePL.shtml are available here].  &lt;br /&gt;
You can use them as a starting point of your simulation.  &lt;br /&gt;
Here is a simple example of a &amp;#039;&amp;#039;pre-packaged physics list&amp;#039;&amp;#039;.  &lt;br /&gt;
In function &amp;lt;code&amp;gt;main()&amp;lt;/code&amp;gt;: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
G4PhysListFactory factory* physListFactory = new G4PhysListFactory(); &lt;br /&gt;
&lt;br /&gt;
G4VUserPhysicsList* physicsList = physListFactory-&amp;gt;GetReferencePhysList(“FTFP_BERT”); &lt;br /&gt;
&lt;br /&gt;
runManager-&amp;gt;SetUserInitialization(physicsList); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example, if you want to simulate clinical proton beam of energy 150&amp;amp;nbsp;MeV you can use a pre-packaged physics list e.g. &amp;lt;code&amp;gt;QGSP_BIC&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;QGSP_BERT&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;FTFP_BERT&amp;lt;/code&amp;gt;.  &lt;br /&gt;
If you are interested in Bragg curve physics, use a physics list ending in &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;EMV&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;EMX&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; e.g. &amp;lt;code&amp;gt;QGSP_BERT_EMV&amp;lt;/code&amp;gt;. &lt;br /&gt;
 &lt;br /&gt;
== Generate Primary Particles == &lt;br /&gt;
&lt;br /&gt;
You derive your own class from the &amp;lt;code&amp;gt;G4VUserPrimaryGeneratorAction&amp;lt;/code&amp;gt; base class.  &lt;br /&gt;
The actual generation of primary particles is done via the classes &amp;lt;code&amp;gt;G4ParticleGun&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G4GeneralParticleSource&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
; G4ParticleGun : Used to simulate a beam of particles. It shoots a primary particle of a certain energy and direction from a given point at a given time.&lt;br /&gt;
; G4GeneralParticleSource : Simulates a beam of particles and the primary vertex is randomly chosen on the surface of a given volume with pre-defined energy spectra, spatial and angular distribution. &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Simple example of class &amp;lt;code&amp;gt;MyPrimaryGeneratorAction&amp;lt;/code&amp;gt; using particle gun&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class MyPrimaryGeneratorAction:public G4VUserPrimaryGeneratorAction { &lt;br /&gt;
&lt;br /&gt;
public: &lt;br /&gt;
&lt;br /&gt;
MyPrimaryGeneratorAction( &lt;br /&gt;
&lt;br /&gt;
const G4String&amp;amp; particleName = &amp;quot;proton&amp;quot;, &lt;br /&gt;
      &lt;br /&gt;
G4double energy = 1.*CLHEP::MeV, &lt;br /&gt;
      &lt;br /&gt;
G4ThreeVector position= G4ThreeVector(0,0,0), &lt;br /&gt;
      &lt;br /&gt;
G4ThreeVector momentumDirection = G4ThreeVector(0,0,1));     &lt;br /&gt;
    &lt;br /&gt;
~MyPrimaryGeneratorAction(); &lt;br /&gt;
&lt;br /&gt;
virtual void GeneratePrimaries(G4Event*); &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
private: &lt;br /&gt;
    &lt;br /&gt;
G4ParticleGun*  fParticleGun; }; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Simple example of class &amp;lt;code&amp;gt;MyPrimaryGeneratorAction&amp;lt;/code&amp;gt; using general particle source&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class MyPrimaryGeneratorAction:public G4VUserPrimaryGeneratorAction { &lt;br /&gt;
&lt;br /&gt;
public: &lt;br /&gt;
&lt;br /&gt;
MyPrimaryGeneratorAction();     &lt;br /&gt;
&lt;br /&gt;
~MyPrimaryGeneratorAction(); &lt;br /&gt;
&lt;br /&gt;
virtual void GeneratePrimaries(G4Event*); &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
private: &lt;br /&gt;
&lt;br /&gt;
static const G4String ParticleName; &lt;br /&gt;
&lt;br /&gt;
static const G4double ParticleEnergy; &lt;br /&gt;
&lt;br /&gt;
G4GeneralParticleSource*  fGeneralParticleSource; }; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Instructions on how to implement the &amp;lt;code&amp;gt;MyPrimaryGeneratorAction&amp;lt;/code&amp;gt; class in your code can be found [http://geant4.web.cern.ch/geant4/UserDocumentation/Doxygen/examples_doc/html/group__extended__common__primaryGenerator.html on the Geant4 website].&lt;br /&gt;
&lt;br /&gt;
The [[Software/Geant4/Tutorials/Basic/Monoenergetic Photon Pencil Beam|Monoenergetic Photon Pencil Beam]] example uses the &amp;lt;code&amp;gt;G4ParticleGun&amp;lt;/code&amp;gt; class.  &lt;br /&gt;
The [[Software/Geant4/Tutorials/Basic/Proton Beam With Realistic Geometry|Proton Beam With Realistic Geometry]] tutorial uses &amp;lt;code&amp;gt;G4GeneralParticleSource&amp;lt;/code&amp;gt;.  &lt;br /&gt;
   &lt;br /&gt;
== Optional User Classes ==&lt;br /&gt;
&lt;br /&gt;
=== Run ===&lt;br /&gt;
&lt;br /&gt;
You can derive your own class from the &amp;lt;code&amp;gt;G4UserRunAction&amp;lt;/code&amp;gt; base class where you may book results of the run.  &lt;br /&gt;
The run starts with &amp;quot;Beam On&amp;quot; and within a run you can not change the detector geometry and physics processes.  &lt;br /&gt;
The run is represented by the class &amp;lt;code&amp;gt;G4Run&amp;lt;/code&amp;gt;.   &lt;br /&gt;
 &lt;br /&gt;
You can find examples of user defined RunAction classes [http://geant4.web.cern.ch/geant4/UserDocumentation/Doxygen/examples_doc/html/group__extended__common__userActions.html on the Geant4 website].&lt;br /&gt;
&lt;br /&gt;
=== Event ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Event&amp;#039;&amp;#039;&amp;#039; is the basic GEANT4 unit.  &lt;br /&gt;
At the beginning of an event are generated primary tracks which are pushed into a stack.  &lt;br /&gt;
The tracks from the stack are analyzed one by one.  &lt;br /&gt;
The primary tracks might lead to secondary tracks which are also pushed into the stack.  &lt;br /&gt;
When the stack becomes empty the processing of the event is over.  &lt;br /&gt;
The event is represented by the &amp;lt;code&amp;gt;G4Event&amp;lt;/code&amp;gt; class which gives hits and trajectory collections as output.    &lt;br /&gt;
&lt;br /&gt;
You can derive your own class from the &amp;lt;code&amp;gt;G4UserEventAction&amp;lt;/code&amp;gt; base class where you can select and analyse data.  &lt;br /&gt;
Examples of user defined &amp;lt;code&amp;gt;EventAction&amp;lt;/code&amp;gt; classes [http://geant4.web.cern.ch/geant4/UserDocumentation/Doxygen/examples_doc/html/group__extended__common__userActions.html can be found on the Geant4 website].&lt;br /&gt;
&lt;br /&gt;
=== Track === &lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Track&amp;#039;&amp;#039;&amp;#039; is a snapshot of a particle and it is represented by the &amp;lt;code&amp;gt;G4Track&amp;lt;/code&amp;gt; class.  &lt;br /&gt;
At the end of the event the track objects do not exist.  &lt;br /&gt;
Tracks are pushed step by step.  &lt;br /&gt;
Moving by one step is called &amp;#039;&amp;#039;stepping&amp;#039;&amp;#039; and this can be controlled by the &amp;lt;code&amp;gt;G4UserSteppingAction&amp;lt;/code&amp;gt; class (see below).  &lt;br /&gt;
At the end of each step the state of a track can be changed (killed, suspended, postponed).    &lt;br /&gt;
&lt;br /&gt;
=== Step ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step&amp;#039;&amp;#039;&amp;#039; is defined by two points: it also contains information about the particle e.g. energy loss on the step.  &lt;br /&gt;
A step is represented by the &amp;lt;code&amp;gt;G4Step&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G4StepPoint&amp;lt;/code&amp;gt; classes.  &lt;br /&gt;
&amp;lt;code&amp;gt;G4UserSteppingAction&amp;lt;/code&amp;gt; is an optional class where you can kill, suspend, postpone a track. &lt;br /&gt;
&lt;br /&gt;
Status is attached to each &amp;lt;code&amp;gt;G4StepPoint&amp;lt;/code&amp;gt; to show how each step was determined.  &lt;br /&gt;
You can use &amp;#039;&amp;#039;PostStepPoint&amp;#039;&amp;#039; to get the status of the current step and &amp;#039;&amp;#039;PreStepPoint&amp;#039;&amp;#039; to get the status of the previous step.  &lt;br /&gt;
For example to get the &amp;quot;x&amp;quot; coordinate of a step you do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
G4StepPoint* prePoint  = step-&amp;gt;GetPreStepPoint();&lt;br /&gt;
&lt;br /&gt;
G4double x1 = prePoint-&amp;gt;GetPosition().x(); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Trajectory ===&lt;br /&gt;
&lt;br /&gt;
Trajectories are represented by the classes &amp;lt;code&amp;gt;G4Trajectory&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;G4TrajectoryPoint&amp;lt;/code&amp;gt;.  &lt;br /&gt;
The &amp;lt;code&amp;gt;G4Trajectory&amp;lt;/code&amp;gt; class copies some of the &amp;lt;code&amp;gt;G4Track&amp;lt;/code&amp;gt; class information.  &lt;br /&gt;
&amp;lt;code&amp;gt;G4TrajectoryPoint&amp;lt;/code&amp;gt; is the class which copies some of the &amp;lt;code&amp;gt;G4Step&amp;lt;/code&amp;gt; information.&lt;/div&gt;</summary>
		<author><name>SimonJolly</name></author>
	</entry>
</feed>