Import Geant4 5.2.0 source tree
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -131,5 +131,6 @@ endif
|
||||
|
||||
ifdef G4INTY_USE_WIN32
|
||||
CPPFLAGS += -DG4INTY_USE_WIN32
|
||||
INTYLIBS += $(UI32LIBS)
|
||||
endif
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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),)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)`; \
|
||||
|
||||
@@ -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); \
|
||||
|
||||
@@ -19,7 +19,6 @@ ifeq ($(G4SYSTEM),HP-aCC)
|
||||
FCFLAGS += +Z
|
||||
CCFLAGS += +Z
|
||||
endif
|
||||
G4_HAVE_BOOL := yes
|
||||
FC := f77
|
||||
SHEXT := sl
|
||||
FCFLAGS += +E6 +ppu
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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) | */
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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) | */
|
||||
|
||||
@@ -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) | */
|
||||
|
||||
@@ -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) | */
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) | */
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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) | */
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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_*
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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.
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
Reference in New Issue
Block a user