Import Geant4 7.0.0 source tree
This commit is contained in:
@@ -18,9 +18,9 @@
|
||||
# you may fetch it yourself from your nearest archive site.)
|
||||
#
|
||||
|
||||
# $Id: Configure,v 1.60 2004/06/29 09:33:29 stesting Exp $
|
||||
# $Id: Configure,v 1.68 2004/12/17 15:36:11 stesting Exp $
|
||||
#
|
||||
# Generated on Tue Jun 29 11:27:51 CEST 2004 [metaconfig 3.0 PL70]
|
||||
# Generated on Fri Dec 17 16:33:20 CET 2004 [metaconfig 3.0 PL70]
|
||||
|
||||
cat >/tmp/c1$$ <<EOF
|
||||
WARNING!!!!!
|
||||
@@ -158,6 +158,7 @@ contains=''
|
||||
d_portable=''
|
||||
g4base=''
|
||||
g4conf=''
|
||||
g4final_install=''
|
||||
g4include=''
|
||||
g4includes_flag=''
|
||||
g4install=''
|
||||
@@ -444,12 +445,13 @@ while test $# -gt 0; do
|
||||
case "$1" in
|
||||
-d) shift; fastread=yes;;
|
||||
-e) shift; alldone=cont;;
|
||||
-build) shift; g4build=yes;;
|
||||
-incflags) shift; g4incflags=yes;;
|
||||
-install) shift; install=yes;;
|
||||
-ldlibs) shift; g4ldlibs=yes;;
|
||||
-ldflags) shift; g4ldflags=yes;;
|
||||
-cppflags) shift; g4cppflags=yes;;
|
||||
-cxxflags) shift; g4cxxflags=yes;;
|
||||
-incflags) shift; g4incflags=yes;;
|
||||
-ldlibs) shift; g4ldlibs=yes;;
|
||||
-ldflags) shift; g4ldflags=yes;;
|
||||
-f)
|
||||
shift
|
||||
cd ../..
|
||||
@@ -504,16 +506,17 @@ done
|
||||
case "$error" in
|
||||
true)
|
||||
cat >&2 <<EOM
|
||||
Usage: $me [-dehrsEKOSV] [-install] [-libs] [-f config.sh] [-D symbol] [-D symbol=value]
|
||||
Usage: $me [-dehrsEKOSV] [-install] [-build] [-libs] [-f config.sh] [-D symbol] [-D symbol=value]
|
||||
[-U symbol] [-U symbol=]
|
||||
-d : use defaults for all answers.
|
||||
-e : go on without questioning past the production of config.sh.
|
||||
-install : start configuration AND installation of Geant4 libraries.
|
||||
-ldlibs : retrieve the list of libraries to link
|
||||
-ldflags : retrieve the list of directories where libraries are placed
|
||||
-cxxflags : retrieve the list of cxxflags
|
||||
-build : start configuration AND build of Geant4 libraries.
|
||||
-cppflags : retrieve the list of cppflags
|
||||
-cxxflags : retrieve the list of cxxflags
|
||||
-incflags : retrieve the list of incflags
|
||||
-install : start installation of Geant4 libraries.
|
||||
-ldflags : retrieve the list of directories where libraries are placed
|
||||
-ldlibs : retrieve the list of libraries to link
|
||||
-f : specify an alternate default configuration file.
|
||||
-h : print this help message and exit (with an error status).
|
||||
-r : reuse C symbols value if possible (skips costly nm extraction).
|
||||
@@ -941,12 +944,37 @@ user=`(logname) 2>/dev/null`
|
||||
case "$user" in
|
||||
'') user=`whoami 2>&1`;;
|
||||
esac
|
||||
if [ X$install = Xyes ] ; then
|
||||
|
||||
#if [ X$install = Xyes ] ; then
|
||||
#
|
||||
#echo " "
|
||||
#echo " "
|
||||
#echo " "
|
||||
#echo " --- Geant4 Toolkit Installation ---"
|
||||
#echo " "
|
||||
#echo " "
|
||||
#echo " "
|
||||
#echo " "
|
||||
#
|
||||
##if $contains "^$user\$" ../../.config/instruct >/dev/null 2>&1; then
|
||||
## firsttime=false
|
||||
## echo " "
|
||||
## rp='Would you like to see the instructions?'
|
||||
## dflt=n
|
||||
## . ./myread
|
||||
## case "$ans" in
|
||||
## [yY]*) ;;
|
||||
## *) needman=false;;
|
||||
## esac
|
||||
##fi
|
||||
#fi
|
||||
|
||||
if [ X$g4build = Xyes ] ; then
|
||||
|
||||
echo " "
|
||||
echo " "
|
||||
echo " "
|
||||
echo " --- Geant4 Toolkit Installation ---"
|
||||
echo " --- Geant4 Toolkit Build ---"
|
||||
echo " "
|
||||
echo " "
|
||||
echo " "
|
||||
@@ -965,7 +993,11 @@ if $contains "^$user\$" ../../.config/instruct >/dev/null 2>&1; then
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ X$install = X ] ; then
|
||||
if [ X$install = Xyes ] ; then
|
||||
needman=false
|
||||
fi
|
||||
|
||||
if [ X$install = X -a X$g4build = X ] ; then
|
||||
needman=false
|
||||
fi
|
||||
|
||||
@@ -1642,14 +1674,14 @@ case "$g4compiler" in
|
||||
g4compiler=CC
|
||||
;;
|
||||
'WIN32')
|
||||
g4compiler=VC7
|
||||
g4compiler=VC
|
||||
clcompiler=`( cl 1>/dev/null || echo "ERROR: There is no 'cl' compiler.") 2>&1`
|
||||
case $clcompiler in
|
||||
*"Version 12"*) g4compiler=VC
|
||||
*"Version 12"*) g4compiler=VC6
|
||||
;;
|
||||
*"Version 13"*) g4compiler=VC7
|
||||
*"Version 13"*) g4compiler=VC
|
||||
;;
|
||||
*) g4compiler=VC7
|
||||
*) g4compiler=VC
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
@@ -1659,7 +1691,7 @@ case "$g4compiler" in
|
||||
esac
|
||||
esac
|
||||
|
||||
if [ X$install = Xyes ] ; then
|
||||
if [ X$g4build = Xyes ] ; then
|
||||
while test 1 = 1 ; do
|
||||
|
||||
g4message=`cat << EOM
|
||||
@@ -1813,9 +1845,10 @@ newmyuname="$myuname"
|
||||
dflt=n
|
||||
|
||||
cd ../..
|
||||
if [ X$install = X ] ; then
|
||||
|
||||
|
||||
if [ X$g4build = X ] ; then
|
||||
|
||||
if test -f $src/.config/bin/$g4system/env.sh; then
|
||||
|
||||
# create not_display flag
|
||||
@@ -1825,6 +1858,16 @@ if [ X$g4ldlibs != X -o X$g4ldflags != X -o X$g4cxxflags != X -o X$g4cppflags !=
|
||||
# echo g4non_display=$g4non_display
|
||||
fi
|
||||
|
||||
if [ X$install = Xyes ] ; then
|
||||
|
||||
$rm -rf .config/UU
|
||||
|
||||
. $src/.config/bin/$g4system/move.sh
|
||||
|
||||
exit 1
|
||||
|
||||
fi #end of cppflags
|
||||
|
||||
if [ X$g4cppflags = Xyes ] ; then
|
||||
|
||||
. $src/.config/bin/$g4system/env.sh
|
||||
@@ -1994,9 +2037,9 @@ echo " "
|
||||
echo " "
|
||||
|
||||
echo " "
|
||||
echo "WARNING: Geant4 is NOT installed yet!"
|
||||
echo "WARNING: Geant4 is NOT built yet!"
|
||||
echo "You (or the administrator if you have not enough privileges)"
|
||||
echo "should start with \$G4INSTALL/Configure -install."
|
||||
echo "should start with \$G4INSTALL/Configure -build."
|
||||
echo "(where \$G4INSTALL is Geant4 install directory)."
|
||||
echo " "
|
||||
$rm -rf .config/UU
|
||||
@@ -2400,12 +2443,14 @@ esac
|
||||
case "$g4install" in
|
||||
'')
|
||||
if test $g4system = "WIN32-VC" -o $g4system = "WIN32-VC7"; then
|
||||
g4install="c:/geant4"
|
||||
# g4install="c:/geant4"
|
||||
g4install=$abssrc
|
||||
else
|
||||
if [ X"$HOME" = X/ ] ; then
|
||||
HOME=""
|
||||
fi
|
||||
g4install="$HOME"/geant4
|
||||
# if [ X"$HOME" = X/ ] ; then
|
||||
# HOME=""
|
||||
# fi
|
||||
# g4install="$HOME"/geant4
|
||||
g4install=$abssrc
|
||||
|
||||
fi
|
||||
|
||||
@@ -2427,6 +2472,12 @@ fi
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$g4final_install" in
|
||||
'')
|
||||
g4final_install=$g4install
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$g4workdir" in
|
||||
'')
|
||||
g4workdir=$g4install
|
||||
@@ -2442,7 +2493,7 @@ esac
|
||||
|
||||
g4message=`cat << EOM
|
||||
|
||||
Where is Geant4 installed?
|
||||
Where is Geant4 source installed?
|
||||
EOM`
|
||||
|
||||
#dflt="NO DEFAULT ANSWER"
|
||||
@@ -2452,7 +2503,22 @@ rp=$g4message
|
||||
. ./getfile
|
||||
g4install=$ans
|
||||
g4workdir=$g4install
|
||||
#################################
|
||||
g4message=`cat << EOM
|
||||
|
||||
Specify the path where Geant4 libraries and source files should be
|
||||
installed.
|
||||
EOM`
|
||||
|
||||
#dflt="NO DEFAULT ANSWER"
|
||||
dflt=$g4final_install
|
||||
fn='d~'
|
||||
rp=$g4message
|
||||
. ./getfile
|
||||
g4final_install=$ans
|
||||
#g4workdir=$g4install
|
||||
|
||||
##################################
|
||||
g4message=`cat << EOM
|
||||
|
||||
Do you want to copy all Geant4 headers
|
||||
@@ -2475,18 +2541,25 @@ case "$g4include" in
|
||||
;;
|
||||
esac
|
||||
|
||||
g4message=`cat << EOM
|
||||
#g4message=`cat << EOM
|
||||
#
|
||||
#Where will be directory to copy all Geant4 headers?
|
||||
#EOM`
|
||||
#
|
||||
##dflt="NO DEFAULT ANSWER"
|
||||
####dflt=$g4install/include
|
||||
#dflt=$g4include
|
||||
#fn='d~+'
|
||||
#rp=$g4message
|
||||
#. ./getfile
|
||||
#g4include=$ans
|
||||
|
||||
Where will be directory to copy all Geant4 headers?
|
||||
EOM`
|
||||
|
||||
#dflt="NO DEFAULT ANSWER"
|
||||
###dflt=$g4install/include
|
||||
dflt=$g4include
|
||||
fn='d~+'
|
||||
rp=$g4message
|
||||
. ./getfile
|
||||
g4include=$ans
|
||||
# Set constantly!
|
||||
if [ X$g4install != X$g4final_install ] ; then
|
||||
g4include=$g4final_install/include/geant4
|
||||
else
|
||||
g4include=$g4final_install/include
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
@@ -2514,7 +2587,7 @@ esac
|
||||
# ;;
|
||||
#esac
|
||||
|
||||
while test 1 = 1 ; do
|
||||
while test 1 = 0 ; do
|
||||
|
||||
g4message=`cat << EOM
|
||||
|
||||
@@ -2750,7 +2823,6 @@ According to it will be set:
|
||||
|
||||
CLHEP_INCLUDE_DIR
|
||||
CLHEP_LIB_DIR
|
||||
CLHEP_LIB
|
||||
|
||||
You can customise these settings next.
|
||||
EOM`
|
||||
@@ -2768,7 +2840,6 @@ According to it will be set:
|
||||
|
||||
CLHEP_INCLUDE_DIR
|
||||
CLHEP_LIB_DIR
|
||||
CLHEP_LIB
|
||||
|
||||
You will be asked about customizing these next.
|
||||
EOM`
|
||||
@@ -2824,21 +2895,32 @@ rp=$g4message
|
||||
|
||||
while test 1 = 1 ; do
|
||||
|
||||
g4message=`cat << EOM
|
||||
g4message_1=`cat << You
|
||||
|
||||
You can customize paths of you CLHEP installation:
|
||||
You can customize paths and library name of you CLHEP installation:
|
||||
|
||||
1) CLHEP_INCLUDE_DIR: $g4clhep_include_dir
|
||||
2) CLHEP_LIB_DIR: $g4clhep_lib_dir
|
||||
3) CLHEP_LIB: $g4clhep_lib
|
||||
|
||||
To modify default settings, select number above (e.g. 2)
|
||||
You`
|
||||
|
||||
g4message_2=" need to use full library name with its extension (e.g. libCLHEP.lib)."
|
||||
|
||||
g4message_3=`cat << EOM
|
||||
|
||||
To modify default settings, select number above (e.g. 2)
|
||||
EOM`
|
||||
|
||||
|
||||
if test "X$g4system" != "XWIN32-VC" -a "X$g4system" != "XWIN32-VC7"; then
|
||||
rp=$g4message_1$g4message_3
|
||||
else
|
||||
rp=$g4message_1$g4message_2$g4message_3
|
||||
fi
|
||||
|
||||
dflt="Press [Enter] for default settings"
|
||||
#fn='d~'
|
||||
rp=$g4message
|
||||
. ./myread
|
||||
gans=$ans
|
||||
|
||||
@@ -2874,6 +2956,17 @@ gans=$ans
|
||||
esac
|
||||
done
|
||||
|
||||
if test "X$g4clhep_base_dir" = "X/usr" -o "X$g4clhep_base_dir" = "X/usr/local"; then
|
||||
g4clhep_base_dir=""
|
||||
fi
|
||||
|
||||
if test "X$g4clhep_include_dir" = "X/usr/include" -o "X$g4clhep_include_dir" = "X/usr/local/include"; then
|
||||
g4clhep_include_dir=""
|
||||
fi
|
||||
|
||||
if test "X$g4clhep_lib_dir" = "X/usr/lib" -o "X$g4clhep_lib_dir" = "X/usr/local/lib"; then
|
||||
g4clhep_lib_dir=""
|
||||
fi
|
||||
|
||||
echo " "
|
||||
|
||||
@@ -4039,9 +4132,8 @@ g4message=`cat << EOM
|
||||
G4VIS_BUILD_OIX_DRIVER
|
||||
G4VIS_USE_OIX
|
||||
|
||||
This driver is based on the "Hepvis" class library.
|
||||
The OpenInventor driver and the Hepvis class library are based
|
||||
on OpenInventor technology for scientific visualization.
|
||||
The OpenInventor driver is based on OpenInventor technology
|
||||
for scientific visualizarion.
|
||||
The X11 version of OpenInventor is required.
|
||||
|
||||
EOM`
|
||||
@@ -4515,6 +4607,7 @@ g4conf='$g4conf'
|
||||
g4data='$g4data'
|
||||
g4debug='$g4debug'
|
||||
g4elasticdata='$g4elasticdata'
|
||||
g4final_install='$g4final_install'
|
||||
g4global='$g4global'
|
||||
g4granular='$g4granular'
|
||||
g4include='$g4include'
|
||||
@@ -4693,11 +4786,16 @@ EOM
|
||||
elif test -f [Mm]akefile; then
|
||||
echo " "
|
||||
echo "Now you must run a make."
|
||||
elif test -f $g4conf/install.sh; then
|
||||
elif [ -f $g4conf/install.sh -a X$g4build = Xyes ] ; then
|
||||
echo " "
|
||||
echo "Now starting Geant4 libraries build..."
|
||||
echo " "
|
||||
. $g4conf/install.sh
|
||||
elif [ -f $g4conf/install.sh -a X$install = Xyes ] ; then
|
||||
echo " "
|
||||
echo "Now starting Geant4 libraries installation..."
|
||||
echo " "
|
||||
. $g4conf/install.sh
|
||||
. $g4conf/move.sh
|
||||
else
|
||||
echo " "
|
||||
echo "WARNING: Geant4 is NOT installed yet!"
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
|
||||
Geant4 6.2 - patch-01 Release Notes
|
||||
-----------------------------------
|
||||
|
||||
27 July 2004
|
||||
|
||||
List of fixes included in this public patch since release 6.2:
|
||||
|
||||
o Configuration:
|
||||
-------------
|
||||
+ Configure script:
|
||||
o Corrected behavior for setting of CLHEP_BASE_DIR in case the path
|
||||
is set to '/usr' or '/usr/local'. Fixes problem report #638.
|
||||
+ source/GNUmakefile:
|
||||
o Fixed search path from absolute to relative. Addresses problem
|
||||
report #644.
|
||||
|
||||
o Digits_hits, Event
|
||||
------------------
|
||||
+ Trivial fixes for removal of redundant semicolons in the code.
|
||||
|
||||
o Geometry:
|
||||
--------
|
||||
+ divisions:
|
||||
o Removed unnecessary forward declaration of HepTransform3D from
|
||||
G4ParameterisationBox and G4VDivisionParameterisation.
|
||||
+ navigation:
|
||||
o Fixed zero step-length problem in G4ReplicaNavigation::ComputeStep()
|
||||
for cases where different replica types are coincident. Resolves
|
||||
problem report #633.
|
||||
o G4NormalNavigation: added extra verbosity to print out information
|
||||
for each solid which returns a 'lowest-yet' step, including the
|
||||
mother volume. It is activated by setting verbose level to 2 or
|
||||
more.
|
||||
+ solids/BREPS:
|
||||
o G4BREPSolidPolyhedra and G4BREPSolidPCone:
|
||||
Fixed usage of tolerances fir handling surface distances.
|
||||
Implemented SurfaceNormal(p) to follow original specifications
|
||||
for G4VSolid.
|
||||
o G4BREPSolid:
|
||||
Fixed usage of tolerances fir handling surface distances.
|
||||
o Some code cleanup ...
|
||||
+ solids/CSG:
|
||||
o Fixes curing rare conditions of loops at boundaries for G4Orb
|
||||
and G4Sphere. Addresses problem report #547.
|
||||
|
||||
o Electromagnetic standard processes:
|
||||
----------------------------------
|
||||
+ standard:
|
||||
o Improved cross-section parametrisation at low energy for
|
||||
ComptonScattering.
|
||||
+ utils:
|
||||
o Correction in G4MscModel::SampleCosTheta() for high-energy particles
|
||||
at small step. Fixes some observed deflection of direction for
|
||||
particles at high energies.
|
||||
o Fixed a problem of G4VEnergyLossProcess observed for ions at small
|
||||
cuts in range (ionization, charge>1).
|
||||
|
||||
o Hadronic Processes:
|
||||
------------------
|
||||
+ models/cascade, util:
|
||||
o Trivial fixes for removal of redundant semicolons in the code.
|
||||
+ chiral_inv_phase_space:
|
||||
o Fix for clusterization in G4QNucleus. Correcting problem observed
|
||||
in system-testing.
|
||||
o Fixed initialization of secondary values dZ,dN,dS in G4QNucleus.
|
||||
|
||||
o Run:
|
||||
---
|
||||
+ Updated date to run-manager.
|
||||
|
||||
o Tracking:
|
||||
--------
|
||||
+ Fix in G4SteppingManager to correct the ordering of secondary tracks
|
||||
generated in a step.
|
||||
+ Moved inlined constructor/destructor for G4Vtrajectory and
|
||||
G4VtrajectoryPoint to not inline, and corrected signature of
|
||||
operator==() to canonical form.
|
||||
|
||||
o Visualization:
|
||||
-------------
|
||||
+ management: made G4VViewer::ProcessView() public, since used as
|
||||
private friend by some client classes.
|
||||
|
||||
o Hadronic Lists:
|
||||
--------------
|
||||
+ Corrected user GNUmakefile sample, to allow for proper installation
|
||||
when global compound libraries are used.
|
||||
|
||||
o Examples:
|
||||
--------
|
||||
+ Updated reference outputs.
|
||||
+ advanced/composite_calorimeter, lAr_calorimeter
|
||||
o Fixed configuration setup for hadronic physics lists, to allow
|
||||
for proper installation when global compound libraries are used.
|
||||
+ advanced/Rich, xray_telescope
|
||||
o Corrected to new visualization commands in input macro.
|
||||
+ extended/analysis/A01
|
||||
o Fixed configuration setup for hadronic physics lists, to allow
|
||||
for proper installation when global compound libraries are used.
|
||||
+ extended/geometry/olap
|
||||
o Reordered storage of parameters for solids according to arguments
|
||||
order in construction in SolidAnalyser. Resolving issue in problem
|
||||
report #635.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Technical Notes
|
||||
---------------
|
||||
|
||||
o This patch should be applied on top of release 6.2.
|
||||
o Technical notes distributed for release 6.2 are also applicable and
|
||||
valid for this patch.
|
||||
|
||||
The code and rebuilt binary libraries for release 6.2 are available through
|
||||
our "Source Code" Web page: http://cern.ch/geant4
|
||||
|
||||
Please refer to the Geant4 User Documentation:
|
||||
http://cern.ch/geant4/G4UsersDocuments/Overview/html
|
||||
for further information about using Geant4.
|
||||
@@ -0,0 +1,143 @@
|
||||
|
||||
Geant4 6.2 - patch-02 Release Notes
|
||||
-----------------------------------
|
||||
|
||||
26 October 2004
|
||||
|
||||
List of fixes included in this public patch since release 6.2-patch-01:
|
||||
|
||||
o Geometry:
|
||||
--------
|
||||
+ divisions:
|
||||
o Removed unnecessary debug printout in method
|
||||
G4PVDivision::CheckAndSetParamenters().
|
||||
+ management:
|
||||
o G4Region: added map for storage of materials/cuts and methods for
|
||||
handling registration of couples in the map, finding a couple
|
||||
according to a given material, clearing the map's storage.
|
||||
Extensions necessary to resolve correct update of material-cut
|
||||
couples in parameterised geometries by material.
|
||||
o G4LogicalVolume: added method UpdateMaterial() to refresh a
|
||||
material/cut couple in the corresponding region.
|
||||
Extension necessary to resolve correct update of material-cut
|
||||
couples in parameterised geometries by material.
|
||||
o Fixed G4RegionStore::Clean() to avoid deletion of world region.
|
||||
+ navigation:
|
||||
o G4Navigator: corrected computation of fGrandMotherExitNormal in
|
||||
ComputeStep() in the case where a not valid exit-normal exists.
|
||||
o G4GeomTestSegment: fix to correctly determine whether starting
|
||||
trajectory is entering or exiting the solid when the starting point
|
||||
is on a surface. Added additional tests on solid consistencies
|
||||
(from roundoff sometimes) to avoid incorrect overlap warnings.
|
||||
Addresses problem reports #610 and #652.
|
||||
o Dump out contents from the solid when a fatal G4Exception is thrown
|
||||
from the navigators in ComputeStep().
|
||||
o Invoke G4LogicalVolume::UpdateMaterial() instead of SetMaterial()
|
||||
for parameterised navigation in G4Navigator and specialised
|
||||
G4ParameterisedNavigation.
|
||||
Modification necessary to resolve correct update of material-cut
|
||||
couples in parameterised geometries by material.
|
||||
+ solids/CSG:
|
||||
o Fix in G4Cons::DistanceToIn(p,v) on fRmax surface and move in,
|
||||
the condition became a bit more strict && determinant >=0, i.e.
|
||||
intersections in addition to go in.
|
||||
Fixes a rare problem of dIn=dOut=0 observed in 3 events over a
|
||||
statistics of 10^8..
|
||||
o Fix in G4Sphere::DistanceToOut(p,v,...) on fRmin moving outside.
|
||||
The bug showed 3 events of dIn=dOut=0 for 10^7 statistics in the
|
||||
unit testing.
|
||||
o Bug fix in G4Sphere::SurfaceNormal(p) for theta normals.
|
||||
+ solids/specific:
|
||||
o G4VCSGfaceted: fix for rare anomalous situation in which
|
||||
DistanceToOut(p,v,..) will report kInfinity, make an additional
|
||||
check for the point p on the surface, in which case will report
|
||||
zero. Addresses problem observed in G4Polyhedra and reported in #650.
|
||||
|
||||
o Materials:
|
||||
---------
|
||||
+ Added protection in G4AtomicShells::GetNumberOfShells(Z).
|
||||
Fixes problem report #643.
|
||||
+ Recalculate ionisation parameters after set of new mean ionisation
|
||||
potential; added factor 2 to shell correction term.
|
||||
|
||||
o Processes/cuts:
|
||||
--------------
|
||||
+ Fixed bug in G4ProductionCutsTable for the update of materials/cuts
|
||||
couple for dynamic setups where material may vary, like in the case
|
||||
of parameterization of detectors through material.
|
||||
|
||||
o Electromagnetic processes:
|
||||
-------------------------
|
||||
+ lowenergy:
|
||||
o Trivial fixes for removal of redundant semicolons in the code.
|
||||
+ utils:
|
||||
o Fixed a problem of cut dependence of transmission energy of low
|
||||
energy e- via thin foil
|
||||
+ xrays:
|
||||
o Changed "StronglyForced" back to "Forced" in GetMeanLifeTime() for
|
||||
the G4Scintillation process.
|
||||
|
||||
o Hadronic Processes:
|
||||
------------------
|
||||
+ models/cascade:
|
||||
o Fixed bug in G4CascadeInterface for uncorrect deletion of dynamic
|
||||
particles. Fixes problem report #645.
|
||||
|
||||
o Optical Processes:
|
||||
-----------------
|
||||
+ Allow for unified model reflectivity parameters to also work in case
|
||||
of dielectric_metal surfaces; in G4OpBoundaryProcess, use GetMaterial()
|
||||
from G4StepPoint directly, sample reflectivity and apply unified model
|
||||
reflection parameters only once even for rough dielectric/metal
|
||||
surfaces. Fixes problem report #654.
|
||||
+ Fixed bug in G4PlaneVectorRand for G4OpBoundaryProcess and resample
|
||||
'theFacetNormal' for LobeReflection in DielectricMetal.
|
||||
|
||||
o Run:
|
||||
---
|
||||
+ Updated date to run-manager.
|
||||
|
||||
o Visualization:
|
||||
-------------
|
||||
+ OpenGL: G4OpenGLTransform3D.cc: simplified implementation for
|
||||
GetMatrix() to allow for porting on future CLHEP series.
|
||||
|
||||
o Examples:
|
||||
--------
|
||||
+ Updated reference outputs.
|
||||
+ electromagnetic/MuonProcesses
|
||||
o Modified HistoManager and Messenger in order to allow a multirun job.
|
||||
+ electromagnetic/PhotonProcesses
|
||||
o Modified HistoManager and Messenger in order to allow a multirun job.
|
||||
+ electromagnetic/TestEm2
|
||||
o Updated acceptance numbers in input macro.
|
||||
o Fixed problem in initialisation of RunAction.
|
||||
+ electromagnetic/TestEm4
|
||||
o Modifications in RunAction for histograms management for JAIDA.
|
||||
+ electromagnetic/TestEm6
|
||||
o Correctly defined all UI subdirectories.
|
||||
o Modifications in RunAction for histograms management for JAIDA.
|
||||
+ electromagnetic/TestEm10
|
||||
o Removed obsolete processes from PhysicsList.
|
||||
+ extended/field
|
||||
o Minor cleanup of PhysicsLists.
|
||||
+ extended/optical
|
||||
o Fixed compilation error and warnings for LXe on Linux/gcc compiler.
|
||||
+ novice/N05
|
||||
o Added protection for negative proposed step in ExN05MinEkineCuts.
|
||||
|
||||
----------------------------------------------------------------------------
|
||||
|
||||
Technical Notes
|
||||
---------------
|
||||
|
||||
o This patch should be applied on top of release 6.2.
|
||||
o Technical notes distributed for release 6.2 are also applicable and
|
||||
valid for this patch.
|
||||
|
||||
The code and rebuilt binary libraries for release 6.2 are available through
|
||||
our "Source Code" Web page: http://cern.ch/geant4
|
||||
|
||||
Please refer to the Geant4 User Documentation:
|
||||
http://cern.ch/geant4/G4UsersDocuments/Overview/html
|
||||
for further information about using Geant4.
|
||||
File diff suppressed because it is too large
Load Diff
+24
-2
@@ -1,5 +1,4 @@
|
||||
$Id: History,v 1.254 2004/06/23 10:56:23 gcosmo Exp $
|
||||
$Name: geant4-06-02 $
|
||||
$Id: History,v 1.260 2004/12/08 12:46:06 gcosmo Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +16,29 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
8th December 2004 John Allison (config-V06-02-03)
|
||||
- Darwin-g++.gmk: fixes on setup for dynamic libraries.
|
||||
|
||||
30th November 2004 Gabriele Cosmo (config-V06-02-02)
|
||||
- binmake.gmk: added electromagnetic/highenergy module to INCLUDE path.
|
||||
|
||||
27th November 2004 Gabriele Cosmo (config-V06-02-01)
|
||||
- binmake.gmk: added parameterisations/trd_clusters and
|
||||
parameterisations/gflash modules to INCLUDE path.
|
||||
|
||||
29th October 2004 Gabriele Cosmo (config-V06-02-00)
|
||||
- Archived setup for Windows/VC++6. WIN32-VC now corresponds to WIN32-VC7.
|
||||
Archived WIN32-VC7.gmk.
|
||||
- Removed strict compilation options for SUN-CC and thread specific.
|
||||
|
||||
12th October 2004 John Allison
|
||||
- Darwin-g++.gmk : added -lXi to X11LIBS.
|
||||
|
||||
08th July 2004 Guy Barrand
|
||||
- Darwin-g++.gmk : correct options to build granular shared libs.
|
||||
Have "-undefined define_a_way" instead of "-undefined error" since
|
||||
granular libs are not linked for the moment.
|
||||
|
||||
23rd June 2004 Gabriele Cosmo (config-V06-01-10)
|
||||
- Updated win32def.c program to fix retrivial of public static data for
|
||||
building DLLs on Windows (G.Barrand).
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: architecture.gmk,v 1.99 2004/06/14 10:42:12 gcosmo Exp $
|
||||
# $Id: architecture.gmk,v 1.100 2004/10/29 17:27:45 gcosmo Exp $
|
||||
# ------------------------------------------------------------------------
|
||||
# GEANT 4 - Architecture configuration script for GNU Make
|
||||
#
|
||||
@@ -13,11 +13,11 @@
|
||||
# List of the supported architectures/compilers and related flavors for
|
||||
# the environment variable G4SYSTEM:
|
||||
#
|
||||
# Linux-g++ Linux (Red Hat 7.3), gcc-3.2.3 (default)
|
||||
# Linux-g++ Linux (Red Hat Enterprise/SCL3), gcc-3.2.3 (default)
|
||||
#
|
||||
# SUN-CC SunOS 5.8, CC 5.4
|
||||
#
|
||||
# WIN32-VC7 Windows/2000/XP and Microsoft Visual C++ 7.1 .NET
|
||||
# WIN32-VC Windows/XP and Microsoft Visual C++ 7.1 .NET
|
||||
# Adding CYGWIN32 tools
|
||||
# -------------------------------------------------------------------------
|
||||
|
||||
|
||||
+4
-2
@@ -1,4 +1,4 @@
|
||||
# $Id: binmake.gmk,v 1.102 2004/06/11 14:07:47 gcosmo Exp $
|
||||
# $Id: binmake.gmk,v 1.104 2004/11/30 08:33:42 gcosmo Exp $
|
||||
# ----------------------------------------------------------
|
||||
# Script defining rules and paths for making binaries.
|
||||
# First implementation: Gabriele Cosmo, 25/06/1998.
|
||||
@@ -51,7 +51,8 @@ ifndef INCFLAGS
|
||||
-I$(G4BASE)/global/HEPNumerics/include \
|
||||
-I$(G4BASE)/run/include \
|
||||
-I$(G4BASE)/materials/include \
|
||||
-I$(G4BASE)/parameterisations/include \
|
||||
-I$(G4BASE)/parameterisations/trd_clusters/include \
|
||||
-I$(G4BASE)/parameterisations/gflash/include \
|
||||
-I$(G4BASE)/particles/management/include \
|
||||
-I$(G4BASE)/particles/bosons/include \
|
||||
-I$(G4BASE)/particles/leptons/include \
|
||||
@@ -70,6 +71,7 @@ ifndef INCFLAGS
|
||||
-I$(G4BASE)/processes/electromagnetic/utils/include \
|
||||
-I$(G4BASE)/processes/electromagnetic/xrays/include \
|
||||
-I$(G4BASE)/processes/electromagnetic/lowenergy/include \
|
||||
-I$(G4BASE)/processes/electromagnetic/highenergy/include \
|
||||
-I$(G4BASE)/processes/hadronic/cross_sections/include \
|
||||
-I$(G4BASE)/processes/hadronic/management/include \
|
||||
-I$(G4BASE)/processes/hadronic/models/abrasion/include \
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
# $Id: globlib.gmk,v 1.24 2004/06/08 10:04:46 gcosmo Exp $
|
||||
# $Id: globlib.gmk,v 1.25 2004/10/29 17:30:43 gcosmo Exp $
|
||||
# --------------------------------------------------------------
|
||||
# Script for compound libraries. Gabriele Cosmo, 25/6/98.
|
||||
# --------------------------------------------------------------
|
||||
@@ -45,7 +45,7 @@ $(G4LIBDIR)/lib$(name).a: \
|
||||
#
|
||||
#
|
||||
#
|
||||
@if [ X$(G4SYSTEM) = XWIN32-VC -o X$(G4SYSTEM) = XWIN32-VC7 ] ; \
|
||||
@if [ X$(G4SYSTEM) = XWIN32-VC ] ; \
|
||||
then \
|
||||
i=NO; \
|
||||
(( for lib in $(SUBLIBS); \
|
||||
|
||||
@@ -34,18 +34,34 @@ echo "On this machine the G4SYSTEM=\$G4SYSTEM"
|
||||
# g4dirs.U
|
||||
#
|
||||
#+
|
||||
if ( X$g4install != X$g4final_install ) then
|
||||
setenv G4INSTALL "$g4final_install/src/geant4"
|
||||
echo "On this machine the G4INSTALL=\$G4INSTALL"
|
||||
else
|
||||
setenv G4INSTALL "$g4install"
|
||||
echo "On this machine the G4INSTALL=\$G4INSTALL"
|
||||
endif
|
||||
|
||||
#+
|
||||
if ( X$g4include != X ) then
|
||||
setenv G4INCLUDE "$g4include"
|
||||
if ( X$g4includes_flag != Xn ) then
|
||||
if ( X$g4install != X$g4final_install ) then
|
||||
setenv G4INCLUDE "$g4final_install/include/geant4"
|
||||
else
|
||||
setenv G4INCLUDE "$g4final_install/include"
|
||||
endif
|
||||
echo "On this machine the G4INCLUDE=\$G4INCLUDE"
|
||||
#else
|
||||
#setenv G4BASE "$g4final_install/include/geant4/source"
|
||||
#echo "On this machine the G4BASE=\$G4BASE"
|
||||
endif
|
||||
|
||||
#+
|
||||
if ( X$g4lib != X ) then
|
||||
setenv G4LIB "$g4lib"
|
||||
if ( X$g4install != X$g4final_install ) then
|
||||
setenv G4LIB "$g4final_install/lib/geant4"
|
||||
else
|
||||
setenv G4LIB "$g4final_install/lib"
|
||||
endif
|
||||
echo "On this machine the G4LIB=\$G4LIB"
|
||||
endif
|
||||
|
||||
@@ -292,6 +308,12 @@ setenv G4LIB_USE_GRANULAR 1
|
||||
echo "On this machine the G4LIB_USE_GRANULAR=\$G4LIB_USE_GRANULAR"
|
||||
endif
|
||||
|
||||
# Check for Windows!
|
||||
if ( "X$G4SYSTEM" != "XWIN32-VC" && "X$G4SYSTEM" != "XWIN32-VC7" ) then
|
||||
setenv G4UI_USE_TCSH 1
|
||||
echo "On this machine the G4UI_USE_TCSH=\$G4UI_USE_TCSH"
|
||||
endif
|
||||
|
||||
#####################################################################
|
||||
|
||||
!GROK!THIS!
|
||||
|
||||
@@ -37,24 +37,42 @@ fi
|
||||
# g4dirs.U
|
||||
#
|
||||
#+
|
||||
if [ X$g4install != X$g4final_install ] ; then
|
||||
G4INSTALL="$g4final_install/src/geant4"
|
||||
else
|
||||
G4INSTALL="$g4install"
|
||||
fi
|
||||
export G4INSTALL
|
||||
if [ X\$g4non_display = X ] ; then
|
||||
echo "On this machine the G4INSTALL=\$G4INSTALL"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4include != X ] ; then
|
||||
G4INCLUDE="$g4include"
|
||||
if [ X$g4includes_flag != Xn ] ; then
|
||||
if [ X$g4install != X$g4final_install ] ; then
|
||||
G4INCLUDE="$g4final_install/include/geant4"
|
||||
else
|
||||
G4INCLUDE="$g4install/include/"
|
||||
fi
|
||||
export G4INCLUDE
|
||||
if [ X\$g4non_display = X ] ; then
|
||||
echo "On this machine the G4INCLUDE=\$G4INCLUDE"
|
||||
fi
|
||||
#else
|
||||
#G4BASE="$g4final_install/include/geant4/source"
|
||||
#export G4BASE
|
||||
#if [ X\$g4non_display = X ] ; then
|
||||
#echo "On this machine the G4BASE=\$G4BASE"
|
||||
#fi
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4lib != X ] ; then
|
||||
G4LIB="$g4lib"
|
||||
if [ X$g4install != X$g4final_install ] ; then
|
||||
G4LIB="$g4final_install/lib/geant4"
|
||||
else
|
||||
G4LIB="$g4install/lib"
|
||||
fi
|
||||
export G4LIB
|
||||
if [ X\$g4non_display = X ] ; then
|
||||
echo "On this machine the G4LIB=\$G4LIB"
|
||||
@@ -415,6 +433,19 @@ echo "On this machine the G4LIB_USE_GRANULAR=\$G4LIB_USE_GRANULAR"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check for Windows!
|
||||
if test "X$G4SYSTEM" != "XWIN32-VC" -a "X$G4SYSTEM" != "XWIN32-VC7"; then
|
||||
#+
|
||||
#
|
||||
# UI_USE_TCSH for Unix
|
||||
#
|
||||
G4UI_USE_TCSH=1
|
||||
export G4UI_USE_TCSH
|
||||
if [ X\$g4non_display = X ] ; then
|
||||
echo "On this machine the G4UI_USE_TCSH=\$G4UI_USE_TCSH"
|
||||
fi
|
||||
fi
|
||||
|
||||
#####################################################################
|
||||
|
||||
!GROK!THIS!
|
||||
|
||||
@@ -40,7 +40,7 @@ export G4INSTALL
|
||||
echo "On this machine the G4INSTALL=\$G4INSTALL"
|
||||
|
||||
#+
|
||||
if [ X$g4include != X ] ; then
|
||||
if [ X$g4include != X -a X$g4include != Xn ] ; then
|
||||
G4INCLUDE="$g4include"
|
||||
export G4INCLUDE
|
||||
echo "On this machine the G4INCLUDE=\$G4INCLUDE"
|
||||
@@ -110,6 +110,12 @@ export CLHEP_BASE_DIR
|
||||
echo "On this machine the CLHEP_BASE_DIR=\$CLHEP_BASE_DIR"
|
||||
fi
|
||||
|
||||
if [ X$g4clhep_base_dir != X/usr -o X$g4clhep_base_dir != X/usr/local ] ; then
|
||||
CLHEP_BASE_DIR="$g4clhep_base_dir"
|
||||
export CLHEP_BASE_DIR
|
||||
echo "On this machine the CLHEP_BASE_DIR=\$CLHEP_BASE_DIR"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4clhep_include_dir != X ] ; then
|
||||
CLHEP_INCLUDE_DIR="$g4clhep_include_dir"
|
||||
@@ -362,7 +368,7 @@ mkdir -p \$G4LIB/\$G4SYSTEM
|
||||
$g4make -n -p -f \$G4INSTALL/config/scripts/GNUmakefile > \$G4LIB/\$G4SYSTEM/GNUmakefile.db
|
||||
|
||||
echo ""
|
||||
echo "Starting installation..."
|
||||
echo "Starting build..."
|
||||
echo ""
|
||||
cd $g4install/source
|
||||
#echo `pwd`
|
||||
@@ -401,11 +407,13 @@ if test -f \$g4conf/g4make.log ; then
|
||||
# different arithmetic expansion...So we are doing it by 'text'
|
||||
# in two steps...
|
||||
|
||||
err=\`grep Error $g4conf/g4make.log | wc -w\`
|
||||
int=\`grep Stop\. $g4conf/g4make.log | wc -w\`
|
||||
err=\`grep " Error " $g4conf/g4make.log | wc -w\`
|
||||
int=\`grep " Interrupt " $g4conf/g4make.log | wc -w\`
|
||||
stp=\`grep Stop\. $g4conf/g4make.log | wc -w\`
|
||||
|
||||
err2=\`echo \$err\`
|
||||
int2=\`echo \$int\`
|
||||
stp2=\`echo \$stp\`
|
||||
|
||||
if [ X\$err2 = X0 -a X\$int2 = X0 ] ; then
|
||||
echo ""
|
||||
@@ -436,11 +444,6 @@ echo "############################################################"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
# There is no env!
|
||||
if [ X$g4includes_flag = Xy ] ; then
|
||||
$g4make includes
|
||||
fi
|
||||
|
||||
!GROK!THIS!
|
||||
|
||||
: In the following dollars and backticks do not need the extra backslash.
|
||||
|
||||
@@ -0,0 +1,417 @@
|
||||
case $CONFIG in
|
||||
'')
|
||||
if test -f config.sh; then TOP=.;
|
||||
elif test -f ../config.sh; then TOP=..;
|
||||
elif test -f ../../config.sh; then TOP=../..;
|
||||
elif test -f ../../../config.sh; then TOP=../../..;
|
||||
elif test -f ../../../../config.sh; then TOP=../../../..;
|
||||
else
|
||||
echo "Can't find config.sh."; exit 1
|
||||
fi
|
||||
. $TOP/config.sh
|
||||
;;
|
||||
esac
|
||||
: This forces SH files to create target in same directory as SH file.
|
||||
: This is so that make depend always knows where to find SH derivatives.
|
||||
case "$0" in
|
||||
*/*) cd `expr X$0 : 'X\(.*\)/'` ;;
|
||||
esac
|
||||
#echo "Extracting move.sh (with variable substitutions)"
|
||||
: This section of the file will have variable substitutions done on it.
|
||||
: Move anything that needs config subs from !NO!SUBS! section to !GROK!THIS!.
|
||||
: Protect any dollar signs and backticks that you do not want interpreted
|
||||
: by putting a backslash in front. You may delete these comments.
|
||||
$spitshell >move.sh <<!GROK!THIS!
|
||||
######################################
|
||||
#
|
||||
# g4system.U
|
||||
#
|
||||
#+
|
||||
G4SYSTEM="$g4system"
|
||||
export G4SYSTEM
|
||||
echo "On this machine the G4SYSTEM=\$G4SYSTEM"
|
||||
|
||||
#
|
||||
# g4dirs.U
|
||||
#
|
||||
#+
|
||||
G4INSTALL="$g4install"
|
||||
export G4INSTALL
|
||||
echo "On this machine the G4INSTALL=\$G4INSTALL"
|
||||
|
||||
#+
|
||||
if [ X$g4include != X -a X$g4include != Xn ] ; then
|
||||
G4INCLUDE="$g4include"
|
||||
export G4INCLUDE
|
||||
echo "On this machine the G4INCLUDE=\$G4INCLUDE"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4tmp != X ] ; then
|
||||
G4TMP="$g4tmp"
|
||||
export G4TMP
|
||||
echo "On this machine the G4TMP=\$G4TMP"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4lib != X ] ; then
|
||||
G4LIB="$g4lib"
|
||||
export G4LIB
|
||||
echo "On this machine the G4LIB=\$G4LIB"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4lib != X ] ; then
|
||||
G4BIN="$g4lib/../bin"
|
||||
export G4BIN
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4levelgammadata != X ] ; then
|
||||
G4LEVELGAMMADATA="$g4levelgammadata"
|
||||
export G4LEVELGAMMADATA
|
||||
echo "On this machine the G4LEVELGAMMADATA=\$G4LEVELGAMMADATA"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4radioactivedata != X ] ; then
|
||||
G4RADIOACTIVEDATA="$g4radioactivedata"
|
||||
export G4RADIOACTIVEDATA
|
||||
echo "On this machine the G4RADIOACTIVEDATA=\$G4RADIOACTIVEDATA"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4ledata != X ] ; then
|
||||
G4LEDATA="$g4ledata"
|
||||
export G4LEDATA
|
||||
echo "On this machine the G4LEDATA=\$G4LEDATA"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4neutronhpcrosssections != X ] ; then
|
||||
NeutronHPCrossSections="$g4neutronhpcrosssections"
|
||||
export NeutronHPCrossSections
|
||||
echo "On this machine the NeutronHPCrossSections=\$NeutronHPCrossSections"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4elasticdata != X ] ; then
|
||||
G4ELASTICDATA="$g4elasticdata"
|
||||
export G4ELASTICDATA
|
||||
echo "On this machine the G4ELASTICDATA=\$G4ELASTICDATA"
|
||||
fi
|
||||
|
||||
#
|
||||
# g4clhep.U
|
||||
#
|
||||
if [ X$g4clhep_base_dir != X/usr -o X$g4clhep_base_dir != X/usr/local ] ; then
|
||||
CLHEP_BASE_DIR="$g4clhep_base_dir"
|
||||
export CLHEP_BASE_DIR
|
||||
echo "On this machine the CLHEP_BASE_DIR=\$CLHEP_BASE_DIR"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4clhep_include_dir != X ] ; then
|
||||
CLHEP_INCLUDE_DIR="$g4clhep_include_dir"
|
||||
export CLHEP_INCLUDE_DIR
|
||||
echo "On this machine the CLHEP_INCLUDE_DIR=\$CLHEP_INCLUDE_DIR"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4clhep_lib_dir != X ] ; then
|
||||
CLHEP_LIB_DIR="$g4clhep_lib_dir"
|
||||
export CLHEP_LIB_DIR
|
||||
echo "On this machine the CLHEP_LIB_DIR=\$CLHEP_LIB_DIR"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4clhep_lib != X ] ; then
|
||||
CLHEP_LIB="$g4clhep_lib"
|
||||
export CLHEP_LIB
|
||||
echo "On this machine the CLHEP_LIB=\$CLHEP_LIB"
|
||||
fi
|
||||
|
||||
#+
|
||||
#
|
||||
# g4debug
|
||||
#
|
||||
if [ X$g4debug != X ] ; then
|
||||
G4DEBUG="$g4debug"
|
||||
export G4DEBUG
|
||||
echo "On this machine the G4DEBUG=\$G4DEBUG"
|
||||
fi
|
||||
|
||||
#
|
||||
# g4analysis
|
||||
#
|
||||
#+
|
||||
if [ X$g4wanalysis_use = Xy ] ; then
|
||||
G4ANALYSIS_USE=1
|
||||
export G4ANALYSIS_USE
|
||||
echo "On this machine the G4ANALYSIS_USE=\$G4ANALYSIS_USE"
|
||||
fi
|
||||
|
||||
#
|
||||
# g4ui
|
||||
#
|
||||
#+
|
||||
if [ X$g4ui_build_xaw_session = Xy ] ; then
|
||||
G4UI_BUILD_XAW_SESSION=1
|
||||
export G4UI_BUILD_XAW_SESSION
|
||||
echo "On this machine the G4UI_BUILD_XAW_SESSION=\$G4UI_BUILD_XAW_SESSION"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4ui_use_xaw = Xy ] ; then
|
||||
G4UI_USE_XAW=1
|
||||
export G4UI_USE_XAW
|
||||
echo "On this machine the G4UI_USE_XAW=\$G4UI_USE_XAW"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4ui_build_xm_session = Xy ] ; then
|
||||
G4UI_BUILD_XM_SESSION=1
|
||||
export G4UI_BUILD_XM_SESSION
|
||||
echo "On this machine the G4UI_BUILD_XM_SESSION=\$G4UI_BUILD_XM_SESSION"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4ui_use_xm = Xy ] ; then
|
||||
G4UI_USE_XM=1
|
||||
export G4UI_USE_XM
|
||||
echo "On this machine the G4UI_USE_XM=\$G4UI_USE_XM"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4ui_build_win32_session = Xy ] ; then
|
||||
G4UI_BUILD_WIN32_SESSION=1
|
||||
export G4UI_BUILD_WIN32_SESSION
|
||||
echo "On this machine the G4UI_BUILD_WIN32_SESSION=\$G4UI_BUILD_WIN32_SESSION"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4ui_use_win32 = Xy ] ; then
|
||||
G4UI_USE_WIN32=1
|
||||
export G4UI_USE_WIN32
|
||||
echo "On this machine the G4UI_USE_WIN32=\$G4UI_USE_WIN32"
|
||||
fi
|
||||
|
||||
#
|
||||
# g4vis
|
||||
#
|
||||
#+
|
||||
if [ X$g4vis_build_dawn_driver = Xy ] ; then
|
||||
G4VIS_BUILD_DAWN_DRIVER=1
|
||||
export G4VIS_BUILD_DAWN_DRIVER
|
||||
echo "On this machine the G4VIS_BUILD_DAWN_DRIVER=\$G4VIS_BUILD_DAWN_DRIVER"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4vis_build_openglx_driver = Xy ] ; then
|
||||
G4VIS_BUILD_OPENGLX_DRIVER=1
|
||||
export G4VIS_BUILD_OPENGLX_DRIVER
|
||||
echo "On this machine the G4VIS_BUILD_OPENGLX_DRIVER=\$G4VIS_BUILD_OPENGLX_DRIVER"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4vis_build_openglxm_driver = Xy ] ; then
|
||||
G4VIS_BUILD_OPENGLXM_DRIVER=1
|
||||
export G4VIS_BUILD_OPENGLXM_DRIVER
|
||||
echo "On this machine the G4VIS_BUILD_OPENGLXM_DRIVER=\$G4VIS_BUILD_OPENGLXM_DRIVER"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4vis_build_openglwin32_driver = Xy ] ; then
|
||||
G4VIS_BUILD_OPENGLWIN32_DRIVER=1
|
||||
export G4VIS_BUILD_OPENGLWIN32_DRIVER
|
||||
echo "On this machine the G4VIS_BUILD_OPENGLWIN32_DRIVER=\$G4VIS_BUILD_OPENGLWIN32_DRIVER"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4vis_build_oix_driver = Xy ] ; then
|
||||
G4VIS_BUILD_OIX_DRIVER=1
|
||||
export G4VIS_BUILD_OIX_DRIVER
|
||||
echo "On this machine the G4VIS_BUILD_OIX_DRIVER=\$G4VIS_BUILD_OIX_DRIVER"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4vis_build_oiwin32_driver = Xy ] ; then
|
||||
G4VIS_BUILD_OIWIN32_DRIVER=1
|
||||
export G4VIS_BUILD_OIWIN32_DRIVER
|
||||
echo "On this machine the G4VIS_BUILD_OIWIN32_DRIVER=\$G4VIS_BUILD_OIWIN32_DRIVER"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4vis_build_vrml_driver = Xy ] ; then
|
||||
G4VIS_BUILD_VRML_DRIVER=1
|
||||
export G4VIS_BUILD_VRML_DRIVER
|
||||
echo "On this machine the G4VIS_BUILD_VRML_DRIVER=\$G4VIS_BUILD_VRML_DRIVER"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4vis_use_dawn = Xy ] ; then
|
||||
G4VIS_USE_DAWN=1
|
||||
export G4VIS_USE_DAWN
|
||||
echo "On this machine the G4VIS_USE_DAWN=\$G4VIS_USE_DAWN"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4vis_use_openglx = Xy ] ; then
|
||||
G4VIS_USE_OPENGLX=1
|
||||
export G4VIS_USE_OPENGLX
|
||||
echo "On this machine the G4VIS_USE_OPENGLX=\$G4VIS_USE_OPENGLX"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4vis_use_openglxm = Xy ] ; then
|
||||
G4VIS_USE_OPENGLXM=1
|
||||
export G4VIS_USE_OPENGLXM
|
||||
echo "On this machine the G4VIS_USE_OPENGLXM=\$G4VIS_USE_OPENGLXM"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4vis_use_openglwin32 = Xy ] ; then
|
||||
G4VIS_USE_OPENGLWIN32=1
|
||||
export G4VIS_USE_OPENGLWIN32
|
||||
echo "On this machine the G4VIS_USE_OPENGLWIN32=\$G4VIS_USE_OPENGLWIN32"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4vis_use_oix = Xy ] ; then
|
||||
G4VIS_USE_OIX=1
|
||||
export G4VIS_USE_OIX
|
||||
echo "On this machine the G4VIS_USE_OIX=\$G4VIS_USE_OIX"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4vis_use_oiwin32 = Xy ] ; then
|
||||
G4VIS_USE_OIWIN32=1
|
||||
export G4VIS_USE_OIWIN32
|
||||
echo "On this machine the G4VIS_USE_OIWIN32=\$G4VIS_USE_OIWIN32"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4vis_use_vrml = Xy ] ; then
|
||||
G4VIS_USE_VRML=1
|
||||
export G4VIS_USE_VRML
|
||||
echo "On this machine the G4VIS_USE_VRML=\$G4VIS_USE_VRML"
|
||||
fi
|
||||
|
||||
#+
|
||||
if [ X$g4vis_oglhome != X ] ; then
|
||||
OGLHOME="$g4vis_oglhome"
|
||||
export OGLHOME
|
||||
echo "On this machine the OGLHOME=\$OGLHOME"
|
||||
fi
|
||||
|
||||
#
|
||||
# Use G3TOG4 module
|
||||
#
|
||||
#+
|
||||
if [ X$g4wlib_build_g3tog4 = Xy ] ; then
|
||||
G4LIB_BUILD_G3TOG4=1
|
||||
export G4LIB_BUILD_G3TOG4
|
||||
echo "On this machine the G4LIB_BUILD_G3TOG4=\$G4LIB_BUILD_G3TOG4"
|
||||
fi
|
||||
|
||||
if [ X$g4w_use_g3tog4 = Xy ] ; then
|
||||
G4USE_G3TOG4=1
|
||||
export G4USE_G3TOG4
|
||||
echo "On this machine the G4USE_G3TOG4=\$G4USE_G3TOG4"
|
||||
fi
|
||||
|
||||
#+
|
||||
#
|
||||
# g4shared
|
||||
#
|
||||
if [ X$g4lib_build_shared = Xy ] ; then
|
||||
G4LIB_BUILD_SHARED=1
|
||||
export G4LIB_BUILD_SHARED
|
||||
echo "On this machine the G4LIB_BUILD_SHARED=\$G4LIB_BUILD_SHARED"
|
||||
fi
|
||||
|
||||
if [ X$g4lib_build_static = Xy ] ; then
|
||||
G4LIB_BUILD_STATIC=1
|
||||
export G4LIB_BUILD_STATIC
|
||||
echo "On this machine the G4LIB_BUILD_STATIC=\$G4LIB_BUILD_STATIC"
|
||||
fi
|
||||
|
||||
#+
|
||||
#
|
||||
# g4granular
|
||||
#
|
||||
if [ X$g4lib_use_granular = Xy ] ; then
|
||||
G4LIB_USE_GRANULAR=1
|
||||
export G4LIB_USE_GRANULAR
|
||||
echo "On this machine the G4LIB_USE_GRANULAR=\$G4LIB_USE_GRANULAR"
|
||||
fi
|
||||
|
||||
#####################################################################
|
||||
|
||||
#####################################################################
|
||||
|
||||
echo ""
|
||||
echo "Starting installation..."
|
||||
echo ""
|
||||
|
||||
cd $g4install
|
||||
#echo `pwd`
|
||||
|
||||
|
||||
# Remove 'verbosity' in 'tar' command
|
||||
# If not INCLUDE then install full tree in 'src' directory!
|
||||
#
|
||||
if [ X$g4includes_flag = Xn ] ; then
|
||||
if [ X$g4install != X$g4final_install ] ; then
|
||||
echo ""
|
||||
echo "Installing sources and headers..."
|
||||
echo ""
|
||||
mkdir -p $g4final_install/src/geant4/
|
||||
tar cf - Configure config/ source/ environments/ physics_lists/ examples/ |(cd $g4final_install/src/geant4/; tar xf -)
|
||||
fi
|
||||
fi
|
||||
|
||||
########################################
|
||||
# There is no env!
|
||||
if [ X$g4includes_flag = Xy ] ; then
|
||||
|
||||
if [ X$g4install != X$g4final_install ] ; then
|
||||
echo ""
|
||||
echo "Installing sources..."
|
||||
echo ""
|
||||
|
||||
mkdir -p $g4final_install/src/geant4/
|
||||
tar cf - Configure config/ source/ environments/ physics_lists/ examples/ |(cd $g4final_install/src/geant4/; tar xf -)
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Installing headers..."
|
||||
echo ""
|
||||
cd $g4install/source
|
||||
$g4make includes dependencies=""
|
||||
fi
|
||||
|
||||
# Move libraries
|
||||
if [ X$g4install != X$g4final_install ] ; then
|
||||
echo ""
|
||||
echo "Installing libraries..."
|
||||
echo ""
|
||||
mkdir -p $g4final_install/lib/geant4
|
||||
cd $g4install/lib
|
||||
tar cf - $g4system |(cd $g4final_install/lib/geant4; tar xf -)
|
||||
fi
|
||||
|
||||
# For the reason of strange behaivior for DOTted directory...
|
||||
mkdir -p $g4final_install/src/geant4/.config
|
||||
cd $g4install/.config
|
||||
tar cf - . |(cd $g4final_install/src/geant4/.config; tar xf -)
|
||||
|
||||
|
||||
!GROK!THIS!
|
||||
|
||||
: In the following dollars and backticks do not need the extra backslash.
|
||||
$spitshell >>move.sh <<'!NO!SUBS!'
|
||||
!NO!SUBS!
|
||||
chmod 755 move.sh
|
||||
$eunicefix move.sh
|
||||
|
||||
@@ -41,9 +41,11 @@ ifeq ($(G4SYSTEM),Darwin-g++)
|
||||
ECHO := /bin/echo -n
|
||||
SHEXT := dylib
|
||||
X11FLAGS := -I/usr/include/X11/extensions -I/usr/include/X11
|
||||
X11LIBS := -L/usr/X11R6/lib -lXmu -lXt -lXext -lX11 -lSM -lICE
|
||||
X11LIBS := -L/usr/X11R6/lib -lXmu -lXt -lXext -lX11 -lXi -lSM -lICE
|
||||
XMFLAGS := -I/sw/include
|
||||
# XMFLAGS := -I/usr/X11R6/include ##### some installations.
|
||||
XMLIBS := -L/sw/lib -lXm -lXpm
|
||||
# XMLIBS := -L/usr/X11R6/lib -lXm -lXpm ##### some installations.
|
||||
DLDLIBS := -ldl
|
||||
ifndef OGLHOME
|
||||
OGLHOME := /usr/X11R6
|
||||
@@ -54,14 +56,38 @@ ifeq ($(G4SYSTEM),Darwin-g++)
|
||||
ifndef OGLLIBS
|
||||
OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL
|
||||
endif
|
||||
#
|
||||
# There are two ways to build shared libs (.dylib) on MacOSX.
|
||||
# Up to now the "flat_namespace" option had been used ; but
|
||||
# due to the fact that Apple promotes now the "two_level_namespace"
|
||||
# way of doing, we had tried to build the shared libs in this way.
|
||||
# But it appears that for the moment this option induces
|
||||
# unresolved early crashes at runtim. These crashes are
|
||||
# probably due to a problem in the sequence of execution
|
||||
# of constructor of static objects that are now heavily
|
||||
# used in Geant4.
|
||||
# Waiting a solution to that, we put the "flat_namespace"
|
||||
# way of doing as the default to build the .dylib (knowing
|
||||
# that it is anyway not a long term solution).
|
||||
# G.Barrand (16/07/2004)
|
||||
#
|
||||
#### G4_MACOSX_TWO_LEVEL_NAMESPACE = 1
|
||||
ifdef G4_MACOSX_TWO_LEVEL_NAMESPACE
|
||||
define build-granular-shared-lib
|
||||
@libdir=`(cd $(@D);/bin/pwd)`; \
|
||||
cd $(G4TMPDIR); \
|
||||
g++ -dynamiclib -twolevel_namespace -undefined error -dynamic \
|
||||
g++ -dynamiclib -twolevel_namespace -undefined define_a_way -dynamic \
|
||||
-single_module -o $$libdir/$(@F) *.o -L$(G4LIB)/$(G4SYSTEM) \
|
||||
$(patsubst lib%,-l%,$(patsubst %.lib,%,$(GLOBLIBS))) \
|
||||
-L$(CLHEP_LIB_DIR) -l$(CLHEP_LIB) $(INTYLIBS)
|
||||
endef
|
||||
else
|
||||
define build-granular-shared-lib
|
||||
@libdir=`(cd $(@D);/bin/pwd)`; \
|
||||
cd $(G4TMPDIR); \
|
||||
g++ -dynamiclib -flat_namespace -undefined suppress -dynamic -single_module -o $$libdir/$(@F) $(INTYLIBS) *.o
|
||||
endef
|
||||
endif
|
||||
ifdef G4_MACOSX_TWO_LEVEL_NAMESPACE
|
||||
define build-global-shared-lib
|
||||
@libdir=`(cd $(@D);/bin/pwd)`; \
|
||||
cd $(G4TMP)/$(G4SYSTEM); \
|
||||
@@ -71,5 +97,12 @@ ifeq ($(G4SYSTEM),Darwin-g++)
|
||||
$(patsubst lib%,-l%,$(patsubst %.lib,%,$(GLOBLIBS))) \
|
||||
-L$(CLHEP_LIB_DIR) -l$(CLHEP_LIB) $(INTYLIBS);
|
||||
endef
|
||||
else
|
||||
define build-global-shared-lib
|
||||
@libdir=`(cd $(@D);/bin/pwd)`; \
|
||||
cd $(G4TMP)/$(G4SYSTEM); \
|
||||
g++ -dynamiclib -flat_namespace -undefined suppress -dynamic -single_module -o $$libdir/$(@F) $(INTYLIBS) $(foreach dir,$(SUBLIBS),$(dir)/*.o);
|
||||
endef
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
@@ -12,7 +12,6 @@ ifeq ($(G4SYSTEM),SUN-CC)
|
||||
CCFLAGS := -g
|
||||
endif
|
||||
endif
|
||||
CXXFLAGS += -features=no%anachronisms -mt -lpthread
|
||||
ifdef G4LIB_BUILD_SHARED
|
||||
CXXFLAGS += -KPIC
|
||||
FCFLAGS += -KPIC
|
||||
|
||||
+27
-3
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# ------ WIN32/VC ------ Visual-C++ 6.0 SP5
|
||||
# ------ WIN32/VC ------ Visual-C++ 7 .NET
|
||||
#
|
||||
ifeq ($(G4SYSTEM),WIN32-VC)
|
||||
CXX := CL
|
||||
@@ -12,9 +12,9 @@ ifeq ($(G4SYSTEM),WIN32-VC)
|
||||
endif
|
||||
CXXFLAGS += -MD -GR -GX -Zm200 -nologo -DWIN32
|
||||
CXXFLAGS += -D_CONSOLE -D_WIN32 -DOS
|
||||
CPPFLAGS += -DWIN32
|
||||
CPPFLAGS += -DWIN32 -DXPNET
|
||||
LDFLAGS += -FORCE /NODEFAULTLIB:MSVCRT.dll
|
||||
|
||||
|
||||
SHEXT := dll
|
||||
AR := LIB
|
||||
ECHO := echo -e
|
||||
@@ -30,6 +30,30 @@ ifeq ($(G4SYSTEM),WIN32-VC)
|
||||
UI32LIBS := gdi32.lib user32.lib
|
||||
endif
|
||||
|
||||
#
|
||||
# Building DLLs (G.Barrand)
|
||||
# -------------
|
||||
# The commands below allow to build DLLs from the archive libraries.
|
||||
# From a libG4xxx.a, it will extract the symbols with :
|
||||
# DOS> dumpbin /symbols libG4xxx.a > G4xxx.dumpbin
|
||||
# After that it will produce a G4xxx.def using the 'win32def' program.
|
||||
# The G4xxx.def file will contain the list of symbols that are "exported"
|
||||
# or made public for using the DLLs.
|
||||
# The source win32def.c is in the geant4/config directory. The binary is
|
||||
# built during the library installation process, and will be placed in
|
||||
# $G4LIB/G4SYSTEM.
|
||||
# If can also be built as follows :
|
||||
# DOS> cl.exe /Fowin32def.exe win32def.c
|
||||
# Then, to use it :
|
||||
# DOS> win32def G4xxx < G4xxx.dumpbin > G4xxx.def
|
||||
# Libraries libG4xxx.lib can also be built with :
|
||||
# DOS> lib /def:G4xxx.def /out:libG4xxx.lib
|
||||
# It also produces a libG4xxx.exp used to build the DLL.
|
||||
# The DLL can be built with :
|
||||
# DOS> link /dll /out:G4xxx.dll libG4xxx.exp libG4xxx.a <dependencies>
|
||||
# Note that a DLL must be fully linked. You should NOT have undefined
|
||||
# symbols as output of the link command.
|
||||
#
|
||||
define build-granular-shared-lib
|
||||
@libdir=`(cd $(@D);/bin/pwd)`;\
|
||||
cd $(G4TMP)/$(G4SYSTEM);\
|
||||
|
||||
@@ -1,103 +0,0 @@
|
||||
#
|
||||
# ------ WIN32/VC ------ Visual-C++ 7 .NET
|
||||
#
|
||||
ifeq ($(G4SYSTEM),WIN32-VC7)
|
||||
CXX := CL
|
||||
ifdef G4OPTIMISE
|
||||
CXXFLAGS += -Ox
|
||||
else
|
||||
ifdef G4DEBUG
|
||||
CXXFLAGS += -Od -Zi -Fd$(G4LIBDIR)/lib$(name)
|
||||
endif
|
||||
endif
|
||||
CXXFLAGS += -MD -GR -GX -Zm200 -nologo -DWIN32
|
||||
CXXFLAGS += -D_CONSOLE -D_WIN32 -DOS
|
||||
CPPFLAGS += -DWIN32 -DXPNET
|
||||
LDFLAGS += -FORCE /NODEFAULTLIB:MSVCRT.dll
|
||||
|
||||
SHEXT := dll
|
||||
AR := LIB
|
||||
ECHO := echo -e
|
||||
FC := g77
|
||||
# FCLIBS := -lf2c
|
||||
ifndef OGLFLAGS
|
||||
OGLFLAGS :=
|
||||
endif
|
||||
ifndef OGLLIBS
|
||||
OGLLIBS := glu32.lib opengl32.lib
|
||||
endif
|
||||
ifndef UI32LIBS
|
||||
UI32LIBS := gdi32.lib user32.lib
|
||||
endif
|
||||
|
||||
#
|
||||
# Building DLLs (G.Barrand)
|
||||
# -------------
|
||||
# The commands below allow to build DLLs from the archive libraries.
|
||||
# From a libG4xxx.a, it will extract the symbols with :
|
||||
# DOS> dumpbin /symbols libG4xxx.a > G4xxx.dumpbin
|
||||
# After that it will produce a G4xxx.def using the 'win32def' program.
|
||||
# The G4xxx.def file will contain the list of symbols that are "exported"
|
||||
# or made public for using the DLLs.
|
||||
# The source win32def.c is in the geant4/config directory. The binary is
|
||||
# built during the library installation process, and will be placed in
|
||||
# $G4LIB/G4SYSTEM.
|
||||
# If can also be built as follows :
|
||||
# DOS> cl.exe /Fowin32def.exe win32def.c
|
||||
# Then, to use it :
|
||||
# DOS> win32def G4xxx < G4xxx.dumpbin > G4xxx.def
|
||||
# Libraries libG4xxx.lib can also be built with :
|
||||
# DOS> lib /def:G4xxx.def /out:libG4xxx.lib
|
||||
# It also produces a libG4xxx.exp used to build the DLL.
|
||||
# The DLL can be built with :
|
||||
# DOS> link /dll /out:G4xxx.dll libG4xxx.exp libG4xxx.a <dependencies>
|
||||
# Note that a DLL must be fully linked. You should NOT have undefined
|
||||
# symbols as output of the link command.
|
||||
#
|
||||
define build-granular-shared-lib
|
||||
@libdir=`(cd $(@D);/bin/pwd)`;\
|
||||
cd $(G4TMP)/$(G4SYSTEM);\
|
||||
echo "Building $(name).dumpbin file ...";\
|
||||
$(RM) $(name).dumpbin;\
|
||||
dumpbin /symbols $(G4LIBDIR)/lib$(name).a > $(name).dumpbin;\
|
||||
echo "Building $(name).def file ...";\
|
||||
$(RM) $(name).def;\
|
||||
$(G4LIB)/$(G4SYSTEM)/win32def.exe $(name) < $(name).dumpbin > $(name).def;\
|
||||
$(RM) $(name).dumpbin;\
|
||||
echo "Building lib$(name).exp and lib$(name).lib file ...";\
|
||||
$(RM) $(G4LIBDIR)/lib$(name).exp;\
|
||||
$(RM) $(G4LIBDIR)/lib$(name).lib;\
|
||||
lib.exe /nologo /machine:ix86 /def:$(name).def \
|
||||
/out:$(G4LIBDIR)/lib$(name).lib;\
|
||||
$(RM) $(G4LIBDIR)/$(name).dll;\
|
||||
echo "Building $(name).dll file ...";\
|
||||
link.exe /nologo /dll /out:$(G4LIBDIR)/$(name).dll \
|
||||
$(G4LIBDIR)/lib$(name).exp $(G4LIBDIR)/lib$(name).a \
|
||||
/libpath:$(G4LIBDIR) $(GLOBLIBS) \
|
||||
$(LIB_PATH)$(CLHEP_LIB_DIR) $(CLHEP_LIB) \
|
||||
$(INTYLIBS) $(ANALYSISLIBS) $(UI32LIBS)
|
||||
endef
|
||||
define build-global-shared-lib
|
||||
@libdir=`(cd $(@D);/bin/pwd)`;\
|
||||
cd $(G4TMP)/$(G4SYSTEM);\
|
||||
echo "Building $(name).dumpbin file ...";\
|
||||
$(RM) $(name).dumpbin;\
|
||||
dumpbin /symbols $(G4LIBDIR)/lib$(name).a > $(name).dumpbin;\
|
||||
echo "Building $(name).def file ...";\
|
||||
$(RM) $(name).def;\
|
||||
$(G4LIB)/$(G4SYSTEM)/win32def.exe $(name) < $(name).dumpbin > $(name).def;\
|
||||
$(RM) $(name).dumpbin;\
|
||||
echo "Building lib$(name).exp and lib$(name).lib ...";\
|
||||
$(RM) $(G4LIBDIR)/lib$(name).exp;\
|
||||
$(RM) $(G4LIBDIR)/lib$(name).lib;\
|
||||
lib.exe /nologo /machine:ix86 /def:$(name).def \
|
||||
/out:$(G4LIBDIR)/lib$(name).lib;\
|
||||
$(RM) $(G4LIBDIR)/$(name).dll;\
|
||||
echo "Building $(name).dll ...";\
|
||||
link.exe /nologo /dll /out:$(G4LIBDIR)/$(name).dll \
|
||||
$(G4LIBDIR)/lib$(name).exp $(G4LIBDIR)/lib$(name).a \
|
||||
/libpath:$(G4LIBDIR) $(GLOBLIBS) \
|
||||
$(LIB_PATH)$(CLHEP_LIB_DIR) $(CLHEP_LIB) \
|
||||
$(INTYLIBS) $(ANALYSISLIBS) $(UI32LIBS)
|
||||
endef
|
||||
endif
|
||||
+13
-1
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.10 2003/12/09 08:09:58 gcosmo Exp $
|
||||
$Id: History,v 1.13 2004/11/27 04:10:32 hajime Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -18,6 +18,18 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
envs-V06-02-00 27 November 2004 Hajime Yoshida
|
||||
-old depricated files
|
||||
-new tag number
|
||||
|
||||
envs-V06-01-02 26 Nov 2004 Hajime Yoshida
|
||||
- MOMO.jar finally tuned
|
||||
- added new example in MomoHome
|
||||
- removed obsolete files
|
||||
|
||||
envs-V06-01-01 25 Nov 2004 Hajime Yoshida
|
||||
- new version of MOMO integrating GAG and Gain
|
||||
|
||||
envs-V05-02-03 09 December 2003 Gabriele Cosmo
|
||||
- New version of MOMO with XML import/export abilities.
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.4 2004/01/05 07:41:56 yhajime Exp $
|
||||
$Id: History,v 1.6 2004/11/26 04:53:21 hajime Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -18,6 +18,16 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
2004 November 26 Hajime Yoshida
|
||||
- replaced MOMO.jar with minor changes
|
||||
- added some example files and README
|
||||
|
||||
2004 November 25 hajime Yoshida
|
||||
- replaced MOMO.jar, a new one integratig GAG and Gain.
|
||||
- removed GAG.jar and gain.jar
|
||||
- updated docs
|
||||
- deleted old files
|
||||
|
||||
2004 January 05 Hajime Yoshida
|
||||
- replaced MOMO.jar with the debugged one
|
||||
(MOMO.jar of 2003 December 8 had a bug in GPE)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -6,7 +6,7 @@
|
||||
# with users selection of G4TARGET, UI and VIS variables
|
||||
# Momo is the name of legendary samurai who conquered bad geants. ---- H. Yoshida.
|
||||
|
||||
name := MomoN02Test
|
||||
name := linac
|
||||
G4TARGET := $(name)
|
||||
G4EXLIB := true
|
||||
|
||||
@@ -14,9 +14,8 @@ G4EXLIB := true
|
||||
G4VIS_USE_DAWN := 1
|
||||
G4VIS_USE_DAWNFILE := 1
|
||||
G4VIS_USE_OPENGLX := 1
|
||||
G4VIS_USE_VRML := 1
|
||||
G4VIS_USE_VRMLFILE := 1
|
||||
G4UI_USE_GAG := 1
|
||||
G4UI_USE_TERMINAL := 1
|
||||
# Vis/GUI built
|
||||
G4VIS_BUILD_DAWN_DRIVER := 1
|
||||
G4VIS_BUILD_DAWNFILE_DRIVER := 1
|
||||
@@ -26,11 +25,15 @@ G4VIS_BUILD_VRMLFILE_DRIVER := 1
|
||||
|
||||
# General Envs defined
|
||||
G4SYSTEM:=Linux-g++
|
||||
G4INSTALL:=/home/yoshidah/geant4.4.0-ref02
|
||||
G4BINDIR:=/home/yoshidah/geant4.4.0-ref02/bin/Linux-g++
|
||||
G4INSTALL:=/home/yoshidah/geant4
|
||||
G4WORKDIR:=/home/yoshidah/geant4
|
||||
G4BINDIR:=/home/yoshidah/geant4/bin/Linux-g++
|
||||
G4USE_STL:=1
|
||||
G4LIB_BUILD_SHARED:=1
|
||||
G4LEVELGAMMADATA:=/home/yoshidah/geant4.2s/g4.2ref03/data/PhotonEvaporation
|
||||
G4LIB_BUILD_STATIC:=1
|
||||
NeutronHPCrossSections:=/home/yoshidah/G4data/G4NDL3.7
|
||||
G4LEDATA:=/home/yoshidah/G4data/G4EMLOW2.3
|
||||
G4LEVELGAMMADATA:=/home/yoshidah/G4data/PhotonEvaporation
|
||||
G4RADIOACTIVEDATA:=/home/yoshidah/G4data/RadiativeDecay
|
||||
|
||||
ifndef G4INSTALL
|
||||
G4INSTALL = ../../..
|
||||
|
||||
@@ -1,3 +1,49 @@
|
||||
2004 NOvember 26
|
||||
|
||||
A) How to use MOMO.
|
||||
|
||||
1) cd here where src/ and include/ are located
|
||||
2) "java -version" and check that your java virtual machine is version 1.4
|
||||
(1.5 works with some malfuctionning)
|
||||
3) "java -jar ../MOMO.jar" and MOMO starts
|
||||
4) check that "set G4WORKDIR" displays this directory. If you change this,
|
||||
you will have faster access to files in that directory.
|
||||
|
||||
B) How to use the example of a flattening filter
|
||||
|
||||
1) relevant files of this example are
|
||||
./linac.cc
|
||||
./Momomake.gmk
|
||||
./flat.his (a macro file)
|
||||
./src/flatteningFilter.cc
|
||||
./include/flatteningFilter.hh
|
||||
All these files are generated automatically by MOMO, including the history macro file.
|
||||
|
||||
2) fill the tables from the persistent files
|
||||
a) GPE -> load file -> MomoN02PhysicsList.g4ph
|
||||
-> make C++ file -> save in src/
|
||||
-> make header file -> save in include/
|
||||
b) GGE -> load file -> flatteningFilter.g4dt
|
||||
-> make C++ file -> save in src/
|
||||
-> make header file -> savle in include/
|
||||
c) type i the name of the main program in the top field of MOMO panel
|
||||
|
||||
3) Project menu
|
||||
a) make main program -> save here
|
||||
b) make Makefile -> save here
|
||||
c) compile
|
||||
If some errors are found, correct them
|
||||
4) run
|
||||
GAG -> Geant4 -> Start -> file chooser
|
||||
mouse click /control/execute -> file chooser -> flat.his -> OK
|
||||
and you will have OpenGL event display:
|
||||
e- 10MeV, entering the flattenig filter (same as the examples/extended/linac),
|
||||
changing the incident angles
|
||||
|
||||
Enjoy!
|
||||
|
||||
--------------------------------------------------------------------
|
||||
|
||||
2002 March
|
||||
|
||||
Momo's default home directory in which the default src and include
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
#Command History List
|
||||
/control/execute vis.mac
|
||||
/gun/particle e-
|
||||
/gun/direction 0 0 -1
|
||||
/gun/energy 0.01 GeV
|
||||
/gun/position 0 0 110 cm
|
||||
|
||||
/run/beamOn 10 ***NULL*** -1
|
||||
/vis/viewer/zoom 5
|
||||
/vis/viewer/pan 0.1 0 m
|
||||
/vis/viewer/pan 0.1 0 m
|
||||
/vis/viewer/pan 0.1 0 m
|
||||
/vis/viewer/pan 0.1 0 m
|
||||
/vis/viewer/pan 0.1 0 m
|
||||
/vis/viewer/pan 0.1 0 m
|
||||
/vis/viewer/pan 0.1 0 m
|
||||
/vis/viewer/pan 0.1 0 m
|
||||
/vis/viewer/pan 0.1 0 m
|
||||
/vis/viewer/zoom 4
|
||||
/vis/viewer/pan 0.1 0 m
|
||||
/vis/viewer/pan 0.1 0 m
|
||||
/run/beamOn 100 ***NULL*** -1
|
||||
/gun/direction 0.0 0.01 -1
|
||||
/run/beamOn 100 ***NULL*** -1
|
||||
/gun/direction 0.0 0.03 -1
|
||||
/run/beamOn 100 ***NULL*** -1
|
||||
/gun/direction 0.0 0.05 -1
|
||||
/run/beamOn 100 ***NULL*** -1
|
||||
/gun/direction 0.0 0.08 -1
|
||||
/run/beamOn 100 ***NULL*** -1
|
||||
/gun/direction 0.0 0.1 -1
|
||||
/run/beamOn 100 ***NULL*** -1
|
||||
/gun/direction 0.0 0.0 -1
|
||||
/run/beamOn 100 ***NULL*** -1
|
||||
/run/beamOn 100 ***NULL*** -1
|
||||
/run/beamOn 100 ***NULL*** -1
|
||||
Binary file not shown.
@@ -22,7 +22,7 @@
|
||||
//
|
||||
// Taken from
|
||||
// $Id: MomoEventAction.hh,v 1.1 2003/11/04 09:02:26 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-06-00-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
#ifndef MomoEventAction_h
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
// Taken after
|
||||
// $Id: MomoRunAction.hh,v 1.1 2003/11/04 09:02:27 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-06-00-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
#ifndef MomoRunAction_h
|
||||
|
||||
+6
-6
@@ -22,18 +22,18 @@
|
||||
//
|
||||
|
||||
// Geometry Header File
|
||||
// MomoN02MyDetector.hh generated by Geant4 Geometry Editor at Thu Mar 14 10:39:13 JST 2002
|
||||
// flatteningFilter.hh generated by Geant4 Geometry Editor at Thu Nov 25 21:17:02 JST 2004
|
||||
|
||||
|
||||
#ifndef MomoN02MyDetector_h
|
||||
#define MomoN02MyDetector_h 1
|
||||
#ifndef flatteningFilter_h
|
||||
#define flatteningFilter_h 1
|
||||
|
||||
class G4VPhysicalVolume;
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
class MomoN02MyDetector: public G4VUserDetectorConstruction
|
||||
class flatteningFilter: public G4VUserDetectorConstruction
|
||||
{ public:
|
||||
MomoN02MyDetector();
|
||||
~MomoN02MyDetector();
|
||||
flatteningFilter();
|
||||
~flatteningFilter();
|
||||
|
||||
public:
|
||||
G4VPhysicalVolume* Construct();
|
||||
@@ -23,10 +23,10 @@
|
||||
//##### MOMO Main program #####
|
||||
//# ----------------------------------------------------------
|
||||
//# Automatic creation of the main program for Momo environment.
|
||||
// 2002 February, updated for geant4.4.0
|
||||
// 2003 December, updated for geant4.6.0
|
||||
// --------------------------------------------------------------
|
||||
// MomoN02.cc generated by Geant4 Momo
|
||||
// at Thu Mar 14 10:43:11 JST 2002
|
||||
// linac.cc generated by Geant4 Momo
|
||||
// at Sat Nov 27 12:16:36 JST 2004
|
||||
|
||||
|
||||
// This code implementation is the intellectual property of
|
||||
@@ -42,7 +42,7 @@
|
||||
// Your choice of User Interface driver
|
||||
#include "G4UIGAG.hh"
|
||||
// Detector geometry generated by Momo's GGE
|
||||
#include "MomoN02MyDetector.hh"
|
||||
#include "flatteningFilter.hh"
|
||||
// Physics List generated by Momo's GPE
|
||||
#include "MomoN02PhysicsList.hh"
|
||||
// Momo's default PrimaryGeneratorAction
|
||||
@@ -57,7 +57,7 @@ int main()
|
||||
// Construct the default run manager
|
||||
G4RunManager* runManager = new G4RunManager;
|
||||
// set mandatory initialization classes
|
||||
runManager->SetUserInitialization(new MomoN02MyDetector);
|
||||
runManager->SetUserInitialization(new flatteningFilter);
|
||||
runManager->SetUserInitialization(new MomoN02PhysicsList);
|
||||
#ifdef G4VIS_USE
|
||||
// visualization manager
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
// Taken from
|
||||
// $Id: MomoEventAction.cc,v 1.1 2003/11/04 09:02:27 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-06-00-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
|
||||
|
||||
@@ -1,142 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//***** Generated by Geant4 Geometry Editor at Thu Mar 14 10:39:13 JST 2002 *****
|
||||
|
||||
//------HeaderFile-
|
||||
#include "MomoN02MyDetector.hh"
|
||||
|
||||
#include "G4UnitsTable.hh"
|
||||
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4Material.hh"
|
||||
#include "G4MaterialTable.hh"
|
||||
#include "G4Element.hh"
|
||||
#include "G4ElementTable.hh"
|
||||
#include "G4Box.hh"
|
||||
#include "G4Tubs.hh"
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
#include "G4PVReplica.hh"
|
||||
#include "G4SDManager.hh"
|
||||
#include "G4VisAttributes.hh"
|
||||
#include "G4Colour.hh"
|
||||
|
||||
MomoN02MyDetector::MomoN02MyDetector()
|
||||
{ ; }
|
||||
MomoN02MyDetector::~MomoN02MyDetector()
|
||||
{ ; }
|
||||
G4VPhysicalVolume* MomoN02MyDetector::Construct( )
|
||||
{
|
||||
// Elements
|
||||
G4Element* elementH = new G4Element( "Hydrogen", "H", 1. , 1.00794*g/mole );
|
||||
G4Element* elementO = new G4Element( "Oxygen", "O", 8. , 15.9994*g/mole );
|
||||
G4Element* elementN = new G4Element( "Nitrogen", "N", 7. , 14.00674*g/mole );
|
||||
|
||||
// Materials from Combination
|
||||
|
||||
G4Material* water = new G4Material("water", 1.0*g/cm3, 2, kStateUndefined, 273.15*kelvin, 1.0*atmosphere );
|
||||
water->AddElement( elementH, 2 );
|
||||
water->AddElement( elementO, 1 );
|
||||
G4Material* Air = new G4Material("Air", 0.0010*g/cm3, 2, kStateUndefined, 273.15*kelvin, 1.0*atmosphere );
|
||||
Air->AddElement( elementN, 0.8 );
|
||||
Air->AddElement( elementO, 0.2 );
|
||||
|
||||
// Materials from Scratch
|
||||
|
||||
|
||||
// Visualization attributes
|
||||
|
||||
|
||||
G4VisAttributes * gray= new G4VisAttributes( G4Colour(204/255. ,204/255. ,204/255. ));
|
||||
|
||||
G4VisAttributes * blue= new G4VisAttributes( G4Colour(51/255. ,255/255. ,255/255. ));
|
||||
|
||||
// Logical Volumes
|
||||
|
||||
G4Box *solidworld= new G4Box("solidworld", 5000.0*mm, 5000.0*mm, 5000.0*mm );
|
||||
G4LogicalVolume * logicalworld = new G4LogicalVolume(solidworld, //its solid
|
||||
Air, //its material
|
||||
"logicalworld" , //its name
|
||||
0,0,0);
|
||||
|
||||
logicalworld->SetVisAttributes(gray);
|
||||
|
||||
G4Tubs *solidwatertank= new G4Tubs("solidwatertank", 0.0*mm, 1500.0*mm, 1500.0*mm, 0.0*deg, 360.0*deg );
|
||||
G4LogicalVolume * logicalwatertank = new G4LogicalVolume(solidwatertank, //its solid
|
||||
water, //its material
|
||||
"logicalwatertank" , //its name
|
||||
0,0,0);
|
||||
|
||||
logicalwatertank->SetVisAttributes(blue);
|
||||
|
||||
|
||||
// Physical Volumes ---- Single Positioned Placement, Repeated Placement, Slicing ---------------------------
|
||||
|
||||
|
||||
// Single Positioned Placement
|
||||
|
||||
G4RotationMatrix rotMatrixworld; // unit rotation matrix
|
||||
G4double angleworld = 0.0*deg; // rotational angle
|
||||
rotMatrixworld.rotateX(angleworld); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * physicalworld= new G4PVPlacement(G4Transform3D(rotMatrixworld, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 0.0*mm)),
|
||||
"physicalworld", //its name (2nd constructor)
|
||||
logicalworld, //its logical volume
|
||||
NULL, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixwatertank; // unit rotation matrix
|
||||
G4double anglewatertank = 0.0*deg; // rotational angle
|
||||
rotMatrixwatertank.rotateX(anglewatertank); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * physicalwatertank= new G4PVPlacement(G4Transform3D(rotMatrixwatertank, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 0.0*mm)),
|
||||
"physicalwatertank", //its name (2nd constructor)
|
||||
logicalwatertank, //its logical volume
|
||||
physicalworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
|
||||
// Repeated Placement Translation
|
||||
|
||||
|
||||
// Repeated Placement AxialSymmetoric
|
||||
|
||||
|
||||
// Slicing Translation
|
||||
|
||||
|
||||
// Slicing AxialSymmetric
|
||||
|
||||
|
||||
// return the physical World
|
||||
|
||||
|
||||
return physicalworld;
|
||||
}
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
// MomoN02PhysicsList.cc
|
||||
|
||||
// generated by Geant4 Physics Editor at Thu Mar 14 10:39:12 JST 2002
|
||||
// generated by Geant4 Physics Editor at Thu Nov 25 13:06:26 JST 2004
|
||||
|
||||
#include "MomoN02PhysicsList.hh"
|
||||
|
||||
@@ -89,10 +89,9 @@ void MomoN02PhysicsList::ConstructMesons()
|
||||
G4Eta::EtaDefinition();
|
||||
G4KaonPlus::KaonPlusDefinition();
|
||||
G4KaonMinus::KaonMinusDefinition();
|
||||
G4KaonZero::KaonZeroDefinition();
|
||||
G4AntiKaonZero::AntiKaonZeroDefinition();
|
||||
G4KaonZeroLong::KaonZeroLongDefinition();
|
||||
G4KaonZeroShort::KaonZeroShortDefinition();
|
||||
G4KaonZero::KaonZeroDefinition();
|
||||
}
|
||||
void MomoN02PhysicsList::ConstructBaryons()
|
||||
{
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
// Taken from
|
||||
// $Id: MomoRunAction.cc,v 1.1 2003/11/04 09:02:27 gcosmo Exp $
|
||||
// GEANT4 tag $Name: geant4-06-00-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
|
||||
|
||||
|
||||
@@ -100,7 +100,7 @@ void MomoVisManager::RegisterGraphicsSystems () {
|
||||
if (fVerbose > 0) {
|
||||
G4cout <<
|
||||
"\nYou have successfully chosen to use the following graphics systems."
|
||||
<< endl;
|
||||
<< G4endl;
|
||||
PrintAvailableGraphicsSystems ();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,624 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
//***** Generated by Geant4 Geometry Editor at Fri Nov 26 11:51:46 JST 2004 *****
|
||||
|
||||
//------HeaderFile-
|
||||
#include "flatteningFilter.hh"
|
||||
|
||||
#include "G4UnitsTable.hh"
|
||||
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4Material.hh"
|
||||
#include "G4MaterialTable.hh"
|
||||
#include "G4Element.hh"
|
||||
#include "G4ElementTable.hh"
|
||||
#include "G4Box.hh"
|
||||
#include "G4Tubs.hh"
|
||||
#include "G4Cons.hh"
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
#include "G4PVReplica.hh"
|
||||
#include "G4SDManager.hh"
|
||||
#include "G4VisAttributes.hh"
|
||||
#include "G4Colour.hh"
|
||||
|
||||
flatteningFilter::flatteningFilter()
|
||||
{ ; }
|
||||
flatteningFilter::~flatteningFilter()
|
||||
{ ; }
|
||||
G4VPhysicalVolume* flatteningFilter::Construct( )
|
||||
{
|
||||
// Elements
|
||||
G4Element* elementN = new G4Element( "Nitrogen", "N", 7. , 14.00674*g/mole );
|
||||
G4Element* elementO = new G4Element( "Oxygen", "O", 8. , 15.9994*g/mole );
|
||||
G4Element* elementH = new G4Element( "Hydrogen", "H", 1. , 1.00794*g/mole );
|
||||
|
||||
// Materials from Combination
|
||||
|
||||
G4Material* Air = new G4Material("Air", 1.205*mg/cm3, 2, kStateUndefined, 293.15*kelvin, 1.0*atmosphere );
|
||||
Air->AddElement( elementN, 1 );
|
||||
Air->AddElement( elementO, 0 );
|
||||
G4Material* H2O = new G4Material("H2O", 1.0*g/cm3, 2, kStateUndefined, 273.15*kelvin, 1.0*atmosphere );
|
||||
H2O->AddElement( elementH, 2 );
|
||||
H2O->AddElement( elementO, 1 );
|
||||
|
||||
// Materials from Scratch
|
||||
|
||||
G4Material* Aluminum = new G4Material("Aluminum", 13, 26.981539*g/mole, 2.7*g/cm3,kStateSolid, 273.15*kelvin, 1.0*atmosphere );
|
||||
|
||||
// Visualization attributes
|
||||
|
||||
|
||||
G4VisAttributes * b1= new G4VisAttributes( G4Colour(0/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b2= new G4VisAttributes( G4Colour(10/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b3= new G4VisAttributes( G4Colour(20/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b4= new G4VisAttributes( G4Colour(30/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b5= new G4VisAttributes( G4Colour(39/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b6= new G4VisAttributes( G4Colour(49/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b7= new G4VisAttributes( G4Colour(57/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b8= new G4VisAttributes( G4Colour(67/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b9= new G4VisAttributes( G4Colour(77/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b10= new G4VisAttributes( G4Colour(87/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b11= new G4VisAttributes( G4Colour(94/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b12= new G4VisAttributes( G4Colour(101/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b13= new G4VisAttributes( G4Colour(109/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b14= new G4VisAttributes( G4Colour(117/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b15= new G4VisAttributes( G4Colour(126/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b16= new G4VisAttributes( G4Colour(135/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b17= new G4VisAttributes( G4Colour(146/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * b18= new G4VisAttributes( G4Colour(156/255. ,238/255. ,238/255. ));
|
||||
|
||||
G4VisAttributes * g1= new G4VisAttributes( G4Colour(156/255. ,255/255. ,41/255. ));
|
||||
|
||||
G4VisAttributes * g2= new G4VisAttributes( G4Colour(156/255. ,255/255. ,64/255. ));
|
||||
|
||||
G4VisAttributes * g3= new G4VisAttributes( G4Colour(156/255. ,255/255. ,84/255. ));
|
||||
|
||||
G4VisAttributes * pink= new G4VisAttributes( G4Colour(255/255. ,153/255. ,153/255. ));
|
||||
|
||||
G4VisAttributes * b19= new G4VisAttributes( G4Colour(216/255. ,248/255. ,246/255. ));
|
||||
|
||||
// Logical Volumes
|
||||
|
||||
G4Box *solidworld= new G4Box("solidworld", 1000.0*mm, 1000.0*mm, 4000.0*mm );
|
||||
G4LogicalVolume * world = new G4LogicalVolume(solidworld, //its solid
|
||||
Air, //its material
|
||||
"world" , //its name
|
||||
0,0,0);
|
||||
|
||||
G4Box *solidwaterbox= new G4Box("solidwaterbox", 200.0*mm, 200.0*mm, 200.0*mm );
|
||||
G4LogicalVolume * waterbox = new G4LogicalVolume(solidwaterbox, //its solid
|
||||
H2O, //its material
|
||||
"waterbox" , //its name
|
||||
0,0,0);
|
||||
|
||||
waterbox->SetVisAttributes(pink);
|
||||
|
||||
G4Cons *solidcon1= new G4Cons("solidcon1", 0.0*mm, 1.0E-7*mm, 0.0*mm, 0.25*mm, 0.06*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con1 = new G4LogicalVolume(solidcon1, //its solid
|
||||
Aluminum, //its material
|
||||
"con1" , //its name
|
||||
0,0,0);
|
||||
|
||||
con1->SetVisAttributes(b1);
|
||||
|
||||
G4Cons *solidcon2= new G4Cons("solidcon2", 0.0*mm, 0.51*mm, 0.0*mm, 0.25*mm, 0.065*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con2 = new G4LogicalVolume(solidcon2, //its solid
|
||||
Aluminum, //its material
|
||||
"con2" , //its name
|
||||
0,0,0);
|
||||
|
||||
con2->SetVisAttributes(b2);
|
||||
|
||||
G4Cons *solidcon3= new G4Cons("solidcon3", 0.0*mm, 0.77*mm, 0.0*mm, 0.51*mm, 0.075*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con3 = new G4LogicalVolume(solidcon3, //its solid
|
||||
Aluminum, //its material
|
||||
"con3" , //its name
|
||||
0,0,0);
|
||||
|
||||
con3->SetVisAttributes(b3);
|
||||
|
||||
G4Cons *solidcon4= new G4Cons("solidcon4", 0.0*mm, 1.03*mm, 0.0*mm, 0.77*mm, 0.09*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con4 = new G4LogicalVolume(solidcon4, //its solid
|
||||
Aluminum, //its material
|
||||
"con4" , //its name
|
||||
0,0,0);
|
||||
|
||||
con4->SetVisAttributes(b4);
|
||||
|
||||
G4Cons *solidcon5= new G4Cons("solidcon5", 0.0*mm, 1.54*mm, 0.0*mm, 1.03*mm, 0.22*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con5 = new G4LogicalVolume(solidcon5, //its solid
|
||||
Aluminum, //its material
|
||||
"con5" , //its name
|
||||
0,0,0);
|
||||
|
||||
con5->SetVisAttributes(b5);
|
||||
|
||||
G4Cons *solidcon6= new G4Cons("solidcon6", 0.0*mm, 2.05*mm, 0.0*mm, 1.54*mm, 0.24*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con6 = new G4LogicalVolume(solidcon6, //its solid
|
||||
Aluminum, //its material
|
||||
"con6" , //its name
|
||||
0,0,0);
|
||||
|
||||
con6->SetVisAttributes(b6);
|
||||
|
||||
G4Cons *solidcon7= new G4Cons("solidcon7", 0.0*mm, 2.56*mm, 0.0*mm, 2.05*mm, 0.23*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con7 = new G4LogicalVolume(solidcon7, //its solid
|
||||
Aluminum, //its material
|
||||
"con7" , //its name
|
||||
0,0,0);
|
||||
|
||||
con7->SetVisAttributes(b7);
|
||||
|
||||
G4Cons *solidcon8= new G4Cons("solidcon8", 0.0*mm, 3.07*mm, 0.0*mm, 2.56*mm, 0.23*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con8 = new G4LogicalVolume(solidcon8, //its solid
|
||||
Aluminum, //its material
|
||||
"con8" , //its name
|
||||
0,0,0);
|
||||
|
||||
con8->SetVisAttributes(b8);
|
||||
|
||||
G4Cons *solidcon9= new G4Cons("solidcon9", 0.0*mm, 3.58*mm, 0.0*mm, 3.07*mm, 0.225*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con9 = new G4LogicalVolume(solidcon9, //its solid
|
||||
Aluminum, //its material
|
||||
"con9" , //its name
|
||||
0,0,0);
|
||||
|
||||
con9->SetVisAttributes(b9);
|
||||
|
||||
G4Cons *solidcon10= new G4Cons("solidcon10", 0.0*mm, 4.09*mm, 0.0*mm, 3.58*mm, 0.22*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con10 = new G4LogicalVolume(solidcon10, //its solid
|
||||
Aluminum, //its material
|
||||
"con10" , //its name
|
||||
0,0,0);
|
||||
|
||||
con10->SetVisAttributes(b10);
|
||||
|
||||
G4Cons *solidcon11= new G4Cons("solidcon11", 0.0*mm, 5.1*mm, 0.0*mm, 4.09*mm, 0.425*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con11 = new G4LogicalVolume(solidcon11, //its solid
|
||||
Aluminum, //its material
|
||||
"con11" , //its name
|
||||
0,0,0);
|
||||
|
||||
con11->SetVisAttributes(b11);
|
||||
|
||||
G4Cons *solidcon12= new G4Cons("solidcon12", 0.0*mm, 6.2*mm, 0.0*mm, 5.1*mm, 0.395*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con12 = new G4LogicalVolume(solidcon12, //its solid
|
||||
Aluminum, //its material
|
||||
"con12" , //its name
|
||||
0,0,0);
|
||||
|
||||
con12->SetVisAttributes(b12);
|
||||
|
||||
G4Cons *solidcon13= new G4Cons("solidcon13", 0.0*mm, 7.3*mm, 0.0*mm, 6.2*mm, 0.38*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con13 = new G4LogicalVolume(solidcon13, //its solid
|
||||
Aluminum, //its material
|
||||
"con13" , //its name
|
||||
0,0,0);
|
||||
|
||||
con13->SetVisAttributes(b13);
|
||||
|
||||
G4Cons *solidcon14= new G4Cons("solidcon14", 0.0*mm, 8.4*mm, 0.0*mm, 7.3*mm, 0.335*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con14 = new G4LogicalVolume(solidcon14, //its solid
|
||||
Aluminum, //its material
|
||||
"con14" , //its name
|
||||
0,0,0);
|
||||
|
||||
con14->SetVisAttributes(b14);
|
||||
|
||||
G4Cons *solidcon15= new G4Cons("solidcon15", 0.0*mm, 9.5*mm, 0.0*mm, 8.4*mm, 0.325*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con15 = new G4LogicalVolume(solidcon15, //its solid
|
||||
Aluminum, //its material
|
||||
"con15" , //its name
|
||||
0,0,0);
|
||||
|
||||
con15->SetVisAttributes(b15);
|
||||
|
||||
G4Cons *solidcon16= new G4Cons("solidcon16", 0.0*mm, 10.5*mm, 0.0*mm, 9.5*mm, 0.28*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con16 = new G4LogicalVolume(solidcon16, //its solid
|
||||
Aluminum, //its material
|
||||
"con16" , //its name
|
||||
0,0,0);
|
||||
|
||||
con16->SetVisAttributes(b16);
|
||||
|
||||
G4Cons *solidcon17= new G4Cons("solidcon17", 0.0*mm, 11.5*mm, 0.0*mm, 10.5*mm, 0.275*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con17 = new G4LogicalVolume(solidcon17, //its solid
|
||||
Aluminum, //its material
|
||||
"con17" , //its name
|
||||
0,0,0);
|
||||
|
||||
con17->SetVisAttributes(b17);
|
||||
|
||||
G4Cons *solidcon18= new G4Cons("solidcon18", 0.0*mm, 12.15*mm, 0.0*mm, 11.5*mm, 0.19*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * con18 = new G4LogicalVolume(solidcon18, //its solid
|
||||
Aluminum, //its material
|
||||
"con18" , //its name
|
||||
0,0,0);
|
||||
|
||||
con18->SetVisAttributes(b18);
|
||||
|
||||
G4Cons *solidcons19= new G4Cons("solidcons19", 0.0*mm, 13.01*mm, 0.0*mm, 13.35*mm, 0.225*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * cons19 = new G4LogicalVolume(solidcons19, //its solid
|
||||
Aluminum, //its material
|
||||
"cons19" , //its name
|
||||
0,0,0);
|
||||
|
||||
cons19->SetVisAttributes(b19);
|
||||
|
||||
G4Tubs *solidtub1= new G4Tubs("solidtub1", 0.0*mm, 13.35*mm, 0.4*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * tub1 = new G4LogicalVolume(solidtub1, //its solid
|
||||
Aluminum, //its material
|
||||
"tub1" , //its name
|
||||
0,0,0);
|
||||
|
||||
tub1->SetVisAttributes(g1);
|
||||
|
||||
G4Tubs *solidtub2= new G4Tubs("solidtub2", 13.0*mm, 13.35*mm, 0.225*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * tub2 = new G4LogicalVolume(solidtub2, //its solid
|
||||
Aluminum, //its material
|
||||
"tub2" , //its name
|
||||
0,0,0);
|
||||
|
||||
tub2->SetVisAttributes(g2);
|
||||
|
||||
G4Tubs *solidtub3= new G4Tubs("solidtub3", 13.35*mm, 16.0*mm, 0.625*mm, 0.0*rad, 360.0*deg );
|
||||
G4LogicalVolume * tub3 = new G4LogicalVolume(solidtub3, //its solid
|
||||
Aluminum, //its material
|
||||
"tub3" , //its name
|
||||
0,0,0);
|
||||
|
||||
tub3->SetVisAttributes(g3);
|
||||
|
||||
|
||||
// Physical Volumes ---- Single Positioned Placement, Repeated Placement, Slicing ---------------------------
|
||||
|
||||
|
||||
// Single Positioned Placement
|
||||
|
||||
G4RotationMatrix rotMatrixpworld; // unit rotation matrix
|
||||
G4double anglepworld = 0.0*deg; // rotational angle
|
||||
rotMatrixpworld.rotateX(anglepworld); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pworld= new G4PVPlacement(G4Transform3D(rotMatrixpworld, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 0.0*mm)),
|
||||
"pworld", //its name (2nd constructor)
|
||||
world, //its logical volume
|
||||
NULL, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixphantom; // unit rotation matrix
|
||||
G4double anglephantom = 0.0*deg; // rotational angle
|
||||
rotMatrixphantom.rotateX(anglephantom); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * phantom= new G4PVPlacement(G4Transform3D(rotMatrixphantom, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 0.0*mm)),
|
||||
"phantom", //its name (2nd constructor)
|
||||
waterbox, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon1; // unit rotation matrix
|
||||
G4double anglepcon1 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon1.rotateX(anglepcon1); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon1= new G4PVPlacement(G4Transform3D(rotMatrixpcon1, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1034.04*mm)),
|
||||
"pcon1", //its name (2nd constructor)
|
||||
con1, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon2; // unit rotation matrix
|
||||
G4double anglepcon2 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon2.rotateX(anglepcon2); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon2= new G4PVPlacement(G4Transform3D(rotMatrixpcon2, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1033.888*mm)),
|
||||
"pcon2", //its name (2nd constructor)
|
||||
con2, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon3; // unit rotation matrix
|
||||
G4double anglepcon3 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon3.rotateX(anglepcon3); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon3= new G4PVPlacement(G4Transform3D(rotMatrixpcon3, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1033.748*mm)),
|
||||
"pcon3", //its name (2nd constructor)
|
||||
con3, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon4; // unit rotation matrix
|
||||
G4double anglepcon4 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon4.rotateX(anglepcon4); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon4= new G4PVPlacement(G4Transform3D(rotMatrixpcon4, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1033.583*mm)),
|
||||
"pcon4", //its name (2nd constructor)
|
||||
con4, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon5; // unit rotation matrix
|
||||
G4double anglepcon5 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon5.rotateX(anglepcon5); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon5= new G4PVPlacement(G4Transform3D(rotMatrixpcon5, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1033.273*mm)),
|
||||
"pcon5", //its name (2nd constructor)
|
||||
con5, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon6; // unit rotation matrix
|
||||
G4double anglepcon6 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon6.rotateX(anglepcon6); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon6= new G4PVPlacement(G4Transform3D(rotMatrixpcon6, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1032.813*mm)),
|
||||
"pcon6", //its name (2nd constructor)
|
||||
con6, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon7; // unit rotation matrix
|
||||
G4double anglepcon7 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon7.rotateX(anglepcon7); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon7= new G4PVPlacement(G4Transform3D(rotMatrixpcon7, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1032.343*mm)),
|
||||
"pcon7", //its name (2nd constructor)
|
||||
con7, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon8; // unit rotation matrix
|
||||
G4double anglepcon8 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon8.rotateX(anglepcon8); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon8= new G4PVPlacement(G4Transform3D(rotMatrixpcon8, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1031.883*mm)),
|
||||
"pcon8", //its name (2nd constructor)
|
||||
con8, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon9; // unit rotation matrix
|
||||
G4double anglepcon9 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon9.rotateX(anglepcon9); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon9= new G4PVPlacement(G4Transform3D(rotMatrixpcon9, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1031.428*mm)),
|
||||
"pcon9", //its name (2nd constructor)
|
||||
con9, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon10; // unit rotation matrix
|
||||
G4double anglepcon10 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon10.rotateX(anglepcon10); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon10= new G4PVPlacement(G4Transform3D(rotMatrixpcon10, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1030.983*mm)),
|
||||
"pcon10", //its name (2nd constructor)
|
||||
con10, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon11; // unit rotation matrix
|
||||
G4double anglepcon11 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon11.rotateX(anglepcon11); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon11= new G4PVPlacement(G4Transform3D(rotMatrixpcon11, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1030.338*mm)),
|
||||
"pcon11", //its name (2nd constructor)
|
||||
con11, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon12; // unit rotation matrix
|
||||
G4double anglepcon12 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon12.rotateX(anglepcon12); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon12= new G4PVPlacement(G4Transform3D(rotMatrixpcon12, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1029.518*mm)),
|
||||
"pcon12", //its name (2nd constructor)
|
||||
con12, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon13; // unit rotation matrix
|
||||
G4double anglepcon13 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon13.rotateX(anglepcon13); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon13= new G4PVPlacement(G4Transform3D(rotMatrixpcon13, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1028.743*mm)),
|
||||
"pcon13", //its name (2nd constructor)
|
||||
con13, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon14; // unit rotation matrix
|
||||
G4double anglepcon14 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon14.rotateX(anglepcon14); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon14= new G4PVPlacement(G4Transform3D(rotMatrixpcon14, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1028.028*mm)),
|
||||
"pcon14", //its name (2nd constructor)
|
||||
con14, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon15; // unit rotation matrix
|
||||
G4double anglepcon15 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon15.rotateX(anglepcon15); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon15= new G4PVPlacement(G4Transform3D(rotMatrixpcon15, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1027.368*mm)),
|
||||
"pcon15", //its name (2nd constructor)
|
||||
con15, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon16; // unit rotation matrix
|
||||
G4double anglepcon16 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon16.rotateX(anglepcon16); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon16= new G4PVPlacement(G4Transform3D(rotMatrixpcon16, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1026.763*mm)),
|
||||
"pcon16", //its name (2nd constructor)
|
||||
con16, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon17; // unit rotation matrix
|
||||
G4double anglepcon17 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon17.rotateX(anglepcon17); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon17= new G4PVPlacement(G4Transform3D(rotMatrixpcon17, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1025.6208*mm)),
|
||||
"pcon17", //its name (2nd constructor)
|
||||
con17, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon18; // unit rotation matrix
|
||||
G4double anglepcon18 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon18.rotateX(anglepcon18); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon18= new G4PVPlacement(G4Transform3D(rotMatrixpcon18, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1024.743*mm)),
|
||||
"pcon18", //its name (2nd constructor)
|
||||
con18, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixpcon19; // unit rotation matrix
|
||||
G4double anglepcon19 = 0.0*deg; // rotational angle
|
||||
rotMatrixpcon19.rotateX(anglepcon19); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * pcon19= new G4PVPlacement(G4Transform3D(rotMatrixpcon19, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1024.778*mm)),
|
||||
"pcon19", //its name (2nd constructor)
|
||||
cons19, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixptub1; // unit rotation matrix
|
||||
G4double angleptub1 = 0.0*deg; // rotational angle
|
||||
rotMatrixptub1.rotateX(angleptub1); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * ptub1= new G4PVPlacement(G4Transform3D(rotMatrixptub1, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1024.153*mm)),
|
||||
"ptub1", //its name (2nd constructor)
|
||||
tub1, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixptub2; // unit rotation matrix
|
||||
G4double angleptub2 = 0.0*deg; // rotational angle
|
||||
rotMatrixptub2.rotateX(angleptub2); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * ptub2= new G4PVPlacement(G4Transform3D(rotMatrixptub2, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1024.153*mm)),
|
||||
"ptub2", //its name (2nd constructor)
|
||||
tub2, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
G4RotationMatrix rotMatrixptub3; // unit rotation matrix
|
||||
G4double angleptub3 = 0.0*deg; // rotational angle
|
||||
rotMatrixptub3.rotateX(angleptub3); // rot matrix
|
||||
|
||||
G4VPhysicalVolume * ptub3= new G4PVPlacement(G4Transform3D(rotMatrixptub3, //rotation
|
||||
G4ThreeVector(0.0*mm, 0.0*mm, 1024.378*mm)),
|
||||
"ptub3", //its name (2nd constructor)
|
||||
tub3, //its logical volume
|
||||
pworld, //its mother volume
|
||||
false, //no boolean operation
|
||||
0); //copy number
|
||||
|
||||
|
||||
// Repeated Placement Translation
|
||||
|
||||
|
||||
// Repeated Placement AxialSymmetoric
|
||||
|
||||
|
||||
// Slicing Translation
|
||||
|
||||
|
||||
// Slicing AxialSymmetric
|
||||
|
||||
|
||||
// return the physical World
|
||||
|
||||
|
||||
return pworld;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
|
||||
/control/verbose 2
|
||||
/control/saveHistory
|
||||
/run/verbose 2
|
||||
|
||||
|
||||
/vis/scene/create
|
||||
/vis/open VRML1FILE
|
||||
/vis/drawVolume
|
||||
/vis/scene/add/axes 0 0 0 2 m
|
||||
/vis/viewer/update
|
||||
/vis/viewer/set/viewpointThetaPhi 60 30 deg
|
||||
/vis/viewer/zoom 5
|
||||
|
||||
/vis/viewer/flush
|
||||
#
|
||||
# draw scene/
|
||||
#
|
||||
#
|
||||
# for drawing the tracks
|
||||
/run/initialize
|
||||
/tracking/storeTrajectory 1
|
||||
/vis/scene/endOfEventAction accumulate
|
||||
|
||||
|
||||
|
||||
/vis/viewer/update
|
||||
|
||||
@@ -69,8 +69,8 @@
|
||||
<D type="denstiy" value="1.205" unit="mg/cm3"/>
|
||||
<T type="temperature" value="293.15" unit="kelvin"/>
|
||||
<P type="pascal" value="1.0" unit="atmosphere"/>
|
||||
<franction n="0.7" ref="N"/>
|
||||
<franction n="0.3" ref="O"/>
|
||||
<composite n="1" ref="N"/>
|
||||
<composite n="0" ref="O"/>
|
||||
</material>
|
||||
<material name="H2O">
|
||||
<D type="denstiy" value="1.0" unit="g/cm3"/>
|
||||
@@ -97,12 +97,12 @@
|
||||
<D type="denstiy" value="2.5" unit="g/cm3"/>
|
||||
<T type="temperature" value="273.15" unit="kelvin"/>
|
||||
<P type="pascal" value="1.0" unit="atmosphere"/>
|
||||
<franction n="0.52" ref="O"/>
|
||||
<franction n="0.0" ref="Na"/>
|
||||
<franction n="0.04" ref="Al"/>
|
||||
<franction n="0.325" ref="Si"/>
|
||||
<franction n="0.06" ref="Ca"/>
|
||||
<franction n="0.02" ref="Fe"/>
|
||||
<composite n="1" ref="O"/>
|
||||
<composite n="0" ref="Na"/>
|
||||
<composite n="0" ref="Al"/>
|
||||
<composite n="0" ref="Si"/>
|
||||
<composite n="0" ref="Ca"/>
|
||||
<composite n="0" ref="Fe"/>
|
||||
</material>
|
||||
<material name="FusedQuarz">
|
||||
<D type="denstiy" value="2.2" unit="g/cm3"/>
|
||||
@@ -111,14 +111,6 @@
|
||||
<composite n="2" ref="O"/>
|
||||
<composite n="1" ref="Si"/>
|
||||
</material>
|
||||
<material name="DimethylEther">
|
||||
<D type="denstiy" value="" unit="mg/cm3"/>
|
||||
<T type="temperature" value="273.15" unit="kelvin"/>
|
||||
<P type="pascal" value="1.0" unit="atmosphere"/>
|
||||
<composite n="6" ref="H"/>
|
||||
<composite n="2" ref="C"/>
|
||||
<composite n="1" ref="O"/>
|
||||
</material>
|
||||
<material name="Methane">
|
||||
<D type="denstiy" value="0.4224" unit="mg/cm3"/>
|
||||
<T type="temperature" value="293.15" unit="kelvin"/>
|
||||
@@ -281,14 +273,6 @@
|
||||
<composite n="1" ref="Na"/>
|
||||
<composite n="1" ref="I"/>
|
||||
</material>
|
||||
<material name="">
|
||||
<D type="denstiy" value="" unit="g/cm3"/>
|
||||
<T type="temperature" value="273.15" unit="kelvin"/>
|
||||
<P type="pascal" value="1.0" unit="atmosphere"/>
|
||||
<composite n="0" ref="H"/>
|
||||
<composite n="0" ref="O"/>
|
||||
<composite n="0" ref="Si"/>
|
||||
</material>
|
||||
|
||||
<!--Materials from Scratch-->
|
||||
<material name="HydrogenGas" formula="HydrogenGas" Z="1" N="1.00794" state="gas">
|
||||
|
||||
@@ -1,3 +1,39 @@
|
||||
2004 November 25
|
||||
|
||||
CHANGES** for Geant4.7 release
|
||||
|
||||
- Integration of GAG and Gain into MOMO
|
||||
- GAG.jar and Gain.jar are no more required and removed from the distribution.
|
||||
- GAG and Gain have their own logging window which displays G4cout
|
||||
- Improvements of GGE
|
||||
- material names are choosable from the name list defined in the material table
|
||||
- color names are choosable from the name list defined in the color table
|
||||
- logican volume's name is choosable from the name list to make physical volume
|
||||
- "set G4WORKDIR" butto helps to choose files or to save files (GGE, GPE, GAG)
|
||||
|
||||
EXAMPLE**
|
||||
|
||||
A working full set of files are foud in MomoHome. Please have a look at
|
||||
MomoHome/README file.
|
||||
|
||||
NOTICE 1 ** on Java Version!
|
||||
|
||||
The present version of MOMO is tested with j2sdk1.4. Some mal-functionning
|
||||
was found when used with j2sdk-1.5.
|
||||
|
||||
ABOUT ** Help function !
|
||||
|
||||
"Help" is displayed only when the env variable G4INSTALL is set.
|
||||
it is stored.
|
||||
|
||||
NOTICE 2 ** on "Project" menus
|
||||
|
||||
"Compile" buttin is effective only when java is started in the canonical
|
||||
directory of Geant4, that is just above the src and include directories.
|
||||
|
||||
An example is found in ./MomoHome.
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
2003 December 08
|
||||
- present MOMO's XML functions (save and load) are limited.
|
||||
-only available GDML tags are implemented. Not implemented are
|
||||
|
||||
@@ -1,676 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
||||
GGE; Geant4 Geometry Editor
|
||||
</title>
|
||||
</head>
|
||||
<body>
|
||||
<center>
|
||||
<h1>
|
||||
GGE; GEANT4 Geometry Editor
|
||||
</h1><br>
|
||||
2003 Feb. 22
|
||||
<br>
|
||||
Hajime YOSHIDA
|
||||
<br>
|
||||
Naruto University of Education
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
<h1>1) Overview </h1><br>
|
||||
|
||||
GGE, or GEANT4 Geometry Editor, is a visual tool to "create" a
|
||||
detector geometry of GEANT4. It generates a complete C++ class
|
||||
code for a relatively simple geometry. It is written in Java and runs on
|
||||
any platform running Java. <p>
|
||||
<a href="http://erpc1.naruto-u.ac.jp/~geant4/Sources.html">
|
||||
Java Web Start version </a>is also supported.
|
||||
If user has installed Java Web Start, GGE(or as a part of MOMO) can be
|
||||
started directly from the web browser without typing java command on the console.
|
||||
<p>
|
||||
<h3>
|
||||
Characteristics
|
||||
</h3>
|
||||
<ol>
|
||||
<li>It provides users with tables
|
||||
into which users can fill with their detector parameters.
|
||||
<li>Using the
|
||||
data in the tables, even if they are partial and imcomplete,
|
||||
GGE can generate C++ source codes for a detector.
|
||||
<br>
|
||||
The class name must be supplied to get C++ source code.
|
||||
<li>
|
||||
When a user uses default functions of GGE, C++ codes generated by GGE
|
||||
is a complete
|
||||
description of a detector, including the definition of atoms, materials,
|
||||
solids, color attributes,
|
||||
logical volumes and physical volumes with rotations and translations.
|
||||
<li>
|
||||
The C++ source codes are saved into files and can be compiled to make a GEANT4 executable.
|
||||
|
||||
<li>
|
||||
When GGE is used together with MOMO, an integrated environment,
|
||||
a minimum set of user mandatory classes can be generated.
|
||||
MOMO also generate the main program as well as GNU makefile for the GEANT4 to visualise the detector.
|
||||
<li>
|
||||
GAG is helpful to run Geant4 and to visualise the whole detector.
|
||||
Simple macro files are associated, too, for visualisation.
|
||||
</ol>
|
||||
|
||||
GGE consists of two editors (material and volume) which are
|
||||
interrelated. Volume editor provides <it>Single
|
||||
Positioned Volume</it>, <itLRepeatedly Positioned Volumes</it> with incremental copy numbers
|
||||
(translational arrangement or axially symmetric arrangement), and
|
||||
<it>Replicas </it>(in any axis).
|
||||
|
||||
<p>
|
||||
<font color=red>Tips!</font>
|
||||
<ol>
|
||||
<li>GGE is based on Java's MVC model, or Swing so that any change or input to the
|
||||
tables by a user
|
||||
are automatically reflected to the internal data structure of GGE and C++ codes.
|
||||
This is true at any moment, so that user can get even imcomplete C++ class files
|
||||
at any moment, even without any filled tabular cells)
|
||||
<li>
|
||||
The whole detector description can be saved in a persistent file and can
|
||||
be loaded for later reuse.
|
||||
<li>
|
||||
|
||||
GGE employs own naming rules to generate C++ codes from the tables.
|
||||
</ol>
|
||||
<hr>
|
||||
<h1>
|
||||
|
||||
2) Functionalities of GGE
|
||||
</h1>
|
||||
GGE has a top panel on which are placed menu buttons and fill-in text area.
|
||||
<p>
|
||||
<h3> Top menus</h3>
|
||||
|
||||
<ul>
|
||||
<li> text area to specify the class name
|
||||
<li> menu buttons
|
||||
<ul>
|
||||
<li> load, save a persistent file
|
||||
<li> clear the tables
|
||||
<li> generate cc and hh files using the specified class name
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<h3> Tables </h3> <br>
|
||||
|
||||
GGE has several tables on two "tabbed panes";
|
||||
one pane for the material editor and another for the volumes editor.
|
||||
By clicking the tab, user can switch between both tables.
|
||||
<br>
|
||||
|
||||
<h2>
|
||||
2.1) The Material Editor
|
||||
</h2>
|
||||
<br>
|
||||
|
||||
<a href="./material.jpg">The material editor </a>
|
||||
is composed of two tables for
|
||||
<ol>
|
||||
<li>"material from scratch"
|
||||
and
|
||||
<li>"compound materials".
|
||||
</ol>
|
||||
These tables can be enlengthened as will.
|
||||
The boundary of the two tables can be moved as will, too.
|
||||
<p>
|
||||
<strong>
|
||||
Every row represents a material.
|
||||
</strong><br>
|
||||
|
||||
<a href="./periodic.jpg">The periodic table is popped up </a>to the
|
||||
window, when "append" or "insert" a material button is pushed.
|
||||
The foundamental properties of atoms; Z, A, etc. are built in to the
|
||||
atomic table and are copied appropriately.
|
||||
The atomic table can be hidden by a menu button on its top.
|
||||
<p>
|
||||
<hr>
|
||||
<h3>
|
||||
Functionalities of the Material Editor
|
||||
</h3><br>
|
||||
The functionalities implemented in this version are following;
|
||||
<ol>
|
||||
<li> <strong>append, insert, edit and delete a material</strong>
|
||||
<ul>
|
||||
<li> <strong>material from scratch</strong><br>
|
||||
The name of an atom, numbers Z and A are
|
||||
taken from the atomic table. User has to specify its density,
|
||||
temperature and pressure. Canonical units and states can be choosen
|
||||
from the lists.<br>
|
||||
The corresponding instance in C++ is named "elementX", where
|
||||
"X" represents element's symbol.
|
||||
<li> <strong> material by combination </strong>(number or fractional ratios). <br>
|
||||
User has to type in the name of a compound material,
|
||||
its density etc.. A pop-up window is displayed when he focuses
|
||||
on a cell <a href="./compoundeditor.jpg">specifying composition</a>.
|
||||
<li> <a href="./periodic.jpg"><strong> periodic table of atoms</strong></a>
|
||||
automatically popped up to
|
||||
create a material. User can select upto eight atoms to specify
|
||||
a compound material.
|
||||
<li> default states (and their canonical names)
|
||||
and values are provided (material state, temperature,
|
||||
pressure).
|
||||
<li> canonical physical units of GEANT4
|
||||
are shown in selectable combo-boxes.
|
||||
</ul>
|
||||
<li> "<strong>in Use</strong>" mark for materials used in user's detector.
|
||||
<ul>
|
||||
<li> materials used in the logical volumes are
|
||||
automatically checked as "in Use" state.
|
||||
<li> user can add any materials "in Use" to
|
||||
have C++ constructors, even when they aren't used in
|
||||
logical volumes.
|
||||
</ul>
|
||||
<li> <strong> input and output from/to persistent material file </strong>
|
||||
<br>
|
||||
Material tables are saved to a Java's persistent file and can be reused.
|
||||
<ul>
|
||||
<li> load, append or save a material file
|
||||
<li> an exemplary persistent material database
|
||||
file "MaterialDB.g4mt" from the PDG
|
||||
</ul>
|
||||
</ol>
|
||||
|
||||
Not yet implemented are; material from materials, isotope and
|
||||
protection from duplicated "in Use" instances of the same materials.
|
||||
|
||||
<hr>
|
||||
<h2>
|
||||
2.2) The Volume Editor ; logical and physical volumes
|
||||
</h2>
|
||||
<br>
|
||||
|
||||
<a href="./volumeeditor.jpg">The volume editor </a>
|
||||
is composed of two major editors;
|
||||
<ol>
|
||||
<li>logical volume editor and
|
||||
<li>physical volume editors,
|
||||
</ol>
|
||||
each is placed in the main scrollable panel.
|
||||
Physical editor is composed of five tables for physical volumes.
|
||||
They are placed on tabbed panes.
|
||||
<p>
|
||||
|
||||
<h3>
|
||||
Functionalities to define Geant4 logical volumes
|
||||
</h3><p>
|
||||
|
||||
Following functionaliteis are implemented;
|
||||
<ol>
|
||||
<li> <a href="./selectasolid.jpg"><strong>Selecting a G4Solid</strong></a><br>
|
||||
All Geant4 solids can be selected from the solid list.
|
||||
<ul>
|
||||
<li>all CSG solids; box, tube segment, cone segment, symmetric trapezoid,
|
||||
sphere segment, parallel piped, torus segment, HYPE,
|
||||
<li>BREP solids; PolyCone segment and Polygone segment
|
||||
�@�@</ul>
|
||||
After selecting a solid tyle, user pushes the "append" or "insert" button
|
||||
in order to make a new row in the table. On focusing the "solid" cell,
|
||||
<a href="./poligon.jpg">a pop up
|
||||
window </a> appears for the specified solid. User can
|
||||
<ul>
|
||||
<li> specify parameters and canonical units of CSG solids
|
||||
<li> specify any number of nodes and facets
|
||||
with parameters and canonical units of BREP solids
|
||||
<li> preview with DAWN with automatically chosen world size
|
||||
<li> save DAWN format file of the specified solid
|
||||
</ul>
|
||||
|
||||
<li> <strong>Defining G4Color</strong>, or colour attributes,
|
||||
using a graphical color chooser from which RGB numbers are taken
|
||||
to generate C++ codes. <br>
|
||||
Each color is given unique name and is listed in the editor panel.
|
||||
<li> <strong> Defining G4LogicalVolumes </strong> <br>
|
||||
Each row of the logical vulume table represents a G4LogicalVolume.
|
||||
User can append, insert or delete a row with corresponding buttons.<br>
|
||||
The table has following columns;
|
||||
<ul>
|
||||
<li>The first column is to specify the name of the logical volume.
|
||||
<li> The second column is filled automatically by choosing a
|
||||
<a href="./selectasolid.jpg">selectable G4Solid</a>. Focusing on it allows user
|
||||
to edit its parameters and preview with DAWN.
|
||||
<li> The third column is type-in cell for material name
|
||||
listed in the material editor. (drag and drop is planned)
|
||||
<li> The fourth column is to specify the visualization attribute's name
|
||||
</ul>
|
||||
<li><strong>"Make the used materials" </strong> button. <br>
|
||||
Clicking this button examins the materials specified in the logical volume table and marks "in Use" cell (the first one ) of the material
|
||||
tables accordingly. Note that only rows marked "in Use" are used
|
||||
to generate C++ codes.
|
||||
|
||||
</ol>
|
||||
<hr>
|
||||
<h3> Functionalities to define Physical volumes </h3><br>
|
||||
Compared with the logical volume editor, the physical volume one has limited
|
||||
generality. So, if user aren't satisfied with the following simplistic way
|
||||
to place logical volumes, he can use partially generated C++ codes for
|
||||
logical volumes etc..
|
||||
|
||||
<p>
|
||||
<strong> Constructors of G4PVPlacement</strong><br>
|
||||
Following four types of constructor are implemented, according to the type of
|
||||
rotation and type of the mother volume.
|
||||
<ol>
|
||||
<li> Type 1 constructor = rotation of the frame, physical mother volume
|
||||
<li> Type 2 constructor = rotation of a body, physical mother volume
|
||||
<li> Type 3 constructor = rotation of the frame, logical mother volume
|
||||
<li> Type 4 constructor = rotation of a body, logical mother volume
|
||||
</ol>
|
||||
|
||||
Following simple placements are provided in GGE.
|
||||
<ol>
|
||||
<li> <a href="./single.jpg"><strong>Single Positioned Volume</strong> </a>(SPV)<br>
|
||||
Each row represents a physical volume. The world volume must be
|
||||
defined in the first row of this table.
|
||||
<ol>
|
||||
<li> The first column specifies either body or frame rotation.
|
||||
<li> The second column specofies the instance's name of the physical volume
|
||||
<li> The third column specifies the name of the logical volume to be placed
|
||||
<li> The fourth column specifies the type of the mother volume.
|
||||
The mother volume is either
|
||||
null(Master Reference System), logical or physical.
|
||||
The MARS or the world volume must be specified at the first row.
|
||||
<li> The fifth column specifies the name of the mother volume, if it isn't NULL.
|
||||
<li> The columns 7, 8 and 9-th specify the translation
|
||||
in the X, Y or Z direction (default is no translation) with a selectable
|
||||
unit of length
|
||||
<li>The 11-th column specifies the axis of rotation (frame or body);
|
||||
rotation around X, Y or Z axis with an angle in the 12-th column
|
||||
</ol>
|
||||
|
||||
<li> <a href="./repeatedtrans.jpg"><strong>
|
||||
Repeated Translationally Positioned Volumes </strong></a> (RTPV Arrangement)
|
||||
of any number of copies of a logical volume with incremental copy numbers<br>
|
||||
Each row represent a physical volume.
|
||||
<ol>
|
||||
<li>The first to 4-th columns are same as above.
|
||||
<li>The columns 6, 7 and 8-th specify the position of the first copy
|
||||
<li> The 10-th column specifies the direction of placement; X, Y or Z direction
|
||||
<li> The 11-th column specifies the incremental step size
|
||||
<li> The last column specifies the number of copies
|
||||
</ol>
|
||||
|
||||
<li> <a href="./repeatedrotate.jpg">
|
||||
<strong>Repeated Rotationally Positioned Volumes;
|
||||
</strong> </a>axially symmetric arrangement of any number of copies of a logical volume with incremental copy numbers (RRPV Arrangement)<br>
|
||||
Each row represents a physical volume.
|
||||
<ol>
|
||||
<li> The columns "move", "pName", "pLogic", "MomType" and "pMother" are same as above.
|
||||
|
||||
<li>(X0, Y0, Z0) column specify the position of the center of an axial rotation
|
||||
<li>"Radius" column specifies a radius of axially symmetric arrangement
|
||||
<li>"RotAxis" column specifies the rotational axis ; X, Y or Z
|
||||
<li>"Phi_0" and "dPhi" column specify a starting angle and incremental step angle
|
||||
<li> The last column specifies the number of copies
|
||||
</ol>
|
||||
<li><strong> Replica in the X, Y or Z direction</strong>
|
||||
<li><strong>Replica in rho, phi or Z direction</strong>
|
||||
<ol>
|
||||
<li> width (in length or angle) and number of replicas
|
||||
<li> offset (in length or angle)
|
||||
<li> logical or physical mother volume
|
||||
</ol>
|
||||
</ol>
|
||||
Planned but
|
||||
not implemented yet are paremetrised volumes with linear scaling or linear rotation.
|
||||
|
||||
<hr>
|
||||
<h1>
|
||||
3) Generation of C++ code
|
||||
</h1>
|
||||
|
||||
<ul>
|
||||
<li>C++ code is output to a editor widget and can be saved.
|
||||
But edited file loses the persistency and
|
||||
looses correspondence with the tables contents.
|
||||
<li>The required and necessary header files are automatically included; solid types etc.
|
||||
<li>The order of creating instances is following;
|
||||
<ol>
|
||||
<li> G4Elements,
|
||||
<li> G4Material,
|
||||
<li> G4VisAttributes,
|
||||
<li> G4Solids,
|
||||
<li> G4LogicalVolume,
|
||||
<li> Single Positioned Volumes,
|
||||
<li> Repeated Volumes,
|
||||
<li> Replicas
|
||||
<li> return the instance name of the MARS
|
||||
</ol>
|
||||
Order of instantiation inside each section is decided by GGE user,
|
||||
except MARS
|
||||
</ul>
|
||||
|
||||
Here is a sample of automatically <a href="./skelton.html">generated C++ code</a>
|
||||
which is created from
|
||||
almost skelton tables.
|
||||
|
||||
<hr>
|
||||
<h3>
|
||||
3.1) Naming conventions in GGE
|
||||
</h3><p>
|
||||
Knowing GGE's naming convention is helpful to read the generated C++ code as
|
||||
well as using GGE correctly. Look at relevant Geant4 constructors will be very
|
||||
suggestive.
|
||||
|
||||
<ol>
|
||||
<li> Elements and materials
|
||||
<ol>
|
||||
<li> Elements are named "elementXXX", where XXX stands for the
|
||||
element's symbol in the periodic table.
|
||||
<li> materials are named just as you have typed in the second column
|
||||
of the material window.
|
||||
</ol>
|
||||
<li> solids and logical volumes<br>
|
||||
The "Name" typed in the first (leftmost) column of the "Logical Volume"
|
||||
is used to name the corresponding solid. If the name "world" is given
|
||||
to a logical volume of a Box, the G4Solid has an instance "solidworld".
|
||||
<li> logical and physical volumes<br>
|
||||
<ol>
|
||||
<li>The instance of a physical volume defined by "pName" has a name prefixed
|
||||
with "physical", i.,e., instance's name is "physical" + pName ( + =>
|
||||
string concatenation). "logical" is added to the instance of a logical
|
||||
volume.
|
||||
<li>In case of SPV (single positioned volume), the columns "pName" (instance of
|
||||
physical volume) and "pLogical" may have the same strings.
|
||||
<li>
|
||||
In case of RVA (repeated volumes arrangement), "pName" is different from
|
||||
"pLogical" whose copies are repeatedly placed.
|
||||
</ol>
|
||||
<li>All variables are named after their proper instances.
|
||||
See for example, the control variable used in the for loop in the
|
||||
RVA.
|
||||
<br>
|
||||
Another examples are arrays to define BREP geometry.
|
||||
</ol>
|
||||
<hr>
|
||||
<h3>
|
||||
3.2) Default values and combo-boxes
|
||||
</h3>
|
||||
<ol>
|
||||
<li> Default optional values of materials
|
||||
GGE provides default values in a pre-filled columns or with the
|
||||
combo-boxes. "Use", "State" and "Unit" columns are equipped with
|
||||
combo-boxes. Temperature and pressure column are pre-filled with
|
||||
273.15 * kelvin and 1 * atmosphere.
|
||||
<li> Default values in volumes
|
||||
"Mother Type" is either NULL (mother of all), logical (type 2, 4 constructors)
|
||||
or physical (type 2 or 4 constructors) in G4PVPlacement.
|
||||
</ol>
|
||||
|
||||
<hr>
|
||||
<hr>
|
||||
<hr>
|
||||
|
||||
|
||||
<font color=red> WARNING: Materials below are obsolete. Updating them
|
||||
in conjunction with MOMO is planned now
|
||||
in March 2003 </font>
|
||||
<p>
|
||||
<font color=orange>
|
||||
<pre>
|
||||
4) A First Lesson; how to use GGE.
|
||||
|
||||
Here is a walk-through of how to use GGE.
|
||||
|
||||
4.1) Visualize the prefabricated detector sample
|
||||
1) In a xterm, type %java gge
|
||||
2) In the "Volume window", select "Load a Volume file" menu
|
||||
and double click on "trumpetBREP.g4dt"
|
||||
3) Click "Makesource" and select "Make C++ code". Have a look of the generated C++ code.
|
||||
4) Save the C++ code (overwrite the existing one)
|
||||
in .../GGEmake/src/MyDetectorConstruction.cc" using the file chooser.
|
||||
5) In another xterm, go to the directory GGEmake/ and type
|
||||
%make G4TARGET=myGGEdetector
|
||||
|
||||
Watch if there is any compilation error. At present,
|
||||
GGE is made so that it generates correct C++ codes,
|
||||
if a user uses GGE correctly.
|
||||
|
||||
In the example of "trumpetBREP.g4dt", a few warnings are shown on BREP.
|
||||
6) Check that you have "myGGEdetector" executable, in $(G4INSTALL)/bin/$(G4SYSTEM)
|
||||
7) In another xterm, type
|
||||
%java gag
|
||||
|
||||
and with the "Run GEANT4" button, choose and run "myGGEdetector".
|
||||
8) Use /control/execute command and double click on "GGEdraw.g4m".
|
||||
To have a better view, use vis~ commands (camera/viewpoint, zoom etc).
|
||||
You can select DAWNFILE to draw and have a PS hardcopy.
|
||||
|
||||
4.2) Modify the prefabricated detector
|
||||
Now let's change the detector configuration. Go to the "Volume" window
|
||||
and change any part of it, including material.
|
||||
|
||||
4.2.1) Changing materials
|
||||
|
||||
1) First, you have to "Clear Material" in the Material editor.
|
||||
2) Then, select "Load material" and double click on "MaterialDB.g4mt".
|
||||
Now you have a list of materials.
|
||||
3) Then, in the "Logical Volume" panel, double click the box you want to change
|
||||
and type in the name of the material in the material editor.
|
||||
4) Change as many materials as you like and push "Used Material" button.
|
||||
You see that materials you have typed in are marked "Used" in red.
|
||||
If not, you might have mistyped the name of a material.
|
||||
5) If you want to use additional materials, select "Use" in the material
|
||||
editor (the leftmost column).
|
||||
6) Push "Makesource" and see your change has been realized in the C++ code.
|
||||
|
||||
NOTE!! Be careful that there are no duplicated "Used" materials, when
|
||||
you load the material DB without "Clear Material".
|
||||
|
||||
4.2.2) Modifying the size parameters of solids
|
||||
|
||||
To change the sizes of G4 solids
|
||||
1) click a "solid" box of the logical volume of your choice.
|
||||
2) You have a pop-up window to edit the parameters. Change a parameter
|
||||
or its unit, as you like.
|
||||
3) Push "Makesource" and see if your changes have been correctly applied
|
||||
to C++ code.
|
||||
4) In case of BREP solids, the pop-up window has variable number of columns
|
||||
to accept any number of nodes.
|
||||
5) For complicated solids like BREPs, preview may be useful. Click "View"
|
||||
button and you have a view with the DAWN renderer. Its g4.prim file
|
||||
is also shown in an edit-able widget.
|
||||
|
||||
4.2.3) Changing the type of solid of an existing logical volume
|
||||
You may want to replace the current G4Solid with another one. In the
|
||||
present GGE you can't do so directly. You have to "Create" a new logical
|
||||
volume with the type of solid you want and then delete the unnecessary volume.
|
||||
|
||||
1) Choose your new solid with "Select Solid" combo-box.
|
||||
2) Push "Create" button and you have a pop-up window to input parameters.
|
||||
3) Type in numbers and select their units.
|
||||
4) Preview if you like and then push "OK".
|
||||
5) Check the C++ code.
|
||||
|
||||
4.2.4) Changing visualization attributes (Color).
|
||||
1) You have to "Create" a new VisAttributes
|
||||
2) Upon the "Create" button, you have a Color Chooser.
|
||||
3) Select RGB (not HSV). Set your color with slide-bars.
|
||||
4) Give it a name, and push "OK". Then you have a color circle and name in the
|
||||
VisAttrib panel.
|
||||
5) Edit the VisAtb box in the LogicalVolume panel.
|
||||
6) See the C++ code.
|
||||
|
||||
4.2.5) Changing Repeated Volumes
|
||||
|
||||
|
||||
|
||||
|
||||
"exampleN01.g4dt" contains three "single positioned volumes"
|
||||
and one "repeated volumes" in the X direction.
|
||||
Change the parameter of repetition such as the number
|
||||
or width, or you can add another "repeated volumes"
|
||||
in another direction.
|
||||
|
||||
In "trumpetBREP.g4dt" you can edit BREPs, adding new faces etc..
|
||||
|
||||
b) making C++ code "MyDetectorConstruction.cc" and compile.
|
||||
|
||||
Finally, back to the step 3 and recompile.
|
||||
|
||||
|
||||
Opening GGE, compile, GAG simultaneously, you can
|
||||
test and improve the geometry, just like creating
|
||||
HTML or TeX documents.
|
||||
|
||||
|
||||
2.4) GGEmake; a directory containing the GEANT4 codes to compile and visualize the detector
|
||||
a) implemented
|
||||
+ GNUmakefile
|
||||
+ myDetector.cc ; main() with GAG session and visualization manager
|
||||
+ src/ directory contains
|
||||
+ MyDetectorConstruction.cc
|
||||
+ MyPhysicsList.cc
|
||||
+ MyPrimaryGeneratorAction.cc
|
||||
+ MyVisManager.cc
|
||||
+ include/ directory
|
||||
|
||||
2.5) compile and visualize with Momo and GAG
|
||||
|
||||
a) implemented
|
||||
|
||||
+ canonical scheme of GEANT4 to compile
|
||||
+ make G4TARGET=myDetector
|
||||
+ the binary is created as $G4INSTALL/bin/G4SYSTEM/myDetector
|
||||
|
||||
+ Momo (GAG, Compile and GGE buttons)
|
||||
+ rapid cycling of GGE and GAG to edit and view the geometry
|
||||
+ a macro file for visualization (OGLIX default) "DrawDAWN.g4m", etc..
|
||||
|
||||
b) not implemented
|
||||
- automatic "calibration" of the detector with geantino
|
||||
|
||||
2.6) exemplary persistent detector files with *.g4dt suffix
|
||||
+ 3D array of lead plates using translational RVArrangement
|
||||
+ BREP Pcones trumpetss using axially symmetric RVArrangement
|
||||
+ Replicas to form cylinders
|
||||
|
||||
-------------------------------------------------------------------------
|
||||
</pre>
|
||||
</font>
|
||||
<hr>
|
||||
<hr>
|
||||
<hr>
|
||||
|
||||
<font color=red> !!!!!OBSOLETE!!!!!
|
||||
|
||||
<p>
|
||||
|
||||
<pre>
|
||||
3) Installation
|
||||
|
||||
The minimum set to get C++ source code
|
||||
1) GGE.jar file
|
||||
2) Java interpreter ; java
|
||||
Additional set to compile
|
||||
3) GEANT4 toolkit with compiled libraries
|
||||
4) GGEmake directory
|
||||
Additional set to visualise and use GUI
|
||||
4) DAWN (plus Ghostview) or OGLIX or VRML
|
||||
5) GAG (Java version) or GAG.jar file
|
||||
Additional too to make life easy
|
||||
6) Momo to use all the above ingredients; Momo.jar file
|
||||
(without Momo, you have to invoke GGE, compile and GAG respectively in windows.)
|
||||
|
||||
3.1) Java and Swing
|
||||
We have tested GGE on Unix-en (Linux and Solaris) and Windows (95/NT).
|
||||
|
||||
3.1.1) Unix:
|
||||
|
||||
+ Linux: jdk1.1.3 or later(i.,e., jdk-1.1.6) + Swing-1.0.2
|
||||
1) jdk1.1.5 may have bugs, while jdk1.1.6 works
|
||||
2) GGE co-works with Swing-1.0.2 and not with 1.0.1 (or maybe not
|
||||
with 1.0.3).
|
||||
3) we are testing the current GGE with JRE1.2-beta04. The present source can be
|
||||
compiled but doesn't execute correctly. In any case
|
||||
Sun has announced on 17 August that JDK1.2 will be delayed
|
||||
till November!!
|
||||
+ Solaris: jdk1.1.6 + swing-1.0.2
|
||||
|
||||
|
||||
We assume that you have
|
||||
1)jdk1.1.6/bin/java (Java interpreter) to which paths are set
|
||||
2)Swing-1.0.2 which is defreezed and placed in $HOME/swing/swingall.jar
|
||||
|
||||
3.1.2) Windows:
|
||||
|
||||
We use JBuilder2 with Swing-1.0.2. Note that you have to
|
||||
eliminate all other libraries than swing-1.0.2, after having
|
||||
copied it into JBuilder2.
|
||||
|
||||
We are trying JDK1.2beta4 + JRE1.2 with JBuilder2.
|
||||
|
||||
NOTE! At present we have not Momo/GAG for Windows. So,
|
||||
you can only create C++ code under the Windows.
|
||||
|
||||
3.2) GGE and related files
|
||||
The latest product of GGE is that of Sep. 24.
|
||||
All *.java, *.class and GGE.jar files are placed in
|
||||
geant4beta/environments/Momo/java/Momo/GGE
|
||||
|
||||
Only "GGE.jar" file is necessary to run GGE.
|
||||
|
||||
GGE/*.java GGE source files
|
||||
GGE/*.class GGE byte code files
|
||||
GGE/GGE.jar jar archive file to which CLASSPATH must be set
|
||||
GGE/*.g4mt material database after PDG data
|
||||
GGE/*.g4dt exampleN0x detector file
|
||||
C++ source codes and GNUmakefiles to compile with GEANT4 are placed in
|
||||
geant4beta/environments/Momo/GGEmake.
|
||||
|
||||
Only geantino is instantiated in the initialization of GEANT4, so that it is quite
|
||||
rapid to have a visualization of the geometry. You can choose DAWN, OpenGL or VRML system.
|
||||
|
||||
GGEmake/myGGEdetector.cc main() program
|
||||
/GNUmakefile
|
||||
/src
|
||||
/src/MyDetectorConstruction.cc C++ generated by GGE
|
||||
/src/MyPrimaryGeneratorAction.cc geantino gun
|
||||
/src/MyVisManager.cc DAWN, DAWNFILE, OGLIX, OGLSX, VRML1, VRML1FILE
|
||||
/src/MyPhysicsList.cc geantino definition
|
||||
/include/*.hh
|
||||
/GGEdraw.g4m default macro file to visualize with OGLIX
|
||||
|
||||
3.3) install, setenv and run
|
||||
|
||||
%set path=($path jdk1.1.6/bin) <=== add the path to java and javac
|
||||
%setenv CLASSPATH .:$HOME/swing/swingall.jar:$HOME/geant4beta/environments/Momo/java/Momo/GGE/GGE.jar
|
||||
|
||||
|
||||
Then in any directory, you can invoke GGE.
|
||||
|
||||
%java gge
|
||||
|
||||
|
||||
3.4) DAWN, Tcl/Tk and Postscript for the preview of CSG or BREP solids
|
||||
If you don't use GGE's preview button, these are not necessary.
|
||||
|
||||
If you want to preview G4Solids, you have to install
|
||||
DAWN, Fukui renderer as well as Tcl/Tk wish (Tcl/Tk 8.0) for its GUI.
|
||||
DAWN uses also Postscript to draw *.prim files.
|
||||
|
||||
For the visualization of the whole detector, DAWN or Mesa (for OGLIX)
|
||||
are necessary.
|
||||
|
||||
3.5) GEANT4 toolkit and its environments
|
||||
The visualization manager instantiates DAWN, DAWNFILE, OPENGLIX,
|
||||
OPENGLSX, VRML, VRMLFILE. So, you have to setenv accordingly.
|
||||
|
||||
|
||||
</pre>
|
||||
</font>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,129 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>Gain; how to use it with Geant4</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1> How to use Gain</h1>
|
||||
<hr>
|
||||
<h3>What is Gain?</h3><p>
|
||||
Gain(Geant4 adaptive interface for network) is a networked GUI tool based on GAG.
|
||||
It inherits almost all features of GAG and has new features to
|
||||
make use of Geant4 running at (a) remote machine(s).
|
||||
<p>
|
||||
Gain runs on a client machine (Windows or Linux),
|
||||
while Geant4 runs on a remote or local server (Linux or Solaris).
|
||||
<p>
|
||||
|
||||
It provides two ways to connect to the remote server; SSH mode and Gain socket mode.
|
||||
|
||||
<dl>
|
||||
<dt> <strong>Gain SSH mode</strong>
|
||||
<dl> Gain has a SSH client fuction and use it to connect to a remote server. Geant4 compiled with G4UIGAG class
|
||||
can be connected to Gain client. When a SSH connection is established after the authentication,
|
||||
Gain displays the
|
||||
remote file browser with which user can choose a Geant4 executable and make it run.
|
||||
Data are encrypted during their transfer and are decripted at both side. So, some CPU
|
||||
power is required for a client machine, if a large amount of data are transfered from
|
||||
the running Geant4 to Gain. <br> Output from the remote Geant4 are
|
||||
displayed <a href="./Gainjpeg/gainconsole.jpg">on the Gain console.</a>
|
||||
This console can be used as a normal
|
||||
SSH console and you can type in command directly.<br>
|
||||
Pluriel remote sessions can be accepted, each displayed in a separate
|
||||
tabbed pane. A console is attached to each pane/session.
|
||||
<dt> <strong>Gain socket mode</strong>
|
||||
<dl> Gain uses its own way of connecting to a remote server. Remote Geant4 must be compiled with
|
||||
G4UIGainServer class which is distributed in the standard Geant4 package. In this mode, user has to
|
||||
make a Geant4 executable run on the remote server, after having logged in to the remote
|
||||
machine. G4UIGainServer acts as a network server
|
||||
and tells the number of port available for the Gain client. Gain client, after specifying the server and port
|
||||
number, is allowed to connect to the Geant4. Geant4 output
|
||||
</dl>
|
||||
|
||||
<hr>
|
||||
<h3>How to use Gain</h3>
|
||||
<p>
|
||||
The figure shows a scene when Gain is running in
|
||||
<a href="./Gainjpeg/GainSnap.jpg">Gain socket mode</a>.
|
||||
<p>
|
||||
In this example,
|
||||
two tabbed panes are displayed to run remote Geant4s running on different servers.
|
||||
|
||||
|
||||
<ol>
|
||||
<li>
|
||||
Gain is started on the <a href="./Gainjpeg/cygwin.jpg">Cygwin console</a>. Gain can be started with
|
||||
Java Web Start.
|
||||
|
||||
<li>
|
||||
<a href="./Gainjpeg/gainInit.jpg">Top menu</a> to connect to a server or close (kill) the running G4ant4 or finish Gain.
|
||||
|
||||
|
||||
<li> The window to
|
||||
<a href="./Gainjpeg/selectInterface.jpg">choose SSh or Gain socket</a>; now SSHINTERFACE is focused
|
||||
|
||||
<li>After typing in the remote host name,
|
||||
<a href="./Gainjpeg/sshlogin.jpg">SSH login window</a> is shown.
|
||||
|
||||
<li>
|
||||
When SSH login is accepted, Gain shows the
|
||||
<a href="./Gainjpeg/filechooser.jpg"> remore File Chooser</a>. Geant4 with G4UIGAG interface can be started
|
||||
from this chooser.
|
||||
|
||||
<li> When Geant4 is started,
|
||||
<a href="./Gainjpeg/startup.jpg">Geant4 initialisation output are shown on the cygwin console</a>.
|
||||
|
||||
|
||||
|
||||
|
||||
<li> After the initialisation phase,
|
||||
<a href="./Gainjpeg/startuptree.jpg"> command tree window</a> is available on Gain.
|
||||
|
||||
<li> Then, the Gain console is shown below the command tree window.
|
||||
See <a href="./Gainjpeg/gainconsole.jpg"> the hardcopy </a>
|
||||
of the whole Gain window.
|
||||
This console is the SSH console, so that you can type in Geant4 commands
|
||||
in stead of selecting them in the above command panel.
|
||||
<br>
|
||||
You can shrink the console by single click on the triangle at the left
|
||||
border.
|
||||
|
||||
<li>
|
||||
<a href="./Gainjpeg/exit.jpg">Two ways of ending Geant4 execution are provided. </a>
|
||||
The command tree provides "exit" command which is just the "exit" of Geant4. On the top
|
||||
menu, "Close one" menu is to send CTRL + C to the running Geant4 process. It can be sent at any
|
||||
moment.
|
||||
|
||||
</ol>
|
||||
<hr>
|
||||
<h3>Notices on Gain console</h3><br>
|
||||
<ul>
|
||||
<li> At present, Gain's console displays ecerything G4cout from Geant4
|
||||
with G4UIGAG interface. So, strings employed for Gain protocols are
|
||||
displayed. Please ignore lines starting with @@.
|
||||
<li> Gain console demands heavy Windows (X or Windows) power.
|
||||
So, with old graphic accelerators like S3 etc. which are yet common
|
||||
on Linux platforms, speed of console may be very slow. In such cases,
|
||||
shrinking the console pane is a good way to speed up the execution.
|
||||
<li> We have tested Gain over the Internet for a session of more than 24 hours.
|
||||
On Windows XP, We observed some curious deformed tree icons during the session,
|
||||
but the functions were correct and they became normal after some elapsed time.
|
||||
<br>
|
||||
Here is the <a href="./Gainjpeg/gainconsoleAday.jpg">copy of the long run.</a>
|
||||
<li> The console provides a session of G4UIterminal, and NOT G4UItcsh, at present.
|
||||
<li>If you type "exit" on the console, the execution of Geant4 is stopped.
|
||||
The console is yet a usual ssh console, while the upper windows for
|
||||
the command tree is losing connection to Geant4. If you type in "exit" on the
|
||||
console, it end the ssh session and the whole Gain will be destroyed.
|
||||
</ul>
|
||||
<hr>
|
||||
<h3> <a href="./techManual/index.html">Inside Gain</a></h3><br>
|
||||
In this manual, Gain and RGAG are described. But in the final
|
||||
form, they were merged and Gain is the name for it.
|
||||
"RGAG" represents the SSH mode of Gain now, while "Gain"
|
||||
in the avobe manual represents the
|
||||
own socket mode of the present Gain.
|
||||
<address>
|
||||
<a href="mailto:yoshidah@naruto-u.ac.jp">yoshida</a>
|
||||
</address>
|
||||
</body>
|
||||
</html>
|
||||
Executable
+2336
File diff suppressed because it is too large
Load Diff
@@ -1,17 +0,0 @@
|
||||
<HTML>
|
||||
MOMO known problems
|
||||
<OL>
|
||||
<LI> Electro-magnetic physics list displays "rho-zero" which
|
||||
has been removed from the stable particle list since Geant4.3.<br>
|
||||
===> <font color=red> Corrected 2002 May 21 </Font>
|
||||
|
||||
|
||||
<LI> A set of the minimum set of Geant4 canonical classes is lacking.
|
||||
This will be available soon.
|
||||
<LI> "Compile" menu button doesn't work, even though the makefile "Momomake.gmk" is correctly created, reflecting your environment variables.
|
||||
Please make -f Momomake.gmk in the directory where your G4TARGET main class
|
||||
is stored.
|
||||
</OL>
|
||||
|
||||
</HTML>
|
||||
|
||||
@@ -1,206 +0,0 @@
|
||||
<html>
|
||||
<head>
|
||||
<title>How to Gain</title>
|
||||
</head>
|
||||
|
||||
<h2>How to use the GainServer interface class and Gain client GUI</h2>
|
||||
<hr>
|
||||
<pre>
|
||||
|
||||
version 0.9, May 31 2002
|
||||
revised for Geant4.4.1 release, July 03
|
||||
revised 17 January 2003
|
||||
|
||||
H. Yoshida, H. Minamimoto
|
||||
Naruto University of Education
|
||||
|
||||
A) Features of GainServer class and its client partner "Gain"
|
||||
|
||||
This new class belongs to the "interfaces" category and provides
|
||||
a user interface using socket connection with a remote client GUI Gain.
|
||||
The new client Gain is quite similar with GAG in that it provides the
|
||||
fully graphical user interface to steer execution of the Geant4 simulation.
|
||||
|
||||
The new features using a socket connection are as follows;
|
||||
|
||||
1) GainServer uses TCP/IP socket to communicate with the
|
||||
client GUI tool Gain.
|
||||
In general, a server may be decoupled from the terminal
|
||||
(or the control terminal) on which it was invoked and run
|
||||
as a daemon (daemon mode).
|
||||
The present Gain server class doesn't behave as a daemon, but
|
||||
it requires the control terminal on which the Geant4 application
|
||||
has been invoked and is coupled as long as
|
||||
it is running (terminal mode).
|
||||
|
||||
In the terminal mode, all outputs from G4cout and G4cerr are
|
||||
sent to the client by default and can be displayed
|
||||
on the client remote terminal.
|
||||
|
||||
If you want to run Geant4 simulation even after having logged out,
|
||||
the shell command "nohup" can be used (Linux and Solaris).
|
||||
You have to run a Geant4 application like;
|
||||
|
||||
%nohup $G4WORKDIR/exampleN02 > exampleN02 &
|
||||
|
||||
and then log out.
|
||||
|
||||
%exit
|
||||
|
||||
|
||||
2) The partner client GUI software is "Gain" which runs
|
||||
on any platform running Java Virtual Machine, i.e.,
|
||||
Windows, Linux etc.. Gain can be invoked from the
|
||||
command line (pseudo-terminal in the X windows or
|
||||
cygwin in Windows) or newly can be invoked directly from
|
||||
the Web browser like Netscape/Mozilla and Internet Explorer,
|
||||
when they are equipped with the plugin software "Java Web Start".
|
||||
This new facility will be explained in the later sections.
|
||||
|
||||
B) Making the library
|
||||
G4UIGainServer is a part of Geant4 distribution since Grant-4.4 or Geant-5.0.
|
||||
GainServer class uses the standard socket implementation which is
|
||||
usually found in the platforms like Solaris or Linux. It is tested against
|
||||
G4SYSTEM=SUN-CC and Linux-g++ and WIN32-g++(Cygwin).
|
||||
|
||||
This new class depends on no external libraries (except the default system
|
||||
libraries) so that no new environment variables G4UI_BUILD_XX is required.
|
||||
GainServer.cc/hh files are located in source/interfaces/GAG and the
|
||||
corresponding library is archived in the libG4UIGAG.a(so).
|
||||
|
||||
It is simple to make the library.
|
||||
|
||||
1. go to the directory "interfaces/GAG".
|
||||
2. make (or gmake)
|
||||
3. and you will have a libG4UIGAG.a (so)
|
||||
|
||||
|
||||
C) How to use GainServer in your application
|
||||
The way how to use it completely similar to G4UIterminal or G4UIGAG class.
|
||||
|
||||
In your main program
|
||||
|
||||
1. include the header file
|
||||
#include "G4UIGainServer.hh"
|
||||
2. instantiate the session and run
|
||||
G4UIsession* session = new G4UIGainServer();
|
||||
session->SessionStart();
|
||||
delete session;
|
||||
|
||||
Your application can be compiled just like the ones using G4UIterminal
|
||||
or G4UIGAG interface classes. No new environment variables are required
|
||||
to use this new class.
|
||||
|
||||
D) How to get and run the Gain client
|
||||
|
||||
GainServer must communicate with its partner GUI Gain. Gain is
|
||||
written in Java and Gain is distributed in two compiled forms.
|
||||
In any forms, you have to install Java, i.e., j2sdk.
|
||||
(See www.javasoft.com)
|
||||
|
||||
1. command line mode
|
||||
One form is the common jar (Java archive) format; Gain.jar which
|
||||
is provided at http://erpc1.naruto-u.ac.jp/~geant4/Sources.html.
|
||||
To run it, you have to invoke Java Virtual Machine on your terminal;
|
||||
% java -cp foobar/Gain.jar Gain
|
||||
where foobar is the directory containing Gain.jar file.
|
||||
On Windowz, use cygwin for the terminal.
|
||||
|
||||
2. Web Start mode
|
||||
Another form is easier to use, once all set-up steps have been
|
||||
completed. In this mode, Gain can be invoked by a simple mouse click
|
||||
on the link in the Web page, which is provided by the Geant4
|
||||
developer.
|
||||
|
||||
1. You connect to the Java site and install "Web Start" in your
|
||||
PC, following the instructions. If you are using Mozilla/Netscape,
|
||||
you have to add a new MIME type (JNLP) to your list of "Helper
|
||||
programs".
|
||||
2. Try if the examples associated with the Java Web Start kit
|
||||
run correctly. Note that applications which
|
||||
requires file I/O on your system asks you to go out of the
|
||||
"sandbox" environment (three times on Windows).
|
||||
This execution of Java applications including local I/O operation
|
||||
is only allowed by your permission. To get your permission,
|
||||
demos provided by Java Soft are digitally signed.
|
||||
3. Then connect to http://erpc1.naruto-u.ac.jp/~geant4/Sources.html
|
||||
and run Gain. It is digitally signed by the Geant4 developer
|
||||
at Naruto University of Education.
|
||||
|
||||
On Windows, you may have the icon for "Java Web Start Manager" in which
|
||||
Gain will be listed as one of the verified applications. Then, you can
|
||||
use Gain directly from Java Web Start without the Internet connection.
|
||||
|
||||
The Manager also provides a focility to log the output from the
|
||||
application. It will be helpful to see runtime warnings or error
|
||||
messages as well as to see the G4cout of the Geant4 application.
|
||||
|
||||
E) What you can do with Gain
|
||||
Gain has a graphical interface quite similar to that of GAG.
|
||||
In addition, it provides a function to connect pluriel remote GainServers
|
||||
simultaneously. Each connection has an independent GUI window in Gain
|
||||
so that you can run several Geant4 applications on different remote sites
|
||||
and run them simultaneously with the help of Gain which is running on your PC.
|
||||
|
||||
Gain and GainServers can run on the same host (localhost). The free ports are
|
||||
allocated automatically to respective GainServer.
|
||||
|
||||
E) How to run GainServer ans Gain together
|
||||
|
||||
As stated above, the present implementation of GainServer doesn't run in the
|
||||
daemon mode. So, you have to keep your terminal session as long as your
|
||||
application is running.
|
||||
|
||||
The steps are as follows;
|
||||
|
||||
1. login to the remote host(s) on which you are going to run your
|
||||
Geant4 application(s)
|
||||
2. run your application. GainServer displays the message;
|
||||
"GainServer waiting at port 40000"
|
||||
The port number starting from 40000 is automatically allocated to
|
||||
your application(s). This port number is used to connect Gain
|
||||
client to the server.
|
||||
If you run another Geant4 application on the same remote machine,
|
||||
another port number is automatically allocated and displayed.
|
||||
|
||||
3. run Gain client on your PC. The upper left menu urges you to
|
||||
type in the port number and host name. Select "localhost", if
|
||||
GainServer is running on your PC.
|
||||
|
||||
When connection is established, you will have the commands tree
|
||||
and parameter window just like those of GAG.
|
||||
|
||||
If you connect to another Geant4 application, another tabbed pane
|
||||
is created to manage that connection.
|
||||
|
||||
4. You can disconnect one or all connections. By this disconnection,
|
||||
corresponding Geant4 applications exit using a gentle exit command
|
||||
of Geant4, so that normal exitng procedures of Geant4 is performed.
|
||||
|
||||
F) How to use VRML viewer together with Gain (Under test)
|
||||
A prototype implementation of Gain is available (2002 end July)
|
||||
which incorporates Geant4's vrmlview.
|
||||
You can use VRML viewer to visualize the geometry and events.
|
||||
Thus, you can use and run Geant4 on your PC running Java (i.e., Windows,
|
||||
Linux, Solaris, MacOSX etc.) with Gain to control the execution and
|
||||
with your VRML viewer of your choice to visualize, while your simulation
|
||||
is being executed on a remote compute server (maybe with bad Java support).
|
||||
|
||||
|
||||
</pre>
|
||||
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
+47
-1
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.84 2004/06/23 16:15:45 gcosmo Exp $
|
||||
$Id: History,v 1.91 2004/12/16 19:01:04 gcosmo Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,52 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
16th December 2004 Gabriele Cosmo (examples-V06-02-06)
|
||||
- Updated reference outputs according to reference tag geant4-07-00-ref-00
|
||||
- Includes tags: air_shower-V06-02-02, brachy-V06-02-01, ccal-V06-02-02,
|
||||
cosmicray_charging-V06-02-03, gammaraytel-V06-02-01, hadrontherapy-V06-02-01,
|
||||
lAr_calorimeter-V06-02-02, medical_linac-V06-02-00, purtag-V06-02-01,
|
||||
radioprotection-V06-02-00, Rich-V06-02-02, Tiara-V06-02-02, DMX-V06-02-02,
|
||||
XrayFluo-V06-02-01, exampleA01-V06-02-03, testem1-V06-02-07,
|
||||
testem2-V06-02-05, testem3-V06-02-06, exgps-V06-02-01, fieldex-V06-02-00,
|
||||
exgdml-V06-02-00, DICOM-V06-02-02, gtherapy-V06-02-07, exparallel-V06-02-00,
|
||||
exrdm-V06-02-02, exampleRE01-V06-02-02, exampleN04-V06-02-03,
|
||||
exampleN05-V06-02-02.
|
||||
|
||||
26th November 2004 Gabriele Cosmo (examples-V06-02-05)
|
||||
- Updated reference outputs according to reference tag geant4-06-02-ref-05
|
||||
- Includes tags: muonprocesses-V06-02-07, testem1-V06-02-05, testem5-V06-02-05,
|
||||
exgps-V06-02-00, exrdm-V06-02-00, exampleN03-V06-02-00,
|
||||
exampleN07-V06-02-00.
|
||||
|
||||
29th October 2004 Gabriele Cosmo (examples-V06-02-04)
|
||||
- Updated reference outputs according to reference tag geant4-06-02-ref-04
|
||||
- Includes tags: muonprocesses-V06-02-05, photonprocesses-V06-02-02,
|
||||
testem3-V06-02-02, testem7-V06-02-03, exampleN05-V06-02-00.
|
||||
|
||||
25th October 2004 Sergei Sadilov (examples-V06-02-03)
|
||||
- Tag for 6.2.patch-02. Updated reference outputs.
|
||||
|
||||
29th September 2004 Gabriele Cosmo (examples-V06-02-02)
|
||||
- Updated reference outputs according to reference tag geant4-06-02-ref-03.
|
||||
- Includes tags: cosmicray_charging-V06-02-01, muonprocesses-V06-02-03,
|
||||
photonprocesses-V06-02-01, testem1-V06-02-03,
|
||||
testem2-V06-02-01, testem4-V06-02-00, testem5-V06-02-04,
|
||||
testem6-V06-02-00, testem10-V06-02-00, fieldex01-V06-02-00,
|
||||
fieldex02-V06-02-00, fieldex03-V06-02-00, gtherapy-V06-02-01,
|
||||
LXe-V06-02-00, exampleN02-V06-02-01.
|
||||
|
||||
27th August 2004 Gabriele Cosmo (examples-V06-02-01)
|
||||
- Updated reference outputs according to reference tag geant4-06-02-ref-02.
|
||||
- Includes tags: testem1-V06-02-01, testem5-V06-02-00, testem7-V06-02-02.
|
||||
|
||||
28th July 2004 Gabriele Cosmo (examples-V06-02-00)
|
||||
- Updated reference outputs according to reference tag geant4-06-02-ref-01.
|
||||
- Includes tags: ccal-V06-02-00, lAr_calorimeter-V06-02-00, Rich-V06-02-00,
|
||||
xraytel-V06-02-00, exampleA01-V06-02-00,
|
||||
muonprocesses-V06-02-00, photonprocesses-V06-02-00,
|
||||
testem3-V06-02-00, testem7-V06-02-00, olapex-V06-02-00.
|
||||
|
||||
24th June 2004 Gabriele Cosmo (examples-V06-01-02)
|
||||
- Updated reference outputs according to reference tag geant4-06-02-ref-00.
|
||||
- Includes tags: cosmicray_charging-V06-01-02, GammaRayTel-V06-01-01,
|
||||
|
||||
+27
-6
@@ -1,4 +1,4 @@
|
||||
$Id: README,v 1.5 2003/06/06 14:56:31 gcosmo Exp $
|
||||
$Id: README,v 1.6 2004/09/29 10:00:30 gcosmo Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -71,6 +71,10 @@ Extended level examples
|
||||
geometry
|
||||
- Specific geometry examples and tools: binding to CAD systems,
|
||||
OLAP tool for detection of overlapping geometries
|
||||
medical
|
||||
- Specific examples for medical physics applications
|
||||
optical
|
||||
- Examples of generic optical processes simulation setups
|
||||
parallel
|
||||
- Examples of event-level parallelism in Geant4 using the
|
||||
TOP-C distribution
|
||||
@@ -82,18 +86,35 @@ Advanced level examples
|
||||
- Setup for brachytherapy Ir-192 HDR source
|
||||
composite_calorimeter
|
||||
- Test-beam simulation used in CMS against real data taken
|
||||
in 1996 in a CMS Hadron calorimeter test-beam at LHC.
|
||||
in 1996 in a CMS Hadron calorimeter test-beam at LHC
|
||||
cosmicray_charging
|
||||
- Simulation of electrostatic charging in the LISA mission by
|
||||
galactic cosmic ray protons and helium nuclei
|
||||
gammaray_telescope
|
||||
- Simulation of a typical telescope for gamma ray analysis
|
||||
hadrontherapy
|
||||
- Simulation of a hadron therapy beam line
|
||||
lAr_calorimeter
|
||||
- Simulation of the Liquid Argon Calorimeter of the ATLAS
|
||||
Detector at LHC.
|
||||
Detector at LHC
|
||||
medical_linac
|
||||
- Simulation of energy deposit in a Phantom filled with water
|
||||
for a typical linac used for intensity modulated radiation therapy
|
||||
purging_magnet
|
||||
- Simulation of electrons traveling through a 3D magnetic field of a
|
||||
strong purging magnet used for treatment head in a medical environment
|
||||
radioprotection
|
||||
- Application for the evaluation of dose in astronauts, vehicle concepts
|
||||
and Moon surface habitat configurations, in a space radiation environment
|
||||
Rich
|
||||
- Rich Test Beam Simulation.
|
||||
- Rich Test Beam Simulation
|
||||
Tiara
|
||||
- Simulation of the TIARA experiment using importance sampling
|
||||
underground_physics
|
||||
- Setup of an underground dark matter experiment.
|
||||
- Setup of an underground dark matter experiment
|
||||
xray_fluorescence
|
||||
- Test beam to characterize the response function of an
|
||||
HPGe detector used to measure fluorescence emissions.
|
||||
HPGe detector used to measure fluorescence emissions
|
||||
xray_telescope
|
||||
- Realistic simulation of an X-ray Telescope
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
-------------------------------------------------------------------
|
||||
$Id: History,v 1.3 2004/05/28 11:19:18 ribon Exp $
|
||||
$Id: History,v 1.6 2004/12/02 10:58:10 ribon Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -9,6 +9,16 @@ $Id: History,v 1.3 2004/05/28 11:19:18 ribon Exp $
|
||||
Category History file
|
||||
---------------------
|
||||
|
||||
02.12.2004 - A.Ribon (Rich-V06-02-02)
|
||||
Interface change to the class G4VParticleChange.
|
||||
|
||||
29.11.2004 - A.Ribon (Rich-V06-02-01)
|
||||
Migration to cmath.
|
||||
|
||||
15.07.2004 - J.Allison, tag Rich-V06-02-00
|
||||
Changed /vis/viewer/viewpointThetaPhi ->
|
||||
/vis/viewer/set/viewpointThetaPhi.
|
||||
|
||||
18.05.2004 - A.Ribon (Rich-V06-01-00)
|
||||
Ported to PI light. No changes of the code.
|
||||
|
||||
|
||||
@@ -36,7 +36,7 @@ extern void InitializeRichTbGeometry();
|
||||
extern G4double GetCurAerogelLength(G4int);
|
||||
//
|
||||
//
|
||||
static const G4double sqroot3=pow(3.0,0.5);
|
||||
static const G4double sqroot3=std::pow(3.0,0.5);
|
||||
|
||||
//Size of the LHCb Rich Testbeam Hall.
|
||||
static const G4double ExpHallHalfX=4000.0*mm;
|
||||
@@ -235,7 +235,7 @@ static const G4double HpdPhCathodeStartPhi=0.0*rad;
|
||||
// Z locations of the various parts.
|
||||
static const G4double HpdQuartzPartFromEndZ=4.0*mm;
|
||||
//static const G4double HpdEnvelopePartFromEndZ=18.0*mm;
|
||||
// The following obtained by requiring 100-sqrt(100*100-63.5*63.5)=22.75
|
||||
// The following obtained by requiring 100-std::sqrt(100*100-63.5*63.5)=22.75
|
||||
// for the quartz region in Z. The total is 22.75+4+4=30.75.
|
||||
static const G4double HpdEnvelopePartFromEndZ=30.75*mm;
|
||||
static const G4double HpdPhotoCathodeSiZdist=100.0*mm;
|
||||
@@ -250,12 +250,12 @@ static const G4int NumberOfSiDetSectors=16;
|
||||
static const G4double SiSectAngSize=(22.5*pi/180)*rad;
|
||||
static const G4double SiSectAngHalfSize=SiSectAngSize/2.0;
|
||||
static const G4double SiSectHeight=25.0*mm;
|
||||
static const G4double SiSectSide= SiSectHeight/cos(SiSectAngHalfSize);
|
||||
static const G4double SiSectSide= SiSectHeight/std::cos(SiSectAngHalfSize);
|
||||
static const G4double SiSectHalfMoonGap=0.0*mm;
|
||||
static const G4double SiSectTrapHalfY1=0.15*mm; // halfthickness of Si.
|
||||
static const G4double SiSectTrapHalfY2= SiSectTrapHalfY1;
|
||||
static const G4double SiSectTrapHalfX1=0.0001*mm;
|
||||
static const G4double SiSectTrapHalfX2 = SiSectHeight*tan(SiSectAngHalfSize);
|
||||
static const G4double SiSectTrapHalfX2 = SiSectHeight*std::tan(SiSectAngHalfSize);
|
||||
static const G4double SiSectTrapHalfZ = SiSectHeight/2.0 ;
|
||||
static const G4double SiSectRotX=(90*pi/180)*rad;
|
||||
static const G4double SiSectAngStart=(pi/2.0)*rad-SiSectAngSize/2.0;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: run1.mac,v 1.2 2003/06/12 08:50:50 pmendez Exp $
|
||||
# $Id: run1.mac,v 1.3 2004/07/15 19:10:02 johna Exp $
|
||||
#
|
||||
# Macro file for "LHCbRichSim.cc"
|
||||
#
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
/vis/viewer/update
|
||||
|
||||
/vis/viewer/viewpointThetaPhi -90. -90.
|
||||
/vis/viewer/set/viewpointThetaPhi -90. -90.
|
||||
/hits/list
|
||||
/hits/activate
|
||||
/hits/verbose 4
|
||||
|
||||
@@ -102,8 +102,8 @@ G4double FilterTrData::GetCurrentFilTrans(G4double trnData) {
|
||||
G4double trn = trnData/100.0;
|
||||
// G4double na= FilterRefIndexNominal;
|
||||
// G4double nb= CurNeighbourRefIndexNominal;
|
||||
// G4double LossAtFEntrance=pow(((na-nb)/(na+nb)),2.0);
|
||||
// G4double LossAtFExit = pow(((nb-na)/(nb+na)),2.0);
|
||||
// G4double LossAtFEntrance=std::pow(((na-nb)/(na+nb)),2.0);
|
||||
// G4double LossAtFExit = std::pow(((nb-na)/(nb+na)),2.0);
|
||||
|
||||
if(trn > 1.0 ) trn=1.0;
|
||||
return trn;
|
||||
|
||||
@@ -130,7 +130,7 @@ G4VParticleChange* HpdSiEnergyLoss::AlongStepDoIt(const G4Track& aTrack,
|
||||
G4double Effs = 1.0 - backscaprob * bckratio;
|
||||
G4double Randbsk = G4UniformRand();
|
||||
if(Randbsk <= Effs && Eloss > 0.0 ) {
|
||||
aParticleChange.SetLocalEnergyDeposit(Eloss);
|
||||
aParticleChange.ProposeLocalEnergyDeposit(Eloss);
|
||||
|
||||
#ifdef G4ANALYSIS_USE
|
||||
|
||||
@@ -143,10 +143,10 @@ G4VParticleChange* HpdSiEnergyLoss::AlongStepDoIt(const G4Track& aTrack,
|
||||
// G4int tpreVP = pPreStepPoint -> GetPhysicalVolume()->GetCopyNo();
|
||||
}
|
||||
if (aKinEnergyFinal <= MinKineticEnergy ) {
|
||||
aParticleChange.SetStatusChange(fStopAndKill);
|
||||
aParticleChange.ProposeTrackStatus(fStopAndKill);
|
||||
|
||||
}else {
|
||||
aParticleChange.SetEnergyChange(aKinEnergyFinal);
|
||||
aParticleChange.ProposeEnergy(aKinEnergyFinal);
|
||||
|
||||
}
|
||||
return &aParticleChange;
|
||||
|
||||
@@ -197,8 +197,8 @@ G4VParticleChange* PadHpdPhotoElectricEffect::PostStepDoIt(const G4Track& aTrack
|
||||
// coord system.
|
||||
G4double GLx=GlobalElectronOrigin.x();
|
||||
G4double GLy=GlobalElectronOrigin.y();
|
||||
// G4double PhotCkvRad = pow((pow(GLx,2)+pow(GLy,2)),0.5);
|
||||
G4double PhotCkvPhi = atan2(GLy,GLx)*180.0/pi;
|
||||
// G4double PhotCkvRad = std::pow((std::pow(GLx,2)+std::pow(GLy,2)),0.5);
|
||||
G4double PhotCkvPhi = std::atan2(GLy,GLx)*180.0/pi;
|
||||
|
||||
if( PhotCkvPhi < - 180.0 )PhotCkvPhi+= 360.0;
|
||||
|
||||
@@ -212,8 +212,8 @@ G4VParticleChange* PadHpdPhotoElectricEffect::PostStepDoIt(const G4Track& aTrack
|
||||
|
||||
G4double PsfRandomAzimuth = twopi*G4UniformRand();
|
||||
G4double PsfRandomRad= G4RandGauss::shoot(0.0,PSFsigma);
|
||||
G4double PsfX= PsfRandomRad*cos( PsfRandomAzimuth);
|
||||
G4double PsfY= PsfRandomRad*sin( PsfRandomAzimuth);
|
||||
G4double PsfX= PsfRandomRad*std::cos( PsfRandomAzimuth);
|
||||
G4double PsfY= PsfRandomRad*std::sin( PsfRandomAzimuth);
|
||||
|
||||
|
||||
G4ThreeVector LocalElectronDirection(
|
||||
@@ -241,9 +241,9 @@ G4VParticleChange* PadHpdPhotoElectricEffect::PostStepDoIt(const G4Track& aTrack
|
||||
|
||||
// Kill the incident photon when it has converted to photoelectron.
|
||||
|
||||
aParticleChange.SetLocalEnergyDeposit(PhotonEnergy);
|
||||
aParticleChange.SetEnergyChange(0.);
|
||||
aParticleChange.SetStatusChange(fStopAndKill);
|
||||
aParticleChange.ProposeLocalEnergyDeposit(PhotonEnergy);
|
||||
aParticleChange.ProposeEnergy(0.);
|
||||
aParticleChange.ProposeTrackStatus(fStopAndKill);
|
||||
}
|
||||
//photon is not killed if it is not converted to photoelectron
|
||||
//SE 26-09-01.
|
||||
|
||||
@@ -112,9 +112,9 @@ RichTbComponent::RichTbComponent(RichTbMaterial* RMaterial,
|
||||
|
||||
}
|
||||
//Mirror
|
||||
G4double MirrThetaSize=2.0*asin(MirrorHorizontalChord/(MirrorRInner*2.0));
|
||||
G4double MirrThetaSize=2.0*std::asin(MirrorHorizontalChord/(MirrorRInner*2.0));
|
||||
G4double MirrThetaStart=halfpi*rad-MirrThetaSize/2.0;
|
||||
G4double MirrPhiSize=2.0*asin(MirrorVerticalChord/(MirrorRInner*2.0));
|
||||
G4double MirrPhiSize=2.0*std::asin(MirrorVerticalChord/(MirrorRInner*2.0));
|
||||
G4double MirrPhiStart=-MirrPhiSize/2.0;
|
||||
|
||||
G4Sphere* MirrorSphe= new G4Sphere("MirrorSphe",MirrorRInner,
|
||||
@@ -151,10 +151,10 @@ RichTbComponent::RichTbComponent(RichTbMaterial* RMaterial,
|
||||
G4double MirrorPosX, MirrorPosY, MirrorPosZ;
|
||||
|
||||
if( MirrorTotRotX !=0.0 || MirrorTotRotY != 0.0 ) {
|
||||
MirrorPosX =-VesselPosX-MirrorRInner*sin(MirrorTotRotY);
|
||||
MirrorPosY =-VesselPosY+MirrorRInner*sin(MirrorTotRotX);
|
||||
MirrorPosX =-VesselPosX-MirrorRInner*std::sin(MirrorTotRotY);
|
||||
MirrorPosY =-VesselPosY+MirrorRInner*std::sin(MirrorTotRotX);
|
||||
MirrorPosZ =MirrorShiftFromEnd-VesselHalfZ
|
||||
-MirrorRInner*(cos(MirrorTotRotY)+cos(MirrorTotRotX)-1.0);
|
||||
-MirrorRInner*(std::cos(MirrorTotRotY)+std::cos(MirrorTotRotX)-1.0);
|
||||
}else {
|
||||
MirrorPosX =-VesselPosX;
|
||||
MirrorPosY =-VesselPosY;
|
||||
|
||||
@@ -403,7 +403,7 @@ RichTbMaterial::RichTbMaterial(RichTbRunConfig* RConfig):
|
||||
|
||||
GlassD263Rindex[ibin]=RefIndexGlassD263;
|
||||
if(ibin > 0 && ibin < NumPhotBinGlassD263Trans+1 ){
|
||||
//now using the formula trans=exp(-thickness/absorplength).
|
||||
//now using the formula trans=std::exp(-thickness/absorplength).
|
||||
G4int ibina=ibin-1;
|
||||
|
||||
if(GlassD263TransWL[ibina] > 0.0 ) {
|
||||
@@ -436,7 +436,7 @@ RichTbMaterial::RichTbMaterial(RichTbRunConfig* RConfig):
|
||||
if(currBulkTransFilter[ibin] > 0.0 &&
|
||||
currBulkTransFilter[ibin] < 0.9995 ) {
|
||||
GlassD263AbsorpLength[ibin]=
|
||||
-(2.0*FilterHalfZ)/(log(currBulkTransFilter[ibin]));
|
||||
-(2.0*FilterHalfZ)/(std::log(currBulkTransFilter[ibin]));
|
||||
}else if (currBulkTransFilter[ibin]== 0.0 ) {
|
||||
GlassD263AbsorpLength[ibin]=FilterHalfZ/1.0E32;
|
||||
}else {
|
||||
@@ -525,12 +525,12 @@ RichTbMaterial::RichTbMaterial(RichTbRunConfig* RConfig):
|
||||
currentAgelTrans[ibin]=
|
||||
GetCurrentBulkTrans( currentAgelRefIndex,
|
||||
currentNeighbourRefIndex,MaxTotTransmission);
|
||||
//now using the formula trans=exp(-thickness/absorplength)
|
||||
//now using the formula trans=std::exp(-thickness/absorplength)
|
||||
// to get the absorplength.
|
||||
|
||||
if( currentAgelTrans[ibin] > 0.0 && currentAgelTrans[ibin] < 0.9995) {
|
||||
AerogTypeAAbsorpLength[ibin]=
|
||||
-(AerogelLength)/(log( currentAgelTrans[ibin]));
|
||||
-(AerogelLength)/(std::log( currentAgelTrans[ibin]));
|
||||
}else if (currentAgelTrans[ibin] == 0.0) {
|
||||
|
||||
AerogTypeAAbsorpLength[ibin]=AerogelLength/1.0E32;
|
||||
@@ -604,7 +604,7 @@ RichTbMaterial::RichTbMaterial(RichTbRunConfig* RConfig):
|
||||
G4double CathTrans=PhCathodeNominalTransmission;
|
||||
G4double CathAbsorpLen;
|
||||
if(CathTrans > 0.0 && CathTrans < 0.9995 ) {
|
||||
CathAbsorpLen = -(CathLen)/(log(CathTrans));
|
||||
CathAbsorpLen = -(CathLen)/(std::log(CathTrans));
|
||||
}else if (CathTrans > 0.0) {
|
||||
CathAbsorpLen = CathLen/1.0E32;
|
||||
}else {
|
||||
|
||||
@@ -64,7 +64,7 @@ std::vector<G4double> InitN2RefIndex(G4double pressure, G4double temperature){
|
||||
pfe = SellN2F1/(SellN2E1*SellN2E1 - epho*epho ) +
|
||||
SellN2F2/(SellN2E2*SellN2E2 - epho*epho );
|
||||
cpfe=0.3738*(GasRhoN2Cur/GasMolWeightN2)*pfe;
|
||||
RefN2[ibinwn]=pow((1.0+2*cpfe)/(1.0-cpfe),0.5);
|
||||
RefN2[ibinwn]=std::pow((1.0+2*cpfe)/(1.0-cpfe),0.5);
|
||||
}
|
||||
return RefN2;
|
||||
}
|
||||
@@ -144,7 +144,7 @@ void HistoRichTbMaterialProperties(RichTbRunConfig* RConfig) {
|
||||
for(G4int Iabin=0; Iabin<100; Iabin ++ ) {
|
||||
|
||||
// G4double waLInmu = waL/1000.0;
|
||||
// G4double Aetr = Aparam* exp(-Cparam * thickness / pow(waLInmu,4) );
|
||||
// G4double Aetr = Aparam* std::exp(-Cparam * thickness / std::pow(waLInmu,4) );
|
||||
|
||||
waL += stepsize;
|
||||
}
|
||||
@@ -203,7 +203,7 @@ std::vector<G4double>GetAerogelRScatLength(AerogelType CurrentAerogelType) {
|
||||
G4double ephoton=AgelPhotW[ibinw]/eV;
|
||||
//In the following the 1000 is to convert form nm to micrometer
|
||||
G4double wphoton=(PhotMomWaveConv/ephoton)/1000.0;
|
||||
AgelRayleighScatLength[ibinw]=(pow(wphoton,4))/aClarity;
|
||||
AgelRayleighScatLength[ibinw]=(std::pow(wphoton,4))/aClarity;
|
||||
|
||||
}
|
||||
}
|
||||
@@ -219,8 +219,8 @@ G4double GetCurrentBulkTrans(G4double currentMatRefIndex,
|
||||
// it is only an approximate calulation.
|
||||
G4double na= currentMatRefIndex;
|
||||
G4double nb= currentNeighbourRefIndex;
|
||||
G4double LossAtEntrance=pow(((na-nb)/(na+nb)),2.0);
|
||||
G4double LossAtExit=pow(((nb-na)/(nb+na)),2.0);
|
||||
G4double LossAtEntrance=std::pow(((na-nb)/(na+nb)),2.0);
|
||||
G4double LossAtExit=std::pow(((nb-na)/(nb+na)),2.0);
|
||||
|
||||
G4double LightLossAtExternalSurface= LossAtEntrance+ LossAtExit;
|
||||
|
||||
|
||||
@@ -69,12 +69,12 @@ RichTbSiDet::RichTbSiDet(RichTbMaterial* RMaterial,
|
||||
SiSectRotationX.rotateX(SiSectRotX);
|
||||
SiSectRotZ = SiSectAngStart-isec*SiSectAngSize;
|
||||
SiSectRotationZ.rotateZ(SiSectRotZ);
|
||||
SiSectPosX=SiSectTrapHalfZ*cos(SiSectRotZ-pi/2.0);
|
||||
SiSectPosX=SiSectTrapHalfZ*std::cos(SiSectRotZ-pi/2.0);
|
||||
//
|
||||
if(isec < NumberOfSiDetSectors/2 ) {
|
||||
SiSectPosY=SiSectTrapHalfZ*sin(SiSectRotZ-pi/2.0)-SiSectHalfMoonGap/2.0;
|
||||
SiSectPosY=SiSectTrapHalfZ*std::sin(SiSectRotZ-pi/2.0)-SiSectHalfMoonGap/2.0;
|
||||
}else{
|
||||
SiSectPosY=SiSectTrapHalfZ*sin(SiSectRotZ-pi/2.0)+SiSectHalfMoonGap/2.0;
|
||||
SiSectPosY=SiSectTrapHalfZ*std::sin(SiSectRotZ-pi/2.0)+SiSectHalfMoonGap/2.0;
|
||||
}
|
||||
|
||||
G4ThreeVector SiSectTrapPos(SiSectPosX,SiSectPosY,SiSectPosZ);
|
||||
|
||||
@@ -176,7 +176,7 @@ void RichTbSteppingAction::RichTbGenericHisto(const G4Step* aStep)
|
||||
// G4double ZatAgelExit=postPos.z();
|
||||
const G4ThreeVector PhotCurMom =
|
||||
aPhotTrack->GetMomentumDirection();
|
||||
// G4double CurExitangle= acos(PhotCurMom.z());
|
||||
// G4double CurExitangle= std::acos(PhotCurMom.z());
|
||||
|
||||
// Plot the Angle of emission of the photon.
|
||||
// When there is no Raylegh scattering this is the
|
||||
@@ -191,7 +191,7 @@ void RichTbSteppingAction::RichTbGenericHisto(const G4Step* aStep)
|
||||
|
||||
const G4ThreeVector PhotOrgUnitMom =
|
||||
aPhotTrack->GetVertexMomentumDirection();
|
||||
G4double Ckv_angle= acos(PhotOrgUnitMom.z());
|
||||
G4double Ckv_angle= std::acos(PhotOrgUnitMom.z());
|
||||
|
||||
analysis->getfhistoCkvProdSmall()->fill(Ckv_angle);
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
# $Id: GNUmakefile,v 1.6 2004/06/09 15:04:34 daquinog Exp $
|
||||
# $Id: GNUmakefile,v 1.7 2004/12/08 15:37:13 daquinog Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-02 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-03 $
|
||||
# --------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
TIARA_SRC_DIRS = tiaraPhysicsPackaging tiaraPhysicsLists tiara
|
||||
TIARA_SRC_DIRS = tiara
|
||||
TIARA_SRC_SWIG_DIRS = CLHEPWrapper G4KernelWrapper TiaraWrapper
|
||||
|
||||
include $(G4INSTALL)/config/architecture.gmk
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: History,v 1.19 2004/06/09 15:04:34 daquinog Exp $
|
||||
# $Id: History,v 1.24 2004/12/14 13:12:55 daquinog Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-02 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-05 $
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -18,6 +18,24 @@ committal in the CVS repository !
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
Dec 14th, 2004 G.Daquino - Tiara-V06-02-02
|
||||
- update of GNUmakefiles to the new phys_lists structure
|
||||
|
||||
Dec 13th, 2004 G.Cosmo - Tiara-V06-02-01
|
||||
- Use new phys-lists structure.
|
||||
|
||||
Dec 8th, 2004 G.Daquino - Tiara-V06-02-00
|
||||
- Corrected link to the centralized hadronic physics lists. Eliminated all the old
|
||||
links to the tiara-dedicated shared libraries for the Packaging and the physics lists
|
||||
SWIG wraps based on the templated physics list classes
|
||||
Migration to the <cmath> completed
|
||||
runSim.py still needs to be modified in order to obtain the plotting through PI
|
||||
|
||||
Jun 18th, 2004 G.Daquino - Tiara-V06-01-03
|
||||
- Corrected some errors in the README and in the script envCommon.csh. Besides, the file
|
||||
hadronic_list.gmk in the subdirectory source was not correct.
|
||||
|
||||
Jun 9th, 2004 G.Daquino - Tiara-V06-01-00
|
||||
- Passing from Anaphe to PI, Tiara has been partly fixed. Still problems
|
||||
are present on the compatibility between the PI and Anaphe pointers for hf.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: README,v 1.18 2004/06/13 13:35:12 daquinog Exp $
|
||||
# $Id: README,v 1.20 2004/12/08 15:37:13 daquinog Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-02 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-03 $
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
Simulation of the TIARA experiment using importance sampling
|
||||
@@ -34,7 +34,6 @@ Note for system testing without analysis: see points 1.1, 1.3 and 3.2.
|
||||
|
||||
|
||||
|
||||
|
||||
1) Setting the environment
|
||||
==========================
|
||||
|
||||
@@ -75,7 +74,7 @@ in the three cases:
|
||||
1.3) No afs, no PI and no SWIG (e.g. for system testing):
|
||||
-------------------------------------------------------------
|
||||
You don't want to use PI and SWIG and you don't have afs access.
|
||||
Make sure "G4ANALYSIS_USE" is unset (e.g. unsetenv G4ANALYSIS_USE)
|
||||
Make sure "G4ANALYSIS_USE" is unset (e.g. unsetenv G4ANALYSIS_USE or setenv G4ANALYSIS_USE 0)
|
||||
|
||||
Note 1: python must be built against a "libc".
|
||||
You may do this by creating a shared library by a command
|
||||
@@ -92,10 +91,10 @@ in the three cases:
|
||||
Finally source the script envCommon.csh from the directory where
|
||||
you have Tiara installed, e.g. ${G4INSTALL}/examples/advanced/Tiara
|
||||
|
||||
Note 2: Passing from a simulation WITH to another WITHOUT analysis implies
|
||||
NOTE 2: Passing from a simulation WITH to another WITHOUT analysis implies
|
||||
that the G4ANALYSIS_use should be unset and that the SWIG-wrapper scripts
|
||||
in the directory TiaraWrapper should be deleted. Normally, the whole code
|
||||
should be compiled again using gmake tiaraClean and, afterwards, gmake.
|
||||
should be compiled again using gmake clean_all and, afterwards, gmake.
|
||||
The same procedure should be followed also passing from a simulation WITHOUT
|
||||
to another WITH analysis.
|
||||
|
||||
@@ -122,6 +121,8 @@ To remove the files created by swig ( *_wrap.cc, the corresponding
|
||||
.py files) use "gmake swigClean".
|
||||
To remove the directories of compiled code related to this example under
|
||||
$G4WORKDIR/tmp/$G4SYSTEM/ use "gmake tiaraClean".
|
||||
To remove all the files created during the previous compilation, use
|
||||
"gmake clean_all".
|
||||
|
||||
|
||||
3) Running the example:
|
||||
@@ -169,7 +170,7 @@ placed in source/py_modules in files named after the module ending with
|
||||
|
||||
Since the simulation time used by "runSim.py" is only 5 minutes the
|
||||
calculated results have large errors. If you want to see a better result
|
||||
do the following changes in "naSim.py".
|
||||
do the following changes in "runSim.py".
|
||||
Extend the total run time to e,g, 2 hours by setting:
|
||||
"totalTime = 2 * myUtils.hour",
|
||||
set the print out period to 30 minutes by setting:
|
||||
@@ -212,11 +213,6 @@ source / - directory containing the source code
|
||||
|
||||
tiara - C++ source code
|
||||
|
||||
tiaraPhysicsLists - C++ source code of physics lists
|
||||
|
||||
tiaraPhysicsPackaging - C++ source cod with common
|
||||
classes for the physics lists
|
||||
|
||||
CLHEPWrapper - wrapper classes for usage in python
|
||||
\include\CLHEP.i - specification file for swig
|
||||
\src\CLHEP_wrap.cc - wrapper created with swig
|
||||
@@ -262,3 +258,13 @@ take care of the procedure of setting up the simulation, the run sequence
|
||||
and the analysis after the simulation has been ran.
|
||||
The script runSim.py is an commented example of using the python modules
|
||||
to run a simulation.
|
||||
|
||||
|
||||
6) Note about how to call the hadronic physics lists in runSim.py and runSimNoAnalysis.py
|
||||
=========================================================================================
|
||||
|
||||
It is only necessary to change the physList value in runSim.py or runSimNoAnalysis.py. In the example, there are 4 available physics lists, but of course the user can use whatever physics lists he/she likes and present in the Geant4-7.0 repository. In such a case, the user should also modify the
|
||||
/source/TiaraWrapper/include/Tiara.i file in order to create an instantiation of the
|
||||
physics list class. In particular, just follow the same lines already used for the six
|
||||
available physics lists.
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
# $Id: envCommon.csh,v 1.9 2004/06/09 15:04:34 daquinog Exp $
|
||||
# $Id: envCommon.csh,v 1.12 2004/12/08 17:25:34 daquinog Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-02 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-03 $
|
||||
# -------------------------------------------------------------------
|
||||
# Before sourcing this script make sure you have set the
|
||||
# environment variables according to the description in README.
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
# setup in case Anaphe is used --------------------------------------
|
||||
# setup in case PI is used --------------------------------------
|
||||
|
||||
if (${?PI_BASE_DIR} == 1 && ${?SWIG_BASE_DIR} == 1) then
|
||||
|
||||
@@ -36,7 +36,7 @@ endif
|
||||
setenv SWIG_INCDIRS "-I${SWIG_BASE_DIR}/lib/swig-${SWIG_VERSION} -I${SWIG_BASE_DIR}/lib/swig-${SWIG_VERSION}/python"
|
||||
setenv SWIG ${SWIG_BASE_DIR}/bin/swig-${SWIG_VERSION}
|
||||
|
||||
else # not using Anaphe
|
||||
else # not using PI
|
||||
|
||||
echo "-- WARNING: histograms are not activated !"
|
||||
echo " Either PI_BASE_DIR or SWIG_BASE_DIR are not set."
|
||||
@@ -45,7 +45,7 @@ else # not using Anaphe
|
||||
${?PYTHON_BASE_DIR} == 1 && \
|
||||
${?SWIG_BASE_DIR} == 1 && \
|
||||
${?SWIG_VERSION} == 1 && \
|
||||
${?CLHEP_BASE_DIR} == 1) then # settings without Anaphe
|
||||
${?CLHEP_BASE_DIR} == 1) then # settings without PI
|
||||
setenv PYTHON_LIB_DIR ${PYTHON_BASE_DIR}/lib/python${PYTHONVERSION}/config
|
||||
setenv PYTHON_INCLUDE_DIR ${PYTHON_BASE_DIR}/include/python${PYTHONVERSION}
|
||||
#
|
||||
@@ -64,7 +64,7 @@ else # not using Anaphe
|
||||
else
|
||||
echo -- ERROR: could not find swig executable !
|
||||
endif
|
||||
else # environment not completed in case no Anaphe is used
|
||||
else # environment not completed in case no PI is used
|
||||
echo "-- ERROR: PYTHONVERSION or PYTHON_BASE_DIR or SWIG_BASE_DIR or SWIG_VERSION or CLHEP_BASE_DIR not set!"
|
||||
exit
|
||||
endif
|
||||
@@ -82,8 +82,6 @@ setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/tmp/${G4SYSTEM}/TiaraWrap
|
||||
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/tmp/${G4SYSTEM}/G4KernelWrapper
|
||||
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/tmp/${G4SYSTEM}/CLHEPWrapper
|
||||
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/tmp/${G4SYSTEM}/tiara
|
||||
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/tmp/${G4SYSTEM}/tiaraPhysicsPackaging
|
||||
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/tmp/${G4SYSTEM}/tiaraPhysicsLists
|
||||
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${G4WORKDIR}/lib/${G4SYSTEM}
|
||||
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${PYTHON_LIB_DIR}
|
||||
setenv LD_LIBRARY_PATH ${PI_BASE_DIR}/${PI_VER}/app/releases/SEAL/SEAL_1_3_4/rh73_gcc32/lib:$LD_LIBRARY_PATH
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#!/usr/bin/env python2.2
|
||||
#
|
||||
# $Id: runSim.py,v 1.8 2004/06/09 15:04:35 daquinog Exp $
|
||||
# $Id: runSim.py,v 1.10 2004/12/08 17:25:34 daquinog Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-02 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-03 $
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
# importing python libraries
|
||||
@@ -35,11 +35,6 @@ Tiara.setRandomSeed(891011);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##########################################################################
|
||||
# experiment and simulation specific data
|
||||
##########################################################################
|
||||
@@ -69,9 +64,13 @@ timeForOneRun = 2 * myUtils.min
|
||||
# Idle> /run/beamOn 10
|
||||
|
||||
|
||||
# available physics lists: TiaraPhysicsList, LHEP_LEAD_HP, LHEP_PRECO_HP
|
||||
# CASCADE_HP LHEP_BIC LHEP_BIC_BIC
|
||||
physList = Tiara.LHEP_BIC_HP()
|
||||
# available physics lists: LHEP_LEAD, LHEP_PRECO_HP
|
||||
# LHEP_BIC LHEP_BIC_HP LHEP_PRECO LHEP
|
||||
#3physList = Tiara.LHEP()
|
||||
##physList = Tiara.LHEP_PRECO()
|
||||
##physList = Tiara.LHEP_PRECO_HP()
|
||||
physList = Tiara.LHEP_LEAD()
|
||||
|
||||
|
||||
# specify the detectors
|
||||
scoreDetectorCreator = tiaraDetectors.ThreeZylindricDetectors()
|
||||
@@ -83,14 +82,6 @@ comment = ""
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##########################################################################
|
||||
# Create a Specification object of the configuaration data
|
||||
##########################################################################
|
||||
@@ -109,11 +100,6 @@ tiaraSpecs = tiaraSpecifications.Specifications(Tiara.TiaraDimensions(),
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##########################################################################
|
||||
# definition of the importance geometry importance values and a scorer
|
||||
##########################################################################
|
||||
@@ -148,10 +134,6 @@ impScorer = G4Kernel.G4Scorer()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##########################################################################
|
||||
# Creation of a TiaraApplet to define the run mode, physics list,
|
||||
# detector type and the primary generator
|
||||
@@ -160,6 +142,7 @@ impScorer = G4Kernel.G4Scorer()
|
||||
# this and the remaining part should be fine for most settings
|
||||
tApp = tiaraApplication.TiaraApplet(tiaraSpecs,
|
||||
Tiara.TiaraSim_GetTiaraSim())
|
||||
|
||||
if totalTime == 0:
|
||||
tApp.visMode()
|
||||
else:
|
||||
@@ -178,17 +161,19 @@ primGenBuilder = tiaraGenerators.\
|
||||
"/data/expDataConverted/dpsSource.xml")
|
||||
#primGenBuilder = tiaraGenerators.TiaraPrimaryGenerator(tiaraSpecs)
|
||||
#primGenBuilder = tiaraGenerators.FixedEnergyPrimaryGenerator(tiaraSpecs)
|
||||
tApp.setPrimaryGenerator(primGenBuilder.primGen)
|
||||
|
||||
tApp.setPrimaryGenerator(primGenBuilder.primGen)
|
||||
|
||||
tApp.noComponents = 0
|
||||
tApp.config()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## The following lines should be probably moved here after release Geant4-7.0
|
||||
##physList = Tiara.LHEP()
|
||||
##physList = Tiara.LHEP_PRECO()
|
||||
##physList = Tiara.LHEP_PRECO_HP()
|
||||
##physList = Tiara.LHEP_LEAD()
|
||||
##tApp.specifyPhysicsList(physList, particleCut)
|
||||
##tApp.setPrimaryGenerator(primGenBuilder.primGen)
|
||||
|
||||
|
||||
|
||||
@@ -200,14 +185,6 @@ parallelSampler = myUtils.createParallelSampler(impGeo,
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##########################################################################
|
||||
# create a run config object, a run sequence and run the simulation
|
||||
##########################################################################
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
#!/usr/bin/env python2.2
|
||||
#
|
||||
# $Id: runSimNoAnalysis.py,v 1.4 2004/06/09 15:04:35 daquinog Exp $
|
||||
# $Id: runSimNoAnalysis.py,v 1.5 2004/12/08 15:37:14 daquinog Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-02 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-03 $
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -50,9 +50,12 @@ shieldWidth = 150 * CLHEP.cm
|
||||
totalTime = 3 * myUtils.min
|
||||
timeForOneRun = 1 * myUtils.min
|
||||
|
||||
# available physics lists: TiaraPhysicsList, LHEP_LEAD_HP, LHEP_PRECO_HP
|
||||
# CASCADE_HP LHEP_BIC LHEP_BIC_BIC
|
||||
physList = Tiara.LHEP_BIC_HP()
|
||||
# available physics lists: LHEP_LEAD, LHEP_PRECO_HP
|
||||
# LHEP_PRECO, LHEP
|
||||
##physList = Tiara.LHEP()
|
||||
##physList = Tiara.LHEP_PRECO()
|
||||
physList = Tiara.LHEP_LEAD()
|
||||
##physList = Tiara.LHEP_PRECO_HP()
|
||||
|
||||
# specify the detectors
|
||||
scoreDetectorCreator = tiaraDetectors.ThreeZylindricDetectors()
|
||||
@@ -63,15 +66,6 @@ comment = ""
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##########################################################################
|
||||
# Create a Specification object of the configuaration data
|
||||
##########################################################################
|
||||
@@ -87,12 +81,6 @@ tiaraSpecs = tiaraSpecifications.Specifications(Tiara.TiaraDimensions(),
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##########################################################################
|
||||
# definition of the importance geometry and a scorer
|
||||
##########################################################################
|
||||
@@ -114,10 +102,6 @@ impScorer = G4Kernel.G4Scorer()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##########################################################################
|
||||
# Creation of a TiaraApplet to define the run mode, physics list,
|
||||
# detector type and the primary generator
|
||||
@@ -151,16 +135,20 @@ tApp.setPrimaryGenerator(primGenBuilder.primGen)
|
||||
|
||||
|
||||
tApp.noComponents = 0
|
||||
|
||||
## The following lines should be probably moved here after release Geant4-7.0
|
||||
##physList = Tiara.LHEP()
|
||||
##physList = Tiara.LHEP_PRECO()
|
||||
##physList = Tiara.LHEP_PRECO_HP()
|
||||
##physList = Tiara.LHEP_LEAD()
|
||||
##tApp.specifyPhysicsList(physList, particleCut)
|
||||
##tApp.setPrimaryGenerator(primGenBuilder.primGen)
|
||||
|
||||
tApp.config()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##########################################################################
|
||||
# creating of the sampler
|
||||
##########################################################################
|
||||
@@ -170,13 +158,6 @@ parallelSampler = myUtils.createParallelSampler(impGeo,
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
##########################################################################
|
||||
# create a run config object, a run sequence and run the simulation
|
||||
##########################################################################
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# $Id: runVisMode.py,v 1.4 2004/06/09 15:04:35 daquinog Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-02 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: vis.mac,v 1.2 2003/06/16 17:06:44 dressel Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: CLHEP.i,v 1.3 2003/06/20 12:41:06 dressel Exp $
|
||||
# $Id: CLHEP.i,v 1.4 2004/12/08 15:37:14 daquinog Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-03 $
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: G4String.i,v 1.1 2003/06/17 15:25:01 mdressel Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
// coppied from std_string.i
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: G4Kernel.i,v 1.5 2003/06/20 12:41:06 dressel Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
%module G4Kernel
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.7 2004/06/09 15:04:35 daquinog Exp $
|
||||
# $Id: GNUmakefile,v 1.9 2004/12/14 13:11:06 daquinog Exp $
|
||||
# --------------------------------------------------------------
|
||||
# GNUmakefile Michael Dressel
|
||||
# --------------------------------------------------------------
|
||||
@@ -19,12 +19,18 @@ SWIGFLAGS = -I../G4KernelWrapper \
|
||||
-I$(G4INSTALL)/source/event/include \
|
||||
-I$(G4INSTALL)/source/processes/transportation/include \
|
||||
-I$(TIARA_BASE)/source/tiara/include \
|
||||
-I$(TIARA_BASE)/source/tiaraPhysicsLists/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP_BIC/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP_BIC_HP/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP_PRECO/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP_LEAD/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP_PRECO_HP/include \
|
||||
-I$(TIARA_BASE)/source/CLHEPWrapper/include \
|
||||
-I$(TIARA_BASE)/source/G4KernelWrapper/include \
|
||||
-I${CLHEP_BASE_DIR}/include
|
||||
|
||||
#include $(TIARA_BASE)/source/hadronic_lists.gmk
|
||||
|
||||
include $(TIARA_BASE)/source/hadronic_lists.gmk
|
||||
#SWIGFLAGS += ${LSTFLAGS}
|
||||
|
||||
libdirTiara = $(G4WORKDIR)/tmp/$(G4SYSTEM)/tiara
|
||||
@@ -46,23 +52,25 @@ all: $(copyDeps) $(SWIGSO)
|
||||
include $(G4INSTALL)/config/binmake.gmk
|
||||
|
||||
ifdef G4ANALYSIS_USE
|
||||
CPPFLAGS += `aida-config --include`
|
||||
CPPFLAGS += `aida-config --include`
|
||||
# LDFLAGS += `aida-config --lib`
|
||||
endif
|
||||
|
||||
CPPFLAGS += -I$(TIARA_BASE)/source/tiara/include\
|
||||
-I$(PYTHON_INCLUDE_DIR) \
|
||||
-I$(TIARA_BASE)/source/tiaraPhysicsPackaging/include \
|
||||
-I$(TIARA_BASE)/source/tiaraPhysicsLists/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP_BIC/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP_BIC_HP/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP_PRECO/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP_LEAD/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP_PRECO_HP/include \
|
||||
-I$(TIARA_BASE)/source/G4KernelWrapper/include
|
||||
|
||||
LDFLAGS += -L$(G4WORKDIR)/tmp/$(G4SYSTEM)/tiara \
|
||||
-L$(G4WORKDIR)/tmp/$(G4SYSTEM)/tiaraPhysicsPackaging \
|
||||
-L$(G4WORKDIR)/tmp/$(G4SYSTEM)/tiaraPhysicsLists \
|
||||
-L$(PYTHON_LIB_DIR)
|
||||
|
||||
LDLIBS1 += -ltiaraPhysicsLists \
|
||||
-ltiaraPhysicsPackaging-handMade
|
||||
LDFLAGS += -L$(G4WORKDIR)/tmp/$(G4SYSTEM)/tiara \
|
||||
-L$(G4WORKDIR)/lib/plists/$(G4SYSTEM) \
|
||||
-L$(PYTHON_LIB_DIR)
|
||||
|
||||
|
||||
ifdef G4ANALYSIS_USE
|
||||
LDLIBS += `aida-config --lib`
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: Tiara.i,v 1.7 2003/12/08 17:53:26 gcosmo Exp $
|
||||
# $Id: Tiara.i,v 1.8 2004/12/08 15:37:14 daquinog Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-00-patch-01 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-03 $
|
||||
# -------------------------------------------------------------------
|
||||
|
||||
%module Tiara
|
||||
@@ -20,12 +20,12 @@
|
||||
#include "TiaraCellScorer.hh"
|
||||
#include "TiaraCellScorerStore.hh"
|
||||
#include "TiaraPhysicsList.hh"
|
||||
#include "Physics_LHEP_PRECO.hh"
|
||||
#include "Physics_LHEP_PRECO_HP.hh"
|
||||
#include "Physics_LHEP_LEAD_HP.hh"
|
||||
#include "Physics_CASCADE_HP.hh"
|
||||
#include "LHEP_BIC.hh"
|
||||
#include "LHEP_BIC_HP.hh"
|
||||
#include "LHEP_BIC.hh"
|
||||
#include "LHEP.hh"
|
||||
#include "LHEP_PRECO.hh"
|
||||
#include "LHEP_LEAD.hh"
|
||||
#include "LHEP_PRECO_HP.hh"
|
||||
#include "TiaraVisEventAction.hh"
|
||||
#include "TiaraTimedEventAction.hh"
|
||||
#include "TiaraMeasure.hh"
|
||||
@@ -87,53 +87,50 @@
|
||||
|
||||
%include TiaraRandom.hh
|
||||
|
||||
%include TiaraPhysicsList.hh
|
||||
%extend TiaraPhysicsList {
|
||||
std::string getName() const {
|
||||
return std::string("Test12");
|
||||
}
|
||||
}
|
||||
|
||||
%include Physics_LHEP_PRECO.hh
|
||||
%extend Physics_LHEP_PRECO {
|
||||
std::string getName() const {
|
||||
return std::string("LHEP_PRECO");
|
||||
}
|
||||
}
|
||||
|
||||
%include Physics_LHEP_PRECO_HP.hh
|
||||
%extend Physics_LHEP_PRECO_HP {
|
||||
std::string getName() const {
|
||||
return std::string("LHEP_PRECO_HP");
|
||||
}
|
||||
}
|
||||
|
||||
%include Physics_LHEP_LEAD_HP.hh
|
||||
%extend Physics_LHEP_LEAD_HP {
|
||||
std::string getName() const {
|
||||
return std::string("LHEP_LEAD_HP");
|
||||
}
|
||||
}
|
||||
|
||||
%include Physics_CASCADE_HP.hh
|
||||
%extend Physics_CASCADE_HP {
|
||||
std::string getName() const {
|
||||
return std::string("CASCADE_HP");
|
||||
}
|
||||
}
|
||||
|
||||
%include LHEP_BIC.hh
|
||||
%extend LHEP_BIC {
|
||||
std::string getName() const {
|
||||
return std::string("LHEP_BIC");
|
||||
}
|
||||
}
|
||||
|
||||
%include LHEP_BIC_HP.hh
|
||||
%extend LHEP_BIC_HP {
|
||||
%template(LHEP_BIC_HP) TLHEP_BIC_HP<G4VModularPhysicsList>;
|
||||
%extend TLHEP_BIC_HP<G4VModularPhysicsList> {
|
||||
std::string getName() const {
|
||||
return std::string("LHEP_BIC_HP");
|
||||
}
|
||||
}
|
||||
|
||||
%include LHEP_BIC.hh
|
||||
%template(LHEP_BIC) TLHEP_BIC<G4VModularPhysicsList>;
|
||||
%extend TLHEP_BIC<G4VModularPhysicsList> {
|
||||
std::string getName() const {
|
||||
return std::string("LHEP_BIC");
|
||||
}
|
||||
}
|
||||
|
||||
%include LHEP.hh
|
||||
%template(LHEP) TLHEP<G4VModularPhysicsList>;
|
||||
%extend TLHEP<G4VModularPhysicsList> {
|
||||
std::string getName() const {
|
||||
return std::string("LHEP");
|
||||
}
|
||||
}
|
||||
|
||||
%include LHEP_PRECO.hh
|
||||
%template(LHEP_PRECO) TLHEP_PRECO<G4VModularPhysicsList>;
|
||||
%extend TLHEP_PRECO<G4VModularPhysicsList> {
|
||||
std::string getName() const {
|
||||
return std::string("LHEP_PRECO");
|
||||
}
|
||||
}
|
||||
|
||||
%include LHEP_LEAD.hh
|
||||
%template(LHEP_LEAD) TLHEP_LEAD<G4VModularPhysicsList>;
|
||||
%extend TLHEP_LEAD<G4VModularPhysicsList> {
|
||||
std::string getName() const {
|
||||
return std::string("LHEP_LEAD");
|
||||
}
|
||||
}
|
||||
|
||||
%include LHEP_PRECO_HP.hh
|
||||
%template(LHEP_PRECO_HP) TLHEP_PRECO_HP<G4VModularPhysicsList>;
|
||||
%extend TLHEP_PRECO_HP<G4VModularPhysicsList> {
|
||||
std::string getName() const {
|
||||
return std::string("LHEP_PRECO_HP");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
# $Id: hadronic_lists.gmk,v 1.4 2003/12/08 17:53:26 gcosmo Exp $
|
||||
# $Id: hadronic_lists.gmk,v 1.8 2004/12/13 15:55:02 gcosmo Exp $
|
||||
# --------------------------------------------------------------
|
||||
# hadronic physics-lists setup - H.P.Wellisch
|
||||
# --------------------------------------------------------------
|
||||
|
||||
ifndef G4LISTS_BASE
|
||||
EXTRALIBS += -L$(G4LIB)/.lists_build/$(G4SYSTEM)
|
||||
G4LISTS_BASE = $(G4INSTALL)/hadronic_lists
|
||||
EXTRALIBS += -L$(G4LIB)/plists/$(G4SYSTEM)
|
||||
G4LISTS_BASE = $(G4INSTALL)/physics_lists
|
||||
else
|
||||
EXTRALIBS += -L$(G4LISTS_BASE)/lists/.lists_build/lib/$(G4SYSTEM)
|
||||
EXTRALIBS += -L$(G4LISTS_BASE)/hadronic/plists/lib/$(G4SYSTEM)
|
||||
endif
|
||||
|
||||
EXTRALIBS += -lFTFC
|
||||
EXTRALIBS += -lFTFP
|
||||
EXTRALIBS += -lLBE
|
||||
@@ -29,6 +28,7 @@ EXTRALIBS += -lQGSP_GN
|
||||
EXTRALIBS += -lQGSP_HP
|
||||
EXTRALIBS += -lLHEP_BERT
|
||||
EXTRALIBS += -lLHEP_BIC
|
||||
EXTRALIBS += -lLHEP_BIC_HP
|
||||
EXTRALIBS += -lQGSP_BIC
|
||||
EXTRALIBS += -lPackaging
|
||||
|
||||
@@ -75,29 +75,29 @@ EXTRALIBS += -lG4hadronic_util
|
||||
|
||||
EXTRALIBS += -lG4shortlived
|
||||
|
||||
LSTFLAGS := -I$(G4LISTS_BASE)/lists/FTFC/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/FTFP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/LBE/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_BERT/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_BIC/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_GN/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_HP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_BERT_HP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_BIC_HP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_LEAD/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_LEAD_HP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_PRECO/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/LHEP_PRECO_HP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/Packaging/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSC/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSC_LEAD/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSC_LEAD_HP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_BERT/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_BIC/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_GN/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_HP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/lists/QGSP_Model/include
|
||||
LSTFLAGS := -I$(G4LISTS_BASE)/hadronic/FTFC/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/FTFP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/LBE/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BERT/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BIC/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_GN/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_HP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BERT_HP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_BIC_HP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_LEAD/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_LEAD_HP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_PRECO/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/LHEP_PRECO_HP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/Packaging/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSC/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSC_LEAD/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSC_LEAD_HP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_BERT/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_BIC/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_GN/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_HP/include
|
||||
LSTFLAGS += -I$(G4LISTS_BASE)/hadronic/QGSP_Model/include
|
||||
|
||||
CPPFLAGS += ${LSTFLAGS}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: dataAcess.py,v 1.3 2003/06/26 11:54:13 dressel Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-00-patch-01 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
#
|
||||
import os
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: detector.py,v 1.3 2003/06/26 11:54:13 dressel Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-00-patch-01 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
#
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: dpsManip.py,v 1.2 2003/06/16 17:06:44 dressel Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
#
|
||||
import math
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: extractShelve.py,v 1.3 2003/07/04 13:26:31 dressel Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-00-patch-01 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
#
|
||||
import string
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: myPI.py,v 1.1 2004/06/09 15:04:36 daquinog Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-02 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
#
|
||||
import sys
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: myUtils.py,v 1.5 2004/06/09 15:04:36 daquinog Exp $
|
||||
# $Id: myUtils.py,v 1.6 2004/12/08 15:37:14 daquinog Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-02 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-03 $
|
||||
# -------------------------------------------------------------------
|
||||
#
|
||||
import CLHEP
|
||||
@@ -114,13 +114,12 @@ def getStoreName():
|
||||
def getConfigurationInfo(impGeo, experiment, physicsList, totalTime,
|
||||
comment):
|
||||
configInfo = {}
|
||||
|
||||
|
||||
|
||||
configInfo["energy"] = experiment.energy
|
||||
|
||||
configInfo["shieldMaterial"] = experiment.shieldMaterial
|
||||
|
||||
|
||||
width = experiment.shieldWidth / CLHEP.cm
|
||||
s_width = "%(width)d" % vars()
|
||||
configInfo["shieldWidth"] = s_width
|
||||
@@ -134,10 +133,8 @@ def getConfigurationInfo(impGeo, experiment, physicsList, totalTime,
|
||||
|
||||
configInfo["biasing"] = simp
|
||||
|
||||
|
||||
configInfo["physListName"] = physicsList.getName()
|
||||
|
||||
|
||||
particles = ""
|
||||
|
||||
configInfo["minEnergyCut"] = experiment.particleCut
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: parallelHall.py,v 1.4 2003/06/20 12:41:06 dressel Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
#
|
||||
import G4Kernel
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: posLog.py,v 1.2 2003/06/16 17:06:44 dressel Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
#
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: runSequence.py,v 1.4 2004/06/09 15:04:36 daquinog Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-02 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
#
|
||||
import Tiara
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: slabGeometry.py,v 1.3 2003/06/20 12:41:07 dressel Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
#
|
||||
import math
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: tallyData.py,v 1.2 2003/06/16 17:06:44 dressel Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
#
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: tiaraApplication.py,v 1.4 2004/06/09 15:04:36 daquinog Exp $
|
||||
# $Id: tiaraApplication.py,v 1.5 2004/12/08 15:37:14 daquinog Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-02 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-03 $
|
||||
# -------------------------------------------------------------------
|
||||
#
|
||||
import string
|
||||
@@ -62,6 +62,10 @@ class TiaraApplet(object):
|
||||
self.createdDPS = 0
|
||||
self.tiaraSim.SetGeometry(self.tiaraHall)
|
||||
|
||||
def specifyPhysicsList(self, pl, particleCut):
|
||||
self.particleCut = particleCut
|
||||
self.physicsList = pl
|
||||
|
||||
def setScoreDetectorCreator(self, creator):
|
||||
self.scoreDetectorCreator=creator
|
||||
|
||||
@@ -84,11 +88,7 @@ class TiaraApplet(object):
|
||||
self.tiaraSim.AddTiaraEventAction(self.eventAction)
|
||||
return
|
||||
|
||||
|
||||
def specifyPhysicsList(self, pl, particleCut):
|
||||
self.particleCut = particleCut
|
||||
self.physicsList = pl
|
||||
|
||||
|
||||
def buildColimator(self):
|
||||
posColi = \
|
||||
CLHEP.Hep3Vector(0,0, self.tiaraSpecs.
|
||||
@@ -223,11 +223,9 @@ class TiaraApplet(object):
|
||||
def config(self):
|
||||
|
||||
self.tiaraSim.SetPhysicsList(self.physicsList)
|
||||
|
||||
self.buildDetectors()
|
||||
|
||||
|
||||
self.tiaraSim.initialize()
|
||||
|
||||
if len(self.particleCut) > 0:
|
||||
for p in self.particleCut:
|
||||
self.tiaraSim.AddParticleCut(p, self.particleCut[p]);
|
||||
@@ -235,4 +233,4 @@ class TiaraApplet(object):
|
||||
self.sampler.PrepareScoring(self.scorer)
|
||||
self.sampler.Configure()
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: tiaraDetectors.py,v 1.4 2004/06/09 15:04:36 daquinog Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-02 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
#
|
||||
import CLHEP
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: tiaraGenerators.py,v 1.3 2004/06/09 15:04:36 daquinog Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-06-02 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
#
|
||||
import string
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: tiaraSpecifications.py,v 1.3 2003/06/20 12:41:07 dressel Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
#
|
||||
import CLHEP
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# $Id: variableGeometry.py,v 1.2 2003/06/16 17:06:45 dressel Exp $
|
||||
# -------------------------------------------------------------------
|
||||
# GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
# GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
# -------------------------------------------------------------------
|
||||
#
|
||||
import G4Kernel
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.6 2004/06/09 15:04:37 daquinog Exp $
|
||||
# $Id: GNUmakefile,v 1.8 2004/12/14 13:11:07 daquinog Exp $
|
||||
# --------------------------------------------------------------
|
||||
# GNUmakefile Michael Dressel
|
||||
# --------------------------------------------------------------
|
||||
@@ -13,11 +13,6 @@ endif
|
||||
|
||||
include $(G4INSTALL)/config/architecture.gmk
|
||||
|
||||
EXTRALIBS += -L$(G4WORKDIR)/tmp/$(G4SYSTEM)/tiaraPhysicsPackaging \
|
||||
-L$(G4WORKDIR)/tmp/$(G4SYSTEM)/tiaraPhysicsLists \
|
||||
-ltiaraPhysicsLists \
|
||||
-ltiaraPhysicsPackaging-handMade
|
||||
|
||||
include $(TIARA_BASE)/source/hadronic_lists.gmk
|
||||
|
||||
.PHONY: all tiaraClean
|
||||
@@ -33,8 +28,12 @@ endif
|
||||
|
||||
|
||||
CPPFLAGS += -I$(PYTHON_INCLUDE_DIR) \
|
||||
-I$(TIARA_BASE)/source/tiaraPhysicsPackaging/include \
|
||||
-I$(TIARA_BASE)/source/tiaraPhysicsLists/include
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP_BIC/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP_BIC_HP/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP_PRECO/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP_LEAD/include \
|
||||
-I$(G4INSTALL)/physics_lists/hadronic/LHEP_PRECO_HP/include
|
||||
|
||||
LDFLAGS += -L$(PYTHON_LIB_DIR)
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: TiaraCellScorer.hh,v 1.3 2003/06/18 16:40:23 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class TiaraCellScorer
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
//
|
||||
//
|
||||
// $Id: TiaraCellScorerStore.hh,v 1.2 2003/06/18 16:40:23 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class TiaraCellScorerStore
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: TiaraConcreteShieldA.hh,v 1.3 2003/06/25 09:12:35 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: TiaraConcreteShieldB.hh,v 1.3 2003/06/25 09:12:36 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: TiaraDPSSampledEnergy.hh,v 1.6 2004/06/09 15:04:37 daquinog Exp $
|
||||
// GEANT4 tag $Name: geant4-06-02 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: TiaraDimensions.hh,v 1.3 2003/06/25 09:12:38 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: TiaraEnergyCutProcess.hh,v 1.3 2003/06/25 09:12:39 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: TiaraFileAcess.hh,v 1.3 2003/06/25 09:12:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: TiaraFixedEnergyGenerator.hh,v 1.3 2003/06/25 09:12:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: TiaraGeometry.hh,v 1.4 2003/06/25 09:12:42 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: TiaraIronShieldA.hh,v 1.3 2003/06/25 09:12:43 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-05-02-patch-01 $
|
||||
// GEANT4 tag $Name: geant4-07-00-cand-01 $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
//
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user