Import Geant4 11.4.0 source tree
This commit is contained in:
@@ -1,99 +0,0 @@
|
||||
|
||||
=================================================================
|
||||
Phonon propagation in Geant4
|
||||
=================================================================
|
||||
Daniel Brandt - SLAC
|
||||
dbrandt@slac.stanford.edu
|
||||
|
||||
This example demonstrates how phonon propagation in cryogenic crystals
|
||||
can be simulated in Geant4.
|
||||
|
||||
1.INTRODUCTION
|
||||
|
||||
Phonon propagation is different from most other Geant4 propagation
|
||||
simulations in a number of respects:
|
||||
|
||||
-Phonons are massless particles moving slower than the speed of light
|
||||
|
||||
-Phonon propagation and momentum vectors are not parallel
|
||||
|
||||
-Events isotropic in phonon-momentum space are not isotropic in real
|
||||
space.
|
||||
|
||||
This example will simulate the propagation of acoustic phonons through
|
||||
a Germanium crystal, providing processes to simulate phonon scattering
|
||||
off isotopic impurities, mode mixing between polarization states and
|
||||
anharmonic downconversion (phonon splitting). As such it provides all
|
||||
the physics required to realistically simulate phonon propagation in
|
||||
cryogenically cold semiconductor crystals.
|
||||
|
||||
2. GEOMETRY
|
||||
|
||||
In this example the geometry is a cylindrical Germanium crystal
|
||||
centered at (0,0,0) with Almuninium end caps. Phonons absorbed in the
|
||||
Al end caps are counted by the sensitive detector.
|
||||
|
||||
3. PRIMARY EVENT
|
||||
|
||||
The primary event is a single phonon of energy 7.5 meV at the center of
|
||||
the Ge crystal. The polarization type (fast transvere, slow transverse or
|
||||
longitudinal) is determined randomly according to the density of states
|
||||
in Germanium. The direction of propagation is than determined by by the
|
||||
User Stacking Action class XPhononStackingAction.
|
||||
|
||||
4. EXECUTION & OUTPUT
|
||||
|
||||
The executable must be run from within the source directory of the example
|
||||
to ensure that it can find the path for crystal data files. Alternatively
|
||||
the search path for the crystal maps can be set in the setting the
|
||||
G4LATTICEDATA environment variable. If this variable does not exist, it
|
||||
defaults to ./CrystalMaps.
|
||||
|
||||
Data files for each crystal material are stored in a named subdirectory
|
||||
under $G4LATTICEDATA/, along with a config.txt file which specifies the
|
||||
numerical constants for the lattice. This example includes germanium [111]
|
||||
in CrystalMaps/Ge/.
|
||||
|
||||
Upon execution, the vis.mac visualization macro will automatically be
|
||||
executed. For the visualization to work, OpenGL support must be installed.
|
||||
The macro will automatically generate a single Primary Event (7.5 meV phonon)
|
||||
at the center of the crystal.
|
||||
|
||||
The trajectory colour will indicate the polarization state of the phonon:
|
||||
Longitudinal: blue
|
||||
Fast Transverse: green
|
||||
Slow Transverse: red
|
||||
|
||||
A small circle will be drawn wherever a phonon is absorbed into the
|
||||
Aluminium. All events within the Aluminium are written into plain-text
|
||||
space-sparated-value (ssv) files.
|
||||
|
||||
timing.ssv
|
||||
------------
|
||||
COLUMN 1: Time phonon was absorbed in ns since start of run
|
||||
COLUMN 2: Energy of phonon absorbed
|
||||
|
||||
caustic.ssv
|
||||
------------
|
||||
COLUMN 1: x-position of absobrtion in mm
|
||||
COLUMN 2: y-position of absobrtion in mm
|
||||
COLUMN 3: z-position of absobrtion in mm
|
||||
|
||||
Every time a phonon is simulated, the information is appended to timing.ssv
|
||||
and caustic.ssv. If the files do not exist they will be created.
|
||||
|
||||
5. TESTING
|
||||
|
||||
In order to test the example, it can be run as
|
||||
./XGeBox run.in > test.out
|
||||
|
||||
This will create a single primary event and then cause the example to
|
||||
terminate automatically, with all screen output redirected to test.out.
|
||||
|
||||
If all went well, test.out should be identical to run.out provided with
|
||||
this example. Also, the files caustic.ssv and timing.ssv should have been
|
||||
created and be identical to caustic.out and timing.out respectively.
|
||||
|
||||
After the first time the example runs, it will append to caustic.ssv and
|
||||
timing.ssv. If the testing should be re-run, then caustic.ssv and timing.ssv
|
||||
will have to be deleted.
|
||||
+10
-16
@@ -1,8 +1,4 @@
|
||||
|
||||
///\file "exoticphysics/phonon/.README.txt"
|
||||
///\brief Example phonon README page
|
||||
|
||||
/*! \page Examplephonon Example phonon
|
||||
\page Examplephonon Example phonon
|
||||
|
||||
\author Daniel Brandt - SLAC \n
|
||||
dbrandt@slac.stanford.edu
|
||||
@@ -10,7 +6,7 @@
|
||||
This example demonstrates how phonon propagation in cryogenic crystals
|
||||
can be simulated in Geant4.
|
||||
|
||||
\section phonon_s1 INTRODUCTION
|
||||
## INTRODUCTION
|
||||
|
||||
Phonon propagation is different from most other Geant4 propagation
|
||||
simulations in a number of respects:
|
||||
@@ -29,13 +25,13 @@ anharmonic downconversion (phonon splitting). As such it provides all
|
||||
the physics required to realistically simulate phonon propagation in
|
||||
cryogenically cold semiconductor crystals.
|
||||
|
||||
\section phonon_s2 GEOMETRY
|
||||
## GEOMETRY
|
||||
|
||||
In this example the geometry is a cylindrical Germanium crystal
|
||||
centered at (0,0,0) with Almuninium end caps. Phonons absorbed in the
|
||||
Al end caps are counted by the sensitive detector.
|
||||
|
||||
\section phonon_s3 PRIMARY EVENT
|
||||
## PRIMARY EVENT
|
||||
|
||||
The primary event is a single phonon of energy 7.5 meV at the center of
|
||||
the Ge crystal. The polarization type (fast transvere, slow transverse or
|
||||
@@ -43,7 +39,7 @@ longitudinal) is determined randomly according to the density of states
|
||||
in Germanium. The direction of propagation is than determined by by the
|
||||
User Stacking Action class XPhononStackingAction.
|
||||
|
||||
\section phonon_s4 EXECUTION & OUTPUT
|
||||
## EXECUTION & OUTPUT
|
||||
|
||||
The executable must be run from within the source directory of the example
|
||||
to ensure that it can find the path for crystal data files.
|
||||
@@ -70,12 +66,12 @@ A small circle will be drawn wherever a phonon is absorbed into the
|
||||
Aluminium. All events within the Aluminium are written into plain-text
|
||||
space-sparated-value (ssv) files:
|
||||
|
||||
\subsection phonon_s4_sub1 timing.ssv
|
||||
### timing.ssv
|
||||
|
||||
- COLUMN 1: Time phonon was absorbed in ns since start of run
|
||||
- COLUMN 2: Energy of phonon absorbed
|
||||
|
||||
\subsection phonon_s4_sub2 tcaustic.ssv
|
||||
### tcaustic.ssv
|
||||
|
||||
- COLUMN 1: x-position of absobrtion in mm
|
||||
- COLUMN 2: y-position of absobrtion in mm
|
||||
@@ -84,12 +80,12 @@ space-sparated-value (ssv) files:
|
||||
Every time a phonon is simulated, the information is appended to timing.ssv
|
||||
and caustic.ssv. If the files do not exist they will be created.
|
||||
|
||||
\section phonon_s5 TESTING
|
||||
## TESTING
|
||||
|
||||
In order to test the example, it can be run as
|
||||
\verbatim
|
||||
```
|
||||
./XGeBox run.in > test.out
|
||||
\endverbatim
|
||||
```
|
||||
|
||||
This will create a single primary event and then cause the example to
|
||||
terminate automatically, with all screen output redirected to test.out.
|
||||
@@ -101,5 +97,3 @@ created and be identical to caustic.out and timing.out respectively.
|
||||
After the first time the example runs, it will append to caustic.ssv and
|
||||
timing.ssv. If the testing should be re-run, then caustic.ssv and timing.ssv
|
||||
will have to be deleted.
|
||||
|
||||
*/
|
||||
@@ -23,10 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/XGeBox.cc
|
||||
/// \file XGeBox.cc
|
||||
/// \brief Main program of the exoticphysics/phonon example
|
||||
//
|
||||
//
|
||||
|
||||
#include "XActionInitialization.hh"
|
||||
#include "XDetectorConstruction.hh"
|
||||
|
||||
@@ -23,10 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XActionInitialization.hh
|
||||
/// \file XActionInitialization.hh
|
||||
/// \brief Definition of the XActionInitialization class
|
||||
//
|
||||
//
|
||||
|
||||
#ifndef XActionInitialization_h
|
||||
#define XActionInitialization_h 1
|
||||
|
||||
@@ -23,10 +23,9 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XAluminumElectrodeHit.hh
|
||||
/// \file XAluminumElectrodeHit.hh
|
||||
/// \brief Definition of the XAluminumElectrodeHit class
|
||||
//
|
||||
//
|
||||
|
||||
// 20141008 Allocators must be thread-local, and must be pointers
|
||||
// 20150818 Make hit a simple container, with public data members
|
||||
|
||||
|
||||
@@ -23,10 +23,9 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XAluminumElectrodeSensitivity.hh
|
||||
/// \file XAluminumElectrodeSensitivity.hh
|
||||
/// \brief Definition of the XAluminumElectrodeSensitivity class
|
||||
//
|
||||
//
|
||||
|
||||
// 20150818 Improve MT compatibility; hits collection should not be static
|
||||
|
||||
#ifndef XAluminumElectrodeSensitivity_h
|
||||
|
||||
@@ -23,10 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XDetectorConstruction.hh
|
||||
/// \file XDetectorConstruction.hh
|
||||
/// \brief Definition of the XDetectorConstruction class
|
||||
//
|
||||
//
|
||||
|
||||
#ifndef XDetectorConstruction_h
|
||||
#define XDetectorConstruction_h 1
|
||||
|
||||
@@ -23,10 +23,9 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XPhononStackingAction.hh
|
||||
/// \file XPhononStackingAction.hh
|
||||
/// \brief Definition of the XPhononStackingAction class
|
||||
//
|
||||
//
|
||||
|
||||
#ifndef XPhononStackingAction_h
|
||||
#define XPhononStackingAction_h 1
|
||||
|
||||
|
||||
@@ -23,10 +23,9 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XPhysicsList.hh
|
||||
/// \file XPhysicsList.hh
|
||||
/// \brief Definition of the XPhysicsList class
|
||||
//
|
||||
//
|
||||
|
||||
// 20131117 Add verbosity argument, to set verbosity from main program
|
||||
|
||||
#ifndef XPhysicsList_h
|
||||
|
||||
@@ -23,10 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/include/XPrimaryGeneratorAction.hh
|
||||
/// \file XPrimaryGeneratorAction.hh
|
||||
/// \brief Definition of the XPrimaryGeneratorAction class
|
||||
//
|
||||
//
|
||||
|
||||
#ifndef XPrimaryGeneratorAction_h
|
||||
#define XPrimaryGeneratorAction_h 1
|
||||
|
||||
@@ -23,9 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/src/XActionInitialization.cc
|
||||
/// \file XActionInitialization.cc
|
||||
/// \brief Implementation of the XActionInitialization class
|
||||
//
|
||||
|
||||
#include "XActionInitialization.hh"
|
||||
|
||||
|
||||
@@ -23,10 +23,9 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/src/XAluminumElectrodeHit.cc
|
||||
/// \file XAluminumElectrodeHit.cc
|
||||
/// \brief Implementation of the XAluminumElectrodeHit class
|
||||
//
|
||||
//
|
||||
|
||||
// 20141008 Allocators must be thread-local, and must be pointers
|
||||
|
||||
#include "XAluminumElectrodeHit.hh"
|
||||
|
||||
@@ -23,10 +23,9 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/src/XAluminumElectrodeSensitivity.cc
|
||||
/// \file XAluminumElectrodeSensitivity.cc
|
||||
/// \brief Implementation of the XAluminumElectrodeSensitivity class
|
||||
//
|
||||
//
|
||||
|
||||
#include "XAluminumElectrodeSensitivity.hh"
|
||||
|
||||
#include "XAluminumElectrodeHit.hh"
|
||||
|
||||
@@ -23,10 +23,9 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/src/XDetectorConstruction.cc
|
||||
/// \file XDetectorConstruction.cc
|
||||
/// \brief Implementation of the XDetectorConstruction class
|
||||
//
|
||||
//
|
||||
|
||||
// 20141006 For MT compatibility, move SD handling to ConstructSDandField()
|
||||
|
||||
#include "XDetectorConstruction.hh"
|
||||
|
||||
@@ -23,8 +23,9 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/src/XPhononStackingAction.cc
|
||||
/// \file XPhononStackingAction.cc
|
||||
/// \brief Implementation of the XPhononStackingAction class
|
||||
|
||||
/// This stacking action is necessary to ensure that velocity and
|
||||
/// propagation direction are set properly for phonons created with
|
||||
/// G4ParticleGun
|
||||
|
||||
@@ -23,10 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/src/XPhysicsList.cc
|
||||
/// \file XPhysicsList.cc
|
||||
/// \brief Implementation of the XPhysicsList class
|
||||
//
|
||||
//
|
||||
|
||||
#include "XPhysicsList.hh"
|
||||
|
||||
|
||||
@@ -23,10 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file exoticphysics/phonon/src/XPrimaryGeneratorAction.cc
|
||||
/// \file XPrimaryGeneratorAction.cc
|
||||
/// \brief Implementation of the XPrimaryGeneratorAction class
|
||||
//
|
||||
//
|
||||
|
||||
#include "XPrimaryGeneratorAction.hh"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user