Import Geant4 9.2.0 source tree
This commit is contained in:
@@ -26,7 +26,7 @@
|
||||
|
||||
//
|
||||
// $Id: DetectorConstruction.cc,v 1.1 2007/06/21 15:18:32 jjacquem Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: DetectorConstruction.hh,v 1.1 2007/06/21 15:18:32 jjacquem Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: DetectorMessenger.cc,v 1.1 2007/06/21 15:18:32 jjacquem Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: DetectorMessenger.hh,v 1.1 2007/06/21 15:18:32 jjacquem Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# $Id: GNUmakefile,v 1.2 2007/07/06 06:41:39 kmura Exp $
|
||||
# $Name: geant4-09-01 $
|
||||
# $Name: geant4-09-02 $
|
||||
# ===========================================================
|
||||
# Makefile for building Geant4Py modules
|
||||
# ===========================================================
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: PhysListEmStandard.cc,v 1.1 2007/06/21 15:18:32 jjacquem Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: PhysListEmStandard.hh,v 1.1 2007/06/21 15:18:32 jjacquem Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: PhysicsList.cc,v 1.1 2007/06/21 15:18:32 jjacquem Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: PhysicsList.hh,v 1.1 2007/06/21 15:18:32 jjacquem Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: PhysicsListMessenger.cc,v 1.1 2007/06/21 15:18:32 jjacquem Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: PhysicsListMessenger.hh,v 1.1 2007/06/21 15:18:32 jjacquem Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: PrimaryGeneratorAction.cc,v 1.1 2007/06/21 15:18:32 jjacquem Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: PrimaryGeneratorAction.hh,v 1.1 2007/06/21 15:18:32 jjacquem Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: RunAction.cc,v 1.1 2007/06/21 15:18:32 jjacquem Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: RunAction.hh,v 1.1 2007/06/21 15:18:32 jjacquem Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: pyTestEm0.cc,v 1.2 2007/07/06 06:41:59 kmura Exp $
|
||||
// $Name: geant4-09-01 $
|
||||
// $Name: geant4-09-02 $
|
||||
// ====================================================================
|
||||
// pyTestEm0.cc
|
||||
//
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
# ==================================================================
|
||||
from Geant4 import *
|
||||
import demo_wp
|
||||
import MedicalBeam
|
||||
import g4py.MedicalBeam
|
||||
import ROOT
|
||||
|
||||
# ==================================================================
|
||||
@@ -190,7 +190,7 @@ gRunManager.SetUserAction(myEA)
|
||||
#pg.SetParticlePosition(G4ThreeVector(0.,0.,-50.)*cm)
|
||||
|
||||
# medical beam
|
||||
beam= MedicalBeam.Construct()
|
||||
beam= g4py.MedicalBeam.Construct()
|
||||
beam.particle= "proton"
|
||||
beam.kineticE= 230.*MeV
|
||||
#beam.particle= "gamma"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# $Id: GNUmakefile,v 1.1 2006/05/11 04:35:32 kmura Exp $
|
||||
# $Name: geant4-09-01 $
|
||||
# $Name: geant4-09-02 $
|
||||
# ===========================================================
|
||||
# Makefile for building Geant4Py modules
|
||||
# ===========================================================
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: MyDetectorConstruction.cc,v 1.3 2006/06/29 15:28:11 gunter Exp $
|
||||
// $Name: geant4-09-01 $
|
||||
// $Name: geant4-09-02 $
|
||||
// ====================================================================
|
||||
// MyDetectorConstruction.cc
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: MyDetectorConstruction.hh,v 1.3 2006/06/29 15:28:13 gunter Exp $
|
||||
// $Name: geant4-09-01 $
|
||||
// $Name: geant4-09-02 $
|
||||
// ====================================================================
|
||||
// MyDetectorConstruction.hh
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: MyMaterials.cc,v 1.3 2006/06/29 15:28:16 gunter Exp $
|
||||
// $Name: geant4-09-01 $
|
||||
// $Name: geant4-09-02 $
|
||||
// ====================================================================
|
||||
// MyMaterials.cc
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: MyMaterials.hh,v 1.3 2006/06/29 15:28:19 gunter Exp $
|
||||
// $Name: geant4-09-01 $
|
||||
// $Name: geant4-09-02 $
|
||||
// ====================================================================
|
||||
// MyMaterials.hh
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: MyPhysicsList.cc,v 1.3 2006/06/29 15:28:21 gunter Exp $
|
||||
// $Name: geant4-09-01 $
|
||||
// $Name: geant4-09-02 $
|
||||
// ====================================================================
|
||||
// MyPhysicsList.cc
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: MyPhysicsList.hh,v 1.3 2006/06/29 15:28:23 gunter Exp $
|
||||
// $Name: geant4-09-01 $
|
||||
// $Name: geant4-09-02 $
|
||||
// ====================================================================
|
||||
// MyPhysicsList.hh
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: Particles.cc,v 1.3 2006/06/29 15:28:25 gunter Exp $
|
||||
// $Name: geant4-09-01 $
|
||||
// $Name: geant4-09-02 $
|
||||
// ====================================================================
|
||||
// Particles.cc
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: PhysicsListEMstd.cc,v 1.3 2006/06/29 15:28:29 gunter Exp $
|
||||
// $Name: geant4-09-01 $
|
||||
// $Name: geant4-09-02 $
|
||||
// ====================================================================
|
||||
// PhysicsListEMstd.cc
|
||||
//
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: pydemo_wp.cc,v 1.3 2006/06/29 15:28:40 gunter Exp $
|
||||
// $Name: geant4-09-01 $
|
||||
// $Name: geant4-09-02 $
|
||||
// ====================================================================
|
||||
// pydemo_wp.cc
|
||||
//
|
||||
|
||||
@@ -77,9 +77,9 @@ gRunManager.SetUserAction(mySA)
|
||||
# set particle gun
|
||||
pg= myPGA.particleGun
|
||||
pg.SetParticleByName("proton")
|
||||
pg.SetParticleEnergy(230.*HEPUnit.MeV)
|
||||
pg.SetParticleEnergy(230.*MeV)
|
||||
pg.SetParticleMomentumDirection(G4ThreeVector(0., 0., 1.))
|
||||
pg.SetParticlePosition(G4ThreeVector(0.,0.,-20.)*HEPUnit.cm)
|
||||
pg.SetParticlePosition(G4ThreeVector(0.,0.,-20.)*cm)
|
||||
|
||||
gRunManager.Initialize()
|
||||
|
||||
|
||||
@@ -1,258 +0,0 @@
|
||||
\documentclass{article}
|
||||
\title{How to EZsim using the site-modules of Geant4Py?}
|
||||
\author{ H. Yoshida \and K. Murakami}
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
\section{g4py/site-modules}
|
||||
|
||||
Currently site-modules have the following wrapper modules:
|
||||
\begin{itemize}
|
||||
\item EZsim
|
||||
\begin{itemize}
|
||||
\item EZgeom : main topic of this document
|
||||
\begin{itemize}
|
||||
\item ezgeom
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
\item geometries : examples of wrapping
|
||||
\begin{itemize}
|
||||
\item ExN01geom
|
||||
\item ExN03geom
|
||||
\end{itemize}
|
||||
\item materials : pre-defined materials
|
||||
\begin{itemize}
|
||||
\item NISTmaterials
|
||||
\end{itemize}
|
||||
\item physics\_lists : examples of wrapping
|
||||
\begin{itemize}
|
||||
\item EMSTDpl
|
||||
\item ExN01pl
|
||||
\item ExN03pl
|
||||
\item (GenericPhysicsList)
|
||||
\end{itemize}
|
||||
\item primaries : pre-defined particle guns
|
||||
\begin{itemize}
|
||||
\item MedicalBeam
|
||||
\item ParticleGun
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
|
||||
\section{The levels of Python wrapping}
|
||||
|
||||
The application of these site modules are stored in
|
||||
\begin{itemize}
|
||||
\item tests : many test examples
|
||||
\item examples/demos/water\_phantom : voxelized water phantom and scoring
|
||||
\item examples/education
|
||||
\begin{itemize}
|
||||
\item lesson1 : measurement of the mass attenuation coefficients
|
||||
\item lesson2 : exampleN03
|
||||
\end{itemize}
|
||||
\end{itemize}
|
||||
In general, Python wrapping can be applied in various levels.
|
||||
This can be seen, for example, in the above examples which demonstrate how the
|
||||
geometries are constructed. We cite two examples how site modules can be used,
|
||||
and how existing C++ classes can be wrapped to co-work within the framework of
|
||||
Geant4Py.
|
||||
|
||||
\subsection{Full Python case}
|
||||
The script examples/education/lesson1/Lesson1.py uses the Phtyon modules of
|
||||
EZgeom. It defines a simple absorber box, using EZgeom module. Its material,
|
||||
dimensions, colors etc. are modifiable by using Python methods.
|
||||
|
||||
\subsection{Wrapping an existing C++ geometry}
|
||||
The script examples/education/lesson2/ExN03.py uses the geometry of
|
||||
exampleN03 as it is (ExN03DetectorConstruction).
|
||||
The modules in site-modules/geometries/ExN03geom wrap these C++ classes and
|
||||
their methods like exposes its methods like "SetAbsorberMaterial",
|
||||
"SetAbsorberThickness", "GeometryUpdated" etc..
|
||||
It also used wrapped "ExN03PhysicsList".
|
||||
So, ExN03.py script do nothing for the geometry and physics list. It simply
|
||||
initialized them.
|
||||
|
||||
\section{Closer look: Full Python case}
|
||||
|
||||
Exposed modules by the EZgeom module are following:
|
||||
\begin{itemize}
|
||||
\item Construct() :
|
||||
\item SetWorldMaterial(material)
|
||||
\item SetWorldVisibility(bool)
|
||||
\item ResizeWorld(dx, dy, dz)
|
||||
\item ResetWorld(dx, dy, dz)
|
||||
\end{itemize}
|
||||
Also exposed are modules in the G4EzVolume class.
|
||||
\begin{itemize}
|
||||
\item CreateBoxVolume, Tube/Cone/Sphere/Orb
|
||||
\item Set(Get)Sold
|
||||
\item Set(Get)Material
|
||||
\item Set(Get)Color
|
||||
\item Set(Get)Visibility
|
||||
\item
|
||||
\item Placeit()
|
||||
\item ReplicateIt()
|
||||
\item VoxelizeIt()
|
||||
\item
|
||||
\item SetSensitiveDetector
|
||||
\end{itemize}
|
||||
In addition, you can use global names like gMaterialTable etc. which are
|
||||
defined in the g4py/source and exposed in the widest name space under
|
||||
Boost-python. You can easily get the list of all g* modules from ipython
|
||||
shell, once you import Geant4 modules.
|
||||
|
||||
Let us explain how to use the above modules, taking the script in
|
||||
examples/education/lesson1/Leson1.py as an example.
|
||||
|
||||
It starts by lines to import modules:
|
||||
|
||||
\begin{verbatim}
|
||||
1: from Geant4 import *
|
||||
2: import NISTmaterials
|
||||
3: from EZsim import EZgeom
|
||||
4: from EZsim.EZgeom import G4EzVolume
|
||||
5: import EMSTDpl
|
||||
6: import ParticleGun
|
||||
7: from time import *
|
||||
8: import sys
|
||||
\end{verbatim}
|
||||
|
||||
In line 1 you import all exposed modules of Geant4.
|
||||
From the line 2 to 6, you import relevant site-modules. Lines 7 and 8 is to
|
||||
import generic Python modules.
|
||||
|
||||
Then you define a Python class "Configure" for initialization.
|
||||
|
||||
\begin{verbatim}
|
||||
def Configure():
|
||||
NISTmaterials.Construct() # NIST materials predefined in g4py
|
||||
EZgeom.Construct() # initialize
|
||||
EMSTDpl.Construct() # initialize the physics list
|
||||
ParticleGun.Construct() # initialize the particle gun
|
||||
gControlExecute("gun.mac") # this is one of the globals
|
||||
\end{verbatim}
|
||||
|
||||
Now you define the concrete geometry.
|
||||
|
||||
\begin{verbatim}
|
||||
def ConstructGeom():
|
||||
print "* Constructing geometry..."
|
||||
# materils
|
||||
galactic = G4Material.GetMaterial("G4_Galactic", 1)
|
||||
water = G4Material.GetMaterial("G4_WATER", 1)
|
||||
# world
|
||||
EZgeom.SetWorldMaterial(galactic)
|
||||
EZgeom.ResizeWorld(120.*cm, 120.*cm, 100.*cm)
|
||||
# water phantom ; logical and physical volumes
|
||||
global water_phantom, water_phantom_pv
|
||||
water_phantom= G4EzVolume("WaterPhantom")
|
||||
water_phantom.CreateBoxVolume(water, 110.*cm, 110.*cm, 10.*cm)
|
||||
#Place the water phantom in the vacuum!!
|
||||
water_phantom_pv = water_phantom.PlaceIt(G4ThreeVector(0.,0.,0.*cm))
|
||||
\end{verbatim}
|
||||
|
||||
Here water\_phantom is the logical volume, while water\_phantom\_pv is the
|
||||
physical volume. These variables are defined as global for later use.
|
||||
|
||||
If you want to change the material of the water\_phantom with the lead, for
|
||||
example, you define lead by makinging its instance from the pre-defined list
|
||||
and SetMaterial().
|
||||
|
||||
\begin{verbatim}
|
||||
lead = G4Material.GetMaterial("G4_Pb", 1)
|
||||
water_phantom.SetMaterial(lead)
|
||||
\end{verbatim}
|
||||
|
||||
To print out the name of the materialof the logical volume,
|
||||
\begin{verbatim}
|
||||
print water_phantom.Getmaterial().GetName()
|
||||
\end{verbatim}
|
||||
If you want to change the dimensions of the water\_phantom, you have to get
|
||||
its instance of the solid, and then SetZHalfLength().
|
||||
\begin{verbatim}
|
||||
solid = EZgeom.G4EzVolume.GetSold(water_phantom)
|
||||
solid.SetZHalfLength(thickness * mm/2.0)
|
||||
\end{verbatim}
|
||||
If you want to relocate the water phantom, i.e., water\_phantom\_pv,
|
||||
\begin{verbatim}
|
||||
water_phantom_pv.SetTransformation(G4TreeVector(, ,))
|
||||
\end{verbatim}
|
||||
|
||||
You can use any Geant4 commands with gApplyUICommand() method.
|
||||
You simply provide it with strings, as seen in the next code fragment.
|
||||
\begin{verbatim}
|
||||
eventNum = self.eventVar.get()
|
||||
for i in range(eventNum):
|
||||
gunYZpos = str(i-eventNum/2) + ". -20. cm"
|
||||
gApplyUICommand("/gun/position 0. " + gunYZpos)
|
||||
gRunManager.BeamOn(1)
|
||||
sleep(0.01)
|
||||
\end{verbatim}
|
||||
With the above code fragment, you use "eventVar" which is supplied by the
|
||||
"Scale" widget. You repeat gRunManager.BeamOn(1), after a sleep of every
|
||||
o.o1 second. You use gApplyUICommand() to change the gun's YZ position before
|
||||
every shoot.
|
||||
|
||||
|
||||
\section{Closer study: wrapped C++ classes case}
|
||||
|
||||
The script file in g4py/examples/education/lesson2/ExN03.py is an example.
|
||||
The C++ classes of geometry and physics list of exampleN03 are exposed with
|
||||
mo modifications. To expose them, wrapper classes, pyExN03geom.cc and
|
||||
pyExN03pl.cc are created and stored in ExN03geom/ and ExN03pl/ respectively.
|
||||
They are pre-compiled and shared libraries; ExN03geom.so, and ExN03pl.so are
|
||||
stored in the g4py/lib/site-modules library repository.
|
||||
|
||||
|
||||
ExN03geom exposes all the methods defined in ExN03DetectorConstruction.
|
||||
ExN03.py in lesson2 initializes the geometry and physics list by simply using
|
||||
the exposed classes;
|
||||
\begin{verbatim}
|
||||
from Geant4 import *
|
||||
import NISTmaterials
|
||||
import ExN03geom
|
||||
import ExN03pl
|
||||
|
||||
|
||||
exN03geom = ExN03geom.ExN03DetectorConstruction()
|
||||
gRunManager.SetUserInitialization(exN03geom)
|
||||
exN03PL = ExN03pl.ExN03PhysicsList()
|
||||
gRunManager.SetUserInitialization(exN03PL)
|
||||
\end{verbatim}
|
||||
|
||||
ExN03.py provides the widgets to choose a material with the Checkbutton,
|
||||
to set the thickness with the Scale widget etc. It provides a "Run" button
|
||||
to do /run/beamOn equivalent.
|
||||
|
||||
Just before "beamOn", the geometry is modified like;
|
||||
\begin{verbatim}
|
||||
def cmd_beamOn(self):
|
||||
exN03geom.SetAbsorberMaterial(self.materialVar.get())
|
||||
exN03geom.SetAbsorberThickness(self.thickVar.get() * mm/2.0)
|
||||
exN03geom.UpdateGeometry()
|
||||
exN03PL.SetDefaultCutValue(self.cutVar.get() * mm)
|
||||
exN03PL.SetCutsWithDefault()
|
||||
exN03geom.SetMagField(self.magVar.get() * tesla)
|
||||
\end{verbatim}
|
||||
Here, self.xxxVar.get() are the values (String or Double) supplied by the
|
||||
Checkbutton or Scale widgets.
|
||||
|
||||
The on/off of each process is done using the global name gProcessTable.
|
||||
\begin{verbatim}
|
||||
def cmd_setProcess(self):
|
||||
for i in self.processList:
|
||||
if self.processVar[i].get() == 0:
|
||||
gProcessTable.SetProcessActivation(i, 0)
|
||||
print "Process " + i + " inactivated"
|
||||
else:
|
||||
gProcessTable.SetProcessActivation(i, 1)
|
||||
print "Process " + i + " activated"
|
||||
\end{verbatim}
|
||||
Here "processList" is a list of the names of processes like below and
|
||||
"processVar" contains the on/off values of the Checkbuttons for respective
|
||||
processes.
|
||||
\begin{verbatim}
|
||||
self.processList = ["phot", "compt", "conv", "msc", "eIoni", "eBrem", "annih
|
||||
il","muIoni", "muBrems"]
|
||||
\end{verbatim}
|
||||
|
||||
\end{document}
|
||||
@@ -6,11 +6,11 @@
|
||||
# - using site-module packages
|
||||
# ==================================================================
|
||||
from Geant4 import *
|
||||
import NISTmaterials
|
||||
from EZsim import EZgeom
|
||||
from EZsim.EZgeom import G4EzVolume
|
||||
import EMSTDpl
|
||||
import ParticleGun
|
||||
import g4py.NISTmaterials
|
||||
import g4py.ezgeom
|
||||
from g4py.ezgeom import G4EzVolume
|
||||
import g4py.EMSTDpl
|
||||
import g4py.ParticleGun
|
||||
from time import *
|
||||
import sys
|
||||
|
||||
@@ -22,23 +22,23 @@ def Configure():
|
||||
# setup for materials
|
||||
# ------------------------------------------------------------------
|
||||
# simple materials for Qgeom
|
||||
NISTmaterials.Construct()
|
||||
g4py.NISTmaterials.Construct()
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# setup for geometry
|
||||
# ------------------------------------------------------------------
|
||||
#Qgeom.Construct()
|
||||
EZgeom.Construct() # initialize
|
||||
#g4py.Qgeom.Construct()
|
||||
g4py.ezgeom.Construct() # initialize
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# setup for physics list
|
||||
# ------------------------------------------------------------------
|
||||
EMSTDpl.Construct()
|
||||
g4py.EMSTDpl.Construct()
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# setup for primary generator action
|
||||
# ------------------------------------------------------------------
|
||||
ParticleGun.Construct()
|
||||
g4py.ParticleGun.Construct()
|
||||
gControlExecute("gun.mac")
|
||||
|
||||
# ==================================================================
|
||||
@@ -58,8 +58,8 @@ def ConstructGeom():
|
||||
lead = G4Material.GetMaterial("G4_Pb", 1)
|
||||
water = G4Material.GetMaterial("G4_WATER", 1)
|
||||
absorber = {"air":air, "aluminum":aluminum, "iron":iron, "lead":lead, "water":water, "gold":gold}
|
||||
EZgeom.SetWorldMaterial(galactic)
|
||||
EZgeom.ResizeWorld(120.*cm, 120.*cm, 100.*cm)
|
||||
g4py.ezgeom.SetWorldMaterial(galactic)
|
||||
g4py.ezgeom.ResizeWorld(120.*cm, 120.*cm, 100.*cm)
|
||||
# water phantom
|
||||
global water_phantom, water_phantom_pv
|
||||
|
||||
@@ -84,7 +84,6 @@ HepRandom.setTheSeed(20050830L)
|
||||
Configure()
|
||||
ConstructGeom()
|
||||
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# go...
|
||||
# ------------------------------------------------------------------
|
||||
@@ -99,7 +98,6 @@ gControlExecute("oglx.mac")
|
||||
from Tkinter import *
|
||||
|
||||
class App(Frame):
|
||||
|
||||
|
||||
|
||||
def init(self):
|
||||
@@ -131,7 +129,7 @@ class App(Frame):
|
||||
thick.grid(row=3, column=1, columnspan=5, sticky=W)
|
||||
|
||||
#get logical volume and set its half length
|
||||
self.solid = EZgeom.G4EzVolume.GetSold(water_phantom)
|
||||
self.solid = g4py.ezgeom.G4EzVolume.GetSold(water_phantom)
|
||||
|
||||
#particle row=4
|
||||
particleLabel = Label(self, bg="green", text="Particle")
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
from Geant4 import *
|
||||
import NISTmaterials
|
||||
from EZsim import EZgeom
|
||||
from EZsim.EZgeom import G4EzVolume
|
||||
import ExN03pl
|
||||
import ParticleGun
|
||||
import g4py.NISTmaterials
|
||||
import g4py.ezgeom
|
||||
from g4py.ezgeom import G4EzVolume
|
||||
import g4py.ExN03pl
|
||||
import g4py.ParticleGun
|
||||
from time import *
|
||||
import sys
|
||||
from subprocess import *
|
||||
@@ -17,22 +19,22 @@ def Configure():
|
||||
# setup for materials
|
||||
# ------------------------------------------------------------------
|
||||
# simple materials for Qgeom
|
||||
NISTmaterials.Construct()
|
||||
g4py.NISTmaterials.Construct()
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# setup for geometry
|
||||
# ------------------------------------------------------------------
|
||||
EZgeom.Construct() # initialize
|
||||
g4py.ezgeom.Construct() # initialize
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# setup for physics list of N03
|
||||
# ------------------------------------------------------------------
|
||||
ExN03pl.Construct()
|
||||
g4py.ExN03pl.Construct()
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# setup for primary generator action
|
||||
# ------------------------------------------------------------------
|
||||
ParticleGun.Construct()
|
||||
g4py.ParticleGun.Construct()
|
||||
gControlExecute("gun.mac")
|
||||
|
||||
# ==================================================================
|
||||
@@ -54,8 +56,8 @@ def ConstructGeom():
|
||||
water = G4Material.GetMaterial("G4_WATER", 1)
|
||||
absorber = {"air":air, "aluminum":aluminum, "iron":iron, "lead":lead, "water":water, "gold":gold
|
||||
}
|
||||
EZgeom.SetWorldMaterial(galactic)
|
||||
EZgeom.ResizeWorld(120.*cm, 120.*cm, 100.*cm)
|
||||
g4py.ezgeom.SetWorldMaterial(galactic)
|
||||
g4py.ezgeom.ResizeWorld(120.*cm, 120.*cm, 100.*cm)
|
||||
# water phantom
|
||||
global water_phantom, water_phantom_pv
|
||||
|
||||
@@ -490,7 +492,7 @@ class MyApp(wx.Frame):
|
||||
bxsizer.Add(wx.StaticLine(panel), 0, wx.EXPAND|wx.TOP|wx.BOTTOM, 5)
|
||||
bxsizer.Add(self.eventNo.sizer, 0, wx.EXPAND)
|
||||
|
||||
self.solid = EZgeom.G4EzVolume.GetSold(water_phantom)
|
||||
self.solid = g4py.ezgeom.G4EzVolume.GetSold(water_phantom)
|
||||
|
||||
panel.SetSizer(bxsizer)
|
||||
bxsizer.Fit(self)
|
||||
|
||||
@@ -6,11 +6,11 @@
|
||||
# - using site-module packages
|
||||
# ==================================================================
|
||||
from Geant4 import *
|
||||
import NISTmaterials
|
||||
from EZsim import EZgeom
|
||||
from EZsim.EZgeom import G4EzVolume
|
||||
import ExN03pl
|
||||
import ParticleGun
|
||||
import g4py.NISTmaterials
|
||||
import g4py.ezgeom
|
||||
from g4py.ezgeom import G4EzVolume
|
||||
import g4py.ExN03pl
|
||||
import g4py.ParticleGun
|
||||
from time import *
|
||||
import sys
|
||||
|
||||
@@ -22,23 +22,23 @@ def Configure():
|
||||
# setup for materials
|
||||
# ------------------------------------------------------------------
|
||||
# simple materials for Qgeom
|
||||
NISTmaterials.Construct()
|
||||
g4py.NISTmaterials.Construct()
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# setup for geometry
|
||||
# ------------------------------------------------------------------
|
||||
#Qgeom.Construct()
|
||||
EZgeom.Construct() # initialize
|
||||
#g4py.Qgeom.Construct()
|
||||
g4py.ezgeom.Construct() # initialize
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# setup for physics list
|
||||
# ------------------------------------------------------------------
|
||||
ExN03pl.Construct()
|
||||
g4py.ExN03pl.Construct()
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# setup for primary generator action
|
||||
# ------------------------------------------------------------------
|
||||
ParticleGun.Construct()
|
||||
g4py.ParticleGun.Construct()
|
||||
gControlExecute("gun.mac")
|
||||
|
||||
# ==================================================================
|
||||
@@ -58,8 +58,8 @@ def ConstructGeom():
|
||||
lead = G4Material.GetMaterial("G4_Pb", 1)
|
||||
water = G4Material.GetMaterial("G4_WATER", 1)
|
||||
absorber = {"air":air, "aluminum":aluminum, "iron":iron, "lead":lead, "water":water, "gold":gold}
|
||||
EZgeom.SetWorldMaterial(galactic)
|
||||
EZgeom.ResizeWorld(120.*cm, 120.*cm, 100.*cm)
|
||||
g4py.ezgeom.SetWorldMaterial(galactic)
|
||||
g4py.ezgeom.ResizeWorld(120.*cm, 120.*cm, 100.*cm)
|
||||
# water phantom
|
||||
global water_phantom, water_phantom_pv
|
||||
|
||||
@@ -131,7 +131,7 @@ class App(Frame):
|
||||
thick.grid(row=3, column=1, columnspan=5, sticky=W)
|
||||
|
||||
#get logical volume and set its half length
|
||||
self.solid = EZgeom.G4EzVolume.GetSold(water_phantom)
|
||||
self.solid = g4py.ezgeom.G4EzVolume.GetSold(water_phantom)
|
||||
|
||||
#particle row=4
|
||||
particleLabel = Label(self, bg="green", text="Particle")
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
# using site-module packages
|
||||
# ==================================================================
|
||||
from Geant4 import *
|
||||
import Qmaterials, NISTmaterials
|
||||
import ExN03geom
|
||||
import ExN03pl
|
||||
import ParticleGun, MedicalBeam
|
||||
import g4py.Qmaterials, g4py.NISTmaterials
|
||||
import g4py.ExN03geom
|
||||
import g4py.ExN03pl
|
||||
import g4py.ParticleGun, g4py.MedicalBeam
|
||||
import sys
|
||||
from time import *
|
||||
from subprocess import *
|
||||
@@ -30,7 +30,7 @@ HepRandom.setTheSeed(20050830L)
|
||||
# ------------------------------------------------------------------
|
||||
|
||||
# NIST materials
|
||||
#NISTmaterials.Construct()
|
||||
#g4py.NISTmaterials.Construct()
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# setup for geometry
|
||||
@@ -38,13 +38,13 @@ HepRandom.setTheSeed(20050830L)
|
||||
# normal way for constructing user geometry
|
||||
|
||||
|
||||
exN03geom= ExN03geom.ExN03DetectorConstruction()
|
||||
exN03geom= g4py.ExN03geom.ExN03DetectorConstruction()
|
||||
gRunManager.SetUserInitialization(exN03geom)
|
||||
|
||||
# 2nd way, short-cut way
|
||||
|
||||
#ExN01geom.Construct()
|
||||
#ExN03geom.Construct()
|
||||
#g4py.ExN01geom.Construct()
|
||||
#g4py.ExN03geom.Construct()
|
||||
|
||||
# magnetic field
|
||||
#exN03geom.SetMagField(0.1 * tesla)
|
||||
@@ -53,23 +53,23 @@ gRunManager.SetUserInitialization(exN03geom)
|
||||
# setup for physics list
|
||||
# ------------------------------------------------------------------
|
||||
# normal way for constructing user physics list
|
||||
exN03PL= ExN03pl.ExN03PhysicsList()
|
||||
exN03PL= g4py.ExN03pl.ExN03PhysicsList()
|
||||
gRunManager.SetUserInitialization(exN03PL)
|
||||
|
||||
# 2nd way, short-cut way
|
||||
#ExN01pl.Construct()
|
||||
#EMSTDpl.Construct()
|
||||
#g4py.ExN01pl.Construct()
|
||||
#g4py.EMSTDpl.Construct()
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# setup for primary generator action
|
||||
# ------------------------------------------------------------------
|
||||
# normal way for constructing user physics list
|
||||
#pgPGA= ParticleGun.ParticleGunAction()
|
||||
#pgPGA= g4py.ParticleGun.ParticleGunAction()
|
||||
#gRunManager.SetUserAction(pgPGA)
|
||||
#pg= pgPGA.GetParticleGun()
|
||||
|
||||
# 2nd way, short-cut way
|
||||
pg= ParticleGun.Construct()
|
||||
pg= g4py.ParticleGun.Construct()
|
||||
|
||||
# set parameters of particle gun
|
||||
pg.SetParticleByName("e-")
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
#### 2006 Sep 26, the first draft version
|
||||
## Wired not yet. g4pipe control and Popen
|
||||
|
||||
from Geant4 import *
|
||||
import Qmaterials, NISTmaterials
|
||||
import ExN03geom
|
||||
import ExN03pl
|
||||
import ParticleGun, MedicalBeam
|
||||
import g4py.Qmaterials, g4py.NISTmaterials
|
||||
import g4py.ExN03geom
|
||||
import g4py.ExN03pl
|
||||
import g4py.ParticleGun, g4py.MedicalBeam
|
||||
import sys
|
||||
from time import *
|
||||
from subprocess import *
|
||||
@@ -27,20 +29,20 @@ HepRandom.setTheSeed(20050830L)
|
||||
|
||||
|
||||
# NIST materials
|
||||
#NISTmaterials.Construct()
|
||||
#g4py.NISTmaterials.Construct()
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# setup for geometry
|
||||
# ------------------------------------------------------------------
|
||||
# normal way for constructing user geometry
|
||||
|
||||
exN03geom= ExN03geom.ExN03DetectorConstruction()
|
||||
exN03geom= g4py.ExN03geom.ExN03DetectorConstruction()
|
||||
gRunManager.SetUserInitialization(exN03geom)
|
||||
|
||||
# 2nd way, short-cut way
|
||||
|
||||
#ExN01geom.Construct()
|
||||
#ExN03geom.Construct()
|
||||
#g4py.ExN01geom.Construct()
|
||||
#g4py.ExN03geom.Construct()
|
||||
|
||||
# magnetic field
|
||||
#exN03geom.SetMagField(0.1 * tesla)
|
||||
@@ -49,23 +51,23 @@ gRunManager.SetUserInitialization(exN03geom)
|
||||
# setup for physics list
|
||||
# ------------------------------------------------------------------
|
||||
# normal way for constructing user physics list
|
||||
exN03PL= ExN03pl.ExN03PhysicsList()
|
||||
exN03PL= g4py.ExN03pl.ExN03PhysicsList()
|
||||
gRunManager.SetUserInitialization(exN03PL)
|
||||
|
||||
# 2nd way, short-cut way
|
||||
#ExN01pl.Construct()
|
||||
#g4py.ExN01pl.Construct()
|
||||
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# setup for primary generator action
|
||||
# ------------------------------------------------------------------
|
||||
# normal way for constructing user physics list
|
||||
#pgPGA= ParticleGun.ParticleGunAction()
|
||||
#pgPGA= g4py.ParticleGun.ParticleGunAction()
|
||||
#gRunManager.SetUserAction(pgPGA)
|
||||
#pg= pgPGA.GetParticleGun()
|
||||
|
||||
# 2nd way, short-cut way
|
||||
pg= ParticleGun.Construct()
|
||||
pg= g4py.ParticleGun.Construct()
|
||||
|
||||
# set parameters of particle gun
|
||||
pg.SetParticleByName("e-")
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
# Plotting photon cross sections and stopping power with ROOT
|
||||
# ==================================================================
|
||||
from Geant4 import *
|
||||
import NISTmaterials
|
||||
from EZsim import *
|
||||
import g4py.NISTmaterials
|
||||
import g4py.ezgeom
|
||||
|
||||
# ==================================================================
|
||||
# geometry setup
|
||||
@@ -16,15 +16,15 @@ from EZsim import *
|
||||
# setup
|
||||
# ------------------------------------------------------------------
|
||||
def Configure():
|
||||
NISTmaterials.Construct()
|
||||
EZgeom.Construct()
|
||||
g4py.NISTmaterials.Construct()
|
||||
g4py.ezgeom.Construct()
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# constructing geometry
|
||||
# ------------------------------------------------------------------
|
||||
def SetMaterial(material_name):
|
||||
material= gNistManager.FindOrBuildMaterial(material_name)
|
||||
EZgeom.SetWorldMaterial(material)
|
||||
g4py.ezgeom.SetWorldMaterial(material)
|
||||
|
||||
|
||||
# ==================================================================
|
||||
|
||||
@@ -5,14 +5,15 @@
|
||||
# Plotting photon cross sections and stopping power
|
||||
# ==================================================================
|
||||
from Geant4 import *
|
||||
import ExN03pl
|
||||
import g4py.ExN03pl
|
||||
import g4py.emcalculator
|
||||
import EmPlot
|
||||
|
||||
# initialize
|
||||
EmPlot.Configure()
|
||||
|
||||
# user physics list
|
||||
ExN03pl.Construct()
|
||||
g4py.ExN03pl.Construct()
|
||||
|
||||
# target material
|
||||
material= "G4_Cu"
|
||||
@@ -30,7 +31,7 @@ for n in range(-3, 3):
|
||||
|
||||
# calculate stopping power
|
||||
pname= "e-"
|
||||
dedx_list= CalculateDEDX(pname, material, elist, 1)
|
||||
dedx_list= g4py.emcalculator.CalculateDEDX(pname, material, elist, 1)
|
||||
xlist_tot=[]
|
||||
xlist_ioni=[]
|
||||
xlist_brems=[]
|
||||
|
||||
@@ -5,14 +5,15 @@
|
||||
# Plotting photon cross sections and stopping power
|
||||
# ==================================================================
|
||||
from Geant4 import *
|
||||
import ExN03pl
|
||||
import g4py.ExN03pl
|
||||
import g4py.emcalculator
|
||||
import EmPlot
|
||||
|
||||
# initialize
|
||||
EmPlot.Configure()
|
||||
|
||||
# user physics list
|
||||
ExN03pl.Construct()
|
||||
g4py.ExN03pl.Construct()
|
||||
|
||||
# target material
|
||||
material= "G4_Pb"
|
||||
@@ -30,7 +31,7 @@ for n in range(-3, 4):
|
||||
|
||||
|
||||
# calculate cross sections
|
||||
xsection_list= CalculatePhotonCrossSection(material, elist, 1)
|
||||
xsection_list= g4py.emcalculator.CalculatePhotonCrossSection(material, elist, 1)
|
||||
xlist_tot=[]
|
||||
xlist_comp=[]
|
||||
xlist_pe=[]
|
||||
|
||||
@@ -1,531 +1,389 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<gdml xmlns:gdml="http://cern.ch/2001/Schemas/GDML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="GDMLSchema/gdml.xsd" >
|
||||
<define>
|
||||
<rotation name="tube0xc18410invoxel0xc15240r" unit="degree" x="-90" y="-0" z="0" />
|
||||
<position name="cal0xc188b0inAREA_LV0xc14980p" unit="mm" x="100" y="0" z="20" />
|
||||
<position name="cal0xc18820inAREA_LV0xc14980p" unit="mm" x="50" y="0" z="20" />
|
||||
<position name="cal0xc18790inAREA_LV0xc14980p" unit="mm" x="0" y="0" z="20" />
|
||||
<position name="cal0xc18700inAREA_LV0xc14980p" unit="mm" x="-50" y="0" z="20" />
|
||||
<position name="cal0xc18670inAREA_LV0xc14980p" unit="mm" x="-100" y="0" z="20" />
|
||||
<position name="voxel0xc18140inAREA_LV0xc14980p" unit="mm" x="140" y="0" z="-50" />
|
||||
<position name="voxel0xc180b0inAREA_LV0xc14980p" unit="mm" x="120" y="0" z="-50" />
|
||||
<position name="voxel0xc18020inAREA_LV0xc14980p" unit="mm" x="100" y="0" z="-50" />
|
||||
<position name="voxel0xc17f90inAREA_LV0xc14980p" unit="mm" x="80" y="0" z="-50" />
|
||||
<position name="voxel0xc17f00inAREA_LV0xc14980p" unit="mm" x="60" y="0" z="-50" />
|
||||
<position name="voxel0xc17e70inAREA_LV0xc14980p" unit="mm" x="40" y="0" z="-50" />
|
||||
<position name="voxel0xc168c0inAREA_LV0xc14980p" unit="mm" x="20" y="0" z="-50" />
|
||||
<position name="voxel0xc16830inAREA_LV0xc14980p" unit="mm" x="0" y="0" z="-50" />
|
||||
<position name="voxel0xc167a0inAREA_LV0xc14980p" unit="mm" x="-20" y="0" z="-50" />
|
||||
<position name="voxel0xc16710inAREA_LV0xc14980p" unit="mm" x="-40" y="0" z="-50" />
|
||||
<position name="voxel0xc179d0inAREA_LV0xc14980p" unit="mm" x="-60" y="0" z="-50" />
|
||||
<position name="voxel0xc17940inAREA_LV0xc14980p" unit="mm" x="-80" y="0" z="-50" />
|
||||
<position name="voxel0xc178b0inAREA_LV0xc14980p" unit="mm" x="-100" y="0" z="-50" />
|
||||
<position name="voxel0xc17820inAREA_LV0xc14980p" unit="mm" x="-120" y="0" z="-50" />
|
||||
<position name="voxel0xc17790inAREA_LV0xc14980p" unit="mm" x="-140" y="0" z="-50" />
|
||||
<position name="voxel0xc17700inAREA_LV0xc14980p" unit="mm" x="140" y="0" z="-70" />
|
||||
<position name="voxel0xc17670inAREA_LV0xc14980p" unit="mm" x="120" y="0" z="-70" />
|
||||
<position name="voxel0xc175e0inAREA_LV0xc14980p" unit="mm" x="100" y="0" z="-70" />
|
||||
<position name="voxel0xc17550inAREA_LV0xc14980p" unit="mm" x="80" y="0" z="-70" />
|
||||
<position name="voxel0xc174c0inAREA_LV0xc14980p" unit="mm" x="60" y="0" z="-70" />
|
||||
<position name="voxel0xc17430inAREA_LV0xc14980p" unit="mm" x="40" y="0" z="-70" />
|
||||
<position name="voxel0xc173a0inAREA_LV0xc14980p" unit="mm" x="20" y="0" z="-70" />
|
||||
<position name="voxel0xc17310inAREA_LV0xc14980p" unit="mm" x="0" y="0" z="-70" />
|
||||
<position name="voxel0xc17280inAREA_LV0xc14980p" unit="mm" x="-20" y="0" z="-70" />
|
||||
<position name="voxel0xc171f0inAREA_LV0xc14980p" unit="mm" x="-40" y="0" z="-70" />
|
||||
<position name="voxel0xc17160inAREA_LV0xc14980p" unit="mm" x="-60" y="0" z="-70" />
|
||||
<position name="voxel0xc170d0inAREA_LV0xc14980p" unit="mm" x="-80" y="0" z="-70" />
|
||||
<position name="voxel0xc17040inAREA_LV0xc14980p" unit="mm" x="-100" y="0" z="-70" />
|
||||
<position name="voxel0xc16fb0inAREA_LV0xc14980p" unit="mm" x="-120" y="0" z="-70" />
|
||||
<position name="voxel0xc16f20inAREA_LV0xc14980p" unit="mm" x="-140" y="0" z="-70" />
|
||||
<position name="voxel0xc16e90inAREA_LV0xc14980p" unit="mm" x="140" y="0" z="-90" />
|
||||
<position name="voxel0xc16e00inAREA_LV0xc14980p" unit="mm" x="120" y="0" z="-90" />
|
||||
<position name="voxel0xc16d70inAREA_LV0xc14980p" unit="mm" x="100" y="0" z="-90" />
|
||||
<position name="voxel0xc16ce0inAREA_LV0xc14980p" unit="mm" x="80" y="0" z="-90" />
|
||||
<position name="voxel0xc16c50inAREA_LV0xc14980p" unit="mm" x="60" y="0" z="-90" />
|
||||
<position name="voxel0xc16bc0inAREA_LV0xc14980p" unit="mm" x="40" y="0" z="-90" />
|
||||
<position name="voxel0xc16b30inAREA_LV0xc14980p" unit="mm" x="20" y="0" z="-90" />
|
||||
<position name="voxel0xc16aa0inAREA_LV0xc14980p" unit="mm" x="0" y="0" z="-90" />
|
||||
<position name="voxel0xc16a10inAREA_LV0xc14980p" unit="mm" x="-20" y="0" z="-90" />
|
||||
<position name="voxel0xc16980inAREA_LV0xc14980p" unit="mm" x="-40" y="0" z="-90" />
|
||||
<position name="voxel0xc16920inAREA_LV0xc14980p" unit="mm" x="-60" y="0" z="-90" />
|
||||
<position name="voxel0xc15dc0inAREA_LV0xc14980p" unit="mm" x="-80" y="0" z="-90" />
|
||||
<position name="voxel0xc166b0inAREA_LV0xc14980p" unit="mm" x="-100" y="0" z="-90" />
|
||||
<position name="voxel0xc16620inAREA_LV0xc14980p" unit="mm" x="-120" y="0" z="-90" />
|
||||
<position name="voxel0xc16590inAREA_LV0xc14980p" unit="mm" x="-140" y="0" z="-90" />
|
||||
<position name="voxel0xc16500inAREA_LV0xc14980p" unit="mm" x="140" y="0" z="-110" />
|
||||
<position name="voxel0xc16470inAREA_LV0xc14980p" unit="mm" x="120" y="0" z="-110" />
|
||||
<position name="voxel0xc163e0inAREA_LV0xc14980p" unit="mm" x="100" y="0" z="-110" />
|
||||
<position name="voxel0xc16350inAREA_LV0xc14980p" unit="mm" x="80" y="0" z="-110" />
|
||||
<position name="voxel0xc162c0inAREA_LV0xc14980p" unit="mm" x="60" y="0" z="-110" />
|
||||
<position name="voxel0xc16230inAREA_LV0xc14980p" unit="mm" x="40" y="0" z="-110" />
|
||||
<position name="voxel0xc161a0inAREA_LV0xc14980p" unit="mm" x="20" y="0" z="-110" />
|
||||
<position name="voxel0xc16110inAREA_LV0xc14980p" unit="mm" x="0" y="0" z="-110" />
|
||||
<position name="voxel0xc16080inAREA_LV0xc14980p" unit="mm" x="-20" y="0" z="-110" />
|
||||
<position name="voxel0xc15ff0inAREA_LV0xc14980p" unit="mm" x="-40" y="0" z="-110" />
|
||||
<position name="voxel0xc15f60inAREA_LV0xc14980p" unit="mm" x="-60" y="0" z="-110" />
|
||||
<position name="voxel0xc15ed0inAREA_LV0xc14980p" unit="mm" x="-80" y="0" z="-110" />
|
||||
<position name="voxel0xc158b0inAREA_LV0xc14980p" unit="mm" x="-100" y="0" z="-110" />
|
||||
<position name="voxel0xc15d30inAREA_LV0xc14980p" unit="mm" x="-120" y="0" z="-110" />
|
||||
<position name="voxel0xc15ca0inAREA_LV0xc14980p" unit="mm" x="-140" y="0" z="-110" />
|
||||
<position name="voxel0xc15c10inAREA_LV0xc14980p" unit="mm" x="140" y="0" z="-130" />
|
||||
<position name="voxel0xc15b80inAREA_LV0xc14980p" unit="mm" x="120" y="0" z="-130" />
|
||||
<position name="voxel0xc15af0inAREA_LV0xc14980p" unit="mm" x="100" y="0" z="-130" />
|
||||
<position name="voxel0xc15a60inAREA_LV0xc14980p" unit="mm" x="80" y="0" z="-130" />
|
||||
<position name="voxel0xc159d0inAREA_LV0xc14980p" unit="mm" x="60" y="0" z="-130" />
|
||||
<position name="voxel0xc15940inAREA_LV0xc14980p" unit="mm" x="40" y="0" z="-130" />
|
||||
<position name="voxel0xc15820inAREA_LV0xc14980p" unit="mm" x="20" y="0" z="-130" />
|
||||
<position name="voxel0xc15790inAREA_LV0xc14980p" unit="mm" x="0" y="0" z="-130" />
|
||||
<position name="voxel0xc15700inAREA_LV0xc14980p" unit="mm" x="-20" y="0" z="-130" />
|
||||
<position name="voxel0xc15670inAREA_LV0xc14980p" unit="mm" x="-40" y="0" z="-130" />
|
||||
<position name="voxel0xc15610inAREA_LV0xc14980p" unit="mm" x="-60" y="0" z="-130" />
|
||||
<position name="voxel0xc15580inAREA_LV0xc14980p" unit="mm" x="-80" y="0" z="-130" />
|
||||
<position name="voxel0xc154c0inAREA_LV0xc14980p" unit="mm" x="-100" y="0" z="-130" />
|
||||
<position name="voxel0xc15430inAREA_LV0xc14980p" unit="mm" x="-120" y="0" z="-130" />
|
||||
<position name="voxel0xc15380inAREA_LV0xc14980p" unit="mm" x="-140" y="0" z="-130" />
|
||||
</define>
|
||||
<materials>
|
||||
<element Z="7" formula="N" name="Nitrogen0xc03430" >
|
||||
<atom value="14.0067" />
|
||||
</element>
|
||||
<element Z="8" formula="O" name="Oxygen0xc03600" >
|
||||
<atom value="15.9994" />
|
||||
</element>
|
||||
<material formula=" " name="Vacuum0xc041f0" >
|
||||
<D value="1e-25" />
|
||||
<fraction n="0.7" ref="Nitrogen0xc03430" />
|
||||
<fraction n="0.3" ref="Oxygen0xc03600" />
|
||||
</material>
|
||||
<element Z="18" formula="Ar" name="Argon0xc03b70" >
|
||||
<atom value="39.948" />
|
||||
</element>
|
||||
<material formula=" " name="Air0xc04770" >
|
||||
<D value="0.0012929" />
|
||||
<fraction n="0.755078" ref="Nitrogen0xc03430" />
|
||||
<fraction n="0.232116" ref="Oxygen0xc03600" />
|
||||
<fraction n="0.0128064" ref="Argon0xc03b70" />
|
||||
</material>
|
||||
<material Z="18" formula=" " name="ArgonGas0xc051f0" >
|
||||
<D value="0.00166042" />
|
||||
<atom value="39.948" />
|
||||
</material>
|
||||
<element Z="6" formula="C" name="Carbon0xc032a0" >
|
||||
<atom value="12.011" />
|
||||
</element>
|
||||
<element Z="1" formula="H" name="Hydrogen0x950310" >
|
||||
<atom value="1.00794" />
|
||||
</element>
|
||||
<material formula=" " name="Ethane0xc060e0" >
|
||||
<D value="0.00126349" />
|
||||
<fraction n="0.798879" ref="Carbon0xc032a0" />
|
||||
<fraction n="0.201121" ref="Hydrogen0x950310" />
|
||||
</material>
|
||||
<element Z="18" formula=" " name="ArgonGas0xc05a70" >
|
||||
<atom value="39.948" />
|
||||
</element>
|
||||
<material formula=" " name="ArEthane0xc063b0" >
|
||||
<D value="0.00146196" />
|
||||
<fraction n="0.567878" ref="ArgonGas0xc05a70" />
|
||||
<fraction n="0.345213" ref="Carbon0xc032a0" />
|
||||
<fraction n="0.0869089" ref="Hydrogen0x950310" />
|
||||
</material>
|
||||
<material Z="14" formula=" " name="SiliconWafer0xc06e40" >
|
||||
<D value="2.33" />
|
||||
<atom value="28.0855" />
|
||||
</material>
|
||||
<material Z="13" formula=" " name="Al0xc07d10" >
|
||||
<D value="2.7" />
|
||||
<atom value="26.98" />
|
||||
</material>
|
||||
<material Z="26" formula=" " name="Iron0xc08580" >
|
||||
<D value="7.87" />
|
||||
<atom value="55.847" />
|
||||
</material>
|
||||
<material Z="82" formula=" " name="Lead0xc08ce0" >
|
||||
<D value="11.35" />
|
||||
<atom value="207.2" />
|
||||
</material>
|
||||
<material formula=" " name="Scinti0xc097f0" >
|
||||
<D value="1.032" />
|
||||
<fraction n="0.922579" ref="Carbon0xc032a0" />
|
||||
<fraction n="0.077421" ref="Hydrogen0x950310" />
|
||||
</material>
|
||||
<element Z="14" formula="Si" name="Silicon0xc039a0" >
|
||||
<atom value="28.0855" />
|
||||
</element>
|
||||
<material formula=" " name="Quartz0xc09a30" >
|
||||
<D value="2.64" />
|
||||
<fraction n="0.467435" ref="Silicon0xc039a0" />
|
||||
<fraction n="0.532565" ref="Oxygen0xc03600" />
|
||||
</material>
|
||||
<element Z="11" formula="Na" name="Sodium0xc037c0" >
|
||||
<atom value="22.9898" />
|
||||
</element>
|
||||
<element Z="53" formula="I" name="Iodine0xc03d40" >
|
||||
<atom value="126.904" />
|
||||
</element>
|
||||
<material formula=" " name="NaI0xc0a290" >
|
||||
<D value="3.67" />
|
||||
<fraction n="0.153373" ref="Sodium0xc037c0" />
|
||||
<fraction n="0.846627" ref="Iodine0xc03d40" />
|
||||
</material>
|
||||
<element Z="55" formula="Cs" name="Cesium0xc03f60" >
|
||||
<atom value="132.905" />
|
||||
</element>
|
||||
<material formula=" " name="CsI0xc0aab0" >
|
||||
<D value="4.51" />
|
||||
<fraction n="0.511549" ref="Cesium0xc03f60" />
|
||||
<fraction n="0.488451" ref="Iodine0xc03d40" />
|
||||
</material>
|
||||
</materials>
|
||||
<solids>
|
||||
<box aunit="radian" lunit="mm" name="AREA0xc145c0" x="300" y="300" z="300" />
|
||||
<box aunit="radian" lunit="mm" name="voxel0xc151b0" x="20" y="200" z="20" />
|
||||
<tube aunit="degree" deltaphi="360" lunit="mm" name="tube0xc181d0" rmax="9.5" rmin="0" startphi="0" z="200" />
|
||||
<box aunit="radian" lunit="mm" name="cal0xc184a0" x="50" y="50" z="60" />
|
||||
</solids>
|
||||
<structure>
|
||||
<volume name="tube0xc18280" >
|
||||
<materialref ref="Al0xc07d10" />
|
||||
<solidref ref="tube0xc181d0" />
|
||||
</volume>
|
||||
<volume name="voxel0xc15240" >
|
||||
<materialref ref="Vacuum0xc041f0" />
|
||||
<solidref ref="voxel0xc151b0" />
|
||||
<physvol>
|
||||
<volumeref ref="tube0xc18280" />
|
||||
<rotationref ref="tube0xc18410invoxel0xc15240r" />
|
||||
</physvol>
|
||||
</volume>
|
||||
<volume name="cal0xc18530" >
|
||||
<materialref ref="CsI0xc0aab0" />
|
||||
<solidref ref="cal0xc184a0" />
|
||||
</volume>
|
||||
<volume name="AREA_LV0xc14980" >
|
||||
<materialref ref="Vacuum0xc041f0" />
|
||||
<solidref ref="AREA0xc145c0" />
|
||||
<physvol>
|
||||
<volumeref ref="cal0xc18530" />
|
||||
<positionref ref="cal0xc188b0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="cal0xc18530" />
|
||||
<positionref ref="cal0xc18820inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="cal0xc18530" />
|
||||
<positionref ref="cal0xc18790inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="cal0xc18530" />
|
||||
<positionref ref="cal0xc18700inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="cal0xc18530" />
|
||||
<positionref ref="cal0xc18670inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc18140inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc180b0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc18020inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17f90inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17f00inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17e70inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc168c0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16830inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc167a0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16710inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc179d0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17940inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc178b0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17820inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17790inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17700inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17670inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc175e0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17550inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc174c0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17430inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc173a0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17310inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17280inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc171f0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17160inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc170d0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc17040inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16fb0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16f20inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16e90inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16e00inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16d70inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16ce0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16c50inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16bc0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16b30inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16aa0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16a10inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16980inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16920inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15dc0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc166b0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16620inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16590inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16500inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16470inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc163e0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16350inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc162c0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16230inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc161a0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16110inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc16080inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15ff0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15f60inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15ed0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc158b0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15d30inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15ca0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15c10inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15b80inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15af0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15a60inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc159d0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15940inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15820inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15790inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15700inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15670inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15610inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15580inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc154c0inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15430inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
<physvol>
|
||||
<volumeref ref="voxel0xc15240" />
|
||||
<positionref ref="voxel0xc15380inAREA_LV0xc14980p" />
|
||||
</physvol>
|
||||
</volume>
|
||||
</structure>
|
||||
<setup name="Default" version="1.0" >
|
||||
<world ref="AREA_LV0xc14980" />
|
||||
</setup>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
|
||||
<gdml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://service-spi.web.cern.ch/service-spi/app/releases/GDML/GDML_2_10_0/src/GDMLSchema/gdml.xsd">
|
||||
|
||||
<define/>
|
||||
|
||||
<materials>
|
||||
<material Z="13" name="Al0x932cf0" state="solid">
|
||||
<D unit="g/cm3" value="2.7"/>
|
||||
<atom unit="g/mole" value="26.98"/>
|
||||
</material>
|
||||
<element Z="7" name="Nitrogen0x90fe50">
|
||||
<atom unit="g/mole" value="14.00674"/>
|
||||
</element>
|
||||
<element Z="8" name="Oxygen0x91dc40">
|
||||
<atom unit="g/mole" value="15.9994"/>
|
||||
</element>
|
||||
<material name="Vacuum0x916cf0" state="gas">
|
||||
<D unit="g/cm3" value="1e-25"/>
|
||||
<fraction n="0.7" ref="Nitrogen0x90fe50"/>
|
||||
<fraction n="0.3" ref="Oxygen0x91dc40"/>
|
||||
</material>
|
||||
<element Z="55" name="Cesium0x90eed0">
|
||||
<atom unit="g/mole" value="132.90543"/>
|
||||
</element>
|
||||
<element Z="53" name="Iodine0x61aa70">
|
||||
<atom unit="g/mole" value="126.90447"/>
|
||||
</element>
|
||||
<material name="CsI0x935a90" state="solid">
|
||||
<D unit="g/cm3" value="4.51"/>
|
||||
<fraction n="0.511548751606463" ref="Cesium0x90eed0"/>
|
||||
<fraction n="0.488451248393537" ref="Iodine0x61aa70"/>
|
||||
</material>
|
||||
</materials>
|
||||
|
||||
<solids>
|
||||
<tube aunit="deg" deltaphi="360" lunit="mm" name="tube0x941cb0" rmax="9.5" rmin="0" startphi="0" z="200"/>
|
||||
<box lunit="mm" name="voxel0x93f120" x="20" y="200" z="20"/>
|
||||
<box lunit="mm" name="cal0x941f60" x="50" y="50" z="60"/>
|
||||
<box lunit="mm" name="AREA0x93e380" x="300" y="300" z="300"/>
|
||||
</solids>
|
||||
|
||||
<structure>
|
||||
<volume name="tube0x941d60">
|
||||
<materialref ref="Al0x932cf0"/>
|
||||
<solidref ref="tube0x941cb0"/>
|
||||
</volume>
|
||||
<volume name="voxel0x93f1a0">
|
||||
<materialref ref="Vacuum0x916cf0"/>
|
||||
<solidref ref="voxel0x93f120"/>
|
||||
<physvol name="tube0x941ee0">
|
||||
<volumeref ref="tube0x941d60"/>
|
||||
<rotation name="tube0x941ee0_rot" unit="deg" x="-90" y="0" z="0"/>
|
||||
</physvol>
|
||||
</volume>
|
||||
<volume name="cal0x941fe0">
|
||||
<materialref ref="CsI0x935a90"/>
|
||||
<solidref ref="cal0x941f60"/>
|
||||
</volume>
|
||||
<volume name="AREA_LV0x93e970">
|
||||
<materialref ref="Vacuum0x916cf0"/>
|
||||
<solidref ref="AREA0x93e380"/>
|
||||
<physvol name="voxel0x93f2d0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93f2d0_pos" unit="mm" x="-140" y="0" z="-130"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93f370">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93f370_pos" unit="mm" x="-120" y="0" z="-130"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93f3f0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93f3f0_pos" unit="mm" x="-100" y="0" z="-130"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93f4a0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93f4a0_pos" unit="mm" x="-80" y="0" z="-130"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93f520">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93f520_pos" unit="mm" x="-60" y="0" z="-130"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93f5c0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93f5c0_pos" unit="mm" x="-40" y="0" z="-130"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93f640">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93f640_pos" unit="mm" x="-20" y="0" z="-130"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93f6c0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93f6c0_pos" unit="mm" x="0" y="0" z="-130"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93f740">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93f740_pos" unit="mm" x="20" y="0" z="-130"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93f570">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93f570_pos" unit="mm" x="40" y="0" z="-130"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93f880">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93f880_pos" unit="mm" x="60" y="0" z="-130"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93f900">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93f900_pos" unit="mm" x="80" y="0" z="-130"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93f980">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93f980_pos" unit="mm" x="100" y="0" z="-130"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93fa00">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93fa00_pos" unit="mm" x="120" y="0" z="-130"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93fa80">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93fa80_pos" unit="mm" x="140" y="0" z="-130"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93fb00">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93fb00_pos" unit="mm" x="-140" y="0" z="-110"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93fb80">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93fb80_pos" unit="mm" x="-120" y="0" z="-110"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93f7c0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93f7c0_pos" unit="mm" x="-100" y="0" z="-110"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93fd10">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93fd10_pos" unit="mm" x="-80" y="0" z="-110"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93fd90">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93fd90_pos" unit="mm" x="-60" y="0" z="-110"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93fe10">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93fe10_pos" unit="mm" x="-40" y="0" z="-110"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93fe90">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93fe90_pos" unit="mm" x="-20" y="0" z="-110"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93ff10">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93ff10_pos" unit="mm" x="0" y="0" z="-110"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93ff90">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93ff90_pos" unit="mm" x="20" y="0" z="-110"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940010">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940010_pos" unit="mm" x="40" y="0" z="-110"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940090">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940090_pos" unit="mm" x="60" y="0" z="-110"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940110">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940110_pos" unit="mm" x="80" y="0" z="-110"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940190">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940190_pos" unit="mm" x="100" y="0" z="-110"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940210">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940210_pos" unit="mm" x="120" y="0" z="-110"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940290">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940290_pos" unit="mm" x="140" y="0" z="-110"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940310">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940310_pos" unit="mm" x="-140" y="0" z="-90"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940390">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940390_pos" unit="mm" x="-120" y="0" z="-90"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940410">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940410_pos" unit="mm" x="-100" y="0" z="-90"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93fc00">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93fc00_pos" unit="mm" x="-80" y="0" z="-90"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x93fc80">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x93fc80_pos" unit="mm" x="-60" y="0" z="-90"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x9406a0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x9406a0_pos" unit="mm" x="-40" y="0" z="-90"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940720">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940720_pos" unit="mm" x="-20" y="0" z="-90"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x9407a0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x9407a0_pos" unit="mm" x="0" y="0" z="-90"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940820">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940820_pos" unit="mm" x="20" y="0" z="-90"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x9408a0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x9408a0_pos" unit="mm" x="40" y="0" z="-90"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940920">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940920_pos" unit="mm" x="60" y="0" z="-90"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x9409a0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x9409a0_pos" unit="mm" x="80" y="0" z="-90"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940a20">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940a20_pos" unit="mm" x="100" y="0" z="-90"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940aa0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940aa0_pos" unit="mm" x="120" y="0" z="-90"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940b20">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940b20_pos" unit="mm" x="140" y="0" z="-90"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940ba0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940ba0_pos" unit="mm" x="-140" y="0" z="-70"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940c20">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940c20_pos" unit="mm" x="-120" y="0" z="-70"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940ca0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940ca0_pos" unit="mm" x="-100" y="0" z="-70"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940d20">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940d20_pos" unit="mm" x="-80" y="0" z="-70"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940da0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940da0_pos" unit="mm" x="-60" y="0" z="-70"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940e20">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940e20_pos" unit="mm" x="-40" y="0" z="-70"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940ea0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940ea0_pos" unit="mm" x="-20" y="0" z="-70"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940f20">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940f20_pos" unit="mm" x="0" y="0" z="-70"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940fa0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940fa0_pos" unit="mm" x="20" y="0" z="-70"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x941020">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x941020_pos" unit="mm" x="40" y="0" z="-70"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x9410a0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x9410a0_pos" unit="mm" x="60" y="0" z="-70"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x941120">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x941120_pos" unit="mm" x="80" y="0" z="-70"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x9411a0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x9411a0_pos" unit="mm" x="100" y="0" z="-70"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x941220">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x941220_pos" unit="mm" x="120" y="0" z="-70"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x9412a0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x9412a0_pos" unit="mm" x="140" y="0" z="-70"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x941320">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x941320_pos" unit="mm" x="-140" y="0" z="-50"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x9413a0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x9413a0_pos" unit="mm" x="-120" y="0" z="-50"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x941420">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x941420_pos" unit="mm" x="-100" y="0" z="-50"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x9414a0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x9414a0_pos" unit="mm" x="-80" y="0" z="-50"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x941520">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x941520_pos" unit="mm" x="-60" y="0" z="-50"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940490">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940490_pos" unit="mm" x="-40" y="0" z="-50"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940510">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940510_pos" unit="mm" x="-20" y="0" z="-50"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940590">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940590_pos" unit="mm" x="0" y="0" z="-50"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x940610">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x940610_pos" unit="mm" x="20" y="0" z="-50"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x9419b0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x9419b0_pos" unit="mm" x="40" y="0" z="-50"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x941a30">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x941a30_pos" unit="mm" x="60" y="0" z="-50"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x941ab0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x941ab0_pos" unit="mm" x="80" y="0" z="-50"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x941b30">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x941b30_pos" unit="mm" x="100" y="0" z="-50"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x941bb0">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x941bb0_pos" unit="mm" x="120" y="0" z="-50"/>
|
||||
</physvol>
|
||||
<physvol name="voxel0x941c30">
|
||||
<volumeref ref="voxel0x93f1a0"/>
|
||||
<position name="voxel0x941c30_pos" unit="mm" x="140" y="0" z="-50"/>
|
||||
</physvol>
|
||||
<physvol name="cal0x942110">
|
||||
<volumeref ref="cal0x941fe0"/>
|
||||
<position name="cal0x942110_pos" unit="mm" x="-100" y="0" z="20"/>
|
||||
</physvol>
|
||||
<physvol name="cal0x942190">
|
||||
<volumeref ref="cal0x941fe0"/>
|
||||
<position name="cal0x942190_pos" unit="mm" x="-50" y="0" z="20"/>
|
||||
</physvol>
|
||||
<physvol name="cal0x942210">
|
||||
<volumeref ref="cal0x941fe0"/>
|
||||
<position name="cal0x942210_pos" unit="mm" x="0" y="0" z="20"/>
|
||||
</physvol>
|
||||
<physvol name="cal0x942290">
|
||||
<volumeref ref="cal0x941fe0"/>
|
||||
<position name="cal0x942290_pos" unit="mm" x="50" y="0" z="20"/>
|
||||
</physvol>
|
||||
<physvol name="cal0x942310">
|
||||
<volumeref ref="cal0x941fe0"/>
|
||||
<position name="cal0x942310_pos" unit="mm" x="100" y="0" z="20"/>
|
||||
</physvol>
|
||||
</volume>
|
||||
</structure>
|
||||
|
||||
<setup name="Default" version="1.0">
|
||||
<world ref="AREA_LV0x93e970"/>
|
||||
</setup>
|
||||
|
||||
</gdml>
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
# ==================================================================
|
||||
# An example for reading a GDML file
|
||||
#
|
||||
# ==================================================================
|
||||
from Geant4 import *
|
||||
from Geant4.G4g4gdml import *
|
||||
|
||||
import ExN01pl, ParticleGun
|
||||
|
||||
# ==================================================================
|
||||
# user actions in python
|
||||
# ==================================================================
|
||||
class MyDetectorConstruction(G4VUserDetectorConstruction):
|
||||
"My Detector Construction"
|
||||
|
||||
def __init__(self):
|
||||
G4VUserDetectorConstruction.__init__(self)
|
||||
self.world= None
|
||||
self.gdml_parser= G4GDMLParser()
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
def __del__(self):
|
||||
pass
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
def Construct(self):
|
||||
self.gdml_parser.Read("qgeom.gdml")
|
||||
self.world= self.gdml_parser.GetWorldVolume()
|
||||
|
||||
return self.world
|
||||
|
||||
|
||||
# ==================================================================
|
||||
# main
|
||||
# ==================================================================
|
||||
# set geometry
|
||||
myDC= MyDetectorConstruction()
|
||||
gRunManager.SetUserInitialization(myDC)
|
||||
|
||||
# minimal physics list
|
||||
ExN01pl.Construct()
|
||||
|
||||
# set primary generator action
|
||||
ParticleGun.Construct()
|
||||
|
||||
# initialize
|
||||
gRunManager.Initialize()
|
||||
|
||||
# visualization
|
||||
gApplyUICommand("/vis/open OGLIX")
|
||||
gApplyUICommand("/vis/scene/create")
|
||||
gApplyUICommand("/vis/scene/add/volume")
|
||||
gApplyUICommand("/vis/sceneHandler/attach")
|
||||
gApplyUICommand("/vis/viewer/set/viewpointThetaPhi 90. -90.")
|
||||
|
||||
@@ -4,9 +4,7 @@
|
||||
#
|
||||
# ==================================================================
|
||||
from Geant4 import *
|
||||
from Geant4.G4gdml import *
|
||||
|
||||
import ExN01pl, ParticleGun
|
||||
import g4py.ExN01pl, g4py.ParticleGun
|
||||
|
||||
# ==================================================================
|
||||
# user actions in python
|
||||
@@ -17,24 +15,16 @@ class MyDetectorConstruction(G4VUserDetectorConstruction):
|
||||
def __init__(self):
|
||||
G4VUserDetectorConstruction.__init__(self)
|
||||
self.world= None
|
||||
self.sxp= SAXProcessor()
|
||||
self.config= ProcessingConfigurator()
|
||||
self.gdml_parser= G4GDMLParser()
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
def __del__(self):
|
||||
self.sxp.Finalize()
|
||||
pass
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
def Construct(self):
|
||||
self.sxp.Initialize()
|
||||
|
||||
self.config.SetURI("qgeom.gdml")
|
||||
self.config.SetSetupName("Default")
|
||||
|
||||
self.sxp.Configure(self.config)
|
||||
self.sxp.Run()
|
||||
|
||||
self.world= GDMLProcessor.GetInstance().GetWorldVolume()
|
||||
self.gdml_parser.Read("qgeom.gdml")
|
||||
self.world= self.gdml_parser.GetWorldVolume()
|
||||
|
||||
return self.world
|
||||
|
||||
@@ -47,10 +37,10 @@ myDC= MyDetectorConstruction()
|
||||
gRunManager.SetUserInitialization(myDC)
|
||||
|
||||
# minimal physics list
|
||||
ExN01pl.Construct()
|
||||
g4py.ExN01pl.Construct()
|
||||
|
||||
# set primary generator action
|
||||
ParticleGun.Construct()
|
||||
g4py.ParticleGun.Construct()
|
||||
|
||||
# initialize
|
||||
gRunManager.Initialize()
|
||||
|
||||
@@ -4,23 +4,21 @@
|
||||
#
|
||||
# ==================================================================
|
||||
from Geant4 import *
|
||||
from Geant4.G4gdml import *
|
||||
|
||||
import Qmaterials, Qgeom
|
||||
import ExN01pl, ParticleGun
|
||||
import g4py.Qmaterials, g4py.Qgeom
|
||||
import g4py.ExN01pl, g4py.ParticleGun
|
||||
|
||||
# ==================================================================
|
||||
# main
|
||||
# ==================================================================
|
||||
# set geometry
|
||||
Qmaterials.Construct()
|
||||
Qgeom.Construct()
|
||||
g4py.Qmaterials.Construct()
|
||||
g4py.Qgeom.Construct()
|
||||
|
||||
# minimal physics list
|
||||
ExN01pl.Construct()
|
||||
g4py.ExN01pl.Construct()
|
||||
|
||||
# set primary generator action
|
||||
ParticleGun.Construct()
|
||||
g4py.ParticleGun.Construct()
|
||||
|
||||
# initialize
|
||||
gRunManager.Initialize()
|
||||
@@ -36,6 +34,8 @@ gApplyUICommand("/vis/viewer/set/viewpointThetaPhi 90. -90.")
|
||||
print "\n*** write to a GDML file..."
|
||||
navigator= gTransportationManager.GetNavigatorForTracking()
|
||||
world_volume= navigator.GetWorldVolume()
|
||||
gdml_writer= G4GDMLWriter("GDMLSchema/gdml.xsd", "qgeom.gdml")
|
||||
gdml_writer.DumpGeometryInfo(world_volume)
|
||||
|
||||
gdml_parser = G4GDMLParser()
|
||||
gdml_parser.Write("qgeom.gdml", world_volume)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user