Import Geant4 5.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 10:28:22 +02:00
parent fbd4999cf7
commit 4aea781e80
5454 changed files with 223141 additions and 67347 deletions
+4 -5
View File
@@ -94,9 +94,8 @@ List of fixes included in this public patch to release 4.0:
The code and rebuilt binary libraries for release 4.0 are available through
our "Source Code" Web page:
- see our <A href="http://cern.ch/geant4">Geant4 Home Page</A>.
Please refer to <A
href="http://cern.ch/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
- see our Geant4 Home 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.
+4 -5
View File
@@ -149,9 +149,8 @@ top of patch-01:
The code and rebuilt binary libraries for release 4.0 are available through
our "Source Code" Web page:
- see our <A href="http://cern.ch/geant4">Geant4 Home Page</A>.
Please refer to <A
href="http://cern.ch/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
- see our Geant4 Home 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.
+4 -4
View File
@@ -105,8 +105,8 @@ List of fixes included in this public patch to release 4.1:
The code and rebuilt binary libraries for release 4.1 are available through
our "Source Code" Web page:
- see our <A href="http://cern.ch/geant4">Geant4 Home Page</A>.
- see our Geant4 Home Page (http://cern.ch/geant4).
Please refer to <A
href="http://cern.ch/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
Please refer to the Geant4 User Documentation
(http://cern.ch/geant4/G4UsersDocuments/Overview/html)
for further information about using Geant4.
+4 -4
View File
@@ -174,8 +174,8 @@ List of fixes included in this public patch to release 5.0:
The code and rebuilt binary libraries for release 5.0 are available through
our "Source Code" Web page:
- see our <A href="http://cern.ch/geant4">Geant4 Home Page</A>.
- see our Geant4 Home Page (http://cern.ch/geant4).
Please refer to <A
href="http://cern.ch/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
Please refer to the Geant4 User Documentation
(http://cern.ch/geant4/G4UsersDocuments/Overview/html)
for further information about using Geant4.
+64
View File
@@ -0,0 +1,64 @@
Geant4 5.1 - patch-01 Release Notes
-----------------------------------
19 May 2003
List of fixes included in this public patch to release 5.1:
o Electromagnetic processes (standard):
------------------------------------
+ muons:
- Commented out debug printout in G4MuPairProduction.
o Geometry:
--------
+ solids/Boolean:
- Added set/get methods for scale precision in G4ReflectionFactory.
+ volumes:
- G4PropagatorInField.cc: fix in ComputeStep() to avoid step computation
if proposed step length is too small. Fixes problem noticed in release
5.1 and occasionally appearing as "Invalid Enum in [solid-type]", also
registered as problem report #485.
o Hadronic processes:
------------------
+ models/generator/kinetic_model
o G4BinaryCascade: fix to cure infinite loop observed in inelastic
scattering of hydrogen.
o Run:
---
- G4RunManager: fixed behavior of function DefineWorldVolume()
to properly reset navigation history and optimisation in case the
topology of the geometry has changed between runs. Now only a single
call to DefineWorldVolume() is necessary when changing the geometry.
Fixes also problem report #481.
o Added new boolean argument (default set to TRUE) to specify if
topology has changed.
o Forced open/close geometry in method ResetNavigator() to properly
reset G4Navigator status and remove old optimisations.
o Examples:
--------
- novice/N04
o Corrected printout.
- extended/electromagnetic - TestEm1, TestEm2, TestEm3
o Simplified mechanism for updating geometries between runs,
according to changes in G4RunManager::DefineWorldVolume().
----------------------------------------------------------------------------
Technical Notes
---------------
o This patch should be applied on top of release 5.1.
o Technical notes distributed for release 5.1 are also applicable and
valid for this patch.
The code and rebuilt binary libraries for release 5.1 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.
+9 -11
View File
@@ -21,13 +21,11 @@ Note that the next release, Geant4.1.0, will be offered only in the
STL version.
This code and some binary libraries are available through our "Source
Code" Web page - see our <A
Href="http://wwwinfo.cern.ch/asd/geant4/geant4.html">Geant4 Home
Page</A>.
Code" Web page - see our Geant4 Home Page (http://cern.ch/geant4).
Please refer to <A
Href="http://wwwinfo.cern.ch/asd/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
Please refer to the Geant4 User Documentation
(http://cern.ch/geant4/G4UsersDocuments/Overview/html)
for further information about using Geant4.
Updates to the documentation for Geant4.0.1 are still in preparation
and are expected to be published within three weeks.
@@ -68,9 +66,9 @@ Platforms also tested but giving rise to some problems - see below:
2. CLHEP 1.4
------------
Geant4.0.1 requires the installation of <A
href="http://wwwinfo.cern.ch/asd/lhc++/INSTALLATION/clhep.html">CLHEP
1.4</A>. The following platform specific instructions apply:
Geant4.0.1 requires the installation of CLHEP 1.4
(http://cern.ch/clhep/INSTALLATION/clhep.html).
The following platform specific instructions apply:
DEC: Do *not* use the compiler option "-std strict_ansi".
@@ -84,10 +82,10 @@ href="http://wwwinfo.cern.ch/asd/lhc++/INSTALLATION/clhep.html">CLHEP
The following versions of STL have been tested:
<A href="http://www.objectspace.com/">ObjectSpace</A> STL on: AIX,
ObjectSpace STL (http://www.objectspace.com) on: AIX,
DEC, HP, NT and SUN.
<A href="http://www.stlport.org/">STLPORT</A> STL on: NT
STLPORT STL (http://www.stlport.org) on: NT
"Native" STL on: Linux.
+6 -8
View File
@@ -80,12 +80,11 @@ Notes:
This code and some binary libraries are available through our "Source
Code" Web page:
- see our <A href="http://wwwinfo.cern.ch/asd/geant4/geant4.html">Geant4
Home Page</A>.
- see our Geant4 Home Page (http://cern.ch/geant4).
Please refer to <A
href="http://wwwinfo.cern.ch/asd/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
Please refer to the Geant4 User Documentation
(http://cern.ch/geant4/G4UsersDocuments/Overview/html)
for further information about using Geant4.
Updates to the documentation for Geant4 1.0 are still in preparation and are
expected to be published within three weeks.
@@ -128,8 +127,7 @@ Platforms configured but not tested and not supported:
Geant4 1.0 requires the installation of CLHEP 1.4.
See <A href="http://wwwinfo.cern.ch/asd/lhc++/INSTALLATION/clhep.html">
CLHEP 1.4</A>.
See CLHEP 1.4 (http://cern.ch/clhep/INSTALLATION/clhep.html).
The following platform specific instructions apply:
@@ -148,7 +146,7 @@ The following versions of STL have been tested:
ObjectSpace STL on
DEC, HP, NT and SUN.
See <A href="http://www.objectspace.com/">ObjectSpace</A>.
See ObjectSpace (http://www.objectspace.com).
"Native" STL on: Linux, HP.
+6 -8
View File
@@ -83,12 +83,11 @@ Notes:
The source code and some binary libraries are available through our "Source
Code" Web page:
- see our <A href="http://wwwinfo.cern.ch/asd/geant4/geant4.html">Geant4
Home Page</A>.
- see our Geant4 Home Page (http://cern.ch/geant4).
Please refer to <A
href="http://wwwinfo.cern.ch/asd/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
Please refer to the Geant4 User Documentation
(http://cern.ch/geant4/G4UsersDocuments/Overview/html)
for further information about using Geant4.
Contents
@@ -130,8 +129,7 @@ Platforms configured but not tested and not supported:
Geant4 1.0 requires the installation of CLHEP 1.4.
See <A href="http://wwwinfo.cern.ch/asd/lhc++/INSTALLATION/clhep.html">
CLHEP 1.4</A>.
See CLHEP 1.4 (http://cern.ch/clhep/INSTALLATION/clhep.html).
Be aware, for the platforms listed below, the standard CLHEP installation
will use ISO-ANSI setup:
@@ -156,7 +154,7 @@ The following versions of STL have been tested:
ObjectSpace STL on
DEC, HP, NT and SUN.
See <A href="http://www.objectspace.com/">ObjectSpace</A>.
See ObjectSpace (http://www.objectspace.com).
This is selected at installation/compile time by the environment variable
G4USE_OSPACE in the case of the latter - see documentation.
+6 -10
View File
@@ -201,11 +201,11 @@ Notes:
The code and some binary libraries are available through our "Source
Code" Web page:
- see our <A href="http://cern.ch/geant4">Geant4 Home Page</A>.
- see our Geant4 Home Page (http://cern.ch/geant4).
Please refer to <A
href="http://cern.ch/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
Please refer to the Geant4 User Documentation
(http://cern.ch/geant4/G4UsersDocuments/Overview/html)
for further information about using Geant4.
Updates to the documentation for Geant4 2.0 are expected to be published as
usual within three weeks from the release date.
@@ -253,8 +253,7 @@ Platforms configured but not tested and not supported:
Geant4 2.0 requires the installation of CLHEP 1.5.
See <A href="http://wwwinfo.cern.ch/asd/lhc++/INSTALLATION/clhep.html">
CLHEP 1.5</A>.
See CLHEP 1.5 (http://cern.ch/clhep/INSTALLATION/clhep.html).
By default, the CLHEP installation scripts will activate ISO/ANSI C++ features
if the compiler is capable. You need to explicitly disable CLHEP settings in
@@ -269,9 +268,6 @@ Geant4 2.0 coworks with LHC++ 2.0.0 and components included therein:
ObjectSpace 2.1
HepODBMS 0.3.1.3
CLHEP 1.5.0.0
For more information about LHC++ 2.0.0, see:
<A href="http://wwwinfo.cern.ch/asd/lhc++/may2000.html">LHC++ 2.0.0</A>
3. The Standard Template Library
--------------------------------
@@ -281,7 +277,7 @@ The following versions of STL have been tested:
ObjectSpace STL on
DEC, HP and SUN.
See <A href="http://www.objectspace.com/">ObjectSpace</A>.
See ObjectSpace (http://www.objectspace.com).
"Native" STL on: Linux, HP, DEC and SUN.
+9 -10
View File
@@ -337,11 +337,11 @@ Notes:
The code and some binary libraries are available through our "Source
Code" Web page:
- see our <A href="http://cern.ch/geant4">Geant4 Home Page</A>.
- see our Geant4 Home Page (http://cern.ch/geant4).
Please refer to <A
href="http://cern.ch/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
Please refer to the Geant4 User Documentation
(http://cern.ch/geant4/G4UsersDocuments/Overview/html)
for further information about using Geant4.
Updates to the documentation for Geant4 3.0 are expected to be published as
usual within three weeks from the release date.
@@ -385,8 +385,8 @@ Platforms configured but not tested and not supported:
Geant4 3.0 requires the installation of CLHEP.
See <A href="http://wwwinfo.cern.ch/asd/lhc++/INSTALLATION/clhep.html">
CLHEP</A>. Tests have been performed with CLHEP 1.6.0.0.
See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html).
Tests have been performed with CLHEP 1.6.0.0.
By default, the CLHEP installation scripts will activate ISO/ANSI C++ features
if the compiler is capable. You need to explicitly disable CLHEP settings in
@@ -398,8 +398,7 @@ Geant4 3.0 coworks with ANAPHE 3.2.0 and components included therein:
HepODBMS 0.3.1.4
CLHEP 1.6.0.0
For more information about ANAPHE 3.2.0, see:
<A href="http://wwwinfo.cern.ch/asd/lhc++/release/3.2.0/3.2.0.html">ANAPHE 3.2.0</A>
For more information about ANAPHE see: http://cern.ch/anaphe
3. The Standard Template Library
@@ -410,7 +409,7 @@ The following versions of STL have been tested:
ObjectSpace STL on
DEC, HP and SUN (CC 4.2).
See <A href="http://www.objectspace.com/">ObjectSpace</A>.
See ObjectSpace (http://www.objectspace.com).
"Native" STL on: Windows/NT, Linux, HP, DEC and SUN (CC 5.1).
@@ -507,7 +506,7 @@ For a complete list of outstanding run-time problems and to submit any
problem you may find running this version of Geant4, please refer to the
Geant4 Problem Reporting System, available on the Web at this address:
http://wwwinfo.cern.ch/asd/cgi-bin/geant4/problemreport
http://cern.ch/geant4/problemreport
7. Compilation Warnings
+9 -10
View File
@@ -292,11 +292,11 @@ Notes:
The code and some binary libraries are available through our "Source Code"
Web page:
- see our <A href="http://cern.ch/geant4">Geant4 Home Page</A>.
- see our Geant4 Home Page (http://cern.ch/geant4).
Please refer to <A
href="http://cern.ch/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
Please refer to the Geant4 User Documentation
(http://cern.ch/geant4/G4UsersDocuments/Overview/html)
for further information about using Geant4.
Updates to the documentation for Geant4 3.1 are expected to be published as
usual within three weeks from the release date.
@@ -340,8 +340,8 @@ Platforms configured but not tested and not supported:
Geant4 3.1 requires the installation of CLHEP.
See <A href="http://wwwinfo.cern.ch/asd/lhc++/INSTALLATION/clhep.html">
CLHEP</A>. Tests have been performed with CLHEP 1.6.0.0.
See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html).
Tests have been performed with CLHEP 1.6.0.0.
By default, the CLHEP installation scripts will activate ISO/ANSI C++ features
if the compiler is capable. You need to explicitly disable CLHEP settings in
@@ -353,8 +353,7 @@ Geant4 3.1 coworks with ANAPHE 3.2.0 and components included therein:
HepODBMS 0.3.1.4
CLHEP 1.6.0.0
For more information about ANAPHE 3.2.0, see:
<A href="http://wwwinfo.cern.ch/asd/lhc++/release/3.2.0/3.2.0.html">ANAPHE 3.2.0</A>
For more information about ANAPHE, see: http://cern.ch/anaphe
3. The Standard Template Library
@@ -364,7 +363,7 @@ The following versions of STL have been tested:
ObjectSpace STL on SUN (CC 4.2).
See <A href="http://www.objectspace.com/">ObjectSpace</A>.
See ObjectSpace (http://www.objectspace.com).
"Native" STL on: Windows/NT, Linux, HP, DEC and SUN (CC 5.2).
@@ -423,7 +422,7 @@ For a complete list of outstanding run-time problems and to submit any
problem you may find running this version of Geant4, please refer to the
Geant4 Problem Reporting System, available on the Web at this address:
http://wwwinfo.cern.ch/asd/cgi-bin/geant4/problemreport
http://cern.ch/geant4/problemreport
7. Compilation Warnings
+9 -10
View File
@@ -251,11 +251,11 @@ Notes:
The code and some binary libraries are available through our "Source Code"
Web page:
- see our <A href="http://cern.ch/geant4">Geant4 Home Page</A>.
- see our Geant4 Home Page (http://cern.ch/geant4).
Please refer to <A
href="http://cern.ch/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
Please refer to the Geant4 User Documentation
(http://cern.ch/geant4/G4UsersDocuments/Overview/html)
for further information about using Geant4.
Updates to the documentation for Geant4 3.2 are expected to be published as
usual within three weeks from the release date.
@@ -299,8 +299,8 @@ Platforms configured but not tested and not supported:
Geant4 3.2 requires the installation of CLHEP.
See <A href="http://wwwinfo.cern.ch/asd/lhc++/INSTALLATION/clhep.html">
CLHEP</A>. Tests have been performed with CLHEP 1.6.0.0.
See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html).
Tests have been performed with CLHEP 1.6.0.0.
By default, the CLHEP installation scripts will activate ISO/ANSI C++ features
if the compiler is capable. You need to explicitly disable CLHEP settings in
@@ -312,8 +312,7 @@ Geant4 3.2 coworks with ANAPHE 3.6.0 and components included therein:
HepODBMS 0.3.2.9
CLHEP 1.6.0.0
For more information about ANAPHE 3.6.0, see:
<A href="http://cern.ch/anaphe">ANAPHE</A>
For more information about ANAPHE, see: http://cern.ch/anaphe
3. The Standard Template Library
@@ -323,7 +322,7 @@ The following versions of STL have been tested:
ObjectSpace STL on SUN (CC 4.2).
See <A href="http://www.objectspace.com/">ObjectSpace</A>.
See ObjectSpace (http://www.objectspace.com).
"Native" STL on: Windows/NT, Linux, HP, DEC and SUN (CC 5.2).
@@ -419,7 +418,7 @@ For a complete list of outstanding run-time problems and to submit any
problem you may find running this version of Geant4, please refer to the
Geant4 Problem Reporting System, available on the Web at this address:
http://wwwinfo.cern.ch/asd/cgi-bin/geant4/problemreport
http://cern.ch/geant4/problemreport
7. Compilation Warnings
+8 -9
View File
@@ -468,11 +468,11 @@ to the related History files):
The code and some binary libraries are available through our "Source Code"
Web page:
- see our <A href="http://cern.ch/geant4">Geant4 Home Page</A>.
- see our Geant4 Home Page (http://cern.ch/geant4).
Please refer to <A
href="http://cern.ch/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
Please refer to the Geant4 User Documentation
(http://cern.ch/geant4/G4UsersDocuments/Overview/html)
for further information about using Geant4.
Contents
@@ -514,8 +514,8 @@ Platforms configured but not tested and not supported:
Geant4 4.0 requires the installation of CLHEP.
See <A href="http://wwwinfo.cern.ch/asd/lhc++/INSTALLATION/clhep.html">
CLHEP</A>. Tests have been performed with CLHEP 1.7.0.0.
See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html).
Tests have been performed with CLHEP 1.7.0.0.
By default, the CLHEP installation scripts will activate ISO/ANSI C++ features
if the compiler is capable. You need to explicitly disable CLHEP settings in
@@ -526,8 +526,7 @@ Geant4 4.0 coworks with ANAPHE 3.6.5 and components included therein:
HepODBMS 0.3.3.1
CLHEP 1.7.0.0
For more information about ANAPHE 3.6.5, see:
<A href="http://cern.ch/anaphe">ANAPHE</A>
For more information about ANAPHE, see: http://cern.ch/anaphe
3. The Standard Template Library
@@ -626,7 +625,7 @@ For a complete list of outstanding run-time problems and to submit any
problem you may find running this version of Geant4, please refer to the
Geant4 Problem Reporting System, available on the Web at this address:
http://wwwinfo.cern.ch/asd/cgi-bin/geant4/problemreport
http://cern.ch/geant4/problemreport
7. Compilation Warnings
+11 -12
View File
@@ -247,11 +247,11 @@ to the related History files):
The code and some binary libraries are available through our "Source Code"
Web page:
- see our <A href="http://cern.ch/geant4">Geant4 Home Page</A>.
- see our Geant4 Home Page (http://cern.ch/geant4).
Please refer to <A
href="http://cern.ch/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
Please refer to the Geant4 User Documentation
(http://cern.ch/geant4/G4UsersDocuments/Overview/html)
for further information about using Geant4.
Contents
@@ -292,8 +292,8 @@ Platforms configured but not tested and not supported:
Geant4 4.1 requires the installation of CLHEP.
See <A href="http://wwwinfo.cern.ch/asd/lhc++/INSTALLATION/clhep.html">
CLHEP</A>. Tests have been performed with CLHEP 1.7.5.0. However, first
See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html).
Tests have been performed with CLHEP 1.7.5.0. However, first
level porting has also been verified on CLHEP 1.8.0.0.
By default, the CLHEP installation scripts will activate ISO/ANSI C++ features
@@ -306,14 +306,13 @@ These include:
Objectivity 6.1.3
HepODBMS 0.3.3.1
CLHEP 1.7.5.0
(see: <A href="http://cern.ch/anaphe">ANAPHE</A>)
(see: http://cern.ch/anaphe)
- JAS 2.2.5
(see: <A href="http://jas.freehep.org">JAS</A>)
(see: http://jas.freehep.org)
- Open Scientist v8
(see: <A href="http://www.lal.in2p3.fr/OpenScientist/v8/welcome.html">Open Scientist</A>)
(see: http://www.lal.in2p3.fr/OpenScientist/v8/welcome.html)
AIDA headers can be downloaded from:
<A href="http://aida.freehep.org">AIDA</A>
AIDA headers can be downloaded from: http://aida.freehep.org
3. The Standard Template Library
@@ -362,7 +361,7 @@ For a complete list of outstanding run-time problems and to submit any
problem you may find running this version of Geant4, please refer to the
Geant4 Problem Reporting System, available on the Web at this address:
http://wwwinfo.cern.ch/asd/cgi-bin/geant4/problemreport
http://cern.ch/geant4/problemreport
7. Compilation Warnings
+11 -12
View File
@@ -497,11 +497,11 @@ to the related History files):
The code and some binary libraries are available through our "Source Code"
Web page:
- see our <A href="http://cern.ch/geant4">Geant4 Home Page</A>.
- see our Geant4 Home Page (http://cern.ch/geant4).
Please refer to <A
href="http://cern.ch/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
User Documentation</A> for further information about using Geant4.
Please refer to the Geant4 User Documentation
(http://cern.ch/geant4/G4UsersDocuments/Overview/html)
for further information about using Geant4.
Contents
@@ -541,20 +541,19 @@ Platforms configured but not tested and not supported:
Geant4 5.0 requires the installation of CLHEP.
See <A href="http://cern.ch/clhep/INSTALLATION/clhep.html">
CLHEP</A>. Tests have been performed with CLHEP 1.8.0.0.
See CLHEP (http://cern.ch/clhep/INSTALLATION/clhep.html).
Tests have been performed with CLHEP 1.8.0.0.
Geant4 5.0 examples with histogramming cowork with AIDA 3.0 implementations.
These include:
- ANAPHE and components included therein
(see: <A href="http://cern.ch/anaphe">ANAPHE</A>)
(see: http://cern.ch/anaphe)
- JAS (Java Analysis Studio)
(see: <A href="http://jas.freehep.org">JAS</A>)
(see: http://jas.freehep.org)
- Open Scientist
(see: <A href="http://www.lal.in2p3.fr/OpenScientist">Open Scientist</A>)
(see: http://www.lal.in2p3.fr/OpenScientist)
AIDA headers can be downloaded from:
<A href="http://aida.freehep.org">AIDA</A>
AIDA headers can be downloaded from: http://aida.freehep.org
3. The Standard Template Library
@@ -597,7 +596,7 @@ For a complete list of outstanding run-time problems and to submit any
problem you may find running this version of Geant4, please refer to the
Geant4 Problem Reporting System, available on the Web at this address:
http://wwwinfo.cern.ch/asd/cgi-bin/geant4/problemreport
http://cern.ch/geant4/problemreport
6. Compilation Warnings
+2 -2
View File
@@ -51,7 +51,7 @@ Platforms configured but not tested and not supported:
-----------------
Geant4 5.1 requires the installation of CLHEP
(href="http://cern.ch/clhep/INSTALLATION/clhep.html).
(http://cern.ch/clhep/INSTALLATION/clhep.html).
Tests have been performed with CLHEP 1.8.0.0.
Geant4 5.1 examples with histogramming cowork with AIDA 3.0 implementations.
@@ -107,7 +107,7 @@ For a complete list of outstanding run-time problems and to submit any
problem you may find running this version of Geant4, please refer to the
Geant4 Problem Reporting System, available on the Web at this address:
http://wwwinfo.cern.ch/asd/cgi-bin/geant4/problemreport
http://cern.ch/geant4/problemreport
6. Compilation Warnings
+546
View File
@@ -0,0 +1,546 @@
Geant4 5.2 Release Notes
------------------------
27 June 2003
The code and some binary libraries 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.
Contents
--------
1. Supported and Tested Platforms
2. AIDA and CLHEP
3. The Standard Template Library (STL)
4. Compiler Specific Problems
5. Known Run-Time Problems
6. Compilation Warnings
7. Known Run-Time Warnings
8. Features at Run-Time
9. Items for migration of user code
1. Supported and Tested Platforms
---------------------------------
o SUN Solaris 5.8, C++ 5.4 Patch 111715-02.
o Linux, gcc 2.95.2, gcc 3.2.
This configuration was tested with the RedHat 7.3 distribution,
versions of Geant4 have also been compiled successfully on other
Linux distributions, like Debian or Suse.
The default RedHat compiler gcc-2.96 distributed in RedHat 7.X is NOT
supported. It has been verified that it produces incorrect binaries,
therefore is not reliable. See also note below.
o Windows-2000/XP and CygWin Tools with: Visual C++ 6.0 Service Pack 5
Platforms configured but not tested and not supported:
o DEC V4.0, cxx C++ V6.1-027
o HP 10.20, aCC C++ B3910B A.01.23
o SGI V6.5.5, CC 7.2.1
o AIX 4.3.2, xlC 6.0
o MacOS 10.2, gcc 2.95.2 / gcc-3.2
o Windows/XP with CygWin Tools, .NET Visual Studio C++ 7
2. AIDA and CLHEP
-----------------
Geant4 5.2 requires the installation of CLHEP
(http://cern.ch/clhep/INSTALLATION/clhep.html).
Tests have been performed with CLHEP 1.8.0.0.
Geant4 5.2 examples with histogramming cowork with AIDA 3.0 implementations.
These include:
- ANAPHE and components included therein
(see: ANAPHE - http://cern.ch/anaphe)
- JAS (Java Analysis Studio)
(see: JAS - http://jas.freehep.org)
- Open Scientist
(see: Open Scientist - http://www.lal.in2p3.fr/OpenScientist)
AIDA headers can be downloaded from:
http://aida.freehep.org
3. The Standard Template Library
--------------------------------
Native versions of STL have been tested on the following platforms:
Windows/2000, Linux, and SUN.
NOTES:
- Platform specific setup:
o SUN: Native STL is required for ISO/ANSI setup.
o Linux: Native STL is required (non ISO/ANSI setup for egcs compiler only).
o Windows: Native STL and ISO/ANSI setup required.
4. Compiler Specific Problems
-----------------------------
o Linux Red Hat 7.X, gcc-2.96.
- The default compiler distributed by Red Hat since release 7.0 is
NOT supported and not considered reliable for running a Geant4-based
application. In more than one test case, binaries produced by gcc-2.96
have shown incorrect behavior, either due to wrong order of
initialisation of static data in memory or to bugs in the system
iostream classes, problems which apparently have all been solved in
more recent versions of the compiler (3.X series).
For information, gcc-2.96 is a compiler that has never been
officially released, nor supported by the GNU team itself and is not
considered reliable by the authors (for more information, see also
http://gcc.gnu.org/gcc-2.96.html).
5. Known Run-Time Problems and Limitations
------------------------------------------
For a complete list of outstanding run-time problems and to submit any
problem you may find running this version of Geant4, please refer to the
Geant4 Problem Reporting System, available on the Web at this address:
http://cern.ch/geant4/problemreport
6. Compilation Warnings
-----------------------
There are compilation warnings on some platforms. We do not believe
that any will lead to incorrect run-time behaviour, but we are working
on reducing them.
7. Known Run-Time Warnings
--------------------------
The following messages can be written to error output while tracking.
We believe none give rise to incorrect behaviour.
o G4PropagateInField: Warning: Particle is looping
- tracking in field will be stopped.
It has performed 1000 steps in Field while a maximum of 1000
are allowed.
8. Features at Run-Time
-----------------------
o In the propagation in field, the default value of "maximum step count"
has been changed from 10000 to 1000.
This will cause more particles to be recognised to loop earlier (see
section 7 of these notes) as this parameter controls this behavior too.
9. Items for migration of user code
-----------------------------------
o With this release, usage of the obsolete 'g4std' wrappers has been removed
from the code and wrappers themselves are now hard-coded to STL headers.
User code making use of these wrappers will still compile and run as
normal, however, we encourage to migrate the user code at the earliest
convenience.
From the -next- public release (and development/beta releases), wrappers
and definition of 'G4std' will be removed, therefore making the migration
of the user code mandatory:
- Any reference to G4std:: will have to be changed to std::
- Any #include statement of the kind
#include "g4std/XXX"
will have to migrate to standard C++ calls of the kind
#include <XXX>
o The new data sets for low-energy EM processes G4EMLOW2.2 is required
for applications making use of such processes.
----------------------------------------------------------------------------
List of changes and fixes
-------------------------
These are the main new features/fixes included in this release since the
last patched public release (for the detailed list of fixes/additions,
please refer to the related History files):
o Configuration
-------------
- Made build of STEP and STEPinterface modules optional. Added flags
G4LIB_BUILD_STEP/G4USE_STEP. By default the libraries will not be built.
- Removed G4_HAVE_BOOL macro. Now using default 'bool' type,
defined in all supported compilers.
- Removed flag G4USE_STD_NAMESPACE from specific setups in sys.
Follows migration from G4std and STL header wrappers apported in
the whole code.
- Removed obsolete usage of GNU_GCC specific option for g++ compilers.
- Modified mechanism for building shared libraries to include symbols
from external libs like OpenGL, ... so libraries will be self-contained
concerning their dependencies.
- Added UI32LIBS to interactivity.gmk to handle UI libraries on WIN32
platforms and added libraries for OpenGL and UI to default setup of
WIN32-VC and WIN32-VC7. Removed some obsolete compilation options.
- Added more strict compiler options for warnings on Linux-g++ platform.
- Added missing module Bertini-Cascade to list of libraries for
compound build.
o Digitization & Hits:
-------------------
- Fixed compilation warnings on Linux-g++ for higher-lever diagnostics.
o Electromagnetic Processes (Low-energy):
--------------------------------------
- Requires a new version of the data-set: G4EMLOW2.2.
- Improved design to allow for multiple models of Bremsstrahlung angular
distribution; currently the model for modified Tsai is provided.
- G4PenelopeCompton triggers atomic relaxation.
- Removed two memory leaks in Penelope processes and design flaw in
private interface of G4eBremsstrahlungSpectrum.
- Fixed argument to pow() in G4LinLogLogInterpolation.cc and
G4LogLogInterpolation.cc to allow for porting on .NET 7.1 compiler.
- Fixed compilation warnings on Linux-g++ for higher-lever diagnostics.
o Electromagnetic Processes (Standard):
------------------------------------
- Fixed compilation warnings on Linux-g++ for higher-lever diagnostics.
- Short-lived particles no longer applicable for G4hIonisation and
G4MultipleScattering.
- STD prototype processes:
+ Updated initialisation for STD processes: integral Bohr fluctuations.
+ Bug fix in cross section at high energies in G4MuPairProductionSTD.
+ Removed and replaced obsolete multiple-scattering classes with "model"
variant.
+ Fix in SupressionFunction of bremsstrahlung.
+ Fix in dedx for e- ionisation for E<1keV.
+ Removed tracking cut.
+ Establish limits on eloss for Bohr and Ion fluctuations.
+ Added precise range calculation.
+ Default step parameters are now set to be as for standard processes.
- Multiple Scattering:
+ IMPORTANT change in the angle distribution for muons/hadrons
the width of the central part now is corresponds to the value
can be computed from the HighLand formula (no change of this
kind for e+/e-) --> small change in the width for low to
medium energy (protons - 1 MeV - few hundred MeV) but change
up to 20 -25 % for high energy.
+ minor correction in the angle sampling algorithm, affects
e+/e- too --> small change for very small and very big
stepsize/range values.
+ Fixed misprint at Tev energies.
+ Fix minor problem in nuclear form-factor calculations.
- G4VXTRenergyLoss: modifications in BuildPhysicsTable.
Angle range 0-0.3, Legendre96 integration in 0-0.3-0.6-1.0*fMaxThetaTR.
- Set default number 120 bins for dedx table in G4eIonisation.
- Updated PAI model: included high energy transfers.
- Trivial fixes in G4PAIxSection on arguments to pow() for porting on
.NET 7.1 compiler.
o General Processes, Parameterisation, Decay, Optical:
---------------------------------------------------
- Fixed compilation warnings on Linux-g++ for higher-lever diagnostics.
o Geometry:
--------
- management:
o G4LogicalVolume:
+ added method ClearDaughters() to be used for resetting the list of
daughters to a logical volume in the use-case when only the physical
volume store is cleared at run-time.
+ notify removal of root-logical-volume from G4Region in case of
deletion of a logical-volume from the destructor, instead that from
DeRegister() method.
o GVPhysicalVolume:
+ Added pointer to mother logical volume (will replace in future
releases the pointer to mother physical volume) and related accessors.
+ Standardised registration mechanism as daughter for constructor using
the pointer to the mother's PV.
o G4PVPlacement/Replica/Parameterised:
+ Standardised registration mechanism as daughter for constructor using
the pointer to the mother's PV.
o G4Region:
+ Removed redundant calls to ScanVolumeTree() and UpdateMaterials()
from RemoveRootLogicalVolume() method.
o G4LogicalVolumeStore:
+ removed redundant check and call to RemoveRootLogicalVolume() from
Clean() method.
o G4PhysicalVolumeStore:
+ Added notification mechanism to logical volumes in the Clean() method
to update the list of daughters.
+ Update mother's LV list of daughters when deregistering a volume.
- solids
o Made compilation of STEP and STEPinterface modules optional
controlled by variable G4LIB_BUILD_STEP/G4USE_STEP.
By default modules are not built.
o G4ReflectionFactory:
+ Made public accessors: GetConstituentLV(), GetReflectedLV(),
IsConstituent() and IsReflected().
+ Added accessor GetReflectedVolumesMap() to access list of
reflected volumes.
+ Added methods Set/GetScalePrecision().
o G4BREPSolidPCone:
+ Commented out verbose-mode in SurfaceNormal(). Temporary solution
to problem reports #425, #431 and #474.
- verification
o G4GeomTestVolume:
+ Added methods TestRecursiveLine() and TestRecursiveCylinder() for
allowing recursion on line_test and cylinder_test respectively.
+ Introduced ability to control depth and starting level of recursion.
- volumes
o G4GeometryMessenger:
+ Added new commands for controlling geometry overlaps: added recursion
to line_test and cylinder_test; added possibility to customise the
resolution and shape of grid/cylinder for the test; added ability to
select depth of recursion in the geometry tree.
+ Added explicit call to OpenGeometry() in method CheckGeometry() to
force cleanup of voxelisation when command navigator/reset is called.
o G4PropagatorInField:
+ Implemented use of safety to reduce calls to navigator.
+ Changed the default value of "maximum step count" from 10000 to 1000.
This will cause more particles to be recognised to loop earlier as
this parameter controls this behavior too.
+ Added new method FindAndSetFieldManager() to find the current field
manager and set it for the Propagator. The class currently ensures
that this method is always called once for each call to ComputeStep().
+ Added new method SetDetectorFieldManager(), so as to have it updated
when the global field manager is changed.
o G4TransportationManager:
+ corrected the method SetFieldManager(). It now messages the current
global PropagatorInField to notify it.
- Fixed compilation warnings on Linux-g++ for higher-lever diagnostics.
o Global:
------
- Define g4std wrappers and G4std to original STL headers and std
namespace. Removed usage of G4USE_STD_NAMESPACE macro.
- G4PhysicsVector: moved copy costructor and assignment operator to
public. Fixes problem report #486.
o Hadronic Processes:
------------------
- Cleared most compilation warnings.
- cross_sections
+ Design iteration.
+ Fixed problem with electro-nuclear cross-sections.
+ Fixed usage of arguments to pow() for porting on .NET 7.1 compiler.
- management
+ Added AddDataSet directly to the process interface
+ Reimplementation of the registry to make it suitable for dynamic
loading of libraries.
+ Fixed warning generated after migration from g4std.
- models/cascade/evaporation
+ Fixed usage of arguments to pow() for porting on .NET 7.1 compiler.
- models/chiral_inv_phase_space
+ Fixed usage of arguments to pow() for porting on .NET 7.1 compiler.
- models/generator/de_excitation
+ Reimplemented Coulomb barrier in the GEM emission probabilities.
+ Fixed floating-point exception observed in G4NuclearLevelManager.
+ Improved mass calculation in G4VGammaDeexcitation.
+ Introduced C++ casts.
+ Reconfigured Fermi-break-up.
+ Fixed case of floating-point exception in internal conversion.
+ Fixed usage of arguments to pow() for porting on .NET 7.1 compiler.
- models/generator/kinetic_model
+ Improved transition between pre-equilibrium decay and binary cascade.
+ Corrected dummy declaration of virtual function to allow porting
on WIN32 platforms.
- models/generator/pre_equilibrium
+ Overall design iteration and re-implementation.
+ Added GNASH transition probabilities as option.
+ Added HETC emission probabilities as option.
+ Re-work of alpha emission probabilities.
+ Fixed compilation problem on WIN32 platforms.
- models/generator/scattering
+ Fixed long-standing error on SUN dealing with ordering of static
construction.
+ Fixed calculation of lower bound in sampling resonance masses
for multiple resonance final states.
- models/generator/util
+ Extended nucleon interface to allow tracing during the cascading.
+ Added fermi-momentum to G4Nucleon.
+ Enabled hit-counting in G4Nucleon.
+ Cleared printout on value of excitation energy.
+ Fixed usage of arguments to pow() for porting on .NET 7.1 compiler.
- models/low_energy
+ Added re-coil creation and energy transfer calculation to elastic
scattering
+ Bug fix for random coincidence exception in elastic scattering.
- models/neutron_hp
+ Fixed usage of arguments to pow() for porting on .NET 7.1 compiler.
- models/radiative_decay
+ Fix in G4ITDecayChannel and G4RadioactiveDecay for porting on
Windows .NET (WIN23-VC7) compiler: changed signature in
constructor for G4ITDecayChannel to use G4Ions instead of generic
G4ParticleDefinition.
- processes
+ Implemented the AddDataSet interface in all process classes.
- stopping
+ Fixed bug in alpha evaporation from nucleus observed when mu- stops
in air.
+ Adopt trivial workaround to avoid "internal compiler error" on WIN32
platforms.
o Magnetic Field:
--------------
- Revised G4FieldManager adding a (new) virtual method:
ConfigureForTrack( const G4Track *)
to enable the user to configure it with different accuracy parameters
depending on energy, particle id, volume, or other track state.
- Revised G4ChordFinder:
+ FindNextChord() now provides next Step estimate (for accuracy
in Integration)
+ Modified AdvanceChordLimited() to use FindNextChord() and
initial-step.
+ Fixed missing initialisation of several member data in the simple
constructor and fixed unitialised variable for next step.
+ Protected assignment of fLastStepEstimate_Unconstrained in case of
unitialised value.
- G4MagIntegratorDriver:
+ Took out unneccessary square roots and divisions.
Giving 15% performance boost.
+ Added extra argument for suggested initial step size 'hinitial'
to Accurate Advance.
+ Keep simple statistics on number of steps, total error and step size.
- Fixed compilation warnings on Linux-g++ for higher-lever diagnostics.
o Materials:
---------
- G4Isotope: fixed bug in operator=. Fixes problem report #429
- Fixed compilation warnings on Linux-g++ for higher-lever diagnostics.
o Parameterisations:
-----------------
- Fixed compilation warnings on Linux-g++ for higher-lever diagnostics.
o Particles:
---------
- G4DynamicParticle.cc:
+ Fix in constructors for the calculation of masses to avoid negative
values result of precision loss when massless particles
(like photons) are treated. Fixes problem report #489.
+ Use condition m^2<0.001MeV^2 to identify massless particles.
o Persistency:
-----------
- Fixed compilation warnings on Linux-g++ for higher-lever diagnostics.
o Run, Events, Intercoms and Interfaces
-------------------------------------
- Fixed compilation warnings on Linux-g++ for higher-lever diagnostics.
- G4UItokenNum.hh: fixed longstanding bug in the definition of the
struct "yystype": defined operator= and copy-constructor, defined
default constructor with default initialisation of members.
Fixes potential usage of uninitialised values.
- G4UIGainServer: fixed compilation problem on Darwin-g++ with gcc-3.X.
- G4VUserPhysicsList: added check for IsShortLived() before building the
physics table in BuildPhysicsTable().
- G4RunManager: fixed case of removal of logical volume from default
region, when the whole geometry setup is cleared between runs.
o Tracking & Track:
----------------
- Fixed copy operator of G4Track not to copy the pointer to user
information.
- Fixed compilation warnings on Linux-g++ for higher-lever diagnostics.
o Transportation:
--------------
- G4Transportation:
o Use new method of PropagatorInField to simplify choice of
global/local field.
o Activated new capability of a (user derived) field manager to configure
itself with different accuracy parameters depending on track's energy,
particle identity, or other property.
o Fixes to accomodate incorrect and missing functionality for the
following use cases:
+ setting of a local field when no global field exists.
+ overriding of an existing global field with a 'zero' field
by creating a local field manager that has a NULL G4Field pointer.
- Fixed compilation warnings on Linux-g++ for higher-lever diagnostics.
o Visualization:
-------------
- Fixed compilation warnings on Linux-g++ for higher-lever diagnostics.
- OpenGL
+ Added first implementation of G4OpenGLWin32Viewer for Windows GL.
+ Fixes for porting compilation on WIN32.
o g3tog4 tool:
-----------
- Fixed compilation warnings on Linux-g++ for higher-lever diagnostics.
o data
----
- New data set for low-energy EM processes: G4EMLOWEN2.2.
o Examples:
--------
- Updated reference outputs.
- Cleared most compilation warnings.
- advanced:
o brachytherapy
+ Implementation revision.
o composite_calorimeter
+ Updated physics lists.
o gammaray_telescope
+ Updated to ANAPHE 5.0.5 and cuts-by-region.
o lAr_calorimeter
+ Updated physics lists.
o Rich
+ New application simulating the TestBeam setup of the Rich
detector in LHCb.
o Tiara
+ New application implementing a simulation of the neutron
shielding experiment TIARA using importance biasing.
o underground_physics
+ Fixes to physics list.
+ Added HepRep visualization.
+ Fixes to hits collection: fixed hits deposition on photocathode
material.
o xray_fluorescence
+ Bug fixes for energy deposition in the detector.
- extended:
o analysis
+ A01
o Updated AIDA scripts.
+ AnaEx01
o Updated to AIDA 3.0.
o biasing
+ Implementation revision.
o electromagnetic
+ TestEm1, TestEm2, TestEm3
o Corrected deletion of volumes/solids when geometry is updated.
+ TestEm4
o
+ TestEm5
o New histogram (ID=11) for the projeted angle at exit.
Bug corrected in gustep.
o New macros for multiple-scattering tests: run61,71,81,91
o Proper deletion of old geometry when it is updated.
+ TestEm6
o
+ TestEm7
o New example simulating energy deposited by particles absorbed
in a given material (Bragg peak).
+ TestEm8
o Fixed warnings and changed input parameters for updated PAI.
o field
+ Fixed geometry construction in case of switching of detector.
o geometry
+ cad
o GNUmakefile: added control through G4USE_STEP variable.
o medical
+ DICOM
o New application implementing a Geant4 interface to the DICOM
image format for the simulation of a phantom geometry.
o persistency
+ Updates to README and scripts.
- novice
o N03
+ Properly delete volumes/solids when geometry is updated.
+ Moved heprep.mac to visTutor.
+25 -1
View File
@@ -1,4 +1,4 @@
# $Id: G4UI_BUILD.gmk,v 1.2 2001/08/11 22:36:47 johna Exp $
# $Id: G4UI_BUILD.gmk,v 1.3 2003/06/11 13:18:56 gunter Exp $
# -------------------------------------------------------------
# Interfaces-specific CPPFLAGS for BUILD phase.
# John Allison, 6th July 1998.
@@ -50,5 +50,29 @@ endif
############################################################################
ifdef G4LIB_BUILD_SHARED
ifdef G4UI_BUILD_XM_SESSION
G4UI_USE_XM = 1
endif
ifdef G4UI_BUILD_XAW_SESSION
G4UI_USE_XAW = 1
endif
ifdef G4UI_BUILD_WIN32_SESSION
G4UI_USE_WIN32 = 1
endif
########################### interfaces/OPACS #######################
ifdef G4UI_BUILD_WO_SESSION
G4UI_USE_WO = 1
endif
include $(G4INSTALL)/config/G4UI_USE.gmk
endif # G4LIB_BUILD_SHARED
endif #G4UI_NONE
+5 -2
View File
@@ -1,10 +1,12 @@
# $Id: G4UI_USE.gmk,v 1.6 2002/11/22 11:53:02 gcosmo Exp $
# $Id: G4UI_USE.gmk,v 1.7 2003/06/11 13:18:56 gunter Exp $
# -------------------------------------------------------------
# GNUmakefile for CPPFLAGS for interfaces USE phase.
# John Allison, 6th July 1998.
########################### interfaces/basic #######################
ifndef G4UI_USE_INCLUDED
G4UI_USE_INCLUDED = 1
ifndef G4UI_NONE
UILIBS :=
@@ -95,3 +97,4 @@ ifndef G4UI_USE
endif
endif #G4UI_NONE
endif # G4UI_USE_INCLUDED
+47 -1
View File
@@ -1,4 +1,4 @@
# $Id: G4VIS_BUILD.gmk,v 1.11 2001/11/06 13:16:39 johna Exp $
# $Id: G4VIS_BUILD.gmk,v 1.12 2003/06/11 13:18:56 gunter Exp $
# -------------------------------------------------------------
# Visualization-specific CPPFLAGS for BUILD phase.
# John Allison, 24th January 1998.
@@ -68,4 +68,50 @@ ifdef G4VIS_BUILD_VRML_DRIVER
CPPFLAGS += -DG4VIS_BUILD_VRML_DRIVER
endif
ifdef G4LIB_BUILD_SHARED
# build shared libs MUST resolve external libs at library build time
ifdef G4VIS_BUILD_DAWN_DRIVER
G4VIS_USE_DAWN = 1
endif
ifdef G4VIS_BUILD_OPACS_DRIVER
G4VIS_USE_OPACS = 1
endif
ifdef G4VIS_BUILD_OPENGLX_DRIVER
G4VIS_USE_OPENGLX = 1
endif
ifdef G4VIS_BUILD_OPENGLWIN32_DRIVER
G4VIS_USE_OPENGLWIN32 = 1
endif
ifdef G4VIS_BUILD_OPENGLXM_DRIVER
G4VIS_USE_OPENGLXM = 1
endif
ifdef G4VIS_BUILD_OPENGL_DRIVER
G4VIS_USE_OPENGL = 1
endif
ifdef G4VIS_BUILD_OIX_DRIVER
G4VIS_USE_OIX = 1
endif
ifdef G4VIS_BUILD_OIWIN32_DRIVER
G4VIS_USE_OIWIN32 = 1
endif
ifdef G4VIS_BUILD_OI_DRIVER
G4VIS_USE_OI = 1
endif
ifdef G4VIS_BUILD_VRML_DRIVER
G4VIS_USE_VRML = 1
endif
include $(G4INSTALL)/config/G4VIS_USE.gmk
endif # G4LIB_BUILD_SHARED
endif #G4VIS_NONE
+5 -10
View File
@@ -1,10 +1,13 @@
# $Id: G4VIS_USE.gmk,v 1.14 2002/11/22 11:53:09 gcosmo Exp $
# $Id: G4VIS_USE.gmk,v 1.16 2003/06/11 13:18:57 gunter Exp $
# -------------------------------------------------------------
# GNUmakefile for CPPFLAGS for visualization USE phase.
# John Allison, 24th January 1998.
ifndef G4VIS_NONE
ifndef G4VIS_USE_INCLUDED
G4VIS_USE_INCLUDED = 1
ifndef VISLIBS
VISLIBS :=
endif
@@ -106,15 +109,6 @@ endif
G4VIS_USE = 1
CPPFLAGS += -DG4VIS_USE
ifdef G4_SOLVE_TEMPLATES
G4_SOLVE_VIS_TEMPLATES = 1
endif
ifdef GNU_GCC
G4_SOLVE_VIS_TEMPLATES = 1
endif
ifdef G4_SOLVE_VIS_TEMPLATES
CPPFLAGS += -DG4_SOLVE_VIS_TEMPLATES
endif
ifneq ($(G4INCLUDE_EXEC),1)
CPPFLAGS += -I$(G4BASE)/visualization/management/include
CPPFLAGS += -I$(G4BASE)/visualization/modeling/include
@@ -122,4 +116,5 @@ endif
VISLIBS += -lG4vis_management
VISLIBS += -lG4modeling
endif # G4VIS_USE_INCLUDED
endif # G4VIS_NONE
+35 -2
View File
@@ -1,5 +1,5 @@
$Id: History,v 1.210 2003/01/22 18:02:21 gcosmo Exp $
$Name: geant4-05-01 $
$Id: History,v 1.218 2003/06/26 07:54:59 gcosmo Exp $
$Name: geant4-05-02 $
-------------------------------------------------------------------
=========================================================
@@ -17,6 +17,39 @@ committal in the CVS repository !
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
24th June 2003 Gabriele Cosmo (config-V05-01-05)
- Added UI32LIBS to interactivity.gmk to handle UI libraries on WIN32
platforms.
- Added libraries for OpenGL and UI to default setup of WIN32-VC and
WIN32-VC7. Removed some obsolete compilation options.
18th June 2003 Gabriele Cosmo (config-V05-01-04)
- Removed flag G4USE_STD_NAMESPACE from specific setups in sys.
Follows migration from G4std apported in source/global and whole code.
16th June 2003 Gabriele Cosmo
- binmake.gmk: added module geometry/divisions in $INCFLAGS list.
11th June 2003 Gunter Folger (config-V05-01-03)
- G4VIS_BUILD.gmk, G4VIS_USE.gmk, G4UI_BUILD.gmk, G4UI_USE.gmk, and
sys/{Linux-g++,SU-CC}.gmk:
When building shared libraries needing external libs like OpenGL...,
add these at shared library building, so these libs know about these
dependency and have this resolved.
6th June 2003 Gabriele Cosmo (config-V05-01-02)
- architecture.gmk and specific setups in sys: get rid of G4_HAVE_BOOL
macro. Now using default 'bool' type, defined in all supported compilers.
28th May 2003 Gabriele Cosmo (config-V05-01-01)
- architecture.gmk, binmake.gmk: added flags G4LIB_BUILD_STEP/G4USE_STEP
to make optional the compilation of the STEP library and interface module.
By default the libraries will not be built.
31st March 2003 Gabriele Cosmo (config-V05-01-00)
- Added more strict compiler options for Linux-g++ platform.
- Removed obsolete usage of GNU_GCC specific option for g++ compilers.
22nd January 2003 Gabriele Cosmo (config-V05-00-00)
- Added experimental setup WIN32-VC7.gmk for Windows .NET VC++ compiler.
- Generalised identification of WIN32 specific setups in core scripts.
+10 -8
View File
@@ -1,4 +1,4 @@
# $Id: architecture.gmk,v 1.85 2003/01/22 18:02:02 gcosmo Exp $
# $Id: architecture.gmk,v 1.87 2003/06/06 16:20:57 gcosmo Exp $
# ------------------------------------------------------------------------
# GEANT 4 - Architecture configuration script for GNU Make
#
@@ -15,7 +15,7 @@
#
# Linux-g++ Linux (Red Hat 7.3), gcc-2.95.2 or gcc-3.2 (default)
#
# SUN-CC SunOS 5.8, CC 5.3 or 5.4
# SUN-CC SunOS 5.8, CC 5.4
#
# WIN32-VC Windows/2000/XP and Microsoft Visual C++ 6.0 - SP5
# Adding CYGWIN32 tools
@@ -91,6 +91,14 @@ ifneq ($(G4LIB_BUILD_G3TOG4),)
G4USE_G3TOG4 = 1
endif
# Specify if to build the STEP and STEinterface modules or not.
# Default is NO.
#
ifneq ($(G4LIB_BUILD_STEP),)
G4LIB_BUILD_STEP = 1
G4USE_STEP = 1
endif
# If not specified, the default path for G4 binaries G4BIN is
# set to $G4WORKDIR/bin/$G4SYSTEM ...
#
@@ -264,12 +272,6 @@ GREP := grep
#
include $(G4INSTALL)/config/sys/$(G4SYSTEM).gmk
# If compiler recognises implicit C++ type bool...
#
ifdef G4_HAVE_BOOL
CPPFLAGS += -DG4_HAVE_BOOL
endif
# If there is no cbrt() function...
#
ifdef G4_NO_CBRT
+7 -4
View File
@@ -1,4 +1,4 @@
# $Id: binmake.gmk,v 1.86 2003/01/22 18:02:03 gcosmo Exp $
# $Id: binmake.gmk,v 1.88 2003/06/16 15:28:28 gcosmo Exp $
# ----------------------------------------------------------
# Script defining rules and paths for making binaries.
# First implementation: Gabriele Cosmo, 25/06/1998.
@@ -95,8 +95,7 @@ ifndef INCFLAGS
-I$(G4BASE)/geometry/solids/specific/include \
-I$(G4BASE)/geometry/solids/BREPS/include \
-I$(G4BASE)/geometry/solids/Boolean/include \
-I$(G4BASE)/geometry/solids/STEP/include \
-I$(G4BASE)/geometry/solids/STEPinterface/include \
-I$(G4BASE)/geometry/divisions/include \
-I$(G4BASE)/geometry/volumes/include \
-I$(G4BASE)/geometry/verification/include \
-I$(G4BASE)/geometry/magneticfield/include \
@@ -111,8 +110,12 @@ ifndef INCFLAGS
-I$(G4BASE)/event/include \
-I$(G4BASE)/graphics_reps/include \
-I$(G4BASE)/intercoms/include
ifdef G4USE_STEP
INCFLAGS += -I$(G4BASE)/geometry/solids/STEP/include \
-I$(G4BASE)/geometry/solids/STEPinterface/include
endif
ifdef G4USE_G3TOG4
INCFLAGS += -I$(G4BASE)/g3tog4/include
INCFLAGS += -I$(G4BASE)/g3tog4/include
endif
endif
endif
+1
View File
@@ -131,5 +131,6 @@ endif
ifdef G4INTY_USE_WIN32
CPPFLAGS += -DG4INTY_USE_WIN32
INTYLIBS += $(UI32LIBS)
endif
+2 -2
View File
@@ -1,6 +1,6 @@
# $Id: GNUmakefile,v 1.2 2003/02/21 15:23:26 stesting Exp $
# $Id: GNUmakefile,v 1.3 2003/05/28 08:03:22 gcosmo Exp $
# --------------------------------------------------------------
# GNUmakefile for tests module. Gabriele Cosmo, 27/06/98.
# GNUmakefile for config scripts. Sergei Sadilov, 13/12/02.
# --------------------------------------------------------------
name := Marker
+8 -6
View File
@@ -1,4 +1,4 @@
# $Id: binmake.gmk,v 1.2 2003/02/21 15:23:26 stesting Exp $
# $Id: binmake.gmk,v 1.3 2003/05/28 08:03:22 gcosmo Exp $
# ----------------------------------------------------------
# Script defining rules and paths for making binaries.
# First implementation: Gabriele Cosmo, 25/06/1998.
@@ -95,8 +95,6 @@ ifndef INCFLAGS
-I$(G4BASE)/geometry/solids/specific/include \
-I$(G4BASE)/geometry/solids/BREPS/include \
-I$(G4BASE)/geometry/solids/Boolean/include \
-I$(G4BASE)/geometry/solids/STEP/include \
-I$(G4BASE)/geometry/solids/STEPinterface/include \
-I$(G4BASE)/geometry/volumes/include \
-I$(G4BASE)/geometry/verification/include \
-I$(G4BASE)/geometry/magneticfield/include \
@@ -111,8 +109,12 @@ ifndef INCFLAGS
-I$(G4BASE)/event/include \
-I$(G4BASE)/graphics_reps/include \
-I$(G4BASE)/intercoms/include
ifdef G4USE_STEP
INCFLAGS += -I$(G4BASE)/geometry/solids/STEP/include \
-I$(G4BASE)/geometry/solids/STEPinterface/include
endif
ifdef G4USE_G3TOG4
INCFLAGS += -I$(G4BASE)/g3tog4/include
INCFLAGS += -I$(G4BASE)/g3tog4/include
endif
endif
endif
@@ -228,7 +230,7 @@ else
endif
LDLIBS_PREFINAL += $(LDLIBS4)
ifeq ($(G4SYSTEM),WIN32-VC)
ifneq (,$(findstring WIN32-VC,$(G4SYSTEM)))
WIN32TMP := $(patsubst -L%,$(LIB_PATH)%,$(LDFLAGS))
LDFLAGS = $(patsubst /,$(PATH_DEL),$(WIN32TMP))
LDLIBS = $(patsubst -l%,lib%.a,$(LDLIBS_PREFINAL))
@@ -331,7 +333,7 @@ $(G4TMPDIR)/exe/$(G4TARGET).d: $(G4TARGET).cc
@if [ ! -d $(G4TMPDIR)/exe ] ; then mkdir $(G4TMPDIR)/exe ;fi
@echo Making dependency for file $<...
@set -e;\
g++ $(GPPFLAGS) $(CPPFLAGS) $< |\
g++ $(GPPFLAGS) $(CPPFLAGS) -w $< |\
sed 's!$(G4TARGET)\.o!$(G4TMPDIR)/exe/& $@!' >$@;\
[ -s $@ ] || rm -f $@
ifneq ($(dependencies),)
-2
View File
@@ -28,8 +28,6 @@ ifeq ($(G4SYSTEM),AIX-xlC)
ifndef OGLLIBS
OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL
endif
G4USE_STD_NAMESPACE := yes
CPPFLAGS += -DG4USE_STD_NAMESPACE
define build-granular-shared-lib
@echo "Shared Libraries not supported on $(G4SYSTEM)
-4
View File
@@ -12,7 +12,6 @@ ifeq ($(G4SYSTEM),DEC-cxx)
CCFLAGS := -g
endif
endif
G4_HAVE_BOOL := yes
CXXFLAGS += -ieee -timplicit_local
SHEXT := so
#future G4RUNPATHOPTION := -rpath
@@ -27,10 +26,7 @@ ifeq ($(G4SYSTEM),DEC-cxx)
OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL
# OGLLIBS := -lMesaGLU -lMesaGL
endif
CPPFLAGS += -I$(G4BASE)/global/management/include/g4std/wrappers/$(G4SYSTEM)
G4USE_STD_NAMESPACE := yes
CXXFLAGS += -std strict_ansi
CPPFLAGS += -DG4USE_STD_NAMESPACE
define build-granular-shared-lib
@libdir=`(cd $(@D);/bin/pwd)`; \
+1 -4
View File
@@ -12,8 +12,7 @@ ifeq ($(G4SYSTEM),Darwin-g++)
# choice of GNU compilers:
CXX := g++2
# CXX := g++3
GNU_GCC = 1
CXXFLAGS := -Wall -ansi -pedantic -pipe -fno-for-scope -DGNU_GCC
CXXFLAGS := -Wall -ansi -pedantic -pipe
# optionally add verbose flag
# CXXFLAGS += -v
ifdef G4OPTIMISE
@@ -58,8 +57,6 @@ ifeq ($(G4SYSTEM),Darwin-g++)
OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL
endif
OIVFLAGS += -I$(OIHOME)/include
G4USE_STD_NAMESPACE := yes
CPPFLAGS += -DG4USE_STD_NAMESPACE
define build-granular-shared-lib
@libdir=`(cd $(@D);/bin/pwd)`; \
cd $(G4TMPDIR); \
-1
View File
@@ -19,7 +19,6 @@ ifeq ($(G4SYSTEM),HP-aCC)
FCFLAGS += +Z
CCFLAGS += +Z
endif
G4_HAVE_BOOL := yes
FC := f77
SHEXT := sl
FCFLAGS += +E6 +ppu
+1 -2
View File
@@ -3,8 +3,7 @@
# Red-Hat 6.1, egcs-1.1.2 (gcc-2.91.66)
ifeq ($(G4SYSTEM),Linux-egcs)
CXX := g++
GNU_GCC = 1
CXXFLAGS := -pipe -fno-for-scope -DGNU_GCC
CXXFLAGS := -pipe
ifdef G4OPTIMISE
CXXFLAGS += -O
FCFLAGS := -O
+5 -8
View File
@@ -1,11 +1,10 @@
#
# ------ GNU/LINUX ------ gcc 2.95.2
# ------ GNU/LINUX ------ gcc 2.95.2 / gcc 3.2
#
ifeq ($(G4SYSTEM),Linux-g++)
CXX := g++
GNU_GCC = 1
CXXFLAGS := -Wall -ansi -pedantic -pipe -fno-for-scope -DGNU_GCC
# CXXFLAGS := -pipe -fno-for-scope -DGNU_GCC
CXXFLAGS := -W -Wall -ansi -pedantic -Wno-non-virtual-dtor -Wno-long-long
CXXFLAGS += -Wwrite-strings -Wpointer-arith -Woverloaded-virtual -pipe
ifdef G4OPTIMISE
CXXFLAGS += -O
FCFLAGS := -O
@@ -46,17 +45,15 @@ ifeq ($(G4SYSTEM),Linux-g++)
OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL
endif
OIVFLAGS += -I$(OIHOME)/include
G4USE_STD_NAMESPACE := yes
CPPFLAGS += -DG4USE_STD_NAMESPACE
define build-granular-shared-lib
@libdir=`(cd $(@D);/bin/pwd)`; \
cd $(G4TMPDIR); \
$(CXX) -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) *.o
$(CXX) -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) $(INTYLIBS) *.o
endef
define build-global-shared-lib
@libdir=`(cd $(@D);/bin/pwd)`; \
cd $(G4TMP)/$(G4SYSTEM); \
$(CXX) -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) \
$(CXX) -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) $(INTYLIBS) \
$(foreach dir,$(SUBLIBS),$(dir)/*.o);
endef
+1 -3
View File
@@ -12,7 +12,6 @@ ifeq ($(G4SYSTEM),SGI-CC)
CCFLAGS := -g
endif
endif
G4_HAVE_BOOL := yes
CXXFLAGS += -ptused
FC := f77
FCLIBS := -lftn
@@ -26,8 +25,7 @@ ifeq ($(G4SYSTEM),SGI-CC)
ifndef OGLLIBS
OGLLIBS := -L/usr/lib -lGLU -lGL
endif
G4USE_STD_NAMESPACE := yes
CPPFLAGS += -DSOCKET_IRIX_SOLARIS -DG4USE_STD_NAMESPACE
CPPFLAGS += -DSOCKET_IRIX_SOLARIS
define build-granular-shared-lib
@echo "Shared Libraries not supported on $(G4SYSTEM)
+2 -5
View File
@@ -19,7 +19,6 @@ ifeq ($(G4SYSTEM),SUN-CC)
CCFLAGS += -KPIC
endif
G4RUNPATHOPTION := -R
G4_HAVE_BOOL := yes
CFRONT_G4TEMPLATE_REPOSITORY := true
FC := f77
SHEXT := so
@@ -45,18 +44,16 @@ ifeq ($(G4SYSTEM),SUN-CC)
CPPFLAGS += -DSOCKET_IRIX_SOLARIS
LOADLIBS += -lsocket -lnsl
CPPFLAGS += -DG4NOT_ISO_DELETES -DG4NO_ISO_VECDIST
G4USE_STD_NAMESPACE := yes
CPPFLAGS += -DG4USE_STD_NAMESPACE
define build-granular-shared-lib
@libdir=`(cd $(@D);/bin/pwd)`; \
cd $(G4TMPDIR); \
$(CXX) -G $(CXXTEMPLATE_FLAGS) -o $$libdir/$(@F) -h $(@F) *.o
$(CXX) -G $(CXXTEMPLATE_FLAGS) -o $$libdir/$(@F) -h $(@F) $(INTYLIBS) *.o
endef
define build-global-shared-lib
@libdir=`(cd $(@D);/bin/pwd)`; \
cd $(G4TMP)/$(G4SYSTEM); \
$(CXX) -G $(CXXTEMPLATE_FLAGS) -o $$libdir/$(@F) -h $(@F) \
$(CXX) -G $(CXXTEMPLATE_FLAGS) -o $$libdir/$(@F) -h $(@F) $(INTYLIBS) \
$(foreach dir,$(SUBLIBS),$(dir)/*.o);
endef
endif
+5 -17
View File
@@ -3,7 +3,6 @@
#
ifeq ($(G4SYSTEM),WIN32-VC)
CXX := CL
G4_HAVE_BOOL := yes
ifdef G4OPTIMISE
CXXFLAGS += -Ox
else
@@ -11,23 +10,9 @@ ifeq ($(G4SYSTEM),WIN32-VC)
CXXFLAGS += -Od -Zi -Fd$(G4LIBDIR)/lib$(name)
endif
endif
CXXFLAGS += -MD -GR -GX -Zm200 -nologo -DWIN32 -D_CONSOLE
CXXFLAGS += -D_WIN32 -DOS
CXXFLAGS += -MD -GR -GX -Zm200 -nologo -DWIN32
CPPFLAGS += -DWIN32
#
# Use ISO standard version.
#
G4USE_STD_NAMESPACE := yes
CPPFLAGS += -DG4USE_STD_NAMESPACE
LDFLAGS += -FORCE /NODEFAULTLIB:MSVCRT.dll
#
# Should set $LIB environment to include VC++ Studio lib directories, e.g.
#
# $(LIB_PATH)"c:\ProgramFiles\DevStudio\vc\lib" \
# $(LIB_PATH)'\\srv1_info\v2\vc50pro1\DEVSTUDIO\VC\LIB' \
# $(LIB_PATH)'\\srv1_info\v2\DecFtn5\x86\df\lib'
AR := LIB
ECHO := echo -e
@@ -37,7 +22,10 @@ ifeq ($(G4SYSTEM),WIN32-VC)
OGLFLAGS :=
endif
ifndef OGLLIBS
OGLLIBS := -lGLU -lGL
OGLLIBS := glu32.lib opengl32.lib
endif
ifndef UI32LIBS
UI32LIBS := gdi32.lib user32.lib
endif
define build-granular-shared-lib
+7 -12
View File
@@ -1,9 +1,8 @@
#
# ------ WIN32/VC ------ Visual-C++ 7.0 .NET
# experimental setup
# ------ WIN32/VC ------ Visual-C++ 7 .NET
# experimental setup
ifeq ($(G4SYSTEM),WIN32-VC7)
CXX := CL
G4_HAVE_BOOL := yes
ifdef G4OPTIMISE
CXXFLAGS += -Ox
else
@@ -11,15 +10,8 @@ ifeq ($(G4SYSTEM),WIN32-VC7)
CXXFLAGS += -Od -Zi -Fd$(G4LIBDIR)/lib$(name)
endif
endif
CXXFLAGS += -MD -GR -GX -Zm200 -nologo -DWIN32 -D_CONSOLE
CXXFLAGS += -D_WIN32 -DOS
CXXFLAGS += -MD -GR -GX -Zm200 -nologo -DWIN32
CPPFLAGS += -DWIN32 -DXPNET
#
# Use ISO standard version.
#
G4USE_STD_NAMESPACE := yes
CPPFLAGS += -DG4USE_STD_NAMESPACE
LDFLAGS += -FORCE /NODEFAULTLIB:MSVCRT.dll
AR := LIB
@@ -30,7 +22,10 @@ ifeq ($(G4SYSTEM),WIN32-VC7)
OGLFLAGS :=
endif
ifndef OGLLIBS
OGLLIBS := -lGLU -lGL
OGLLIBS := glu32.lib opengl32.lib
endif
ifndef UI32LIBS
UI32LIBS := gdi32.lib user32.lib
endif
define build-granular-shared-lib
+3 -6
View File
@@ -1,14 +1,13 @@
#
# ------ GNU/WIN32 CYGNUS ------ !!! not supported !!!
# Cygnus CygWin - gcc-2.95.3
# Windows 2000
# Cygnus CygWin - gcc-2.95.3, gcc-3.2
# Windows 2000/XP
#
# Stefano Agostinelli (agos001@pn.itnet.it) - IST Group, Genova
#
ifeq ($(G4SYSTEM),WIN32-g++)
CXX := g++
GNU_GCC = 1
CXXFLAGS := -Wall -ansi -pedantic -pipe -fno-for-scope -DGNU_GCC
CXXFLAGS := -Wall -ansi -pedantic -pipe
ifdef G4OPTIMISE
CXXFLAGS += -O
FCFLAGS := -O
@@ -40,8 +39,6 @@ ifeq ($(G4SYSTEM),WIN32-g++)
OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL
endif
OIVFLAGS += -I$(OIHOME)/include
G4USE_STD_NAMESPACE := yes
CPPFLAGS += -DG4USE_STD_NAMESPACE
define build-granular-shared-lib
@echo "Shared Libraries not supported on $(G4SYSTEM)
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: EXPO.cc,v 1.9 2001/07/11 09:56:40 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
#include <stdlib.h>
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: TEST.cc,v 1.4 2001/07/11 09:56:40 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
#include <stdlib.h>
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: EXPO_Detector.icc,v 1.4 2001/07/11 09:56:42 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
// See also G4/run/example/MyDetectorConstruction.cc.
@@ -22,7 +22,7 @@
//
//
// $Id: EXPO_PhysicsList.hh,v 1.5 2001/07/11 09:56:43 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// ------------------------------------------------------------
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: EXPO_PhysicsList.icc,v 1.5 2001/07/11 09:56:43 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// $Id: EXPO_PhysicsList.icc,v 1.6 2003/06/16 16:44:50 gunter Exp $
// GEANT4 tag $Name: geant4-05-02 $
//
//
// ------------------------------------------------------------
@@ -45,7 +45,7 @@
#include "G4Material.hh"
#include "G4MaterialTable.hh"
#include "G4ios.hh"
#include "g4std/iomanip"
#include <iomanip>
EXPO_PhysicsList::EXPO_PhysicsList(): G4VUserPhysicsList()
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: EXPO_Primary.icc,v 1.4 2001/07/11 09:56:43 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
// See also G4/run/example/EXPO_PrimaryGeneratorAction.cc.
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4o.h,v 1.4 2001/07/11 09:56:43 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oCommon.hh,v 1.4 2001/07/11 09:56:43 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
/*
Included by G4o.h.
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oCommon.icc,v 1.4 2001/07/11 09:56:43 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
/*
Included by G4o.cc.
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oDrawer.hh,v 1.4 2001/07/11 09:56:44 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oEXPO.h,v 1.4 2001/07/11 09:56:44 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oScene.hh,v 1.5 2001/07/11 09:56:44 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oState.hh,v 1.5 2001/07/11 09:56:44 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
#ifndef G4oState_h
#define G4oState_h
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: WoG4o.h,v 1.4 2001/07/11 09:56:44 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4o.cc,v 1.8 2001/07/11 09:56:45 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
/*
#define DEBUG
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oDrawer.cc,v 1.7 2001/07/11 09:56:45 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
/*
From geant4/visualization/management/src/G4VisManager.cc.
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oScene.cc,v 1.8 2001/07/11 09:56:45 gunter Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oState.cc,v 1.8 2002/12/06 16:19:22 gcosmo Exp $
// GEANT4 tag $Name: geant4-05-01 $
// GEANT4 tag $Name: geant4-05-02 $
//
//#define DEBUG
+8 -1
View File
@@ -1,4 +1,4 @@
$Id: History,v 1.68 2003/04/30 13:57:45 gcosmo Exp $
$Id: History,v 1.70 2003/06/26 13:47:18 gcosmo Exp $
-------------------------------------------------------------------
=========================================================
@@ -17,6 +17,13 @@ committal in the CVS repository !
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
27th June 2003 Gabriele Cosmo (examples-V05-01-01)
- Updated reference outputs.
- Included fixes to GNUmakefiles for porting on Darwin in GDML example.
30th May 2003 Gabriele Cosmo (examples-V05-01-00)
- Updated reference outputs.
30th April 2003 Gabriele Cosmo (examples-V05-00-02)
- Includes fixes/improvements part of release 5.1.
- Updated reference outputs.
+5 -1
View File
@@ -1,4 +1,4 @@
$Id: README,v 1.4 2003/02/27 19:30:05 gcosmo Exp $
$Id: README,v 1.5 2003/06/06 14:56:31 gcosmo Exp $
-------------------------------------------------------------------
=========================================================
@@ -48,6 +48,8 @@ Novice level examples
- EM shower parametrisation
ExampleN06
- Optical photon processes
ExampleN07
- Regions and parameterised materials
Extended level examples
analysis
@@ -86,6 +88,8 @@ Advanced level examples
lAr_calorimeter
- Simulation of the Liquid Argon Calorimeter of the ATLAS
Detector at LHC.
Rich
- Rich Test Beam Simulation.
underground_physics
- Setup of an underground dark matter experiment.
xray_fluorescence
+2 -1
View File
@@ -1,4 +1,4 @@
# $Id: GNUmakefile,v 1.3 2001/12/04 13:38:55 gcosmo Exp $
# $Id: GNUmakefile,v 1.4 2003/06/25 14:55:54 gcosmo Exp $
# --------------------------------------------------------------
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
# --------------------------------------------------------------
@@ -11,6 +11,7 @@ include $(G4INSTALL)/config/architecture.gmk
SUBDIRS = brachytherapy gammaray_telescope underground_physics
SUBDIRS += xray_fluorescence xray_telescope
SUBDIRS += Tiara Rich composite_calorimeter lAr_calorimeter
.PHONY : all clean clean_libs
+45
View File
@@ -0,0 +1,45 @@
# $Id: GNUmakefile,v 1.1 2003/05/26 13:02:50 pmendez Exp $
# --------------------------------------------------------------
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
# --------------------------------------------------------------
name := RichTbSim
G4TARGET := $(name)
G4EXLIB := true
ifndef G4INSTALL
G4INSTALL = ../../..
endif
ifdef G4ANALYSIS_USE
CPPFLAGS += -DG4ANALYSIS_USE
endif
include $(G4INSTALL)/config/architecture.gmk
ifdef G4ANALYSIS_USE
CPPFLAGS += `aida-config --include`
LDFLAGS += `aida-config --lib`
endif
#
.PHONY: all
all: lib bin
include $(G4INSTALL)/config/binmake.gmk
visclean:
rm -f g4*.prim g4*.eps g4*.wrl
rm -f .DAWN_*
+137
View File
@@ -0,0 +1,137 @@
==============================================================
Geant4 - an Object-oriented Toolkit for Simulation HEP
==============================================================
Rich Detector for LHCb
----------------------------------
This example is intended to simulate the TestBeam Setup of the Rich detector
at the LHCb to test the performance of the aerogel radiator.
The goal of the Rich is the proper identification of charged particles
in a momentum range of 1-150 GeV/c and to assist in the separation of
signal and background.
1. GEOMETRY DEFINITION
-----------------------------
It consists on 2 detector; RICH1, RICH2 which have to cover
the full LHCb momentum range:
RICH1: Aerogel 2 to 10 GeV/c
C4F10 < 70 GeV/c
RICH2: CF4 < 150 GeV/c
The geometry (defined inside RichDetectorConstruction class) consists of
4 Hpd, a target containing the aerogel and a spherical mirror.
The TestbeamSetUp is related to changes in teils, distances between elements
of the testbeam and types. All the possible configurations are considered
by a loop inside the MaterialParameters class.
2. AN EVENT: THE PRIMARY GENERATOR
-------------------------------------
The primary kinematic consists of a single charge particle (normally pions)
which is sent towards the target producing a rain of photons reflected and
focused by the spherical mirrors and recolected after in the Hpd.
The aim of the testbeam is to perform resolutions measurements with
and without the aerogel to probe the improvement of its use. Comparisons
between simulation and data are performed to determine the angle defined
between the simmetry axis of the system (axis z) and the distance to the
interaction point of the produced photons in the Hpd.
The information related to type of particles to be sent, their energy
and directions is included inside the PrimaryGeneratorAction class.
These parameters can be changed interactively using an extern macro
(run1.mac). It is recomended the use of such macro for changes because
it avoids further compilations.
A RUN is a set of events.
3. VISUALIZATION
--------------------
The Visualization manager is set in the main().
The Initialisation of the drawing is already defined in run1.mac.
The example is prepared to use any other visualization packages which
can be defined in such macro or inside RichTbVis0.mac. Before running
the events, the visualization must be initialized by:
> /control/execute/RichTbVis0.mac
The detector has longitudinal view of the geometry as default.
The tracks are drawn at the end of event, and erased at the end of the run.
4. PHYSICS DEMO
----------------
The particles type and physics processes which will be available in
this example are set in PhysicsList class.
In addition a built-in interactive command (process/inactivate proname)
allows to activate/inactivatethe processes one by one.
5. HOW TO START?
-----------------
- compile and link to generate an executable
% cd geant4/examples/advanced/Rich/
% gmake
- execute the program in 'batch' mode from macro files
% RichTbSim run1.mac
- execute tests in 'interactive mode'
% RichTbSim
.....
Idle> type your commands
.....
Idle> exit
6. HISTOGRAMS
---------------
This example produces 7 histograms (saved as rich.his generated automatically
during the running time) which illustrate the final state of the most important
information of the example:
histo1 --> Number of Photon Hits per Track
histo2 --> Number of Photons before Mirror
histo3 --> WaveLength of Photons before Mirror
histo4 --> WaveLength of Photons after Mirror
histo5 --> Cherekov Angle at roduction all angles
histo6 --> Z of the Photon Emission Point
histo7 --> Cherenkov Ring Radius
See their definition on AnalysisManager.
Note that histograms are disabled via the flag G4ANALYSIS_USE in GNUmakefile.
7. USING THE LAST ANAPHE IMPLEMENTATION OF AIDA HISTOGRAMS
------------------------------------------------------------
In order to use the new Anaphe implementation of the AIDA interfaces
prepare some environment variables by source-ing one of the following
startup scripts:
(THIS EXAMPLE HAS BEEN DEVELOPED AND TESTED WITH THE gcc-2.95.5 COMPILER)
o Setup the environment variable: G4ANALYSIS_USE 1
o setenv PATH ${PATH}:/afs/cern.ch/sw/lhcxx/specific/redhat73/gcc-2.95.2/5.0.5/bin
o source /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.5/install/sharedstart.csh
o ln -s /afs/cern.ch/sw/lhcxx/share/LHCXX/5.0.5/scripts/* ~/bin/ (this has
to be done only once)
After this, you will have access to the last 'aida-config' command
which is used in the GNUmakefile.
+160
View File
@@ -0,0 +1,160 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich Test Beam Simulation Main program
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
// ----------------------------------------------------------------
#include <iostream.h>
#include "RichTbRunAction.hh"
#include "RichTbEventAction.hh"
#include "RichTbDetectorConstruction.hh"
#include "RichTbPrimaryGeneratorAction.hh"
#include "RichTbStackingAction.hh"
#include "RichTbSteppingAction.hh"
#include "RichTbTrackingAction.hh"
#include "RichTbPhysicsList.hh"
#include "G4VPhysicalVolume.hh"
#include "G4RunManager.hh"
#include "RichTbRunConfig.hh"
#include "RichTbIOData.hh"
#include "G4UImanager.hh"
#include "G4UIterminal.hh"
#ifdef G4UI_USE_XM
#include "G4UIXm.hh"
#endif
#include "Randomize.hh"
#ifdef G4VIS_USE
#include "RichTbVisManager.hh"
#endif
#include "G4ios.hh"
#include <stdlib.h>
int main(int argc,char** argv) {
// Seed the random number generator manually
// ------------------------------------------
G4long myseed = 345354;
HepRandom::setTheSeed(myseed);
// Run manager
G4RunManager * runManager = new G4RunManager;
//Job and Run options.
RichTbRunConfig* rConfig= new RichTbRunConfig();
// Datafile streams for input and output
RichTbIOData* rIOData = new RichTbIOData( rConfig );
RichTbDetectorConstruction* RichTbDet
= new RichTbDetectorConstruction(rConfig);
runManager->SetUserInitialization(RichTbDet);
RichTbPhysicsList* RichTbPhy
=new RichTbPhysicsList(rConfig);
runManager-> SetUserInitialization(RichTbPhy);
// UserAction classes - optional
RichTbVisManager* visManager = new RichTbVisManager();
visManager->SetVerboseLevel(0);
visManager->Initialize();
G4VVisManager* pVVisManager = G4VVisManager::GetConcreteInstance();
cout<<" PVVisManager "<<pVVisManager<<endl;
cout<<"VisManager "<<visManager<<endl;
runManager->SetUserAction(new RichTbRunAction);
RichTbPrimaryGeneratorAction* PrimaryGenAction =
new RichTbPrimaryGeneratorAction(RichTbDet);
runManager->SetUserAction( PrimaryGenAction );
RichTbEventAction* eventAction=
new RichTbEventAction(rConfig,visManager,
rIOData);
runManager->SetUserAction(eventAction);
runManager->SetUserAction(new RichTbStackingAction);
RichTbSteppingAction* StepAction= new RichTbSteppingAction(rConfig, PrimaryGenAction );
runManager->SetUserAction(StepAction);
runManager->SetUserAction(new RichTbTrackingAction);
G4UImanager* UI = G4UImanager::GetUIpointer();
G4UIsession* session=0;
//Initialize G4 kernel
runManager -> Initialize();
if(argc==1){
session = new G4UIterminal;
}
if (session){ // Interactive mode
UI->ApplyCommand("/run/verbose 0");
UI->ApplyCommand("/event/verbose 0");
UI->ApplyCommand("/tracking/verbose 0");
UI->ApplyCommand("/particle/process/verbose 0");
session->SessionStart();
delete session;
}
else // Batch mode
{
G4UImanager * UI = G4UImanager::GetUIpointer();
G4String command = "/control/execute ";
G4String fileName = argv[1];
UI->ApplyCommand(command+fileName);
}
#ifdef G4VIS_USE
delete visManager;
#endif
G4cout << "\nVisManager deleted..\n" <<G4endl;
delete runManager;
G4cout << "\nRunManager deleted..\n" <<G4endl;
return 0;
}
+91
View File
@@ -0,0 +1,91 @@
#######################################################################
# MACRO FILE NAME: RichTbVis0.mac #
# #
# AUTHOR(S): Satoshi Tanaka #
# Mod SE 20-3-01 #
# DATE: November 10, 1999 #
# May 20, 2000 #
# June 06, 2000 #
# #
# CONTENTS: A simplest macro to demonstrate visualization of #
# detector geometry and events #
# #
# USAGE: #
# Idle> /control/execute RichTbVis0.mac #
# #
# REQUIRED PLATFORMS & SOFTWARES: Unix, X-window, OpenGL, #
# DAWN (version 3.80 or after) #
# gv (Ghostview), Tcl/Tk #
# #
# ENVIRONMENTAL VARIABLES (C-MACROS) FOR INSTALLATION: #
# (See geant4/source/visualization/README for details.) #
# #
# % setenv OGLHOME ... (e.g. /usr/local) #
# % setenv G4VIS_BUILD_OPENGLX_DRIVER 1 #
# % setenv G4VIS_BUILD_DAWNFILE_DRIVER 1 #
# #
# ENVIRONMENTAL VARIABLES (C-MACROS) FOR COMPILATION: #
# (See geant4/source/visualization/README for details.) #
# #
# % setenv G4VIS_USE_OPENGLX 1 #
# % setenv G4VIS_USE_DAWNFILE 1 #
# #
# Addional Notes: #
# The compound command "/vis/open <graphics-system-name>" #
# is equivalent to the following set of commands: #
# #
# /vis/sceneHandler/create $1 #
# /vis/viewer/create #
# #
# The compound command "/vis/drawVolume <physical-volume-name>" #
# is equivalent to the following set of commands: #
# #
# /vis/scene/create #
# /vis/scene/add/volume $1 #
# /vis/sceneHandler/attach #
# /vis/viewer/refresh #
# /vis/viewer/update #
# #
#######################################################################
##############################################
# Visualization of detector geometry
# with the OGLIX (OpenGL Immediate X) driver
##############################################
# Invoke the OGLIX driver
#/vis/open OGLIX
# Set camera
# Note: Camera setting should be done
# for each scene handler.
/vis/camera/reset
/vis/scene/create
#/vis/sceneHandler/create OGLIX
#/vis/sceneHandler/create DAWNFILE
#/vis/sceneHandler/create OGLSXm
/vis/open DAWNFILE
/vis/open OGLIX
/vis/viewer/create
/vis/scene/add/volume
#/vis/camera/viewpoint 0 0
/vis/camera/viewpoint -90 -90
#/vis/camera/viewpoint 270 0
/vis/camera/zoom 0.8
#/vis/camera/spin 20 10
# Visualize of the whole detector geometry
/vis/drawVolume
/vis/viewer/update
@@ -0,0 +1,76 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// AerogelRefData.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef AerogelRefData_h
#define AerogelRefData_h 1
#include "G4ios.hh"
#include "globals.hh"
#include <vector>
#include "AerogelTypeSpec.hh"
class AerogelRefData {
public:
AerogelRefData(G4String AerogelRefInputFileName);
virtual ~AerogelRefData();
void ReadStdAerogelRefIndex();
vector<G4double> GetCurAerogelRefIndValueVect(G4int AerogelTypenum );
G4double GetCurAerogelRefIndValue( G4int rbinw , G4int AerogelTypenum );
G4double GetRefnominal(G4int);
AerogelType GetAerogelType(G4int);
G4int GetNumberOfRefIndBins() {return NumberOfRefIndBins; }
G4double GetAerogelRefphotE(G4int BinNumw )
{return StdAerogelRefphotE[BinNumw]; }
G4double GetStdAerogelRefIndValue(G4int BinNumv )
{return StdAerogelRefIndexValue[BinNumv];}
vector<G4double> GetAerogelRefphotEVect()
{ return StdAerogelRefphotE ; }
vector<G4double> GetStdAerogelRefIndValueVect()
{return StdAerogelRefIndexValue ; }
G4double GetAerogelRefIndShift(G4int iAgtype)
{return AerogelRefIndShift[iAgtype];}
G4double GetAerogelWavelengthRef(G4int jAgtype)
{return AerogelWavelengthRef[jAgtype]; }
G4double GetStdAgelRefIndexE(G4double RefEnergy );
G4String GetAerogelRefIndexFileName() {return AerogelRefIndexFileName; }
private:
G4String AerogelRefIndexFileName;
G4int NumberOfRefIndBins;
vector<G4double>StdAerogelRefphotE ;
vector<G4double>StdAerogelRefIndexValue ;
G4double StdAerogelNominalRefractiveIndex;
vector<G4double> AerogelRefIndShift;
vector<G4double> AerogelWavelengthRef;
};
#endif
@@ -0,0 +1,44 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// AerogelTypeSpec.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef AerogelTypeSpec_h
#define AerogelTypeSpec_h 1
// different types of Aerogels.
static const G4int MaxNumberOfAerogelTiles=5;
static const G4int MaxNumberOfAerogelTypes=5;
enum AerogelType{AerogelTypeA,AerogelTypeB,AerogelTypeC,AerogelTypeD,
AerogelTypeE};
static const G4String AerogelTypeString[]={"AerogelTypeA","AerogelTypeB",
"AerogelTypeC","AerogelTypeD",
"AerogelTypeE"};
// Type A has dimensions 7*8*4 cm
// In the G4Example only 1 type is used. In the LHCb implementation
// there are 5 types of aerogel.
// In the G4Example only 1 tile is implemented. In the LHCb
// implementation upto 5 tiles are allowed.
#endif
@@ -0,0 +1,72 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// FilterTrData.chh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef FilterTrData_h
#define FilterTrData_h 1
#include "G4ios.hh"
#include "globals.hh"
#include <vector>
#include "FilterTypeSpec.hh"
class FilterTrData {
public:
FilterTrData(G4int , G4String );
virtual ~FilterTrData();
G4double GetCurrentFilTrans(G4double);
G4double GetTotFilTrans(G4double);
void ReadFilterTrans();
G4int GetNumberofBins() {return NumberOfTrBins; }
G4double GetCurTransWL(G4int BinNumw ) {return TransWaveL[BinNumw]; }
G4double GetCurTransValue(G4int BinNumv ) {return TransValue[BinNumv];}
G4double GetCurTransTotValue(G4int BinNumv ) {return TransTotValue[BinNumv];}
G4double GetCurFilterThickness() {return FilterThickness; }
vector<G4double> GetTransWL() { return TransWaveL ; }
vector<G4double> GetTransValue() {return TransValue ; }
vector<G4double> GetTransTotValue() {return TransTotValue ; }
FilterType GetFilterTypeIndex() {return FilterTypeIndex ; }
private:
FilterType FilterTypeIndex;
G4int FilterTypeNumber;
G4int NumberOfTrBins;
G4double FilterThickness;
G4double FilterRefIndexNominal;
vector<G4double>TransWaveL ;
vector<G4double>TransValue ;
vector<G4double>TransTotValue;
G4double CurNeighbourRefIndexNominal;
G4String FilterTransDataFileName;
};
#endif
@@ -0,0 +1,38 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// FilterTypeSpec.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef FilterTypeSpec_h
#define FilterTypeSpec_h 1
// different types of filters.
static const G4int MaxNumberOfFilterTypes=1;
enum FilterType{GlassD263};
static const G4String FilterTypeString[]={"GlassD263"};
//
// in the G4Example only 1 type of filter used. In the
// LHCb implementation several types of filters used.
#endif
@@ -0,0 +1,79 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// HpdSiEnergyLoss.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef HpdSiEnergyLoss_h
#define HpdSiEnergyLoss_h 1
#include "globals.hh"
#include "G4VEnergyLoss.hh"
#include "G4VParticleChange.hh"
#include "G4DynamicParticle.hh"
#include "G4Track.hh"
#include "G4Step.hh"
#include "G4ParticleDefinition.hh"
class HpdSiEnergyLoss : public G4VEnergyLoss
{
public:
HpdSiEnergyLoss(const G4String& materialName ,
const G4String& processName);
virtual ~HpdSiEnergyLoss();
G4bool IsApplicable(const G4ParticleDefinition&);
// true for all charged particles
G4double GetContinuousStepLimit(const G4Track& track,
G4double previousStepSize,
G4double currentMinimumStep,
G4double& currentSafety);
G4VParticleChange* AlongStepDoIt(const G4Track& aTrack,
const G4Step& aStep) ;
G4double GetMeanFreePath(const G4Track& track,
G4double previousStepSize,
G4ForceCondition* condition);
G4VParticleChange* PostStepDoIt(const G4Track& aTrack,
const G4Step& aStep);
private:
// hide assignment and copy operators
HpdSiEnergyLoss ( HpdSiEnergyLoss &);
HpdSiEnergyLoss & operator=(const HpdSiEnergyLoss &right);
//now the data members
G4int fMatIndex;
G4double MinKineticEnergy ;
G4double MipEnergy;
G4double finalRangeforStep;
G4String ElossMaterialName;
};
#endif
@@ -0,0 +1,88 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// PadHpdPhotoElectricEffect.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef PadHpdPhotoElectricEffect_h
#define PadHpdPhotoElectricEffect_h 1
#include "G4ios.hh"
#include "globals.hh"
#include "Randomize.hh"
#include "G4VDiscreteProcess.hh"
#include "G4PhotoElectricEffect.hh"
#include "G4DynamicParticle.hh"
#include "G4OpticalPhoton.hh"
#include "G4Electron.hh"
#include "G4Step.hh"
#include "RichTbMaterialParameters.hh"
class RichTbAnalysisManager;
class RichTbRunConfig;
class PadHpdPhotoElectricEffect : public G4VDiscreteProcess {
public:
PadHpdPhotoElectricEffect(const G4String&,RichTbRunConfig* );
virtual ~PadHpdPhotoElectricEffect();
G4bool IsApplicable(const G4ParticleDefinition& );
// is applicable for optical photon only
G4double GetMeanFreePath(const G4Track& ,
G4double ,
G4ForceCondition* condition);
//returns infinity (max integer possible) . This means the process does
// not limit the step, but sets the Forced condition for the DoIt to be
// invoked at every step. But only at the boundary between Hpd quartz
// window and the Hpd photocathode any action be taken.
G4VParticleChange* PostStepDoIt(const G4Track& aTrack,
const G4Step& aStep);
//The method for implementing the HpdPhotoelectric effect.
G4double getHpdQEff(G4int, G4double);
// To interpolate the QE from QE data.
G4double getHpdPhElectronKE()
{return HpdPhElectronKE; }
G4double getPhCathodeToSilDetDist()
{return PhCathodeToSilDetDist; }
G4double getHpdDemag(G4int hpdnum) {return DemagnificationFactor[hpdnum]; }
private:
// RichTbAnalysisManager* rAnalysisPhy;
RichTbRunConfig* rConfig;
G4String PrePhotoElectricVolName;
G4String PostPhotoElectricVolName;
G4double HpdPhElectronKE;
G4double PhCathodeToSilDetDist;
G4double PSFsigma;
vector<G4double>DemagnificationFactor;
vector<G4double>DemagnificationQuadFactor;
vector<vector<G4double> >HpdQE;
vector<vector<G4double> >HpdWabin;
};
#endif
@@ -0,0 +1,199 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbAnalysisManager.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbAnalysisManager_h
#define RichTbAnalysisManager_h 1
#include "globals.hh"
#include <vector>
#include "G4ThreeVector.hh"
#ifdef G4ANALYSIS_USE
#include "AIDA/AIDA.h"
#endif
#include "RichTbAnalysisMessenger.hh"
class G4Step;
#ifdef G4ANALYSIS_USE
namespace AIDA{
class IAnalysisFactory;
class IHistogramFactory;
class ITree;
class ITupleFactory;
class ITuple;
}
#endif
class G4Run;
class G4Event;
class G4Step;
class G4Timer;
class G4SteppingManager;
class RichTbRunConfig;
class RichTbAnalysisManager{
public:
RichTbAnalysisManager();
virtual ~RichTbAnalysisManager();
#ifdef G4ANALYSIS_USE
void book();
void finish();
static RichTbAnalysisManager* getInstance();
void SetOutputFileName(G4String);
#endif
void BeginOfRunAnalysis();
void EndOfRunAnalysis();
void BeginOfEventAnalysis(const G4Event*);
void EndOfEventAnalysis(const G4Event*);
void StepAnalysis(const G4SteppingManager* );
void bumpNumPhotonsBeforeAerogel() { NumPhotBeforeAerogel++ ; }
G4int getNumPhotBeforeAerogel() {return NumPhotBeforeAerogel; }
void bumpNumPhotonsAfterFilter(){ NumPhotAfterFilter++ ; }
G4int getNumPhotAfterFilter() {return NumPhotAfterFilter ; }
void bumpNumPhotonsBeforeFilter(){ NumPhotBeforeFilter++ ; }
G4int getNumPhotBeforeFilter() {return NumPhotBeforeFilter ; }
void bumpNumPhotonsBeforeMirror(){ NumPhotBeforeMirror++ ; }
G4int getNumPhotBeforeMirror() {return NumPhotBeforeMirror ; }
void bumpNumPhotonsAfterMirror(){ NumPhotAfterMirror++ ; }
G4int getNumPhotAfterMirror() {return NumPhotAfterMirror ; }
void bumpNumPhotonsAtHpd1Input(){ NumPhotAtHpd1Input++ ; }
G4int getNumPhotAtHpd1Input() {return NumPhotAtHpd1Input ; }
void bumpNumPhotonsAtHpd2Input(){ NumPhotAtHpd2Input++ ; }
G4int getNumPhotAtHpd2Input() {return NumPhotAtHpd2Input ; }
void bumpNumPhotonsAtHpd3Input(){ NumPhotAtHpd3Input++ ; }
G4int getNumPhotAtHpd3Input() {return NumPhotAtHpd3Input ; }
void bumpNumPhotonsAtHpd4Input(){ NumPhotAtHpd4Input++ ; }
G4int getNumPhotAtHpd4Input() {return NumPhotAtHpd4Input ; }
void bumpNumHitInSi(){ NumHitInSi++ ; }
G4int getNumHitInSi() {return NumHitInSi ; }
G4double getMeanHXCoord() {return MeanHXCoord ; }
G4double getMeanHYCoord() {return MeanHYCoord ; }
G4double getNumHXCoord() {return NumHXCoord ; }
G4double getNumHYCoord() {return NumHYCoord ; }
void setMeanHXCoord(G4double cx );
void setMeanHYCoord(G4double cy );
public:
G4String outputFileName;
static RichTbAnalysisManager* instance;
#ifdef G4ANALYSIS_USE
RichTbAnalysisMessenger* analisysMessenger;
AIDA::IAnalysisFactory* analysisFactory;
AIDA::ITree* tree;
AIDA::IHistogramFactory* histogramFactory;
#endif
AIDA::IHistogram1D* getfhistoNPhotG() {return fhistoNrPhotG;}
AIDA::IHistogram1D* getfhistoNBeforeMirror() {return fhistoNBeforeMirror;}
AIDA::IHistogram1D* getfhistoWBeforeMirror() {return fhistoWBeforeMirror;}
AIDA::IHistogram1D* getfhistoWAfterMirror() {return fhistoWAfterMirror;}
AIDA::IHistogram1D* getfhistoCkvProdSmall() {return fhistoCkvProdSmall;}
AIDA::IHistogram1D* getfhistoEmisZ() {return fhistoEmisZ;}
AIDA::IHistogram1D* getfhistoCkvRadius() {return fhistoCkvRadius; }
public:
#ifdef G4ANALYSIS_USE
AIDA::IHistogram1D* fhistoNrPhotG;
AIDA::IHistogram1D* fhistoNBeforeMirror;
AIDA::IHistogram1D* fhistoWBeforeMirror;
AIDA::IHistogram1D* fhistoWAfterMirror;
AIDA::IHistogram1D* fhistoCkvProdSmall;
AIDA::IHistogram1D* fhistoEmisZ;
AIDA::IHistogram1D* fhistoCkvRadius;
#endif
G4Timer* iTimer;
G4int NumPhotBeforeAerogel;
G4int NumPhotBeforeMirror;
G4int NumPhotBeforeFilter;
G4int NumPhotAfterFilter;
G4int NumPhotAtHpd1Input;
G4int NumPhotAtHpd2Input;
G4int NumPhotAtHpd3Input;
G4int NumPhotAtHpd4Input;
G4int NumPhotAfterMirror;
G4int NumHitTotInHpd1;
G4int NumHitTotInHpd2;
G4int NumHitTotInHpd3;
G4int NumHitTotInHpd4;
G4int NumHitInSi;
RichTbRunConfig* rConfig;
G4double MeanHXCoord;
G4double MeanHYCoord;
G4double NumHXCoord;
G4double NumHYCoord;
};
#endif
@@ -0,0 +1,67 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbAnalysisMessenger.hh for Rich of LHCb
// History:
// Created: Patricia Mendez (Patricia.Mendez@cern.ch)
////////////////////////////////////////////////////////////////////////////
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifdef G4ANALYSIS_USE
#ifndef RichTbAnalysisMessenger_h
#define RichTbAnalysisMessenger_h 1
#include "globals.hh"
#include "G4UImessenger.hh"
class RichTbAnalysisManager;
class G4UIdirectory;
class G4UIcmdWithAString;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class G4UIcmdWithAString;
class RichTbAnalysisMessenger: public G4UImessenger
{
public:
RichTbAnalysisMessenger(RichTbAnalysisManager* );
~RichTbAnalysisMessenger();
private:
//pointer to RichTbAnalysisManager
RichTbAnalysisManager* richAnalysis;
G4UIdirectory* RichTbAnalysisDir;
G4UIcmdWithAString* ouputFileCommand;
};
#endif
#endif
@@ -0,0 +1,138 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbComponent.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbComponent_h
#define RichTbComponent_h 1
#include "globals.hh"
#include <vector>
#include "RichTbMaterial.hh"
#include "RichTbHall.hh"
#include "RichTbRunConfig.hh"
#include "G4LogicalVolume.hh"
#include "G4VPhysicalVolume.hh"
#include "AerogelTypeSpec.hh"
#include "G4LogicalBorderSurface.hh"
class RichTbComponent {
public:
RichTbComponent();
RichTbComponent(RichTbMaterial*,RichTbHall*, RichTbRunConfig*,G4bool);
virtual ~RichTbComponent();
G4LogicalVolume* getEnclosureLogicalVolume()
{return RichTbEnclosureLVol;}
G4VPhysicalVolume* getEnclosurePhysicalVolume()
{return RichTbEnclosurePVol;}
G4LogicalVolume* getMirrorLogicalVolume()
{return RichTbMirrorLVol;}
G4VPhysicalVolume* getMirrorPhysicalVolume()
{return RichTbMirrorPVol;}
G4LogicalBorderSurface* getMirrorSurface()
{return RichTbMirrorBSurf; }
G4LogicalVolume* getRadFrameLogicalVolume()
{return RichTbRadFrameLVol;}
G4VPhysicalVolume* getRadFramePhysicalVolume()
{return RichTbRadFramePVol;}
G4LogicalVolume* getRadUpWLogicalVolume()
{return RichTbRadUpWLVol;}
G4VPhysicalVolume* getRadUpWPhysicalVolume()
{return RichTbRadUpWPVol;}
G4LogicalVolume* getRadDnWLogicalVolume()
{return RichTbRadDnWLVol;}
G4VPhysicalVolume* getRadDnWPhysicalVolume()
{return RichTbRadDnWPVol;}
G4int getNumAerogelTiles() {return NumAerogelTiles; }
G4LogicalVolume* getAgelLogicalVolume(G4int Agelnum)
{return RichTbAgelLVol[Agelnum];}
G4VPhysicalVolume* getAgelPhysicalVolume(G4int Agelnumber)
{return RichTbAgelPVol[Agelnumber];}
G4LogicalVolume* getAgelWrapTopLogicalVolume(G4int Agelnum)
{return RichTbAgelWrapTopLVol[Agelnum];}
G4VPhysicalVolume* getAgelWrapTopPhysicalVolume(G4int Agelnumber)
{return RichTbAgelWrapTopPVol[Agelnumber];}
G4LogicalVolume* getAgelWrapBotLogicalVolume(G4int Agelnum)
{return RichTbAgelWrapBotLVol[Agelnum];}
G4VPhysicalVolume* getAgelWrapBotPhysicalVolume(G4int Agelnumber)
{return RichTbAgelWrapBotPVol[Agelnumber];}
G4LogicalVolume* getFilterLogicalVolume()
{return RichTbFilterLVol;}
G4VPhysicalVolume* getFilterPhysicalVolume()
{return RichTbFilterPVol;}
private:
G4LogicalVolume* RichTbEnclosureLVol;
G4VPhysicalVolume* RichTbEnclosurePVol;
G4LogicalBorderSurface* RichTbEnclosureOuterBSurf;
G4LogicalBorderSurface* RichTbEnclosureInnerBSurf;
G4LogicalVolume* RichTbMirrorLVol;
G4VPhysicalVolume* RichTbMirrorPVol;
G4LogicalBorderSurface* RichTbMirrorBSurf;
G4LogicalVolume* RichTbRadFrameLVol;
G4VPhysicalVolume* RichTbRadFramePVol;
G4LogicalVolume* RichTbRadUpWLVol;
G4VPhysicalVolume* RichTbRadUpWPVol;
G4LogicalVolume* RichTbRadDnWLVol;
G4VPhysicalVolume* RichTbRadDnWPVol;
G4int NumAerogelTiles;
vector<G4LogicalVolume*> RichTbAgelLVol;
vector<G4VPhysicalVolume*> RichTbAgelPVol;
vector<G4LogicalVolume*> RichTbAgelWrapTopLVol;
vector<G4VPhysicalVolume*> RichTbAgelWrapTopPVol;
vector<G4LogicalVolume*> RichTbAgelWrapBotLVol;
vector<G4VPhysicalVolume*> RichTbAgelWrapBotPVol;
G4LogicalVolume* RichTbFilterLVol;
G4VPhysicalVolume* RichTbFilterPVol;
G4bool ConstructTrackingGeometrySwitch;
};
#endif
@@ -0,0 +1,82 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbDetectorConstruction.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbDetectorConstruction_h
#define RichTbDetectorConstruction_h 1
#include "globals.hh"
#include "RichTbMaterial.hh"
#include "RichTbHall.hh"
#include "RichTbComponent.hh"
#include "RichTbPhotoDetector.hh"
#include "RichTbGraphics.hh"
#include "G4VUserDetectorConstruction.hh"
#include "G4VPhysicalVolume.hh"
#include "RichTbRunConfig.hh"
#include "RichTbROGeometry.hh"
#include "RichTbAnalysisManager.hh"
class RichTbDetectorConstruction:
public G4VUserDetectorConstruction{
public:
RichTbDetectorConstruction();
RichTbDetectorConstruction(RichTbRunConfig*);
virtual ~RichTbDetectorConstruction();
G4VPhysicalVolume* Construct();
RichTbMaterial* getRichTbMaterial()
{return rMaterial; }
RichTbHall* getRichTbHall()
{return rTbHall; }
RichTbComponent* getRichTbComponent()
{return rTbComponent; }
RichTbPhotoDetector* getRichTbPhotoDetector()
{return rTbPhotoDetector; }
RichTbGraphics* getRichTbGraphcis()
{return rTbGraphics; }
RichTbROGeometry* getROGeometry()
{return rTbROGeom; }
private:
RichTbRunConfig* runConfiguration;
RichTbMaterial* rMaterial;
RichTbHall* rTbHall;
RichTbComponent* rTbComponent;
RichTbPhotoDetector* rTbPhotoDetector;
RichTbGraphics* rTbGraphics;
RichTbROGeometry* rTbROGeom;
};
#endif
@@ -0,0 +1,65 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbEventAction.cc for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbEventAction_h
#define RichTbEventAction_h 1
#include "G4UserEventAction.hh"
#include "G4ThreeVector.hh"
#include "RichTbRunConfig.hh"
#include "RichTbAnalysisManager.hh"
class G4Event;
class RichTbVisManager;
class RichTbAnalysisManager;
class RichTbIOData;
class RichTbEventAction : public G4UserEventAction {
public:
RichTbEventAction();
RichTbEventAction(RichTbRunConfig* ,
RichTbVisManager* , RichTbIOData* );
virtual ~RichTbEventAction();
public:
void BeginOfEventAction(const G4Event* );
void EndOfEventAction(const G4Event* );
G4int GetRichCollID() {return RichTbCollID;};
RichTbAnalysisManager* getAnalysisM()
{return ranalysisManager; }
RichTbVisManager* getVisM()
{return pVisManager; }
private:
RichTbRunConfig* runConfiguration;
G4int RichTbCollID;
RichTbAnalysisManager* ranalysisManager;
RichTbVisManager* pVisManager;
RichTbIOData* rTbIOData;
};
#endif
@@ -0,0 +1,392 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbGeometryParameters.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbGeometryParameters_h
#define RichTbGeometryParameters_h 1
#include "globals.hh"
#include "AerogelTypeSpec.hh"
#include <math.h>
extern void InitializeRichTbGeometry();
extern G4double GetCurAerogelLength(G4int);
//
//
static const G4double sqroot3=pow(3.0,0.5);
//Size of the LHCb Rich Testbeam Hall.
static const G4double ExpHallHalfX=4000.0*mm;
static const G4double ExpHallHalfY=4000.0*mm;
static const G4double ExpHallHalfZ=8000.0*mm;
// The Hall is kept at the orgin of the coord system.
// The coord system has +z along the beam direction and +y
// going upwards.
//
//Now for the Vessel
static const G4double VesselInnerRad=0.0*mm;
static const G4double VesselOuterRad=275.0*mm;
static const G4double VesselHalfZ=540.0*mm;
static const G4double VesselStartPhi=0.0*rad;
static const G4double VesselDelPhi=twopi*rad;
static const G4double VesselPosX=0.0*mm;
static const G4double VesselPosY=0.0*mm;
static const G4double VesselPosZ=VesselHalfZ;
//Now for the box containing the aerogel sample.
static const G4double RadFrameHalfX=55.0*mm;
static const G4double RadFrameHalfY=55.0*mm;
static const G4double RadFrameHalfZ=55.0*mm;
static const G4double RadFramePosX=0.0*mm;
static const G4double RadFramePosY=0.0*mm;
//The following are the Z positons of start of the radiator frame
// and aerogel tiles.
static const G4double RadFrameGenStartZ=185.0*mm;
static const G4double AgelTileGenStartZ=190.0*mm;
static const G4double RadFramePosZ=
RadFrameGenStartZ+RadFrameHalfZ-VesselHalfZ;
// Now for the aerogel blocks. They are made to start at 190mm from the
// upstream edge of the box.
// The following are dimensioned to MaxNumberOfAerogelTiles which
// from the AerogelTypeSpec.hh file
//
//Now for the window of the radframe at its upstream and downstream
// ends.
//
static const G4double RadHoldUpHalfX=50.0*mm;
static const G4double RadHoldUpHalfY=50.0*mm;
static const G4double RadHoldUpHalfZ=1.0*mm;
static const G4double RadHoldUpPosX=0.0*mm;
static const G4double RadHoldUpPosY=0.0*mm;
static const G4double RadHoldUpPosZ=-RadFrameHalfZ+ RadHoldUpHalfZ;
static const G4double RadWinUpOuterRad=40.0*mm;
static const G4double RadWinUpInnerRad=0.0*mm;
static const G4double RadWinUpHalfZ= RadHoldUpHalfZ+5.0*mm;
static const G4double RadWinUpStartPhi=0.0*rad;
static const G4double RadWinUpDelPhi=twopi*rad;
static const G4double RadWinUpShiftX=0.0*mm;
static const G4double RadWinUpShiftY=0.0*mm;
static const G4double RadWinUpShiftZ=0.0*mm;
//
static const G4double RadHoldDnHalfX=50.0*mm;
static const G4double RadHoldDnHalfY=50.0*mm;
static const G4double RadHoldDnHalfZ=1.0*mm;
static const G4double RadHoldDnPosX=0.0*mm;
static const G4double RadHoldDnPosY=0.0*mm;
static const G4double RadHoldDnShiftZ=15.0*mm;
static const G4double RadHoldDnPosZ=RadFrameHalfZ-
RadHoldDnShiftZ- RadHoldDnHalfZ;
static const G4double RadWinDnOuterRad=40.0*mm;
static const G4double RadWinDnInnerRad=0.0*mm;
static const G4double RadWinDnHalfZ= RadHoldDnHalfZ+5.0*mm;
static const G4double RadWinDnStartPhi=0.0*rad;
static const G4double RadWinDnDelPhi=twopi*rad;
static const G4double RadWinDnShiftX=0.0*mm;
static const G4double RadWinDnShiftY=0.0*mm;
static const G4double RadWinDnShiftZ=0.0*mm;
// the following three variables are for each of the aerogel types.
// In the G4example only 1 type is simply repeated 5 times.
static const G4double AgelHalfX[]={35.0*mm,35.0*mm,35.0*mm,35.0*mm,35.0*mm};
static const G4double AgelHalfY[]={40.0*mm,40.0*mm,40.0*mm,40.0*mm,40.0*mm};
static const G4double AgelHalfZ[]={20.0*mm,20.0*mm,20.0*mm,20.0*mm,20.0*mm};
// The following 2 variables are for each tile.
// for now no shifts forseen in the XY direction.
static const G4double AgelPosX[]={0.0*mm,0.0*mm,0.0*mm,0.0*mm,0.0*mm};
static const G4double AgelPosY[]={0.0*mm,0.0*mm,0.0*mm,0.0*mm,0.0*mm};
static const G4double AgelStartZ=
AgelTileGenStartZ-RadFrameGenStartZ-RadFrameHalfZ;
static const G4double TotalAgelThickness=80.0*mm;
static const G4double AgelTileGapZ=1.0*mm;
static const G4double AgelEndZ= AgelStartZ+TotalAgelThickness+AgelTileGapZ;
//Now for the wraps above and below the aerogel tiles.
static const G4double AgelWrapTopHalfX[]=
{35.0*mm,35.0*mm,35.0*mm,35.0*mm,35.0*mm};
static const G4double AgelWrapTopHalfY[]=
{1.0*mm,1.0*mm,1.0*mm,1.0*mm,1.0*mm};
static const G4double AgelWrapTopHalfZ[]=
{20.0*mm,20.0*mm,20.0*mm,20.0*mm,20.0*mm};
static const G4double AgelWrapTopPosX[]=
{0.0*mm,0.0*mm,0.0*mm,0.0*mm,0.0*mm};
static const G4double AgelWrapBotHalfX[]=
{35.0*mm,35.0*mm,35.0*mm,35.0*mm,35.0*mm};
static const G4double AgelWrapBotHalfY[]=
{1.0*mm,1.0*mm,1.0*mm,1.0*mm,1.0*mm};
static const G4double AgelWrapBotHalfZ[]=
{20.0*mm,20.0*mm,20.0*mm,20.0*mm,20.0*mm};
static const G4double AgelWrapBotPosX[]=
{0.0*mm,0.0*mm,0.0*mm,0.0*mm,0.0*mm};
// in the G4Example only 1 type of filter is used.
static const G4double FilterHalfX=53.0*mm;
static const G4double FilterHalfY=53.0*mm;
static const G4double GlassD263HalfZ=0.15*mm;
static const G4double FilterHalfZArray[]={GlassD263HalfZ, GlassD263HalfZ,
GlassD263HalfZ, GlassD263HalfZ, GlassD263HalfZ, GlassD263HalfZ };
// have a nominal value for the filter thickness.
static const G4double FilterHalfZNominal= GlassD263HalfZ;
static const G4double FilterPosX=0.0*mm;
static const G4double FilterPosY=0.0*mm;
//gap between aerogel and Filter in Z.
static const G4double FilterAgelGapZ=2.5*mm;
//nominal value for the Filter position
static const G4double FilterPosZNominal=
AgelEndZ+FilterAgelGapZ+ FilterHalfZNominal;
//Now for the mirror
//
static const G4double MirrorRInner=1185.0*mm;
static const G4double MirrorROuter=1191.0*mm;
static const G4double MirrorHorizontalChord=350.0*mm;
static const G4double MirrorVerticalChord=290.0*mm;
// the following is 600+117+6 mm.
// here 121 is the hpd Q window outer Z and 6 is the
// thickness of the mirror
// static const G4double MirrorShiftFromEnd=707.0*mm;
static const G4double MirrorShiftFromEnd=723.0*mm;
static const G4double MirrorNominalPosZ=MirrorShiftFromEnd-VesselHalfZ
-MirrorRInner;
static const G4double MirrorNominalRotX=0.0*rad;
static const G4double MirrorNominalRotY=0.0*rad;
//Now for each of the HPDs.
// First the size of each part.
static const G4double HpdMasterRad=64.00*mm;
//static const G4double HpdMasterHalfZ=55.0*mm;
static const G4double HpdMasterHalfZ=60.0*mm;
static const G4double HpdEnvelopeLargeTubeInnerRad=58.5*mm;
static const G4double HpdEnvelopeLargeTubeOuterRad=63.5*mm;
//static const G4double HpdEnvelopeLargeTubeHalfZ=8.73*mm;
static const G4double HpdEnvelopeLargeTubeHalfZ=11.0*mm;
static const G4double HpdEnvelopeConeHalfZ=20.0*mm;
static const G4double HpdEnvelopeSmallTubeHalfZ=10.0*mm;
static const G4double HpdEnvelopeSmallTubeInnerRad=35.0*mm;
static const G4double HpdEnvelopeSmallTubeOuterRad=40.0*mm;
static const G4double HpdEnvelopeConeOuterR2=HpdEnvelopeLargeTubeOuterRad;
static const G4double HpdEnvelopeConeInnerR2=HpdEnvelopeLargeTubeInnerRad;
static const G4double HpdEnvelopeConeOuterR1=HpdEnvelopeSmallTubeOuterRad;
static const G4double HpdEnvelopeConeInnerR1=HpdEnvelopeSmallTubeInnerRad;
//
static const G4double HpdEnvelopeEndCapRad=HpdEnvelopeSmallTubeOuterRad;
static const G4double HpdEnvelopeEndCapHalfZ=2.5*mm;
static const G4double HpdQuartzWindowThickness=4.0*mm;
static const G4double HpdQuarzWindowROuter=100.0*mm;
static const G4double HpdQuarzWindowRInner= HpdQuarzWindowROuter
-HpdQuartzWindowThickness;
static const G4double PhotoCathodeThickness=0.00004*mm;
static const G4double HpdPhCathodeROuter= HpdQuarzWindowRInner;
static const G4double HpdPhCathodeRInner=
HpdQuarzWindowRInner - PhotoCathodeThickness;
// The following obtained by arcsin(63.5/100)
static const G4double HpdQuartzWThetaSize=0.6880*rad;
// The following obtained by arcsin(57/(100-4))
static const G4double HpdPhCathodeThetaSize=0.6357*rad;
// For defining cylinders and spherical segment..
static const G4double HpdMasterInnerRad=0.0*mm;
static const G4double HpdMasterStartPhi=0.0*rad;
static const G4double HpdMasterEndPhi=twopi*rad;
static const G4double HpdEnvelopeLargeTubeStartPhi=0.0*rad;
static const G4double HpdEnvelopeLargeTubeEndPhi=twopi*rad;
static const G4double HpdEnvelopeConeStartPhi=0.0*rad;
static const G4double HpdEnvelopeConeEndPhi=twopi*rad;
static const G4double HpdEnvelopeSmallTubeStartPhi=0.0*rad;
static const G4double HpdEnvelopeSmallTubeEndPhi=twopi*rad;
static const G4double HpdEnvelopeEndCapInnerRad=0.0*mm;
static const G4double HpdEnvelopeEndCapStartPhi=0.0*rad;
static const G4double HpdEnvelopeEndCapEndPhi=twopi*rad;
static const G4double HpdQuartzWPhiSize=twopi*rad;
static const G4double HpdQuartzWStartTheta=0.0*rad;
static const G4double HpdQuartzWStartPhi=0.0*rad;
static const G4double HpdPhCathodePhiSize=twopi*rad;
static const G4double HpdPhCathodeStartTheta=0.0*rad;
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
// 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;
//Silicon detector inside the HPD
static const G4int NumberOfSiDetSectors=16;
// Now for each one of the sector.
// In the following the 0.0001 is to avoid graphics from crashing
// for zero length of a triangle made from a trapozoid.
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 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 SiSectTrapHalfZ = SiSectHeight/2.0 ;
static const G4double SiSectRotX=(90*pi/180)*rad;
static const G4double SiSectAngStart=(pi/2.0)*rad-SiSectAngSize/2.0;
// SiSectPosX and SiSectPosY are calculated in the cc file.
static const G4double SiSectPosZ=
HpdMasterHalfZ-HpdQuartzPartFromEndZ-
HpdQuartzWindowThickness-HpdPhotoCathodeSiZdist;
//
//
//Now for the coating on the Silicon surface.
static const G4double SiSectCoatingAngSize=SiSectAngSize;
static const G4double SiSectCoatingAngHalfSize=SiSectAngSize/2.0;
static const G4double SiSectCoatingSide=SiSectSide;
static const G4double SiSectCoatingHalfMoonGap=SiSectHalfMoonGap;
static const G4double SiSectCoatingTrapHalfY1=0.05*mm; // SiCoating HalfThick.
static const G4double SiSectCoatingTrapHalfY2= SiSectCoatingTrapHalfY1;
static const G4double SiSectCoatingTrapHalfX1= SiSectTrapHalfX1;
static const G4double SiSectCoatingTrapHalfX2= SiSectTrapHalfX2;
static const G4double SiSectCoatingTrapHalfZ= SiSectTrapHalfZ;
static const G4double SiSectCoatingRotX=SiSectRotX;
static const G4double SiSectCoatingAngStart=SiSectAngStart;
// SiSectCoatingPosX and SiSectCoatingPosY are calculated in the cc file.
static const G4double SiSectCoatingPosZ =
SiSectPosZ + SiSectTrapHalfY1+SiSectCoatingTrapHalfY1;
//
//
static const G4double XsizePix=1.0*mm;
static const G4double YsizePix=1.0*mm;
static const G4double YsizeBigPix=2.0*mm;
// the number of the big pixel in the pixel map on the web=59, hence
// in the c++ array 58 since the array start from 0.
static const G4int BigPixelNum=58;
//Silicon pixels inside the Silicon detector.
static const G4double SiPixelHalfY= SiSectTrapHalfY1;
static const G4double SiPixelHalfX= XsizePix/2.0;
static const G4double SiPixelHalfZ= YsizePix/2.0;
// now for the big pixel at the centre of the hpd.
static const G4double SiBigPixelHalfZ=YsizeBigPix/2.0;
//Now for their relative locations
static const G4double HpdEnvelopeLargeTubePosX=0.0*mm;
static const G4double HpdEnvelopeLargeTubePosY=0.0*mm;
static const G4double HpdEnvelopeLargeTubePosZ=
HpdMasterHalfZ-HpdEnvelopePartFromEndZ-HpdEnvelopeLargeTubeHalfZ;
static const G4double HpdEnvelopeConeShiftX=0.0*mm;
static const G4double HpdEnvelopeConeShiftY=0.0*mm;
static const G4double HpdEnvelopeConeShiftZ=
-(HpdEnvelopeLargeTubeHalfZ+HpdEnvelopeConeHalfZ);
static const G4double HpdEnvelopeSmallTubeShiftX=0.0*mm;
static const G4double HpdEnvelopeSmallTubeShiftY=0.0*mm;
static const G4double HpdEnvelopeSmallTubeShiftZ=
-(HpdEnvelopeLargeTubeHalfZ+2*HpdEnvelopeConeHalfZ+
HpdEnvelopeSmallTubeHalfZ);
static const G4double HpdEnvelopeEndCapShiftX=0.0*mm;
static const G4double HpdEnvelopeEndCapShiftY=0.0*mm;
static const G4double HpdEnvelopeEndCapShiftZ=
-(HpdEnvelopeLargeTubeHalfZ+2*HpdEnvelopeConeHalfZ+
2*HpdEnvelopeSmallTubeHalfZ+HpdEnvelopeEndCapHalfZ);
static const G4double HpdQuartzWPosX=0.0*mm;
static const G4double HpdQuartzWPosY=0.0*mm;
static const G4double HpdQuartzWPosZ=
HpdMasterHalfZ- HpdQuartzPartFromEndZ-HpdQuarzWindowROuter;
static const G4double HpdPhCathodePosX=0.0*mm;
static const G4double HpdPhCathodePosY=0.0*mm;
static const G4double HpdPhCathodePosZ= HpdQuartzWPosZ;
//Placement of the Hpd Si pixels in the Hpd Si Sector.
static const G4int NumberOfPadHpdSiPixels=128;
static const G4int MaxNumberOfPixRow=24;
static const G4int MaxNumberOfPixCol=10;
static G4double PixRowNumSect[NumberOfPadHpdSiPixels];
static G4double PixColNumSect[NumberOfPadHpdSiPixels];
static G4bool PixelAtSectEdge[NumberOfPadHpdSiPixels];
// the following is for the rows after the central big pixel.
// the central pixel is at row 0.
// the others start from row number start at 1.
// the following is 1 mm in the current setup.
static const G4double RowInitPointBigPixel= SiSectTrapHalfZ*2.0
-(MaxNumberOfPixRow-1) * YsizePix
- YsizeBigPix/2.0;
// the following is 1.5 mm in the current setup.
static const G4double RowInitPoint= SiSectTrapHalfZ*2.0
-(MaxNumberOfPixRow-1) * YsizePix
- YsizePix/2.0;
//The follwing two variables are defined in the cc file for this
//include file as part of the class declared below. Since the
// Si det plane is in the XZ plane, a swap of Y->Z and Z->Y is done
// while positioning the Si Pixel.
static const G4double HpdSiPixPosZ=0.0*mm;
#ifndef RichTbPadHpdSiPixPos_h
#define RichTbPadHpdSiPixPos_h 1
class RichTbPadHpdSiPixPos{
public:
RichTbPadHpdSiPixPos(G4int);
virtual ~RichTbPadHpdSiPixPos();
G4double getPadHpdSiPixPosX() {return PadHpdSiPixPosX;}
G4double getPadHpdSiPixPosY() {return PadHpdSiPixPosY;}
G4double getCurrentPixelnum(){return icurpixel;}
private:
G4double PadHpdSiPixPosX;
G4double PadHpdSiPixPosY;
G4int icurpixel;
};
#endif
//Placement of all the HPDs.
static const G4int NumberOfHpds=4;
static const G4double HpdPosRad=146.5*mm;
static const G4double HpdZfromEnd=HpdMasterHalfZ-VesselPosZ+1.0*mm;;
static const G4double HpdMasterPosX[NumberOfHpds]=
{HpdPosRad,0.0*mm,-HpdPosRad,0.0*mm};
static const G4double HpdMasterPosY[NumberOfHpds]=
{0.0*mm,-HpdPosRad,0.0*mm,HpdPosRad};
static const G4double HpdMasterPosZ[NumberOfHpds]=
{HpdZfromEnd,HpdZfromEnd,HpdZfromEnd,HpdZfromEnd};
//rot1 version of hpd rotations.
static const G4double HpdMasterRotZ[NumberOfHpds]=
{0.0*rad,(69.5*pi/180.0)*rad,(22.5*pi/180.0)*rad,(7.5*pi/180.0)*rad};
//
//
#endif
@@ -0,0 +1,54 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbGraphics.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbGraphics_h
#define RichTbGraphics_h 1
#include "globals.hh"
#include "RichTbMaterial.hh"
#include "RichTbHall.hh"
#include "RichTbComponent.hh"
#include "RichTbPhotoDetector.hh"
#include "G4VUserDetectorConstruction.hh"
#include "G4VPhysicalVolume.hh"
#include "RichTbROGeometry.hh"
class RichTbGraphics {
public:
RichTbGraphics();
RichTbGraphics(RichTbHall*, RichTbComponent*, RichTbPhotoDetector*,
RichTbROGeometry*, RichTbRunConfig* );
virtual ~RichTbGraphics();
private:
};
#endif
@@ -0,0 +1,56 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbHall.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbHall_h
#define RichTbHall_h 1
#include "globals.hh"
#include "RichTbMaterial.hh"
#include "G4VUserDetectorConstruction.hh"
#include "G4VPhysicalVolume.hh"
#include "G4LogicalVolume.hh"
class RichTbHall {
public:
RichTbHall();
RichTbHall(RichTbMaterial*);
virtual ~RichTbHall();
G4LogicalVolume* getRichTbHallLogicalVolume()
{return RichTbHallLVol;}
G4VPhysicalVolume* getRichTbHallPhysicalVolume()
{return RichTbHallPVol;}
private:
G4LogicalVolume* RichTbHallLVol;
G4VPhysicalVolume* RichTbHallPVol;
};
#endif
+101
View File
@@ -0,0 +1,101 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbHit.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbHit_h
#define RichTbHit_h 1
#include "G4VHit.hh"
#include "G4THitsCollection.hh"
#include "G4Allocator.hh"
#include "G4ThreeVector.hh"
#include "G4Transform3D.hh"
class RichTbVisManager;
class RichTbHit : public G4VHit
{
public:
RichTbHit();
virtual ~RichTbHit();
RichTbHit(const RichTbHit &right);
const RichTbHit& operator=(const RichTbHit &right);
int operator==(const RichTbHit &right) const;
inline void *operator new(size_t);
inline void operator delete(void *aHit);
void Draw();
void DrawWithVisM(RichTbVisManager*);
void Print();
private:
G4double edep;
G4ThreeVector posAtSilicon;
G4ThreeVector posAtPhotoCathode;
G4int CurHpdNum;
G4int CurSectNum;
G4int CurPixelNum;
public:
inline void SetEdep(G4double de) { edep = de; };
inline G4double GetEdep() { return edep; };
inline void SetPos(G4ThreeVector xyz) { posAtSilicon = xyz; };
inline G4ThreeVector GetPos() { return posAtSilicon; };
inline void SetPosPC(G4ThreeVector xyzPC) { posAtPhotoCathode = xyzPC; };
inline G4ThreeVector GetPosPC() { return posAtPhotoCathode; };
inline void SetCurHpdNum (G4int ihp ) { CurHpdNum = ihp; } ;
inline G4int GetCurHpdNum() { return CurHpdNum ; };
inline void SetCurSectNum (G4int isector ) { CurSectNum = isector; } ;
inline G4int GetCurSectNum() { return CurSectNum ; };
inline void SetCurPixNum (G4int ipx ) { CurPixelNum = ipx; };
inline G4int GetCurPixNum() { return CurPixelNum; };
inline void AddEdep( G4double addenergy ) { edep += addenergy; }
};
typedef G4THitsCollection<RichTbHit> RichTbHitsCollection;
extern G4Allocator<RichTbHit> RichTbHitAllocator;
inline void* RichTbHit::operator new(size_t)
{
void *aHit;
aHit = (void *) RichTbHitAllocator.MallocSingle();
return aHit;
}
inline void RichTbHit::operator delete(void *aHit)
{
RichTbHitAllocator.FreeSingle((RichTbHit*) aHit);
}
#endif
@@ -0,0 +1,86 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbHpd.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbHpd_h
#define RichTbHpd_h 1
#include "globals.hh"
#include "RichTbMaterial.hh"
#include "RichTbGeometryParameters.hh"
#include "G4LogicalVolume.hh"
#include "G4VPhysicalVolume.hh"
#include "RichTbSiDet.hh"
#include "RichTbSD.hh"
class RichTbHpd {
public:
RichTbHpd();
virtual ~RichTbHpd();
RichTbHpd(RichTbMaterial*, G4VPhysicalVolume * ,G4int, G4int,G4bool);
G4LogicalVolume* getHpdLogicalVolume()
{return RichTbHpdLVol;}
G4VPhysicalVolume* getHpdPhysicalVolume()
{return RichTbHpdPVol;}
G4LogicalVolume* getHpdEnvelopeTubeGrandLogicalVolume()
{return RichTbHpdEnvelopeTubeGrandLVol;}
G4VPhysicalVolume* getHpdEnvelopeTubeGrandPhysicalVolume()
{return RichTbHpdEnvelopeTubeGrandPVol;}
G4LogicalVolume* getHpdQuartzWLogicalVolume()
{return RichTbHpdQuartzWLVol;}
G4VPhysicalVolume* getHpdQuartzWPhysicalVolume()
{return RichTbHpdQuartzWPVol;}
G4LogicalVolume* getHpdPhCathodeLogicalVolume()
{return RichTbPhCathodeLVol;}
G4VPhysicalVolume* getHpdPhCathodePhysicalVolume()
{return RichTbPhCathodePVol;}
G4int getHpdNum(){return HpdNumber;}
G4int getNumSectInHpd() {return NumSectInHpd;}
RichTbSiDet* getRichHpdSiDetSect(G4int isect)
{return richSiliconDetectorSect[isect];}
private:
G4int HpdNumber;
RichTbSD* aHpdSD;
G4LogicalVolume* RichTbHpdLVol;
G4VPhysicalVolume* RichTbHpdPVol;
G4LogicalVolume* RichTbHpdEnvelopeTubeGrandLVol;
G4VPhysicalVolume* RichTbHpdEnvelopeTubeGrandPVol;
G4LogicalVolume* RichTbHpdQuartzWLVol;
G4VPhysicalVolume* RichTbHpdQuartzWPVol;
G4LogicalVolume* RichTbPhCathodeLVol;
G4VPhysicalVolume* RichTbPhCathodePVol;
RichTbSiDet* richSiliconDetectorSect[NumberOfSiDetSectors];
G4int NumSectInHpd;
G4bool ConstructTrackGeomSwitch;
};
#endif
@@ -0,0 +1,50 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbIOData.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbIOData_h
#define RichTbIOData_h 1
#include "globals.hh"
#include <iostream>
#include <fstream.h>
#include "RichTbRunConfig.hh"
#include "G4Event.hh"
class RichTbIOData {
public:
RichTbIOData(RichTbRunConfig* );
virtual ~RichTbIOData();
void WriteOutEventHeaderData(const G4Event* );
void WriteOutHitData(const G4Event* );
private:
ofstream OutputDataFS;
G4String aOutFileString;
};
#endif
@@ -0,0 +1,148 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbMaterial.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbMaterial_h
#define RichTbMaterial_h 1
#include "globals.hh"
#include <vector>
#include "G4Material.hh"
#include "G4MaterialTable.hh"
#include "G4Element.hh"
#include "G4ElementTable.hh"
#include "G4OpticalSurface.hh"
#include "RichTbRunConfig.hh"
#include "AerogelTypeSpec.hh"
class RichTbMaterial {
public:
RichTbMaterial();
RichTbMaterial(RichTbRunConfig*);
virtual ~RichTbMaterial();
G4double ConvertAgelRIndex(G4double,G4int);
G4Material* getAir() {return RichTbAmbientAir;}
G4Material* getTAir() {return RichTbTubeAir;}
G4Material* getNitrogenGas() {return RichTbNitrogenGas;}
G4Material* getH2O() {return RichTbH2O;}
G4Material* getMirrorQuartz() {return RichTbMirrorQuartz;}
G4Material* getQuartzWMaterial() {return RichTbQuartzWindowMaterial;}
G4Material* getHpdQuartzWMaterial() {return HpdQuartzWindowMaterial;}
G4Material* getPadHpdQuartzWMaterial() {return PadHpdQuartzWindowMaterial;}
G4Material* getRichTbFilterMaterial(G4int FilterTNum )
{return RichTbFilterMaterial[FilterTNum] ; }
G4Material* getGlassD263FilterMaterial() {return GlassD263FilterMaterial;}
G4Material* getAerogelMaterial(G4int AgelNum )
{return RichTbAerogelMaterial[AgelNum]; }
G4Material* getAerogelTypeA() {return RichTbAerogelTypeA; }
G4Material* getAerogelTypeB() {return RichTbAerogelTypeB; }
G4Material* getAerogelTypeC() {return RichTbAerogelTypeC; }
G4Material* getAerogelTypeD() {return RichTbAerogelTypeD; }
G4Material* getAerogelTypeE() {return RichTbAerogelTypeE; }
G4Material* getC4F10() {return RichTbC4F10; }
G4Material* getCF4() {return RichTbCF4; }
G4Material* getVacuum() {return RichTbVacuum;}
G4Material* getAluminium() {return RichTbAluminium; }
G4Material* getHpdTubeMaterial() {return HpdTubeMaterial; }
G4Material* getHpdSiDetMaterial() {return HpdSiDetMaterial;}
G4Material* getHpdSiCoatingMaterial() {return HpdSiCoatingMaterial;}
G4Material* getPadHpdPhCathodeMaterial() {return PadHpdPhCathodeMaterial;}
G4Material* getPlasticAg() {return RichTbPlasticAg;}
G4OpticalSurface* getOpticalMirrorSurface()
{return RichTbOpticalMirrorSurface; }
G4OpticalSurface* getOpticalEnclosureSurface()
{return RichTbOpticalEnclosureSurface; }
G4OpticalSurface* getOpticalGasQuartzWSurface()
{return RichTbOpticalGasQuartzWSurface; }
G4OpticalSurface* getOpticalHpdMetalSurface()
{return RichTbOpticalHpdMetalSurface;}
G4OpticalSurface* getOpticalHpdTQuartzWSurface()
{return HpdTQuartzWSurface; }
G4OpticalSurface* getOpticalHpdQuartzWPhCathodeSurface()
{return HpdQuartzWPhCathodeSurface; }
G4OpticalSurface* getOpticalPhCathodeSkinSurface()
{return PhCathodeSkinSurface; }
G4OpticalSurface* getOpticalPhCathodeBorderSurface()
{return PhCathodeBorderSurface; }
G4OpticalSurface* getOpticalFilterSurface()
{return RichTbOpticalFilterSurface; }
G4OpticalSurface* getHpdSiCoatSurface()
{return HpdSiCoatSurface; }
private:
G4Material* RichTbAmbientAir;
G4Material* RichTbTubeAir;
G4Material* RichTbNitrogenGas;
G4Material* RichTbH2O;
G4Material* RichTbMirrorQuartz;
G4Material* RichTbQuartzWindowMaterial;
vector<G4Material*> RichTbAerogelMaterial;
G4Material* RichTbAerogelTypeA;
G4Material* RichTbAerogelTypeB;
G4Material* RichTbAerogelTypeC;
G4Material* RichTbAerogelTypeD;
G4Material* RichTbAerogelTypeE;
G4Material* RichTbC4F10;
G4Material* RichTbCF4;
G4Material* RichTbVacuum;
G4Material* RichTbAluminium;
G4Material* HpdTubeMaterial;
G4Material* HpdSiDetMaterial;
G4Material* HpdSiCoatingMaterial;
G4Material* HpdQuartzWindowMaterial;
G4Material* PadHpdQuartzWindowMaterial;
vector<G4Material*> RichTbFilterMaterial;
G4Material* GlassD263FilterMaterial;
G4Material* PadHpdPhCathodeMaterial;
G4Material* RichTbPlasticAg;
G4OpticalSurface* RichTbOpticalMirrorSurface;
G4OpticalSurface* RichTbOpticalEnclosureSurface;
G4OpticalSurface* RichTbOpticalGasQuartzWSurface;
G4OpticalSurface* HpdTQuartzWSurface;
G4OpticalSurface* HpdQuartzWPhCathodeSurface;
G4OpticalSurface* PhCathodeSkinSurface;
G4OpticalSurface* PhCathodeBorderSurface;
G4OpticalSurface* HpdSiCoatSurface;
//The following metal surface used although it would be redundant.
// The metal volume has no ref. index.
G4OpticalSurface* RichTbOpticalHpdMetalSurface;
G4OpticalSurface* RichTbOpticalFilterSurface;
RichTbRunConfig* rConfig;
};
#endif
@@ -0,0 +1,279 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbMaterialParameters.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbMaterialParameters_h
#define RichTbMaterialParameters_h 1
#include "globals.hh"
#include "RichTbGeometryParameters.hh"
#include "RichTbAnalysisManager.hh"
#include "RichTbRunConfig.hh"
#include "AerogelTypeSpec.hh"
extern void InitializeRichTbMaterial();
extern void HistoRichTbMaterialProperties(RichTbRunConfig* RConfig);
extern vector<G4double> InitializeHpdQE(G4int);
extern vector<G4double> InitializeHpdWaveL(G4int);
extern vector<G4double> InitN2RefIndex(G4double, G4double);
extern vector<G4double> InitN2RefPhotW();
extern vector<G4double> InitAgelPhotW();
extern vector<G4double> InitializePhotonMomentumVector();
extern vector<G4int> getDeadPixelList(G4int ihpdNum , G4int IsectNum);
extern vector<G4double>GetAerogelRScatLength(AerogelType);
extern G4double GetCurrentBulkTrans(G4double currentMatRefIndex,
G4double currentNeighbourRefIndex,
G4double MaxTotMeasuredTransmission);
// extern void GetGlassD263FilterTrans();
//
// the following value should be calculated in terms of the
// fundamental constants in the future. It is the conversion
// factor between the wavelength of a photon in nanometers
// and its energy in eV.
static const G4double PhotMomWaveConv=1243.125;
// Limits of Photon Energy and number of bins for the
// Photon energy range.
// static const G4double PhotonMinEnergy=1.5*eV;
static const G4double PhotonMinEnergy=1.3*eV;
static const G4double PhotonMaxEnergy=7.3*eV;
static const G4int NumPhotWaveLengthBins = 1000;
static const G4int NumPhotonRichMirrorReflWaveLengthBins=63;
static const G4int NumAerogelRefIndexPhotonEnergyBins=37;
// static const G4int NumFilterGlassD263WaveLengthBins=10;
// Defintion of STP pressure and temp
//static const G4double Pressure_STP=1.013*bar;
//static const G4double Temperature_STP=273.*kelvin
static const G4double GasPressure_STP=STP_Pressure;
static const G4double GasTemperature_STP=STP_Temperature;
// Ref Index of nitrogen using sellmeir parametrization
static const G4double SellN2E1=13.414;
static const G4double SellN2E2=23.215;
static const G4double SellN2F1=921.28;
static const G4double SellN2F2=3569.60;
static const G4double GasMolWeightN2=28.02; //unit is grams
static const G4double GasRhoN2atSTP=0.00125053; //unit is gramPercm3
//
//
//Mirror reflectivity
// In the following, the bins at 100 nm, and 1000nm are
// defined just for convenience of interpolation.
// They are not measured points.
static const G4double PhotonWavelengthRefl[]=
{100.0, 200.0, 210.0, 220.0, 230.0, 240.0, 250.0, 260.0, 270.0, 280.0,
290.0, 300.0, 310.0, 320.0, 330.0, 340.0, 350.0, 360.0, 370.0, 380.0,
390.0, 400.0, 410.0, 420.0, 430.0, 440.0, 450.0, 460.0, 470.0, 480.0,
490.0, 500.0, 510.0, 520.0, 530.0, 540.0, 550.0, 560.0, 570.0, 580.0,
590.0, 600.0, 610.0, 620.0, 630.0, 640.0, 650.0, 660.0, 670.0, 680.0,
690.0, 700.0, 710.0, 720.0, 730.0, 740.0, 750.0, 760.0, 770.0, 780.0,
790.0, 800.0, 1000.0 };
static const G4double RichTbMirrorReflectivity[]=
{0.0, 0.9106, 0.9232, 0.9285, 0.9314, 0.9323, 0.9312, 0.9287, 0.9264,
0.9234, 0.9195, 0.9156, 0.9109, 0.9066, 0.9022, 0.8981, 0.8925, 0.8883,
0.8836, 0.8796, 0.8756, 0.8727, 0.8697, 0.8672, 0.8653, 0.8636, 0.8624,
0.8612, 0.8608, 0.8601, 0.8601, 0.8601, 0.8600, 0.8603, 0.8603, 0.8604,
0.8605, 0.8608, 0.8609, 0.8608, 0.8608, 0.8606, 0.8604, 0.8600, 0.8598,
0.8591, 0.8581, 0.8573, 0.8563, 0.8549, 0.8535, 0.8517, 0.8497, 0.8475,
0.8447, 0.8417, 0.8382, 0.8388, 0.8296, 0.8258, 0.8204, 0.8172, 0.8172 };
static const G4double RichTbMirrorEfficiency[]=
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0 };
// Transmission in quartz
static const G4int NumPhotonRichTbGasQuartzWSurfaceWaveLengthBins=10;
static const G4double RichGasQuartzWSurfacePhotMom[]=
{1.0*eV,2.0*eV, 3.0*eV,4.0*eV,5.0*eV,6.0*eV,7.0*eV,8.0*eV,
9.0*eV,10.0*eV};
static const G4double RichTbGasQuartzWSurfaceReflectivity[]=
{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
static const G4double RichTbGasQuartzWSurfaceEfficiency[]=
{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
// Transmission in the filters
static const G4int NumPhotonRichTbFilterSurfaceWaveLengthBins=10;
static const G4double RichTbFilterSurfacePhotMom[]=
{1.0*eV,2.0*eV, 3.0*eV,4.0*eV,5.0*eV,6.0*eV,7.0*eV,8.0*eV,
9.0*eV,10.0*eV};
static const G4double RichTbFilterSurfaceReflectivity[]=
{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
static const G4double RichTbFilterSurfaceEfficiency[]=
{0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};
// In the G4Example only 1 type of filter is used.
// In the LHCb implementation several types of filters
// were used. The program was originally setup for upto
// 6 types of filters.
// Now for the Glass D263 filter
static const G4int NumPhotBinGlassD263Trans=601;
// static const G4double RefIndexGlassD263=1.50;
// artifically low value for the ref index of filter used for the
// G4example. If one uses the original value of 1.5, the cherenkov
// photons created in the filter by the 9 GeV/c pions will have cherenkov
// angle larger than the critical angle and hence would cause
// an (almost) infinite loop of total internal reflections. These
// photons eventually die from photon absorption,
// but they use a lot of cpu time.
// In the lhcb implementation the G4OpboundaryProcess is modified to
// to take care of this. But for the G4example this complication is
// avoided by using an artificially low value for the ref idex of the filter.
// SE. 15-11-2002.
static const G4double RefIndexGlassD263=1.30;
// for initlializing the arrays for the filter tramsmission
// the following value is used. The arrays are later resized
// to the appropiate value.
static const G4int NumFilterTransBins= NumPhotBinGlassD263Trans;
//
//Now for the different type of Aerogel Tiles
//In the G4example the same Aerogel type is simply repeated 5 times.
//In the LHCb implementation 5 different types are used.
static const G4double AerogelTypeAClarity
=0.00719*micrometer*micrometer*micrometer*micrometer/cm;
static const G4double AerogelTypeATotTrans=0.9368;
static const G4double AerogelTypeANominalRefIndex=1.03066;
static const G4double AerogelTypeBClarity= AerogelTypeAClarity;
static const G4double AerogelTypeBTotTrans=AerogelTypeATotTrans;
static const G4double AerogelTypeBNominalRefIndex=AerogelTypeANominalRefIndex;
//
static const G4double AerogelTypeCClarity=AerogelTypeAClarity;
static const G4double AerogelTypeCTotTrans=AerogelTypeATotTrans;
static const G4double AerogelTypeCNominalRefIndex=AerogelTypeANominalRefIndex;
static const G4double AerogelTypeDClarity=AerogelTypeAClarity;
static const G4double AerogelTypeDTotTrans=AerogelTypeATotTrans;
static const G4double AerogelTypeDNominalRefIndex=AerogelTypeANominalRefIndex;
static const G4double AerogelTypeEClarity=AerogelTypeAClarity;
static const G4double AerogelTypeETotTrans=AerogelTypeATotTrans;
static const G4double AerogelTypeENominalRefIndex=AerogelTypeANominalRefIndex;
static const G4double AerogelReferenceRefIndWavelength[]=
{400.0*nanometer,400.0*nanometer,400.0*nanometer,400.0*nanometer,
400.0*nanometer};
static const G4double StdAerogelNominalRefIndex=1.034;
// for test try tdr aerogel
//static const G4double StdAerogelNominalRefIndex=1.03123653;
// static const char* StdAerogelRefIndFile =
// "/afs/cern.ch/user/s/seaso/mycmt/RichTb/v5/inputData/aerogelRefIndex.txt";
// The following is the nominal ref index at STP for nitrogen.
// the aerogel is kept inside the nitrogen;
static const G4double NitrogenNominalRefIndex=1.000298;
//
// Quantum efficiency of the photocathodes
// the following line already in geometryparameters.hh
//static const G4int NumberOfHpds=4;
static const G4int NumHpdTot= NumberOfHpds;
static const G4int NumQEbins=41;
// for now all HPDs have the same wavelength bins.
// for the G4Example the QE is multiplied by 1.08 to account for
// the fresnel losses at the HPD Input Quartz window.
// In the G4 example, the correction to
// account for the QE reduction in the periphery of the HPD
// is not done, for simplicity.
// In the LHCb implementation this taken care of more accurately.
static const G4double HpdQEReductionFactor=1.08;
static const G4double HpdQEWaveL[]=
{200.0,210.0,220.0,230.0,240.0,250.0,260.0,270.0,280.0,290.0,300.0,
310.0,320.0,330.0,340.0,350.0,360.0,370.0,380.0,390.0,400.0,410.0,
420.0,430.0,440.0,450.0,460.0,470.0,480.0,490.0,500.0,510.0,520.0,
530.0,540.0,550.0,560.0,570.0,580.0,590.0,600.0};
static const G4double Hpd0QEPerCent[]=
{0.0,0.0,2.4264,9.0559,14.5723,18.9039,24.2476,27.9504,29.0910,
31.5069,28.2676,26.8652,26.0060,25.2934,24.5034,23.4996,22.6084,
21.0618,19.6225,18.2942,16.4564,14.3433,12.5074,10.6036,8.7953,
7.2646,6.1266,5.0693,3.9949,3.0248,2.2300,1.5261,0.8610,0.4803,
0.2870,0.1320,0.0500,0.0135,0.0,0.0,0.0};
static const G4double Hpd1QEPerCent[]=
{0.0,1.0810,3.1196,6.4212,10.4983,14.3031,17.9612,20.6541,22.1570,
25.5633,25.3696,25.2293,25.1988,24.9773,24.8055,24.4088,24.1165,
23.3368,22.4608,21.8726,20.4717,18.9725,17.5489,15.8493,14.1541,
12.5689,11.1047,9.7609,8.4922,7.3264,6.2243,5.0602,3.5248,2.3012,
1.5403,1.0813,0.6823,0.4553,0.2524,0.1227,0.0583};
static const G4double Hpd2QEPerCent[]=
{0.0,0.0,1.3648,4.1624,6.8814,9.5704,12.5728,15.4286,16.7373,19.9520,
20.0918,20.3359,20.6562,20.7517,20.6236,20.1992,19.8387,18.6558,17.5653,
16.6784,15.2398,13.6456,12.1764,10.5722,9.0127,7.6529,6.4820,5.4517,
4.4408,3.5450,2.7400,1.9825,1.3073,0.7549,0.4712,0.3031,0.1675,
0.0803,0.0391,0.0169,0.0094};
static const G4double Hpd3QEPerCent[]=
{0.0,11.3501,12.1319,13.2398,16.2100,18.7656,21.7482,24.3610,25.0792,
28.6009,28.2349,28.4114,28.5484,28.6614,28.8812,28.7106,28.1548,28.0591,
25.5305,21.8913,19.6042,18.3709,17.3953,17.1329,16.2153,14.8937,14.6245,
13.0102,13.8088,13.2000,12.0881,10.7617,8.1836,5.9729,4.6335,3.6822,
2.9047,2.2591,1.7516,1.2502,0.8219};
// only the linear term is used for now
// static const G4double HpdDemagConst[]={ }
static const G4double HpdDemagLinearTerm[]=
{2.46433268,2.28343310,2.29306727,2.37845184};
// In the G4example the quadratic term is neglected and hence set to zero.
static const G4double HpdDemagQuadraticTerm[]=
{0.0,0.0,0.0,0.0};
static const G4double HpdDemagErrorPercent=0.0;
// in the G4example a PSF factor is used, just an example.
static const G4double PadHpdPSFsigma=100.0*micrometer;
//quartz Transmission for 10 mm thickness.
static const G4double QuTransDataThickness =10.0*mm;
static const G4int NumPhotbinQuartzTrans=6;
static const G4double QuartzTransWL[]=
{180.0 ,185.0, 190.0, 200.0, 220.0,1000.0};
static const G4double QuartzTransmis[]=
{0.80, 0.90, 0.95 ,0.98 , 1.0,1.0};
static const G4double PhCathodeNominalTransmission=0.52;
//The dead Pixel List is set to zero for the G4Example.
//Hence all pixels are set to be active.
// The following is just a maximum number of deadpixels for array sizes.
static const G4int MaxNumDeadPixelPerHpdSect=50;
// Now for the back scattering
static const G4double backscaprob=0.18;
// Now for the approximate and adhoc way of evaluating the effect of
// backscattering.
static const G4double NsigmaInPedCut=4.0;
static const G4double SignalToNoiseInData=10.0;
#endif
@@ -0,0 +1,53 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbPhotoDetector.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbPhotoDetector_h
#define RichTbPhotoDetector_h 1
#include "globals.hh"
#include "RichTbMaterial.hh"
#include "RichTbComponent.hh"
#include "RichTbHpd.hh"
#include "RichTbRunConfig.hh"
class RichTbPhotoDetector {
public:
RichTbPhotoDetector();
RichTbPhotoDetector(RichTbMaterial*, RichTbComponent*, RichTbRunConfig*, G4bool);
virtual ~RichTbPhotoDetector();
G4int getNumberOfHpds() {return NumOfHpds; }
RichTbHpd* getRichHPD(G4int HpdNum){ return richHPD[HpdNum]; }
private:
G4int NumOfHpds;
RichTbHpd* richHPD[NumberOfHpds];
G4bool ConstructTrackingGeometrySwitch;
};
#endif
@@ -0,0 +1,80 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbPhysicsList.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbPhysicsList_h
#define RichTbPhysicsList_h 1
#include "globals.hh"
#include "G4VUserPhysicsList.hh"
#include "RichTbRunConfig.hh"
#include "RichTbAnalysisManager.hh"
#include "G4ParticleTable.hh"
class RichTbPhysicsList : public G4VUserPhysicsList
{
public:
RichTbPhysicsList();
RichTbPhysicsList(RichTbRunConfig*);
virtual ~RichTbPhysicsList();
protected:
// Construct particles and processes
virtual void ConstructParticle();
virtual void ConstructProcess();
//
virtual void SetCuts();
protected:
// these methods Construct particles
virtual void ConstructBosons();
virtual void ConstructLeptons();
virtual void ConstructMesons();
virtual void ConstructBaryons();
protected:
// these methods Construct physics processes and register them
virtual void ConstructGeneral();
virtual void ConstructEM();
virtual void ConstructOp();
private:
RichTbRunConfig* rConfigPh;
RichTbAnalysisManager* rAnalysisPh;
// the particle table has the complete List of existing particle types
G4ParticleTable* theParticleTable;
G4ParticleTable::G4PTblDicIterator* theParticleIterator;
};
#endif
@@ -0,0 +1,72 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbPrimaryGeneratorAction.hh for Rich of LHCb
// History:
// Created: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbPrimaryGeneratorAction_h
#define RichTbPrimaryGeneratorAction_h 1
#include "G4VUserPrimaryGeneratorAction.hh"
#include "globals.hh"
class G4ParticleGun;
class G4Event;
class RichTbDetectorConstruction;
class RichTbPrimaryGeneratorMessenger;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class RichTbPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
{
public:
RichTbPrimaryGeneratorAction(RichTbDetectorConstruction*);
~RichTbPrimaryGeneratorAction();
public:
void GeneratePrimaries(G4Event*);
void SetRndmFlag(G4String val) { rndmFlag = val;}
void Setxvertex(G4double x) ;
void Setyvertex(G4double y) ;
void Setzvertex(G4double z) ;
static G4String GetPrimaryName() ;
private:
G4ParticleGun* particleGun; //pointer a to G4 service class
RichTbDetectorConstruction* RichTbDetector; //pointer to the geometry
RichTbPrimaryGeneratorMessenger* gunMessenger; //messenger of this class
G4String rndmFlag; //flag for a random impact point
static G4String thePrimaryParticleName ;
G4double xvertex,yvertex,zvertex;
G4bool vertexdefined;
};
#endif
@@ -0,0 +1,58 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbPrimaryGeneratorMessenger.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbPrimaryGeneratorMessenger_h
#define RichTbPrimaryGeneratorMessenger_h 1
#include "G4UImessenger.hh"
#include "globals.hh"
class RichTbPrimaryGeneratorAction;
class G4UIcmdWithAString;
class G4UIcmdWithADoubleAndUnit;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class RichTbPrimaryGeneratorMessenger: public G4UImessenger
{
public:
RichTbPrimaryGeneratorMessenger(RichTbPrimaryGeneratorAction*);
~RichTbPrimaryGeneratorMessenger();
void SetNewValue(G4UIcommand*, G4String);
private:
RichTbPrimaryGeneratorAction* RichTbAction;
G4UIcmdWithAString* RndmCmd;
G4UIcmdWithADoubleAndUnit* setxvertexCmd;
G4UIcmdWithADoubleAndUnit* setyvertexCmd;
G4UIcmdWithADoubleAndUnit* setzvertexCmd;
};
#endif
@@ -0,0 +1,51 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbRODummySD.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbRODummySD_h
#define RichTbRODummySD_h 1
#include "G4VSensitiveDetector.hh"
class G4Step;
class RichTbRODummySD : public G4VSensitiveDetector
{
public:
RichTbRODummySD();
~RichTbRODummySD() {};
void Initialize(G4HCofThisEvent*HCE) {};
G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist) {return false;}
void EndOfEvent(G4HCofThisEvent*HCE) {};
void clear() {};
void DrawAll() {};
void PrintAll() {};
};
RichTbRODummySD::RichTbRODummySD()
: G4VSensitiveDetector("RichTbROdummySD") {}
#endif
@@ -0,0 +1,62 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbROGeometry.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbROGeometry_h
#define RichTbROGeometry_h 1
#include "G4VReadOutGeometry.hh"
#include "G4VPhysicalVolume.hh"
#include "RichTbMaterial.hh"
#include "RichTbHall.hh"
#include "RichTbComponent.hh"
#include "RichTbRunConfig.hh"
#include "RichTbPhotoDetector.hh"
class RichTbROGeometry : public G4VReadOutGeometry {
public:
RichTbROGeometry(RichTbMaterial*,RichTbRunConfig*);
RichTbROGeometry(G4String, RichTbMaterial*,RichTbRunConfig*);
~RichTbROGeometry();
G4VPhysicalVolume* Build();
RichTbHall* getRichTbHall()
{ return ROTbHall; }
RichTbComponent* getRichTbComponent()
{ return ROTbComponent; }
RichTbPhotoDetector* getROPhotDet()
{ return ROPhotDet ;}
private:
RichTbMaterial* rMaterial;
RichTbRunConfig* ROTbConfig;
RichTbHall* ROTbHall;
RichTbComponent* ROTbComponent;
RichTbPhotoDetector* ROPhotDet;
};
#endif
@@ -0,0 +1,58 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbRunAction.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbRunAction_h
#define RichTbRunAction_h 1
#include "globals.hh"
#include "G4UserRunAction.hh"
class G4Timer;
class G4Run;
class RichTbRunAction : public G4UserRunAction
{
public:
RichTbRunAction();
virtual ~RichTbRunAction();
public:
void BeginOfRunAction(const G4Run* aRun);
void EndOfRunAction(const G4Run* aRun);
private:
G4Timer* timer;
};
#endif
@@ -0,0 +1,188 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbRunConfig.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbRunConfig_h
#define RichTbRunConfig_h 1
#include "globals.hh"
#include <vector>
#include "AerogelTypeSpec.hh"
#include "FilterTypeSpec.hh"
#include "AerogelRefData.hh"
#include "FilterTrData.hh"
#include <math.h>
#include <fstream.h>
class RichTbRunConfig{
public:
RichTbRunConfig();
virtual ~RichTbRunConfig();
G4double getPressureN2()
{return CurrentPressureN2;}
G4double getTemperatureN2()
{ return CurrentTemperatureN2; }
G4double getMirrorAddTiltX()
{return MirrorAddTiltX; }
G4double getMirrorAddTiltY()
{return MirrorAddTiltY; }
G4int getRichTbHall_visib()
{return RichTbHall_visib;}
G4int getRichTbEnclosure_visib()
{return RichTbEnclosure_visib;}
G4int getRichTbRadFrame_visib()
{return RichTbRadFrame_visib;}
G4int getRichTbRadUpW_visib()
{return RichTbRadUpW_visib;}
G4int getRichTbRadDnW_visib()
{return RichTbRadDnW_visib;}
G4int getRichTbAerogel_visib()
{return RichTbAerogel_visib;}
G4int getRichTbAerogelWrap_visib()
{return RichTbAerogelWrap_visib;}
G4int getRichTbFilter_visib()
{return RichTbFilter_visib;}
G4int getRichTbMirror_visib()
{return RichTbMirror_visib;}
G4int getRichTbHpdMaster_visib()
{return RichTbHpdMaster_visib; }
G4int getRichTbHpdEnvelopeTube_visib()
{return RichTbHpdEnvelopeTube_visib;}
G4int getRichTbHpdQuartzW_visib()
{return RichTbHpdQuartzW_visib; }
G4int getRichTbHpdPhCathode_visib()
{return RichTbHpdPhCathode_visib; }
G4int getRichTbHpdSiDet_visib()
{return RichTbHpdSiDet_visib; }
G4int getRichTbHpdSectCoat_visib()
{return RichTbHpdSectCoat_visib; }
G4int getRichTbHpdSiPx_visib()
{return RichTbHpdSiPx_visib; }
G4int getRefIndexPara()
{return RefIndexPara; }
G4int getRichTbDrawTrajectory() {return RichTbDrawTrajectory_visib; }
G4double getHpdPhElectronEnergy() {return HpdPhElectronEnergy; }
G4int DoWriteOutputFile() {return WriteOutputFile; }
G4String getOutputFileName() {return OutputFileName; }
G4String getOutputHistoDirName() {return OutputHistoDirName; }
G4int getWriteMiscOutputFlag() {return WriteMiscOutputFlag; }
G4String getMiscOutFileName() {return MiscOutFileName; }
G4int GetFilterTNumber() {return FilterTNumber; }
FilterType GetFilterType() {return CurFilterType; }
G4int GetNumberOfAerogelTiles() {return NumberOfAerogelTiles ; }
G4int GetCurAerogelTNumber(G4int AgelNum )
{return CurAerogelTNumber[AgelNum];}
AerogelType GetCurAerogelType(G4int AgelNumber)
{return CurAerogelType[AgelNumber];}
AerogelRefData* GetAerogelRefdata() {return AerogelRefractiveInd;}
FilterTrData* GetFilterTrData() {return FilterTransData; }
G4int GetRichTbNumPartEvent() {return RichTbNumPartEvent; }
G4int GetRichTbParticleTypeCode() {return RichTbParticleTypeCode; }
G4int GetRichTbParticleStartPosCode() {return RichTbParticleStartPosCode; }
G4int GetRichTbParticleDirectionCode(){return RichTbParticleDirectionCode; }
G4int GetRichTbParticleEnergyCode(){return RichTbParticleEnergyCode; }
G4double GetRichTbParticleEnergy() {return RichTbParticleEnergy; }
G4double GetRichTbPhotLowE() {return RichTbPhotLowE; }
G4double GetRichTbPhotHighE() {return RichTbPhotHighE; }
G4String GetAerogelRefDataFile() {return AerogelRefDataInputFileName; }
G4String GetFilterTransDataFile() { return FilterTransDataInputFileName; }
private:
G4double CurrentPressureN2;
G4double CurrentTemperatureN2;
G4int RefIndexPara;
G4double MirrorAddTiltX;
G4double MirrorAddTiltY;
//Graphics setups
//For Following variables 0 means make the volume invisible;
// 1 means make it visible as a solid.
// 2 means make it visible as a wireframe.
G4int RichTbHall_visib;
G4int RichTbEnclosure_visib;
G4int RichTbRadFrame_visib;
G4int RichTbRadUpW_visib;
G4int RichTbRadDnW_visib;
G4int RichTbAerogel_visib;
G4int RichTbAerogelWrap_visib;
G4int RichTbFilter_visib;
G4int RichTbMirror_visib;
G4int RichTbHpdMaster_visib;
G4int RichTbHpdEnvelopeTube_visib;
G4int RichTbHpdQuartzW_visib;
G4int RichTbHpdPhCathode_visib;
G4int RichTbHpdSiDet_visib;
G4int RichTbHpdSectCoat_visib;
G4int RichTbHpdSiPx_visib;
G4int RichTbDrawTrajectory_visib;
G4double HpdPhElectronEnergy;
G4int FilterTNumber;
FilterType CurFilterType;
G4int NumberOfAerogelTiles;
vector<G4int>CurAerogelTNumber;
vector<AerogelType>CurAerogelType;
G4int WriteOutputFile;
G4String OutputFileName;
G4String OutputHistoDirName;
G4String AerogelRefDataInputFileName;
G4String FilterTransDataInputFileName;
G4int WriteMiscOutputFlag;
G4String MiscOutFileName;
AerogelRefData* AerogelRefractiveInd;
FilterTrData* FilterTransData;
//The following is for particle types.
// used as the beam.
//First the number of beam particles per event.
G4int RichTbNumPartEvent;
// 0 means piminus, 1 means optical photon,
// 2 means mixture of piminus and proton.
G4int RichTbParticleTypeCode;
//The following poscode = 0 means standard pos (0, 0, -2000.0 mm);
// =1 means special pos implemented.
G4int RichTbParticleStartPosCode;
// The following dire code =0 means dir is 0,0,1. The other
// codes for getting the beam spread is not implemented yet.
G4int RichTbParticleDirectionCode;
G4int RichTbParticleEnergyCode;
// the following is for charged particle energy in GeV.
G4double RichTbParticleEnergy;
//The following is for photon energy range in eV for testing optical
// parameters.
G4double RichTbPhotLowE;
G4double RichTbPhotHighE;
};
#endif
@@ -0,0 +1,67 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbSD.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbSD_h
#define RichTbSD_h 1
#include "globals.hh"
#include "G4VSensitiveDetector.hh"
#include "G4ThreeVector.hh"
#include "RichTbHit.hh"
#include "RichTbGeometryParameters.hh"
class G4Step;
class G4HCofThisEvent;
class RichTbSD : public G4VSensitiveDetector
{
public:
RichTbSD(G4String , G4int, G4int, G4int,G4String );
virtual ~RichTbSD();
void Initialize(G4HCofThisEvent*HCE);
G4bool ProcessHits(G4Step*aStep,G4TouchableHistory*ROhist);
void EndOfEvent(G4HCofThisEvent*HCE);
void clear();
void DrawAll();
void PrintAll();
private:
RichTbHitsCollection * RichTbHitCollection;
G4int NumberOfSensitiveHpds;
G4int NumberOfSensitiveSectorsInHpd;
G4int NumberOfSensitivePixelsInSector;
vector<G4int> HpdSDID;
G4int HCID;
};
#endif
@@ -0,0 +1,71 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbSiDet.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbSiDet_h
#define RichTbSiDet_h 1
#include "globals.hh"
#include "RichTbMaterial.hh"
#include "RichTbGeometryParameters.hh"
#include "G4LogicalVolume.hh"
#include "G4VPhysicalVolume.hh"
#include "RichTbSiPixel.hh"
class RichTbSiDet {
public:
RichTbSiDet();
virtual ~RichTbSiDet();
RichTbSiDet(RichTbMaterial*, G4VPhysicalVolume*, G4bool, G4int, G4int);
G4LogicalVolume* getHpdSiSectLogicalVolume()
{return RichTbHpdSiSectLVol;}
G4VPhysicalVolume* getHpdSiSectPhysicalVolume()
{return RichTbHpdSiSectPVol;}
G4LogicalVolume* getHpdSectCoatLogicalVolume()
{return RichTbHpdSectCoatLVol;}
G4VPhysicalVolume* getHpdSectCoatPhysicalVolume()
{return RichTbHpdSectCoatPVol;}
G4int getNumSiPixels(){return NumHpdSiPix ;}
G4int getCurSiSectNum(){return CurSiSectNum;}
RichTbSiPixel* getHpdSiPx(G4int ipixelnum )
{ return hpdSiPixel[ipixelnum]; }
G4int getIHpdNumber()
{ return IHpdNumber; }
private:
G4LogicalVolume* RichTbHpdSiSectLVol;
G4VPhysicalVolume* RichTbHpdSiSectPVol;
G4LogicalVolume* RichTbHpdSectCoatLVol;
G4VPhysicalVolume* RichTbHpdSectCoatPVol;
G4int NumHpdSiPix;
G4int CurSiSectNum;
RichTbSiPixel* hpdSiPixel[NumberOfPadHpdSiPixels];
G4bool ConstructTrackGeomSwitch;
G4int IHpdNumber;
};
#endif
@@ -0,0 +1,57 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbSiPixel.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbSiPixel_h
#define RichTbSiPixel_h 1
#include "globals.hh"
#include "RichTbMaterial.hh"
#include "RichTbGeometryParameters.hh"
#include "G4LogicalVolume.hh"
#include "G4VPhysicalVolume.hh"
class RichTbSiPixel {
public:
RichTbSiPixel();
virtual ~RichTbSiPixel();
RichTbSiPixel(RichTbMaterial*, G4VPhysicalVolume*, G4int, G4int, G4int);
G4LogicalVolume* getHpdSiPixelLogicalVolume()
{return RichTbHpdSiPixelLVol;}
G4VPhysicalVolume* getHpdSiPixelPhysicalVolume()
{return RichTbHpdSiPixelPVol;}
G4int getICurSectorNumber() {return ICurSectorNumber; }
G4int getHpdSiPixelnum() {return HpdSiPixelnum; }
G4int getICurHpdNumber() {return ICurHpdNumber;}
private:
G4LogicalVolume* RichTbHpdSiPixelLVol;
G4VPhysicalVolume* RichTbHpdSiPixelPVol;
G4int ICurSectorNumber;
G4int HpdSiPixelnum;
G4int ICurHpdNumber;
G4bool PixelIsAlive;
};
#endif
@@ -0,0 +1,44 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbStackingAction.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbStackingAction_h
#define RichTbStackingAction_h 1
#include "G4UserStackingAction.hh"
class RichTbStackingAction : public G4UserStackingAction {
public:
RichTbStackingAction();
virtual ~RichTbStackingAction();
void NewStage(){ ;}
void PrepareNewEvent(){;}
private:
};
#endif
@@ -0,0 +1,66 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbSteppingAction.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbSteppingAction_h
#define RichTbSteppingAction_h 1
#include "G4UserSteppingAction.hh"
#include "G4VDiscreteProcess.hh"
#include "G4VParticleChange.hh"
#include "G4ParticleChange.hh"
class RichTbAnalysisManager;
class RichTbRunConfig;
class RichTbPrimaryGeneratorAction;
class RichTbSteppingAction : public G4UserSteppingAction {
public:
RichTbSteppingAction(RichTbRunConfig* ,
RichTbPrimaryGeneratorAction* );
virtual ~RichTbSteppingAction();
void UserSteppingAction(const G4Step* aStep);
void RichTbGenericHisto(const G4Step* aStep);
void RichTbDebugHisto(const G4Step* aStep);
RichTbAnalysisManager* getRAnalysisManager()
{return ranalysisManager; }
RichTbRunConfig* getRichTbRunConfig()
{return richtbRunConfig; }
G4double getHpdPhElectronKE()
{return HpdPhElectronKE; }
private:
RichTbAnalysisManager* ranalysisManager;
RichTbRunConfig* richtbRunConfig;
RichTbPrimaryGeneratorAction* rPrimGenAction;
G4double HpdPhElectronKE;
G4VParticleChange* uParticleChange;
};
#endif
@@ -0,0 +1,44 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbTrackingAction.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbTrackingAction_h
#define RichTbTrackingAction_h 1
#include "G4UserTrackingAction.hh"
class RichTbTrackingAction : public G4UserTrackingAction {
public:
RichTbTrackingAction();
virtual ~RichTbTrackingAction();
void PreUserTrackingAction(const G4Track* aTrack){;}
void PostUserTrackingAction(const G4Track* aTrack){;}
private:
};
#endif
@@ -0,0 +1,53 @@
//
// ********************************************************************
// * 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. *
// ********************************************************************
//
// Rich advanced example for Geant4
// RichTbVisManager.hh for Rich of LHCb
// History:
// Created: Sajan Easo (Sajan.Easo@cern.ch)
// Revision and changes: Patricia Mendez (Patricia.Mendez@cern.ch)
/////////////////////////////////////////////////////////////////////////////
#ifndef RichTbVisManager_h
#define RichTbVisManager_h 1
#ifdef G4VIS_USE
#include "G4VisManager.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class RichTbVisManager: public G4VisManager {
public:
RichTbVisManager ();
virtual ~RichTbVisManager();
private:
void RegisterGraphicsSystems ();
};
#endif
#endif
@@ -0,0 +1,601 @@
800 92.0400
799 92.0850
798 92.0400
797 91.9650
796 91.8850
795 92.0100
794 92.1100
793 91.9500
792 92.0100
791 91.9750
790 91.9900
789 91.9600
788 91.9650
787 91.9600
786 91.9100
785 91.9200
784 91.9950
783 92.0750
782 92.0800
781 92.0550
780 92.0000
779 92.1000
778 92.0500
777 92.0850
776 92.1000
775 92.0050
774 92.0300
773 92.0400
772 92.0000
771 92.0350
770 92.1100
769 92.0400
768 92.0700
767 92.1250
766 92.0600
765 92.0650
764 92.0800
763 91.9950
762 92.1050
761 92.1350
760 92.1000
759 92.1250
758 92.0800
757 92.1450
756 92.1150
755 92.0850
754 92.0650
753 92.1000
752 92.1050
751 92.1050
750 92.1900
749 92.2350
748 92.2350
747 92.2650
746 92.1900
745 92.2100
744 92.1700
743 92.1500
742 92.1400
741 92.1950
740 92.2200
739 92.2000
738 92.1500
737 92.2200
736 92.2100
735 92.2350
734 92.1850
733 92.1900
732 92.1400
731 92.1650
730 92.1700
729 92.1350
728 92.1650
727 92.1650
726 92.2250
725 92.2150
724 92.1600
723 92.2350
722 92.2750
721 92.2100
720 92.2750
719 92.2050
718 92.1400
717 92.1550
716 92.1050
715 92.1000
714 92.1450
713 92.1900
712 92.2000
711 92.1550
710 92.1900
709 92.2100
708 92.1900
707 92.1850
706 92.2350
705 92.2250
704 92.2000
703 92.2700
702 92.2000
701 92.2000
700 92.2250
699 92.1750
698 92.2250
697 92.2100
696 92.2350
695 92.2100
694 92.1700
693 92.2000
692 92.1750
691 92.1550
690 92.1650
689 92.1900
688 92.2050
687 92.1650
686 92.1650
685 92.1950
684 92.1750
683 92.2150
682 92.2250
681 92.2000
680 92.1400
679 92.1850
678 92.1950
677 92.1750
676 92.2200
675 92.2250
674 92.2350
673 92.2450
672 92.1800
671 92.1650
670 92.1900
669 92.2200
668 92.1900
667 92.2100
666 92.2150
665 92.1900
664 92.1450
663 92.1800
662 92.1800
661 92.2150
660 92.2250
659 92.2100
658 92.1600
657 92.2100
656 92.2150
655 92.1850
654 92.1950
653 92.2050
652 92.2150
651 92.2150
650 92.1900
649 92.1500
648 92.1750
647 92.1950
646 92.2200
645 92.2100
644 92.1900
643 92.1550
642 92.1750
641 92.1550
640 92.1500
639 92.1250
638 92.1000
637 92.1900
636 92.2050
635 92.1600
634 92.1550
633 92.1600
632 92.1950
631 92.1850
630 92.1800
629 92.2200
628 92.2150
627 92.1700
626 92.1750
625 92.2050
624 92.1750
623 92.1400
622 92.1800
621 92.1500
620 92.1550
619 92.1650
618 92.1750
617 92.1850
616 92.1600
615 92.1550
614 92.1650
613 92.1550
612 92.1650
611 92.1450
610 92.1400
609 92.1450
608 92.1000
607 92.1350
606 92.1250
605 92.1600
604 92.1300
603 92.1050
602 92.1300
601 92.1450
600 92.1450
599 92.1050
598 92.1450
597 92.1500
596 92.1850
595 92.1550
594 92.1700
593 92.1500
592 92.1100
591 92.1000
590 92.0850
589 92.1300
588 92.1200
587 92.0750
586 92.1150
585 92.1100
584 92.1300
583 92.0900
582 92.0700
581 92.0650
580 92.1050
579 92.1050
578 92.1150
577 92.1150
576 92.1000
575 92.0900
574 92.0800
573 92.0900
572 92.0950
571 92.0850
570 92.0700
569 92.0550
568 92.0850
567 92.0900
566 92.0650
565 92.0850
564 92.0800
563 92.0300
562 91.9700
561 92.0400
560 92.0650
559 92.0550
558 92.0250
557 92.0600
556 92.0300
555 92.0600
554 92.0600
553 92.0200
552 92.0650
551 92.0600
550 92.0650
549 92.0750
548 92.0300
547 92.0600
546 92.0050
545 92.0350
544 92.0150
543 91.9900
542 92.0000
541 92.0450
540 92.0100
539 92.0350
538 92.0500
537 92.0000
536 92.0100
535 92.0050
534 91.9850
533 91.9800
532 91.9750
531 91.9850
530 91.9900
529 92.0000
528 91.9900
527 91.9850
526 91.9850
525 91.9700
524 92.0000
523 91.9500
522 91.9500
521 91.9300
520 91.9700
519 91.9600
518 91.9350
517 91.9500
516 91.9700
515 91.9150
514 91.9400
513 91.9450
512 91.9400
511 91.9300
510 91.9300
509 91.8800
508 91.9200
507 91.9550
506 91.9350
505 91.9000
504 91.9200
503 91.8700
502 91.9000
501 91.8500
500 91.8800
499 91.8800
498 91.9150
497 91.8750
496 91.9150
495 91.8450
494 91.8400
493 91.8850
492 91.9350
491 91.8650
490 91.8400
489 91.8200
488 91.8750
487 91.8300
486 91.8350
485 91.8350
484 91.8550
483 91.8600
482 91.8100
481 91.8600
480 91.8600
479 91.8250
478 91.8200
477 91.8150
476 91.8350
475 91.8400
474 91.8150
473 91.8550
472 91.8200
471 91.8150
470 91.7500
469 91.7850
468 91.7600
467 91.7500
466 91.7700
465 91.8000
464 91.7400
463 91.7450
462 91.7400
461 91.7050
460 91.6600
459 91.7650
458 91.7350
457 91.7200
456 91.7300
455 91.7100
454 91.6850
453 91.6850
452 91.7400
451 91.7600
450 91.7650
449 91.7250
448 91.6600
447 91.6100
446 91.6650
445 91.6800
444 91.6100
443 91.6800
442 91.5850
441 91.6250
440 91.5600
439 91.6450
438 91.6400
437 91.6000
436 91.5850
435 91.5500
434 91.5850
433 91.5850
432 91.5800
431 91.6100
430 91.6400
429 91.5850
428 91.5300
427 91.5500
426 91.5700
425 91.5800
424 91.5900
423 91.4950
422 91.4850
421 91.4850
420 91.5050
419 91.4700
418 91.4900
417 91.5300
416 91.5050
415 91.4700
414 91.4900
413 91.5200
412 91.5350
411 91.5250
410 91.5300
409 91.5200
408 91.4750
407 91.5100
406 91.5000
405 91.4850
404 91.4550
403 91.3850
402 91.4000
401 91.3800
400 91.4650
399 91.5100
398 91.4350
397 91.3500
396 91.3600
395 91.3450
394 91.3300
393 91.4050
392 91.3550
391 91.3150
390 91.3300
389 91.4150
388 91.2700
387 91.1900
386 91.2900
385 91.1800
384 91.2250
383 91.1300
382 91.1350
381 91.1700
380 91.2100
379 91.0850
378 91.1300
377 91.1650
376 91.0950
375 91.1150
374 91.0950
373 91.0550
372 91.0450
371 90.9200
370 90.9800
369 91.0750
368 90.9500
367 90.9650
366 90.8850
365 90.9000
364 90.8100
363 90.8200
362 90.8050
361 90.6800
360 90.6850
359 90.5850
358 90.5400
357 90.5300
356 90.4650
355 90.3050
354 90.2500
353 90.0650
352 89.9800
351 89.9100
350 89.7250
349 89.5400
348 89.4250
347 89.1850
346 89.1100
345 88.7200
344 88.3750
343 88.0500
342 87.8550
341 87.5100
340 87.0700
339 86.6700
338 86.0550
337 85.5900
336 84.8300
335 84.0950
334 83.3000
333 82.4900
332 81.3850
331 80.2300
330 78.9300
329 77.5200
328 75.9700
327 74.2350
326 72.4450
325 70.4550
324 68.2750
323 65.8900
322 63.3000
321 60.4700
320 57.4950
319 54.3700
318 51.0900
317 47.5950
316 43.9850
315 40.3150
314 36.5150
313 32.7350
312 28.9800
311 25.3500
310 21.8300
309 18.5150
308 15.4300
307 12.6100
306 10.0950
305 7.9050
304 6.0450
303 4.5100
302 3.2750
301 2.3100
300 1.5800
299 1.0450
298 0.6700
297 0.4200
296 0.2550
295 0.1550
294 0.0950
293 0.0600
292 0.0400
291 0.0350
290 0.0250
289 0.0250
288 0.0250
287 0.0250
286 0.0250
285 0.0250
284 0.0250
283 0.0200
282 0.0200
281 0.0200
280 0.0250
279 0.0250
278 0.0200
277 0.0200
276 0.0200
275 0.0250
274 0.0200
273 0.0200
272 0.0200
271 0.0200
270 0.0200
269 0.0200
268 0.0200
267 0.0200
266 0.0200
265 0.0200
264 0.0200
263 0.0200
262 0.0200
261 0.0200
260 0.0200
259 0.0200
258 0.0150
257 0.0200
256 0.0200
255 0.0200
254 0.0200
253 0.0200
252 0.0200
251 0.0200
250 0.0200
249 0.0150
248 0.0150
247 0.0150
246 0.0200
245 0.0200
244 0.0200
243 0.0200
242 0.0200
241 0.0200
240 0.0200
239 0.0200
238 0.0200
237 0.0200
236 0.0200
235 0.0200
234 0.0200
233 0.0200
232 0.0200
231 0.0200
230 0.0200
229 0.0200
228 0.0200
227 0.0200
226 0.0200
225 0.0200
224 0.0200
223 0.0200
222 0.0200
221 0.0200
220 0.0200
219 0.0250
218 0.0250
217 0.0200
216 0.0200
215 0.0200
214 0.0200
213 0.0250
212 0.0250
211 0.0200
210 0.0250
209 0.0250
208 0.0250
207 0.0250
206 0.0250
205 0.0300
204 0.0350
203 0.0300
202 0.0350
201 0.0400
200 0.0400
@@ -0,0 +1,37 @@
1.00 1.03465
1.25 1.03475
1.50 1.03487
1.75 1.03502
2.00 1.03519
2.25 1.03539
2.50 1.03562
2.75 1.03587
3.00 1.03615
3.25 1.03646
3.50 1.03681
3.75 1.03719
4.00 1.03761
4.25 1.03808
4.50 1.03858
4.75 1.03914
5.00 1.03975
5.25 1.04042
5.50 1.04116
5.75 1.04197
6.00 1.04287
6.25 1.04387
6.50 1.04498
6.75 1.04622
7.00 1.04761
7.25 1.04920
7.50 1.05101
7.75 1.05310
8.00 1.05554
8.25 1.05844
8.50 1.06194
8.75 1.06626
9.00 1.07176
9.25 1.07905
9.50 1.08920
9.75 1.10449
+31
View File
@@ -0,0 +1,31 @@
#
# This file permits to customize, with commands,
# the menu bar of the G4UIXm, G4UIWin32 sessions.
# It has no effect with G4UIterminal.
#
# File :
/gui/addMenu file File
/gui/addButton file Continue continue
/gui/addButton file Exit "exit"
#
# Run menu :
/gui/addMenu run Run
/gui/addButton run run1 "/control/execute ../macro/run1.mac"
#
# Vis menu :
/gui/addMenu vis Vis
/gui/addButton vis Vis0 "/control/execute ../macro/RichTbVis0.mac"
#
#Setup driver Menu:
/gui/addMenu setup Setup
# /gui/addButton setup Init "/control/execute ../macro/InitRichTb.mac"
/gui/addButton setup opgl "/control/execute ../macro/SetupOpenGL.mac"
/gui/addButton setup dawn "/control/execute ../macro/SetupDawn.mac"
#
# To limit the output flow in the "dump" widget :
/event/printModulo 100

Some files were not shown because too many files have changed in this diff Show More