Import Geant4 7.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 11:11:55 +02:00
parent e083ffb441
commit 516dbf1a58
5914 changed files with 202605 additions and 71141 deletions
+148 -50
View File
@@ -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!"
+120
View File
@@ -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.
+143
View File
@@ -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
View File
@@ -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).
+3 -3
View File
@@ -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
View File
@@ -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
View File
@@ -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); \
+25 -3
View File
@@ -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!
+34 -3
View File
@@ -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!
+12 -9
View File
@@ -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.
+417
View File
@@ -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
+36 -3
View File
@@ -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
-1
View File
@@ -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
View File
@@ -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);\
-103
View File
@@ -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
View File
@@ -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.
+11 -1
View File
@@ -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.
+10 -7
View File
@@ -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 = ../../..
+46
View File
@@ -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
+36
View File
@@ -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
@@ -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;
}
+28
View File
@@ -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
+8 -24
View File
@@ -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">
+36
View File
@@ -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
-676
View File
@@ -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>
-129
View File
@@ -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>
+2336
View File
File diff suppressed because it is too large Load Diff
-17
View File
@@ -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>
-206
View File
@@ -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
View File
@@ -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
View File
@@ -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
+11 -1
View File
@@ -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;
+2 -2
View File
@@ -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
+2 -2
View File
@@ -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;
+5 -5
View File
@@ -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;
+3 -3
View File
@@ -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);
+3 -3
View File
@@ -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
+20 -2
View File
@@ -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.
+18 -12
View File
@@ -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.
+6 -8
View File
@@ -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
+18 -41
View File
@@ -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
##########################################################################
+17 -36
View File
@@ -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
##########################################################################
+1 -1
View File
@@ -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 -1
View File
@@ -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