Import Geant4 3.1.0 source tree
This commit is contained in:
@@ -0,0 +1,446 @@
|
||||
|
||||
Geant4 3.1 Release Notes
|
||||
------------------------
|
||||
|
||||
6th April 2001
|
||||
|
||||
These are the main new features/fixes included in this release since
|
||||
release 3.0 (for the detailed list of fixes/additions, please refer to the
|
||||
related History files):
|
||||
|
||||
o Configuration:
|
||||
-------------
|
||||
- Added/enabled code in configuration files to store path to dynamic
|
||||
library from example/test directory in the executable.
|
||||
|
||||
o Digits+Hits:
|
||||
-----------
|
||||
- Migrated classes to use STL <vector> instead of RW wrappers.
|
||||
|
||||
o Event:
|
||||
-----
|
||||
- Migrated classes to use STL <vector> instead of RW wrappers.
|
||||
- Added proper time to G4PrimaryParticle.
|
||||
- Fixed bug in G4GeneralParticleSource.
|
||||
|
||||
o Electromagnetic Processes (Low-energy):
|
||||
--------------------------------------
|
||||
- Changes for STL migration of G4OrderedTable and G4DataVector.
|
||||
- Removed obsolete class G4Data.
|
||||
|
||||
o Electromagnetic Processes (Standard):
|
||||
------------------------------------
|
||||
- Small corrections in e/hEnergyLoss to ensure consistency between
|
||||
cut in range and step limitation due to energy loss (finalRange
|
||||
data member <-> cut in range)
|
||||
- Change in energy loss computation in eBrems process.
|
||||
Parametrisation of energy loss due to soft brems has been corrected
|
||||
for big cut values.
|
||||
- Bug-fix in e/hEnergyLoss processes for AlongStepDoIt().
|
||||
Do not use PostStep information in AlongStepDoIt() when generating
|
||||
sub-cutoff delta rays.
|
||||
- Small corrections in MuEnergyLoss process.
|
||||
- Bug fixed in MultipleScattering: there was an error in computation
|
||||
of the transport cross section, the cross section was too small for
|
||||
low energy (below few MeV for electrons).
|
||||
- Bug fixed in G4MuBremstrahlung::PostStepDoIt() in sampling energy
|
||||
of generated photons. Fixes the problem sometimes occuring of
|
||||
negative interaction length detected.
|
||||
- Fix at small cut value for error in loss fluctuations
|
||||
(for example in Al 100 microns).
|
||||
- Suppressed protection in PhotoElectric process.
|
||||
- Adopt fStopButAlive in eplusAnnihilation process.
|
||||
- Introduced new module 'integral' for integral processes: moved
|
||||
existing integral processes (G4I*, G4VI*) therein.
|
||||
|
||||
o General Processes, Parameterisation, Decay, Optical:
|
||||
---------------------------------------------------
|
||||
- Modified G4OpRayleigh to allow for Rayleigh scattering length to
|
||||
be defined for arbitrary material through the use of
|
||||
G4MaterialPropertyTable. This deals with bug report #199.
|
||||
- Fixes in the DoIt of G4OpRayleigh: to allow for positive and negative
|
||||
CosTheta and to force the new momentum direction of the photon after
|
||||
scattering to be in the same plane as the new and old polarization
|
||||
vectors. Deals with bug report #207.
|
||||
- Added abstract class G4VExtDecayer for external decayer and modified
|
||||
G4Decay accordingly.
|
||||
- Modified Store/RetrievePhysicsTable() methods: added a bool argument
|
||||
to specify ascii/binary mode.
|
||||
|
||||
o Geometry:
|
||||
--------
|
||||
- Boolean solids:
|
||||
o Minor fix to labels in G4Exception calls.
|
||||
Fixes problem report #200.
|
||||
o G4IntersectionSolid:
|
||||
- Fix in CalculateExtent() for computation of 'pMin'
|
||||
and 'pMax', to avoid assignment in case CalculateExtent() of
|
||||
one component solid fails.
|
||||
- Fix in Inside() to return 'kOutside' in case first component
|
||||
solid's Inside() returns 'kOutside'.
|
||||
o G4UnionSolid:
|
||||
- Fix in DistanceToOut(p,v,...) for assignment of argument *n to
|
||||
happen only if calcNorm is false.
|
||||
- Fix in CalculateExtent() for computation of 'pMin' and 'pMax'.
|
||||
|
||||
- CSG solids
|
||||
o G4Tubs:
|
||||
- Corrections in phi-section algorithm of Inside(p).
|
||||
- Fixed condition from (pPhi<0) to (pPhi<-0.5*kAngleTolerance)
|
||||
in Inside(p). Fixes problem report #198.
|
||||
- Fixed bug in function Inside(p) in computation of pPhi
|
||||
for points at phi = 0 if the (start phi)+(delta phi) is
|
||||
at phi = 0.
|
||||
- Temporarly modified CalculateExtent(...), now simply based
|
||||
on G4Box::CalculateExtent(...).
|
||||
o G4Box:
|
||||
- Introduced checks against negative (or <2*kCarTolerance)
|
||||
dimensions in methods SetXHalfLength(), SetYHalfLength() and
|
||||
SetZHalfLength().
|
||||
- Fixes to algorithm for computation of rotated vertices in
|
||||
CalculateExtent().
|
||||
o G4Torus:
|
||||
- Extracted logic for G4PolynomialSolver now included
|
||||
in global/HEPNumerics.
|
||||
|
||||
- Specific solids:
|
||||
o Fix in G4Hype::DistanceToOut(p,v,...): added protection against
|
||||
zero v.z.
|
||||
o G4IntersectingCone: make small adjustment to help with roundoff
|
||||
error in LineHitsCone1() and LineHitsCone2().
|
||||
|
||||
- Magnetic Field
|
||||
o Minor fix to G4MagneticField.hh: added explicit call to G4Field()
|
||||
in copy constructor. Fixes problem report #205.
|
||||
o Fixed G4MagHelicalStepper::AdvanceHelix for momentum, allowing
|
||||
the possibility of (correct) use of all Helical Steppers.
|
||||
o Corrected field components in G4UniformElectricField.
|
||||
|
||||
- Management
|
||||
o Introduced G4AssemblyVolume: helper class to combine
|
||||
volumes together in an arbitrary way in the 3D space.
|
||||
|
||||
- Volumes
|
||||
o Fix in G4ReplicaNavigation::ComputeTransformation() to consider
|
||||
'pVol' for SetPhiTransformation() in the kPhi case.
|
||||
o Fix in G4ReplicaNavigation::ComputeStep() to initialise 'ourStep'
|
||||
to kCarTolerance.
|
||||
|
||||
o Global:
|
||||
------
|
||||
- Migrated G4PhysicsTable, G4PhysicsVector and all related classes
|
||||
to use STL <vector> instead of RW wrappers.
|
||||
- Fix to G4Allocator destructor: bug report #181.
|
||||
- Added generic class G4PolynomialSolver in HEPNumerics module.
|
||||
- Removed from G4PhysicsVector dependency over G4PhysicsTable.
|
||||
Removed methods: LinkPhysicsTable(), IsLinkedTableExist() and
|
||||
GetNextTable(). Removed data-member ptrNextTable.
|
||||
- Added new unit 'parsec' to SystemOfUnits.h
|
||||
- Fixed bug in constructor of G4PhysicsLnVector: initialised
|
||||
'dataVector' to zero.
|
||||
- Added Store/RetrievePhysicsTable methods in G4PhysicsTable.
|
||||
- Added Store/Retrieve and GetType methods in G4PhysicsVector and
|
||||
related.
|
||||
- Introduced G4PhysicsVectorType class (enumeration).
|
||||
- G4UnitsTable: resolved ambiguity of old/new style iostream for
|
||||
formatting in operator<<.
|
||||
|
||||
o Graphics Representations:
|
||||
------------------------
|
||||
- Tidying for CodeWizard. Added virtual destructors to
|
||||
HepPolyhedronBox, etc. Also made all constructors non-inline.
|
||||
- Removed G4Circle.icc and G4VVisPrim.icc.
|
||||
|
||||
o Hadronic Processes:
|
||||
------------------
|
||||
- Bug fix for very low energy ion cross-sections; should have no
|
||||
visible effect.
|
||||
- Moved inline implementation of G4Solver to G4Solver.icc.
|
||||
|
||||
o Materials:
|
||||
---------
|
||||
- Bug fixed in G4IonisParamMat.cc : E100eV instead of E100keV
|
||||
This bug affected the values of the density correction parameters
|
||||
in the energy loss (dE/dx) computation: ~3-5 % error in dE/dx in
|
||||
the energy range 1 MeV - 50 MeV !
|
||||
- Added new method G4Material::GetNuclearInterLength().
|
||||
- Bug fix concerning units in G4SandiaTable::GetSandiaCofPerAtom().
|
||||
Reimplemented G4SandiaTable::ComputeMatSandiaMatrix().
|
||||
- Added protection in GetSandiaCofForMaterial().
|
||||
- fnulcof added as data member in G4SandiaTable.
|
||||
- Revision of destructor, copy constructor, assignement operator in
|
||||
G4IonisParam, G4Isotope, G4Element and G4Material, according to
|
||||
problem report #106.
|
||||
- Removed warning to cerr in GetIsotope(name), GetElement(name),
|
||||
and GetMaterial(name).
|
||||
|
||||
o Particles:
|
||||
---------
|
||||
- Added pre-assignedDecayTime to G4DynamicParticle.
|
||||
- Bug fix in calculation of electron energy in G4MuDecayChannel.
|
||||
Fixes problem report #224.
|
||||
- Fixed a bug in G4DynamicParticle::SetDefinition() for problem
|
||||
report #228.
|
||||
- Added RestoreCuts() methods to G4ParticleWithCuts class.
|
||||
|
||||
o Persistency:
|
||||
-----------
|
||||
- G4PDCofThisEvent.ddl: fixed a bug in GetNumberOfCollections().
|
||||
|
||||
o Readout:
|
||||
-------
|
||||
- Migrated classes to use STL <vector> instead of RW wrappers.
|
||||
|
||||
o Run and Intercoms:
|
||||
-----------------
|
||||
- Migrated classes to use STL <vector> instead of RW wrappers.
|
||||
|
||||
o Tracking & Track:
|
||||
----------------
|
||||
- Changes for STL migration of G4OrderedTable and G4DataVector.
|
||||
- Migrated classes to use STL <vector> instead of RW wrappers.
|
||||
- Added comments to headers for the Software Reference Manual.
|
||||
- Added copy constructor for G4Track.
|
||||
- Fix in G4Track::GetVelocity() for Gamma
|
||||
- Fixes to G4StepPoint::GetVelocity() for problem report #208
|
||||
and to return correct value in case of optical-photon.
|
||||
- Added call to SetVelocity() in G4Step::InitializeStep().
|
||||
- G4PArticleChange: fix in case momentum is zero, (even if
|
||||
energy>0.0 and very small) to overcome problems due to
|
||||
precision issues.
|
||||
|
||||
o Transportation:
|
||||
--------------
|
||||
- Improved calculation of energy at the end of the field.
|
||||
- G4Transportation modified to use new FieldTrack, and get Kinetic
|
||||
Energy from it. This implements integration in Momentum (*c-light)
|
||||
instead of velocity.
|
||||
|
||||
o Visualization:
|
||||
-------------
|
||||
- Changed rotation of phi-replicas in G4PhysicalVolumeModel.cc to
|
||||
ensure correspondence with rule that phi=0 bisects the replica.
|
||||
|
||||
WARNING: Prior to this fix the graphics did NOT correspond to the
|
||||
replica navigation. If you have been relying on the graphics to
|
||||
position daughter volumes in a phi-replica, navigation will have
|
||||
been incorrect, possibly without causing a crash. The above fix
|
||||
will change the apparent position as shown by the graphics and you
|
||||
will have to correct the positioning of daughters. Make sure the
|
||||
daughters are all properly enclosed within the replica. Graphics
|
||||
and navigation now correspond.
|
||||
- Added auto-refresh facility for OpenGL.
|
||||
- Bug fixes for problems:
|
||||
#120: improved up vector calculation to avoid view "flipping"
|
||||
at (90, 90).
|
||||
#157: fixed crash when viewer was defined before scene.
|
||||
#204: fixed failure to change number of sides per circle.
|
||||
- Fixed problem when requested physical volume was at depth 2 or more.
|
||||
- Migrated classes to use STL <vector> instead of RW wrappers.
|
||||
- Introduced many new commands (listed below). Old commands print a
|
||||
DEPRECATED warning.
|
||||
o New compound command:
|
||||
/vis/drawView [<theta-deg>] [<phi-deg>]
|
||||
[<pan-right>] [<pan-up>] [<pan-unit>]
|
||||
[<zoom-factor>] [<dolly>] [<dolly-unit>]
|
||||
o New primitive commands:
|
||||
/vis/enable [true|false]
|
||||
/vis/disable
|
||||
/vis/verbose []
|
||||
/vis/viewer/set/lineSegmentsPerCircle []
|
||||
/vis/viewer/set/sectionPlane ...
|
||||
/vis/viewer/set/autoRefresh
|
||||
/vis/viewer/set/projection
|
||||
/vis/viewer/dolly
|
||||
/vis/viewer/dollyTo
|
||||
/vis/viewer/lightsThetaPhi
|
||||
/vis/viewer/lightsVector
|
||||
/vis/viewer/pan
|
||||
/vis/viewer/panTo
|
||||
/vis/viewer/viewpointThetaPhi
|
||||
/vis/viewer/viewpointVector
|
||||
/vis/viewer/zoom
|
||||
/vis/viewer/zoomTo
|
||||
/vis/viewer/set/hiddenMarker
|
||||
/vis/viewer/set/lightsMove
|
||||
|
||||
o G4toG4 Tool:
|
||||
-----------
|
||||
- Fixed bug in G3toG4BuildTree(G3VolTableEntry*, G3VolTableEntry*)
|
||||
when positioning volume copies. Index is now decremented.
|
||||
Added -DG3G4DEBUG to CPPFLAGS in GNUmakefile.
|
||||
Fixes bug report #188.
|
||||
- Added support for replicated "PARA" shapes in
|
||||
G3Division::CreateSolid(...). Slices are placed with
|
||||
G4PVPlacement instead of G4PVReplica for this particular case.
|
||||
- G3toG4MakeSolid.cc: fixed bug in construction of G4Sphere where
|
||||
'theta' and 'phi' parameters were reversed according to G4Sphere
|
||||
constructor. Fixes problem report #230.
|
||||
|
||||
o Examples:
|
||||
--------
|
||||
- Introduced modular Physics List in exampleN04.
|
||||
- ExampleN02: fix to ExN02ChamberParameterisation and
|
||||
ExN02DetectorConstruction to cope with bug report #186.
|
||||
- Added G4MuonMinusCaptureAtRest in physics list of ExampleN04.
|
||||
|
||||
|
||||
Notes:
|
||||
|
||||
o Geant4 3.1 is based on STL and can be installed with strict
|
||||
ISO/ANSI C++ compliant setup or not. See notes below.
|
||||
|
||||
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>.
|
||||
|
||||
Please refer to <A
|
||||
href="http://cern.ch/geant4/G4UsersDocuments/Overview/html/index.html">Geant4
|
||||
User Documentation</A> 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.
|
||||
|
||||
|
||||
Contents
|
||||
--------
|
||||
|
||||
1. Supported and Tested Platforms
|
||||
2. ANAPHE and CLHEP
|
||||
3. The Standard Template Library (STL)
|
||||
4. Persistency
|
||||
5. Compiler Specific Problems
|
||||
6. Known Run-Time Problems
|
||||
7. Compilation Warnings
|
||||
8. Known Run-Time Warnings
|
||||
|
||||
|
||||
1. Supported and Tested Platforms
|
||||
---------------------------------
|
||||
|
||||
o SUN Solaris 5.6/5.7, C++ 4.2 Patch 104631-04, C++ 5.2 Patch 109508-02.
|
||||
o HP 10.20, aCC C++ B3910B A.01.23
|
||||
o Linux 2.2.17-7, gcc C++ egcs-2.91.66 (egcs 1.1.2), gcc 2.95.2.
|
||||
This configuration was tested with the RedHat 6.1 distribution, but
|
||||
versions of Geant4 have also been compiled successfully on Debian
|
||||
and Suse distributions.
|
||||
o NT 4.0 with Service Pack 4 and Cygnus Tools b20 with:
|
||||
Visual C++ 6.0 Service Pack 2
|
||||
|
||||
Platforms also tested but giving rise to some problems - see below:
|
||||
|
||||
o DEC V4.0, cxx C++ V6.1-027.
|
||||
|
||||
Platforms configured but not tested and not supported:
|
||||
o SGI V6.5.5, CC 7.2.1 with ObjectSpace
|
||||
o AIX 4.3.2, xlC compiler with ObjectSpace
|
||||
|
||||
|
||||
2. ANAPHE and CLHEP
|
||||
-------------------
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
case you wish non-ISO/ANSI setup on specific compilers.
|
||||
|
||||
Geant4 3.1 coworks with ANAPHE 3.2.0 and components included therein:
|
||||
Objectivity 5.2.1
|
||||
ObjectSpace 2.1
|
||||
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>
|
||||
|
||||
|
||||
3. The Standard Template Library
|
||||
--------------------------------
|
||||
|
||||
The following versions of STL have been tested:
|
||||
|
||||
ObjectSpace STL on SUN (CC 4.2).
|
||||
|
||||
See <A href="http://www.objectspace.com/">ObjectSpace</A>.
|
||||
|
||||
"Native" STL on: Windows/NT, Linux, HP, DEC and SUN (CC 5.2).
|
||||
|
||||
This is selected at installation/compile time by the environment variable
|
||||
G4USE_OSPACE in the case of the former - see documentation.
|
||||
|
||||
NOTES:
|
||||
- Be aware that by default, the installation scripts will expect to use
|
||||
the native STL implementation. You must set the G4USE_OSPACE variable
|
||||
in the environment in order to select the ObjectSpace implementation.
|
||||
|
||||
- Platform specific setup:
|
||||
o DEC: ObjectSpace is required in non ISO/ANSI setup.
|
||||
Native STL is required for ISO/ANSI setup.
|
||||
o HP: either ObjectSpace or native STL can be used (non ISO/ANSI setup).
|
||||
o SUN: ObjectSpace is required in non ISO/ANSI setup (CC 4.2).
|
||||
Native STL is required for ISO/ANSI setup (CC 5.2 only).
|
||||
o Linux: Native STL is required (non ISO/ANSI setup).
|
||||
o NT: Native STL and ISO/ANSI setup required.
|
||||
|
||||
In the interest of stability, part of the code in Geant4 3.1 still makes use
|
||||
of the "STL Interface" wrapper classes, used for allowing the migration from
|
||||
Rogue Wave Tools.h++ container library. For these the emphasis has remained
|
||||
on correct behaviour, rather than performance.
|
||||
|
||||
|
||||
4. Persistency
|
||||
--------------
|
||||
|
||||
See release notes for Geant4 3.0.
|
||||
|
||||
5. Compiler Specific Problems
|
||||
-----------------------------
|
||||
|
||||
o DEC V4.0, cxx C++ V6.1-027.
|
||||
|
||||
- We have found cases of mis-compilation of min and max templates
|
||||
on DEC. We have traced those which cause serious malfunction
|
||||
but there is no guarantee that there are no other cases.
|
||||
Detailed inspection of assembler output suggests that this
|
||||
problem might not be confined to min and max. This has been
|
||||
reported to DEC/Compaq. We understand a new version 6.2 of the
|
||||
compiler is now available. However we cannot guarantee correct
|
||||
execution of Geant4 on DEC with the current version of the
|
||||
compiler.
|
||||
- A bug in cin.getline() system function causes an anomalous
|
||||
behavior when running in interactive-mode on DEC-cxx 6.1 in
|
||||
ISO/ANSI mode. We tested the bug has been fixed in more recent
|
||||
versions of the compiler.
|
||||
|
||||
|
||||
6. 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://wwwinfo.cern.ch/asd/cgi-bin/geant4/problemreport
|
||||
|
||||
|
||||
7. 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.
|
||||
|
||||
|
||||
8. 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 10000 steps in Field while a maximum of 10000
|
||||
are allowed.
|
||||
+19
-2
@@ -1,5 +1,5 @@
|
||||
$Id: History,v 1.129 2000/12/13 09:19:56 gcosmo Exp $
|
||||
$Name: geant4-03-00 $
|
||||
$Id: History,v 1.132.2.1 2001/03/22 14:00:01 gunter Exp $
|
||||
$Name: geant4-03-01 $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,23 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
22 March 2001 Gunter Folger (config-V03-00-03)
|
||||
- binmake.gmk, only store in executable PATH to libs from example/test;
|
||||
other libs should be taken/found from LD_LIBRARY_PATH
|
||||
- sys/{Linux-g++,SUN-CC}.gmk: enable storing of PATH to libs in executable
|
||||
|
||||
06th March 2001 Gabriele Cosmo (config-V03-00-02)
|
||||
- binmake.gmk: added include path for processes/electromagnetic/integral
|
||||
the new subcategory introduced with tag em-V03-00-04.
|
||||
|
||||
13th February 2001 Gabriele Cosmo (config-V03-00-01)
|
||||
- binmake.gmk: added include path for processes/photolepton_hadron
|
||||
which was missing!
|
||||
|
||||
08th January 2001 Gabriele Cosmo (config-V03-00-00)
|
||||
- sys/WIN32-VC.gmk: introduced -GR compiler option to allow usage of
|
||||
dynamic casting and type-info at run-time.
|
||||
|
||||
13th December 2000 Gunter Folger (config-V02-00-14)
|
||||
- common.gmk: fix to rule for building dependencies, parsing is skip
|
||||
if $(dependencies) is empty.
|
||||
|
||||
+5
-7
@@ -1,4 +1,4 @@
|
||||
# $Id: binmake.gmk,v 1.54 2000/12/05 17:19:49 morita Exp $
|
||||
# $Id: binmake.gmk,v 1.56.2.1 2001/03/22 13:54:24 gunter Exp $
|
||||
# ----------------------------------------------------------
|
||||
# Script defining rules and paths for making binaries.
|
||||
# Gabriele Cosmo, 25/06/1998.
|
||||
@@ -37,7 +37,9 @@ ifndef INCFLAGS
|
||||
-I$(G4BASE)/processes/optical/include \
|
||||
-I$(G4BASE)/processes/transportation/include \
|
||||
-I$(G4BASE)/processes/parameterisation/include \
|
||||
-I$(G4BASE)/processes/photolepton_hadron/include \
|
||||
-I$(G4BASE)/processes/electromagnetic/standard/include \
|
||||
-I$(G4BASE)/processes/electromagnetic/integral/include \
|
||||
-I$(G4BASE)/processes/electromagnetic/muons/include \
|
||||
-I$(G4BASE)/processes/electromagnetic/utils/include \
|
||||
-I$(G4BASE)/processes/electromagnetic/xrays/include \
|
||||
@@ -115,12 +117,6 @@ endif
|
||||
CPPFLAGS += $(INCFLAGS)
|
||||
LDFLAGS += -L$(G4LIBDIR)
|
||||
|
||||
ifdef SHAREDLIBS
|
||||
ifdef G4RUNPATHOPTION
|
||||
LDFLAGS += $(G4RUNPATHOPTION)$(G4LIBDIR)
|
||||
endif
|
||||
endif
|
||||
|
||||
G4TMPDIR := $(G4TMP)/$(G4SYSTEM)/$(G4TARGET)
|
||||
G4BINDIR := $(G4BIN)/$(G4SYSTEM)
|
||||
|
||||
@@ -129,6 +125,8 @@ ifdef G4EXLIB
|
||||
LDFLAGS += -L$(G4LIBDIR)
|
||||
ifdef SHAREDLIBS
|
||||
ifdef G4RUNPATHOPTION
|
||||
# for the example dependant directory, keep the path to the shared lib
|
||||
# in the executable.
|
||||
LDFLAGS += $(G4RUNPATHOPTION)$(G4LIBDIR)
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -21,7 +21,7 @@ ifeq ($(G4SYSTEM),Linux-g++)
|
||||
FCFLAGS += -fPIC
|
||||
CCFLAGS += -fPIC
|
||||
endif
|
||||
#future G4RUNPATHOPTION := -rpath
|
||||
G4RUNPATHOPTION := -Wl,-rpath
|
||||
FC := g77
|
||||
FCFLAGS += -fno-automatic -fno-backslash -fno-second-underscore
|
||||
FCLIBS := -lg2c -lnsl
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
#
|
||||
ifeq ($(G4SYSTEM),SUN-CC)
|
||||
CXX := CC
|
||||
# -Qoption ld -m
|
||||
ifdef G4OPTIMISE
|
||||
CXXFLAGS := -O
|
||||
else
|
||||
|
||||
@@ -12,7 +12,7 @@ ifeq ($(G4SYSTEM),WIN32-VC)
|
||||
CXXFLAGS += -Od -Zi -Fd$(G4LIBDIR)/lib$(name)
|
||||
endif
|
||||
endif
|
||||
CXXFLAGS += -MD -GX -Zm200 -nologo -DWIN32 -D_CONSOLE
|
||||
CXXFLAGS += -MD -GR -GX -Zm200 -nologo -DWIN32 -D_CONSOLE
|
||||
CXXFLAGS += -D_WIN32 -DOS
|
||||
CPPFLAGS += -DWIN32
|
||||
#
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: EXPO.cc,v 1.8 2000/03/17 08:56:10 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: TEST.cc,v 1.3 1999/12/15 14:48:40 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
#include <stdlib.h>
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: EXPO_Detector.icc,v 1.3 1999/12/15 14:48:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// See also G4/run/example/MyDetectorConstruction.cc.
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: EXPO_PhysicsList.hh,v 1.4 1999/12/15 14:48:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: EXPO_PhysicsList.icc,v 1.4 1999/12/15 14:48:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: EXPO_Primary.icc,v 1.3 1999/12/15 14:48:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// See also G4/run/example/EXPO_PrimaryGeneratorAction.cc.
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4o.h,v 1.3 1999/12/15 14:48:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
/* +---------------------- Copyright notice -------------------------------+ */
|
||||
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4oCommon.hh,v 1.3 1999/12/15 14:48:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
/*
|
||||
Included by G4o.h.
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4oCommon.icc,v 1.3 1999/12/15 14:48:41 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
/*
|
||||
Included by G4o.cc.
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4oDrawer.hh,v 1.3 1999/12/15 14:48:43 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
/* +---------------------- Copyright notice -------------------------------+ */
|
||||
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4oEXPO.h,v 1.3 1999/12/15 14:48:43 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
/* +---------------------- Copyright notice -------------------------------+ */
|
||||
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4oScene.hh,v 1.4 2000/03/17 08:58:32 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
/* +---------------------- Copyright notice -------------------------------+ */
|
||||
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4oState.hh,v 1.4 1999/12/15 14:48:43 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
#ifndef G4oState_h
|
||||
#define G4oState_h
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: WoG4o.h,v 1.3 1999/12/15 14:48:43 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
/* +---------------------- Copyright notice -------------------------------+ */
|
||||
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4o.cc,v 1.7 2000/03/17 08:57:45 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
/*
|
||||
#define DEBUG
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4oDrawer.cc,v 1.6 2000/03/17 08:57:46 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
/*
|
||||
From geant4/visualization/management/src/G4VisManager.cc.
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4oScene.cc,v 1.7 2000/06/09 10:00:58 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
/* +---------------------- Copyright notice -------------------------------+ */
|
||||
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4oState.cc,v 1.6 2000/03/17 08:57:48 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//#define DEBUG
|
||||
|
||||
|
||||
+4
-1
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.58 2000/11/18 10:56:11 stesting Exp $
|
||||
$Id: History,v 1.59 2001/01/25 11:58:05 stesting Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,9 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
25-Jan-2001 Steve O'Neale (examples-V03-00-00)
|
||||
- Updated all "small_N" test outputs
|
||||
|
||||
18th Nov 2000 Steve O'Neale (examples-V02-00-05)
|
||||
- Updated test 102,104,508 outputs
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// statement, and all its terms.
|
||||
//
|
||||
// $Id: Brachy.cc,v 1.4 2000/12/10 08:56:15 chauvie Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 - Brachytherapy example
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTel.cc,v 1.3 2000/12/06 16:53:12 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelAnalysisManager.hh,v 1.1 2000/12/06 16:53:12 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: GammaRayTelAnalysisManager.hh,v 1.2 2001/03/05 13:58:19 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
// CERN Geneva Switzerland
|
||||
@@ -97,3 +97,6 @@ private:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelAnalysisMessenger.hh,v 1.1 2000/12/06 16:53:13 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
// 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.
|
||||
//
|
||||
// $Id: GammaRayTelAnticoincidenceHit.hh,v 1.1 2001/03/05 13:58:20 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
// CERN Geneva Switzerland
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD group
|
||||
//
|
||||
// ------------ GammaRayTelAnticoincidenceHit ------
|
||||
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
|
||||
//
|
||||
// ************************************************************
|
||||
// This Class describe the hits on the Anticoincidence
|
||||
|
||||
#ifndef GammaRayTelAnticoincidenceHit_h
|
||||
#define GammaRayTelAnticoincidenceHit_h 1
|
||||
|
||||
#include "G4VHit.hh"
|
||||
#include "G4THitsCollection.hh"
|
||||
#include "G4Allocator.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class GammaRayTelAnticoincidenceHit : public G4VHit
|
||||
{
|
||||
public:
|
||||
|
||||
GammaRayTelAnticoincidenceHit();
|
||||
~GammaRayTelAnticoincidenceHit();
|
||||
GammaRayTelAnticoincidenceHit(const GammaRayTelAnticoincidenceHit&);
|
||||
const GammaRayTelAnticoincidenceHit& operator=(const
|
||||
GammaRayTelAnticoincidenceHit&);
|
||||
int operator==(const GammaRayTelAnticoincidenceHit&) const;
|
||||
|
||||
inline void* operator new(size_t);
|
||||
inline void operator delete(void*);
|
||||
|
||||
void Draw();
|
||||
void Print();
|
||||
|
||||
private:
|
||||
|
||||
G4double EdepACD; // Energy deposited on the ACD tile
|
||||
G4ThreeVector pos; // Position of the hit
|
||||
G4int ACDTileNumber; // Number of the ACD tile
|
||||
G4int IsACDPlane; // Type of the plane (0 top, 1 L-R, 2 F-R)
|
||||
|
||||
public:
|
||||
|
||||
inline void AddEnergy(G4double de) {EdepACD += de;};
|
||||
inline void SetACDTileNumber(G4int i) {ACDTileNumber = i;};
|
||||
inline void SetACDType(G4int i) {IsACDPlane = i;};
|
||||
inline void SetPos(G4ThreeVector xyz){ pos = xyz; }
|
||||
|
||||
inline G4double GetEdepACD() { return EdepACD; };
|
||||
inline G4int GetACDTileNumber() { return ACDTileNumber; };
|
||||
inline G4int GetACDType() {return IsACDPlane;};
|
||||
inline G4ThreeVector GetPos() { return pos; };
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
typedef G4THitsCollection<GammaRayTelAnticoincidenceHit> GammaRayTelAnticoincidenceHitsCollection;
|
||||
|
||||
extern G4Allocator<GammaRayTelAnticoincidenceHit> GammaRayTelAnticoincidenceHitAllocator;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void* GammaRayTelAnticoincidenceHit::operator new(size_t)
|
||||
{
|
||||
void* aHit;
|
||||
aHit = (void*) GammaRayTelAnticoincidenceHitAllocator.MallocSingle();
|
||||
return aHit;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void GammaRayTelAnticoincidenceHit::operator delete(void* aHit)
|
||||
{
|
||||
GammaRayTelAnticoincidenceHitAllocator.FreeSingle((GammaRayTelAnticoincidenceHit*) aHit);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
// 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.
|
||||
//
|
||||
// $Id: GammaRayTelAnticoincidenceSD.hh,v 1.1 2001/03/05 13:58:20 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
// CERN Geneva Switzerland
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD group
|
||||
//
|
||||
// ------------ GammaRayTelAnticoincidenceSD ------
|
||||
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
|
||||
//
|
||||
// ************************************************************
|
||||
|
||||
#ifndef GammaRayTelAnticoincidenceSD_h
|
||||
#define GammaRayTelAnticoincidenceSD_h 1
|
||||
|
||||
#include "G4VSensitiveDetector.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class GammaRayTelDetectorConstruction;
|
||||
class G4HCofThisEvent;
|
||||
class G4Step;
|
||||
#include "GammaRayTelAnticoincidenceHit.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class GammaRayTelAnticoincidenceSD : public G4VSensitiveDetector
|
||||
{
|
||||
public:
|
||||
|
||||
GammaRayTelAnticoincidenceSD(G4String, GammaRayTelDetectorConstruction* );
|
||||
~GammaRayTelAnticoincidenceSD();
|
||||
|
||||
void Initialize(G4HCofThisEvent*);
|
||||
G4bool ProcessHits(G4Step* astep,G4TouchableHistory* ROHist);
|
||||
void EndOfEvent(G4HCofThisEvent*);
|
||||
void clear();
|
||||
void DrawAll();
|
||||
void PrintAll();
|
||||
|
||||
private:
|
||||
|
||||
GammaRayTelAnticoincidenceHitsCollection* AnticoincidenceCollection;
|
||||
GammaRayTelDetectorConstruction* Detector;
|
||||
G4int *HitLateralID;
|
||||
G4int *HitTopID;
|
||||
G4int NbOfACDLateralTiles;
|
||||
G4int NbOfACDTopTiles;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
// 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.
|
||||
//
|
||||
// $Id: GammaRayTelCalorimeterHit.hh,v 1.1 2001/03/05 13:58:20 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
// CERN Geneva Switzerland
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD group
|
||||
//
|
||||
// ------------ GammaRayTelCalorimeterHit ------
|
||||
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
|
||||
//
|
||||
// ************************************************************
|
||||
// This Class describe the hits on the Calorimeter
|
||||
|
||||
#ifndef GammaRayTelCalorimeterHit_h
|
||||
#define GammaRayTelCalorimeterHit_h 1
|
||||
|
||||
#include "G4VHit.hh"
|
||||
#include "G4THitsCollection.hh"
|
||||
#include "G4Allocator.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class GammaRayTelCalorimeterHit : public G4VHit
|
||||
{
|
||||
public:
|
||||
|
||||
GammaRayTelCalorimeterHit();
|
||||
~GammaRayTelCalorimeterHit();
|
||||
GammaRayTelCalorimeterHit(const GammaRayTelCalorimeterHit&);
|
||||
const GammaRayTelCalorimeterHit& operator=(const
|
||||
GammaRayTelCalorimeterHit&);
|
||||
int operator==(const GammaRayTelCalorimeterHit&) const;
|
||||
|
||||
inline void* operator new(size_t);
|
||||
inline void operator delete(void*);
|
||||
|
||||
void Draw();
|
||||
void Print();
|
||||
|
||||
private:
|
||||
|
||||
G4double EdepCAL; // Energy deposited on the ACD tile
|
||||
G4ThreeVector pos; // Position of the hit
|
||||
G4int CALBarNumber; // Number of the CAL tile
|
||||
G4int CALPlaneNumber; // Number of the CAL plane
|
||||
G4int IsCALPlane; // Type of the plane (0 X, 1 Y)
|
||||
|
||||
public:
|
||||
|
||||
inline void AddEnergy(G4double de) {EdepCAL += de;};
|
||||
inline void SetCALBarNumber(G4int i) {CALBarNumber = i;};
|
||||
inline void SetCALPlaneNumber(G4int i) {CALPlaneNumber = i;};
|
||||
inline void SetCALType(G4int i) {IsCALPlane = i;};
|
||||
inline void SetPos(G4ThreeVector xyz){ pos = xyz; }
|
||||
|
||||
inline G4double GetEdepCAL() { return EdepCAL; };
|
||||
inline G4int GetCALBarNumber() { return CALBarNumber; };
|
||||
inline G4int GetCALPlaneNumber() { return CALPlaneNumber; };
|
||||
inline G4int GetCALType() {return IsCALPlane;};
|
||||
inline G4ThreeVector GetPos() { return pos; };
|
||||
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
typedef G4THitsCollection<GammaRayTelCalorimeterHit> GammaRayTelCalorimeterHitsCollection;
|
||||
|
||||
extern G4Allocator<GammaRayTelCalorimeterHit> GammaRayTelCalorimeterHitAllocator;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void* GammaRayTelCalorimeterHit::operator new(size_t)
|
||||
{
|
||||
void* aHit;
|
||||
aHit = (void*) GammaRayTelCalorimeterHitAllocator.MallocSingle();
|
||||
return aHit;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void GammaRayTelCalorimeterHit::operator delete(void* aHit)
|
||||
{
|
||||
GammaRayTelCalorimeterHitAllocator.FreeSingle((GammaRayTelCalorimeterHit*) aHit);
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
// 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.
|
||||
//
|
||||
// $Id: GammaRayTelCalorimeterSD.hh,v 1.1 2001/03/05 13:58:20 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
// CERN Geneva Switzerland
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD group
|
||||
//
|
||||
// ------------ GammaRayTelCalorimeterSD ------
|
||||
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
|
||||
//
|
||||
// ************************************************************
|
||||
|
||||
#ifndef GammaRayTelCalorimeterSD_h
|
||||
#define GammaRayTelCalorimeterSD_h 1
|
||||
|
||||
#include "G4VSensitiveDetector.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class GammaRayTelDetectorConstruction;
|
||||
class G4HCofThisEvent;
|
||||
class G4Step;
|
||||
#include "GammaRayTelCalorimeterHit.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class GammaRayTelCalorimeterSD : public G4VSensitiveDetector
|
||||
{
|
||||
public:
|
||||
|
||||
GammaRayTelCalorimeterSD(G4String, GammaRayTelDetectorConstruction* );
|
||||
~GammaRayTelCalorimeterSD();
|
||||
|
||||
void Initialize(G4HCofThisEvent*);
|
||||
G4bool ProcessHits(G4Step* astep,G4TouchableHistory* ROHist);
|
||||
void EndOfEvent(G4HCofThisEvent*);
|
||||
void clear();
|
||||
void DrawAll();
|
||||
void PrintAll();
|
||||
|
||||
private:
|
||||
|
||||
GammaRayTelCalorimeterHitsCollection* CalorimeterCollection;
|
||||
GammaRayTelDetectorConstruction* Detector;
|
||||
G4int (*ChitXID)[12];
|
||||
G4int (*ChitYID)[12];
|
||||
G4int NbOfCALLayers;
|
||||
G4int NbOfCALBars;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelDetectorConstruction.hh,v 1.4 2000/12/06 16:53:13 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: GammaRayTelDetectorConstruction.hh,v 1.5 2001/03/05 13:58:20 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
// CERN Geneva Switzerland
|
||||
@@ -31,8 +31,10 @@ class G4VPhysicalVolume;
|
||||
class G4Material;
|
||||
class G4UniformMagField;
|
||||
class GammaRayTelDetectorMessenger;
|
||||
class GammaRayTelPayloadSD;
|
||||
class GammaRayTelPayloadROGeometry;
|
||||
class GammaRayTelTrackerSD;
|
||||
class GammaRayTelAnticoincidenceSD;
|
||||
class GammaRayTelCalorimeterSD;
|
||||
class GammaRayTelTrackerROGeometry;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
@@ -108,7 +110,8 @@ public:
|
||||
G4int GetNbOfCALBars() {return NbOfCALBars;};
|
||||
|
||||
G4double GetACDThickness() {return ACDThickness;};
|
||||
|
||||
G4int GetNbOfACDTopTiles() {return NbOfACDTopTiles;};
|
||||
G4int GetNbOfACDLateralTiles() {return NbOfACDLateralTiles;};
|
||||
|
||||
private:
|
||||
|
||||
@@ -134,7 +137,11 @@ private:
|
||||
G4int NbOfCALBars;
|
||||
G4double CALSizeXY;
|
||||
G4double CALSizeZ;
|
||||
|
||||
|
||||
G4double CALBarX;
|
||||
G4double CALBarY;
|
||||
G4double CALBarZ;
|
||||
|
||||
G4double ACDThickness;
|
||||
G4double ACTSizeXY;
|
||||
G4double ACTSizeZ;
|
||||
@@ -147,6 +154,10 @@ private:
|
||||
G4double ACL2SizeY;
|
||||
G4double ACL2SizeZ;
|
||||
|
||||
|
||||
G4int NbOfACDLateralTiles;
|
||||
G4int NbOfACDTopTiles;
|
||||
|
||||
G4double TilesSeparation;
|
||||
G4double ACDTKRDistance;
|
||||
G4double CALTKRDistance;
|
||||
@@ -208,10 +219,20 @@ private:
|
||||
G4LogicalVolume* logicTKRDetectorY;
|
||||
G4VPhysicalVolume* physiTKRDetectorY;
|
||||
|
||||
G4Box* solidCALDetector; // Calorimeter PLANE
|
||||
G4LogicalVolume* logicCALDetector;
|
||||
G4Box* solidCALLayerX; // Calorimeter PLANE X
|
||||
G4LogicalVolume* logicCALLayerX;
|
||||
G4VPhysicalVolume* physiCALLayerX;
|
||||
|
||||
G4Box* solidCALLayerY; // Calorimeter PLANE Y
|
||||
G4LogicalVolume* logicCALLayerY;
|
||||
G4VPhysicalVolume* physiCALLayerY;
|
||||
|
||||
G4Box* solidCALDetectorX; // Calorimeter DETECTOR X
|
||||
G4LogicalVolume* logicCALDetectorX;
|
||||
G4VPhysicalVolume* physiCALDetectorX;
|
||||
|
||||
G4Box* solidCALDetectorY; // Calorimeter DETECTOR Y
|
||||
G4LogicalVolume* logicCALDetectorY;
|
||||
G4VPhysicalVolume* physiCALDetectorY;
|
||||
|
||||
G4Box* solidPlane; // Support Plane
|
||||
@@ -225,7 +246,10 @@ private:
|
||||
G4UniformMagField* magField; //pointer to the magnetic field
|
||||
|
||||
GammaRayTelDetectorMessenger* detectorMessenger; //pointer to the Messenger
|
||||
GammaRayTelPayloadSD* payloadSD; //pointer to the sensitive detector
|
||||
GammaRayTelTrackerSD* trackerSD; //pointer to the sensitive detector
|
||||
GammaRayTelCalorimeterSD* calorimeterSD; //pointer to the sensitive detector
|
||||
GammaRayTelAnticoincidenceSD* anticoincidenceSD; //pointer to the sensitive detector
|
||||
|
||||
|
||||
private:
|
||||
|
||||
@@ -241,7 +265,7 @@ inline void GammaRayTelDetectorConstruction::ComputePayloadParameters()
|
||||
// Compute derived parameters of the payload
|
||||
|
||||
TKRSupportThickness =TKRLayerDistance -2.*TKRSiliconThickness
|
||||
- TKRViewsDistance;
|
||||
- TKRViewsDistance - ConverterThickness;
|
||||
TKRSizeXY = NbOfTKRTiles*TKRSiliconTileXY + (NbOfTKRTiles+1)*TilesSeparation;
|
||||
TKRSizeZ = NbOfTKRLayers*TKRLayerDistance;
|
||||
|
||||
@@ -259,6 +283,10 @@ inline void GammaRayTelDetectorConstruction::ComputePayloadParameters()
|
||||
CALSizeXY = TKRSizeXY;
|
||||
CALSizeZ = 2.*NbOfCALLayers*CALBarThickness;
|
||||
|
||||
CALBarX = CALSizeXY;
|
||||
CALBarY = CALSizeXY/(NbOfCALBars);
|
||||
CALBarZ = CALBarThickness;
|
||||
|
||||
ACTSizeXY = TKRSizeXY + 2*ACDTKRDistance + 2*ACDThickness;
|
||||
ACTSizeZ = ACDThickness;
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelDetectorMessenger.hh,v 1.2 2000/11/15 20:27:38 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelDummySD.hh,v 1.1 2000/11/15 20:27:39 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
// CERN Geneva Switzerland
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelEventAction.hh,v 1.3 2000/12/06 16:53:13 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: GammaRayTelEventAction.hh,v 1.4 2001/03/05 13:58:20 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
// CERN Geneva Switzerland
|
||||
@@ -37,25 +37,28 @@
|
||||
|
||||
class GammaRayTelEventAction : public G4UserEventAction
|
||||
{
|
||||
public:
|
||||
public:
|
||||
|
||||
#ifdef G4ANALYSIS_USE
|
||||
GammaRayTelEventAction(GammaRayTelAnalysisManager* analysisMgr);
|
||||
#else
|
||||
GammaRayTelEventAction();
|
||||
#endif
|
||||
virtual ~GammaRayTelEventAction();
|
||||
|
||||
public:
|
||||
|
||||
public:
|
||||
virtual void BeginOfEventAction(const G4Event*);
|
||||
virtual void EndOfEventAction(const G4Event*);
|
||||
|
||||
void SetDrawFlag (G4String val) {drawFlag = val;};
|
||||
|
||||
private:
|
||||
G4int trackerCollID;
|
||||
G4String drawFlag;
|
||||
|
||||
private:
|
||||
G4int trackerCollID;
|
||||
G4int calorimeterCollID;
|
||||
G4int anticoincidenceCollID;
|
||||
G4String drawFlag;
|
||||
#ifdef G4ANALYSIS_USE
|
||||
GammaRayTelAnalysisManager* analysisManager;
|
||||
GammaRayTelAnalysisManager* analysisManager;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelPhysicsList.hh,v 1.2 2000/11/15 20:27:39 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
// CERN Geneva Switzerland
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelPrimaryGeneratorAction.hh,v 1.3 2000/12/06 16:53:13 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelPrimaryGeneratorMessenger.hh,v 1.2 2000/11/15 20:27:39 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelRunAction.hh,v 1.3 2000/12/06 16:53:13 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
// CERN Geneva Switzerland
|
||||
|
||||
+18
-18
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelPayloadHit.hh,v 1.2 2000/11/15 20:27:39 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: GammaRayTelTrackerHit.hh,v 1.1 2001/03/05 13:58:20 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
// CERN Geneva Switzerland
|
||||
@@ -14,14 +14,14 @@
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD group
|
||||
//
|
||||
// ------------ GammaRayTelPayloadHit ------
|
||||
// ------------ GammaRayTelTrackerHit ------
|
||||
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
|
||||
//
|
||||
// ************************************************************
|
||||
// This Class describe the hits on the Payload
|
||||
// This Class describe the hits on the Tracker
|
||||
|
||||
#ifndef GammaRayTelPayloadHit_h
|
||||
#define GammaRayTelPayloadHit_h 1
|
||||
#ifndef GammaRayTelTrackerHit_h
|
||||
#define GammaRayTelTrackerHit_h 1
|
||||
|
||||
#include "G4VHit.hh"
|
||||
#include "G4THitsCollection.hh"
|
||||
@@ -31,15 +31,15 @@
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class GammaRayTelPayloadHit : public G4VHit
|
||||
class GammaRayTelTrackerHit : public G4VHit
|
||||
{
|
||||
public:
|
||||
|
||||
GammaRayTelPayloadHit();
|
||||
~GammaRayTelPayloadHit();
|
||||
GammaRayTelPayloadHit(const GammaRayTelPayloadHit&);
|
||||
const GammaRayTelPayloadHit& operator=(const GammaRayTelPayloadHit&);
|
||||
int operator==(const GammaRayTelPayloadHit&) const;
|
||||
GammaRayTelTrackerHit();
|
||||
~GammaRayTelTrackerHit();
|
||||
GammaRayTelTrackerHit(const GammaRayTelTrackerHit&);
|
||||
const GammaRayTelTrackerHit& operator=(const GammaRayTelTrackerHit&);
|
||||
int operator==(const GammaRayTelTrackerHit&) const;
|
||||
|
||||
inline void* operator new(size_t);
|
||||
inline void operator delete(void*);
|
||||
@@ -73,24 +73,24 @@ public:
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
typedef G4THitsCollection<GammaRayTelPayloadHit> GammaRayTelPayloadHitsCollection;
|
||||
typedef G4THitsCollection<GammaRayTelTrackerHit> GammaRayTelTrackerHitsCollection;
|
||||
|
||||
extern G4Allocator<GammaRayTelPayloadHit> GammaRayTelPayloadHitAllocator;
|
||||
extern G4Allocator<GammaRayTelTrackerHit> GammaRayTelTrackerHitAllocator;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void* GammaRayTelPayloadHit::operator new(size_t)
|
||||
inline void* GammaRayTelTrackerHit::operator new(size_t)
|
||||
{
|
||||
void* aHit;
|
||||
aHit = (void*) GammaRayTelPayloadHitAllocator.MallocSingle();
|
||||
aHit = (void*) GammaRayTelTrackerHitAllocator.MallocSingle();
|
||||
return aHit;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
inline void GammaRayTelPayloadHit::operator delete(void* aHit)
|
||||
inline void GammaRayTelTrackerHit::operator delete(void* aHit)
|
||||
{
|
||||
GammaRayTelPayloadHitAllocator.FreeSingle((GammaRayTelPayloadHit*) aHit);
|
||||
GammaRayTelTrackerHitAllocator.FreeSingle((GammaRayTelTrackerHit*) aHit);
|
||||
}
|
||||
|
||||
#endif
|
||||
+10
-10
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelPayloadROGeometry.hh,v 1.1 2000/11/15 20:27:39 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: GammaRayTelTrackerROGeometry.hh,v 1.1 2001/03/05 13:58:21 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
// CERN Geneva Switzerland
|
||||
@@ -14,25 +14,25 @@
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD group
|
||||
//
|
||||
// ------------ GammaRayTelPayloadROGeometry ------
|
||||
// ------------ GammaRayTelTrackerROGeometry ------
|
||||
// by F.Longo, R.Giannitrapani & G.Santin (13 nov 2000)
|
||||
//
|
||||
// ************************************************************
|
||||
|
||||
#ifndef GammaRayTelPayloadROGeometry_h
|
||||
#define GammaRayTelPayloadROGeometry_h 1
|
||||
#ifndef GammaRayTelTrackerROGeometry_h
|
||||
#define GammaRayTelTrackerROGeometry_h 1
|
||||
|
||||
#include "G4VReadOutGeometry.hh"
|
||||
|
||||
class GammaRayTelDetectorConstruction;
|
||||
|
||||
class GammaRayTelPayloadROGeometry : public G4VReadOutGeometry
|
||||
class GammaRayTelTrackerROGeometry : public G4VReadOutGeometry
|
||||
{
|
||||
public:
|
||||
GammaRayTelPayloadROGeometry();
|
||||
GammaRayTelPayloadROGeometry(G4String);
|
||||
GammaRayTelPayloadROGeometry(G4String, GammaRayTelDetectorConstruction*);
|
||||
~GammaRayTelPayloadROGeometry();
|
||||
GammaRayTelTrackerROGeometry();
|
||||
GammaRayTelTrackerROGeometry(G4String);
|
||||
GammaRayTelTrackerROGeometry(G4String, GammaRayTelDetectorConstruction*);
|
||||
~GammaRayTelTrackerROGeometry();
|
||||
|
||||
private:
|
||||
G4VPhysicalVolume* Build();
|
||||
+12
-12
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelPayloadSD.hh,v 1.3 2000/11/24 16:56:59 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: GammaRayTelTrackerSD.hh,v 1.1 2001/03/05 13:58:21 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
// CERN Geneva Switzerland
|
||||
@@ -14,13 +14,13 @@
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD group
|
||||
//
|
||||
// ------------ GammaRayTelPayloadSD ------
|
||||
// ------------ GammaRayTelTrackerSD ------
|
||||
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
|
||||
//
|
||||
// ************************************************************
|
||||
|
||||
#ifndef GammaRayTelPayloadSD_h
|
||||
#define GammaRayTelPayloadSD_h 1
|
||||
#ifndef GammaRayTelTrackerSD_h
|
||||
#define GammaRayTelTrackerSD_h 1
|
||||
|
||||
#include "G4VSensitiveDetector.hh"
|
||||
#include "globals.hh"
|
||||
@@ -28,16 +28,16 @@
|
||||
class GammaRayTelDetectorConstruction;
|
||||
class G4HCofThisEvent;
|
||||
class G4Step;
|
||||
#include "GammaRayTelPayloadHit.hh"
|
||||
#include "GammaRayTelTrackerHit.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
class GammaRayTelPayloadSD : public G4VSensitiveDetector
|
||||
class GammaRayTelTrackerSD : public G4VSensitiveDetector
|
||||
{
|
||||
public:
|
||||
|
||||
GammaRayTelPayloadSD(G4String, GammaRayTelDetectorConstruction* );
|
||||
~GammaRayTelPayloadSD();
|
||||
GammaRayTelTrackerSD(G4String, GammaRayTelDetectorConstruction* );
|
||||
~GammaRayTelTrackerSD();
|
||||
|
||||
void Initialize(G4HCofThisEvent*);
|
||||
G4bool ProcessHits(G4Step* astep,G4TouchableHistory* ROHist);
|
||||
@@ -48,10 +48,10 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
GammaRayTelPayloadHitsCollection* PayloadCollection;
|
||||
GammaRayTelTrackerHitsCollection* TrackerCollection;
|
||||
GammaRayTelDetectorConstruction* Detector;
|
||||
G4int (*HitXID)[30];
|
||||
G4int (*HitYID)[30];
|
||||
G4int (*ThitXID)[30];
|
||||
G4int (*ThitYID)[30];
|
||||
G4int NbOfTKRLayers;
|
||||
G4int NbOfTKRStrips;
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelVisManager.hh,v 1.2 2000/11/15 20:27:39 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
// CERN Geneva Switzerland
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelAnalysisManager.cc,v 1.1 2000/12/06 16:53:13 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// CERN Geneva Switzerland
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelAnalysisMessenger.cc,v 1.1 2000/12/06 16:53:13 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
// 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.
|
||||
//
|
||||
// $Id: GammaRayTelAnticoincidenceHit.cc,v 1.1 2001/03/05 13:58:22 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// CERN Geneva Switzerland
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD group
|
||||
//
|
||||
// ------------ GammaRayTelAnticoincidenceHit ------
|
||||
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
|
||||
//
|
||||
// ************************************************************
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#include "GammaRayTelAnticoincidenceHit.hh"
|
||||
|
||||
G4Allocator<GammaRayTelAnticoincidenceHit> GammaRayTelAnticoincidenceHitAllocator;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
GammaRayTelAnticoincidenceHit::GammaRayTelAnticoincidenceHit()
|
||||
{
|
||||
EdepACD = 0.;
|
||||
ACDTileNumber = 0;
|
||||
IsACDPlane = 0;
|
||||
pos = 0.;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
GammaRayTelAnticoincidenceHit::~GammaRayTelAnticoincidenceHit()
|
||||
{;}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
GammaRayTelAnticoincidenceHit::GammaRayTelAnticoincidenceHit(const GammaRayTelAnticoincidenceHit& right)
|
||||
{
|
||||
EdepACD = right.EdepACD;
|
||||
ACDTileNumber = right.ACDTileNumber;
|
||||
IsACDPlane = right.IsACDPlane;
|
||||
pos = right.pos;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
const GammaRayTelAnticoincidenceHit& GammaRayTelAnticoincidenceHit::operator=(const GammaRayTelAnticoincidenceHit& right)
|
||||
{
|
||||
EdepACD = right.EdepACD;
|
||||
ACDTileNumber = right.ACDTileNumber;
|
||||
IsACDPlane = right.IsACDPlane;
|
||||
pos = right.pos;
|
||||
return *this;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
int GammaRayTelAnticoincidenceHit::operator==(const GammaRayTelAnticoincidenceHit& right) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelAnticoincidenceHit::Draw()
|
||||
{;}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelAnticoincidenceHit::Print()
|
||||
{;}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,217 @@
|
||||
// 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.
|
||||
//
|
||||
// $Id: GammaRayTelAnticoincidenceSD.cc,v 1.1 2001/03/05 13:58:22 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// CERN Geneva Switzerland
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD group
|
||||
//
|
||||
// ------------ GammaRayTelAnticoincidenceSD ------
|
||||
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
|
||||
//
|
||||
// ************************************************************
|
||||
|
||||
#include "GammaRayTelAnticoincidenceSD.hh"
|
||||
#include "GammaRayTelAnticoincidenceHit.hh"
|
||||
#include "GammaRayTelDetectorConstruction.hh"
|
||||
|
||||
#include "G4VPhysicalVolume.hh"
|
||||
#include "G4Step.hh"
|
||||
#include "G4VTouchable.hh"
|
||||
#include "G4TouchableHistory.hh"
|
||||
#include "G4SDManager.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
GammaRayTelAnticoincidenceSD::GammaRayTelAnticoincidenceSD(G4String name,
|
||||
GammaRayTelDetectorConstruction* det)
|
||||
:G4VSensitiveDetector(name),Detector(det)
|
||||
{
|
||||
NbOfACDLateralTiles = Detector->GetNbOfACDLateralTiles();
|
||||
NbOfACDTopTiles = Detector->GetNbOfACDTopTiles();
|
||||
|
||||
G4cout << NbOfACDLateralTiles << " LAT " << G4endl;
|
||||
G4cout << NbOfACDTopTiles << " TOP " << G4endl;
|
||||
|
||||
HitLateralID = new G4int[NbOfACDLateralTiles];
|
||||
HitTopID = new G4int[NbOfACDTopTiles];
|
||||
collectionName.insert("AnticoincidenceCollection");
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
GammaRayTelAnticoincidenceSD::~GammaRayTelAnticoincidenceSD()
|
||||
{
|
||||
delete [] HitLateralID;
|
||||
delete [] HitTopID;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelAnticoincidenceSD::Initialize(G4HCofThisEvent*HCE)
|
||||
{
|
||||
AnticoincidenceCollection = new GammaRayTelAnticoincidenceHitsCollection
|
||||
(SensitiveDetectorName,collectionName[0]);
|
||||
for (G4int i=0;i<NbOfACDLateralTiles;i++)
|
||||
{
|
||||
HitLateralID[i] = -1;
|
||||
};
|
||||
|
||||
for (G4int j=0;j<NbOfACDTopTiles;j++)
|
||||
{
|
||||
|
||||
HitTopID[j] = -1;
|
||||
};
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
G4bool GammaRayTelAnticoincidenceSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist)
|
||||
{
|
||||
|
||||
G4double edep = aStep->GetTotalEnergyDeposit();
|
||||
if ((edep/keV == 0.)) return false;
|
||||
|
||||
// This TouchableHistory is used to obtain the physical volume
|
||||
// of the hit
|
||||
G4TouchableHistory* theTouchable
|
||||
= (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable());
|
||||
|
||||
G4VPhysicalVolume* acd_tile = theTouchable->GetVolume();
|
||||
|
||||
G4int ACDTileNumber=acd_tile->GetCopyNo();
|
||||
G4String ACDTileName = acd_tile->GetName();
|
||||
|
||||
G4cout << ACDTileName << " " << edep/keV << G4endl;
|
||||
|
||||
if (ACDTileName == "ACT" )
|
||||
// The hit is on an top ACD tile (ACDType 0)
|
||||
{
|
||||
// This is a new hit
|
||||
if (HitTopID[ACDTileNumber]==-1)
|
||||
{
|
||||
GammaRayTelAnticoincidenceHit*
|
||||
AnticoincidenceHit = new GammaRayTelAnticoincidenceHit;
|
||||
AnticoincidenceHit->SetACDType(0);
|
||||
AnticoincidenceHit->AddEnergy(edep);
|
||||
AnticoincidenceHit->SetPos(aStep->GetPreStepPoint()->GetPosition());
|
||||
AnticoincidenceHit->SetACDTileNumber(ACDTileNumber);
|
||||
HitTopID[ACDTileNumber] =
|
||||
AnticoincidenceCollection->insert(AnticoincidenceHit) -1;
|
||||
}
|
||||
else // This is not new
|
||||
{
|
||||
(*AnticoincidenceCollection)
|
||||
[HitTopID[ACDTileNumber]]->AddEnergy(edep);
|
||||
}
|
||||
}
|
||||
|
||||
if (ACDTileName == "ACL1")
|
||||
// The hit is on an lateral (left-right) ACD tile (ACDType 1)
|
||||
{
|
||||
// This is a new hit
|
||||
if (HitLateralID[ACDTileNumber]==-1)
|
||||
{
|
||||
GammaRayTelAnticoincidenceHit*
|
||||
AnticoincidenceHit = new GammaRayTelAnticoincidenceHit;
|
||||
AnticoincidenceHit->SetACDType(1);
|
||||
AnticoincidenceHit->AddEnergy(edep);
|
||||
AnticoincidenceHit->SetPos(aStep->GetPreStepPoint()->GetPosition());
|
||||
AnticoincidenceHit->SetACDTileNumber(ACDTileNumber);
|
||||
HitLateralID[ACDTileNumber] =
|
||||
AnticoincidenceCollection->insert(AnticoincidenceHit) -1;
|
||||
}
|
||||
else // This is not new
|
||||
{
|
||||
(*AnticoincidenceCollection)
|
||||
[HitLateralID[ACDTileNumber]]->AddEnergy(edep);
|
||||
}
|
||||
}
|
||||
|
||||
if (ACDTileName == "ACL2")
|
||||
// The hit is on an lateral (rear - front) ACD tile (ACDType 2)
|
||||
{
|
||||
// This is a new hit
|
||||
if (HitLateralID[ACDTileNumber]==-1)
|
||||
{
|
||||
GammaRayTelAnticoincidenceHit*
|
||||
AnticoincidenceHit = new GammaRayTelAnticoincidenceHit;
|
||||
AnticoincidenceHit->SetACDType(2);
|
||||
AnticoincidenceHit->AddEnergy(edep);
|
||||
AnticoincidenceHit->SetPos(aStep->GetPreStepPoint()->GetPosition());
|
||||
AnticoincidenceHit->SetACDTileNumber(ACDTileNumber);
|
||||
HitLateralID[ACDTileNumber] =
|
||||
AnticoincidenceCollection->insert(AnticoincidenceHit) -1;
|
||||
}
|
||||
else // This is not new
|
||||
{
|
||||
(*AnticoincidenceCollection)
|
||||
[HitLateralID[ACDTileNumber]]->AddEnergy(edep);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelAnticoincidenceSD::EndOfEvent(G4HCofThisEvent* HCE)
|
||||
{
|
||||
static G4int HCID = -1;
|
||||
if(HCID<0)
|
||||
{
|
||||
HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]);
|
||||
}
|
||||
HCE->AddHitsCollection(HCID,AnticoincidenceCollection);
|
||||
|
||||
for (G4int i=0;i<NbOfACDLateralTiles;i++)
|
||||
{
|
||||
HitLateralID[i] = -1;
|
||||
};
|
||||
|
||||
for (G4int j=0;j<NbOfACDTopTiles;j++)
|
||||
{
|
||||
|
||||
HitTopID[j] = -1;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelAnticoincidenceSD::clear()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelAnticoincidenceSD::DrawAll()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelAnticoincidenceSD::PrintAll()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
// 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.
|
||||
//
|
||||
// $Id: GammaRayTelCalorimeterHit.cc,v 1.1 2001/03/05 13:58:22 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// CERN Geneva Switzerland
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD group
|
||||
//
|
||||
// ------------ GammaRayTelCalorimeterHit ------
|
||||
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
|
||||
//
|
||||
// ************************************************************
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#include "GammaRayTelCalorimeterHit.hh"
|
||||
|
||||
G4Allocator<GammaRayTelCalorimeterHit> GammaRayTelCalorimeterHitAllocator;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
GammaRayTelCalorimeterHit::GammaRayTelCalorimeterHit()
|
||||
{
|
||||
EdepCAL = 0.;
|
||||
CALBarNumber = 0;
|
||||
CALPlaneNumber = 0;
|
||||
IsCALPlane = 0;
|
||||
pos = 0.;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
GammaRayTelCalorimeterHit::~GammaRayTelCalorimeterHit()
|
||||
{;}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
GammaRayTelCalorimeterHit::GammaRayTelCalorimeterHit(const GammaRayTelCalorimeterHit& right)
|
||||
{
|
||||
EdepCAL = right.EdepCAL;
|
||||
CALBarNumber = right.CALBarNumber;
|
||||
CALPlaneNumber = right.CALPlaneNumber;
|
||||
IsCALPlane = right.IsCALPlane;
|
||||
pos = right.pos;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
const GammaRayTelCalorimeterHit& GammaRayTelCalorimeterHit::operator=(const GammaRayTelCalorimeterHit& right)
|
||||
{
|
||||
EdepCAL = right.EdepCAL;
|
||||
CALBarNumber = right.CALBarNumber;
|
||||
CALPlaneNumber = right.CALPlaneNumber;
|
||||
IsCALPlane = right.IsCALPlane;
|
||||
pos = right.pos;
|
||||
return *this;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
int GammaRayTelCalorimeterHit::operator==(const GammaRayTelCalorimeterHit& right) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelCalorimeterHit::Draw()
|
||||
{;}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelCalorimeterHit::Print()
|
||||
{;}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,194 @@
|
||||
// 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.
|
||||
//
|
||||
// $Id: GammaRayTelCalorimeterSD.cc,v 1.1 2001/03/05 13:58:23 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// CERN Geneva Switzerland
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD group
|
||||
//
|
||||
// ------------ GammaRayTelCalorimeterSD ------
|
||||
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
|
||||
//
|
||||
// ************************************************************
|
||||
|
||||
#include "GammaRayTelCalorimeterSD.hh"
|
||||
#include "GammaRayTelCalorimeterHit.hh"
|
||||
#include "GammaRayTelDetectorConstruction.hh"
|
||||
|
||||
#include "G4VPhysicalVolume.hh"
|
||||
#include "G4Step.hh"
|
||||
#include "G4VTouchable.hh"
|
||||
#include "G4TouchableHistory.hh"
|
||||
#include "G4SDManager.hh"
|
||||
#include "G4ios.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
GammaRayTelCalorimeterSD::GammaRayTelCalorimeterSD(G4String name,
|
||||
GammaRayTelDetectorConstruction* det)
|
||||
:G4VSensitiveDetector(name),Detector(det)
|
||||
{
|
||||
NbOfCALBars = Detector->GetNbOfCALBars();
|
||||
NbOfCALLayers = Detector->GetNbOfCALLayers();
|
||||
G4cout << NbOfCALBars << " bars " << G4endl;
|
||||
G4cout << NbOfCALLayers << " layers " << G4endl;
|
||||
|
||||
ChitXID = new G4int[NbOfCALBars][12];
|
||||
ChitYID = new G4int[NbOfCALBars][12];
|
||||
collectionName.insert("CalorimeterCollection");
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
GammaRayTelCalorimeterSD::~GammaRayTelCalorimeterSD()
|
||||
{
|
||||
delete [] ChitXID;
|
||||
delete [] ChitYID;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelCalorimeterSD::Initialize(G4HCofThisEvent*HCE)
|
||||
{
|
||||
CalorimeterCollection = new GammaRayTelCalorimeterHitsCollection
|
||||
(SensitiveDetectorName,collectionName[0]);
|
||||
for (G4int i=0;i<NbOfCALBars;i++)
|
||||
for (G4int j=0;j<NbOfCALLayers;j++)
|
||||
{
|
||||
ChitXID[i][j] = -1;
|
||||
ChitYID[i][j] = -1;
|
||||
};
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
G4bool GammaRayTelCalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist)
|
||||
{
|
||||
|
||||
G4double edep = aStep->GetTotalEnergyDeposit();
|
||||
if ((edep/keV == 0.)) return false;
|
||||
|
||||
// This TouchableHistory is used to obtain the physical volume
|
||||
// of the hit
|
||||
G4TouchableHistory* theTouchable
|
||||
= (G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable());
|
||||
|
||||
G4VPhysicalVolume* cal_bar = theTouchable->GetVolume();
|
||||
G4VPhysicalVolume* cal_plane = cal_bar->GetMother();
|
||||
|
||||
G4int CALBarNumber=cal_bar->GetCopyNo();
|
||||
G4String CALBarName = cal_bar->GetName();
|
||||
|
||||
G4int PlaneNumber = 0;
|
||||
PlaneNumber=cal_plane->GetCopyNo();
|
||||
G4String PlaneName = cal_plane->GetName();
|
||||
|
||||
if (PlaneName == "CALLayerX" )
|
||||
|
||||
// The hit is on an X CsI plane
|
||||
|
||||
{
|
||||
// This is a new hit
|
||||
if (ChitXID[CALBarNumber][PlaneNumber]==-1)
|
||||
{
|
||||
GammaRayTelCalorimeterHit* CalorimeterHit = new GammaRayTelCalorimeterHit;
|
||||
CalorimeterHit->SetCALType(1);
|
||||
CalorimeterHit->AddEnergy(edep);
|
||||
CalorimeterHit->SetPos(aStep->GetPreStepPoint()->GetPosition());
|
||||
CalorimeterHit->SetCALPlaneNumber(PlaneNumber);
|
||||
CalorimeterHit->SetCALBarNumber(CALBarNumber);
|
||||
ChitXID[CALBarNumber][PlaneNumber] =
|
||||
CalorimeterCollection->insert(CalorimeterHit) -1;
|
||||
}
|
||||
else // This is not new
|
||||
{
|
||||
(*CalorimeterCollection)
|
||||
[ChitXID[CALBarNumber][PlaneNumber]]->AddEnergy(edep);
|
||||
}
|
||||
}
|
||||
|
||||
if (PlaneName == "CALLayerY")
|
||||
// The hit is on an Y CsI plane
|
||||
{
|
||||
// This is a new hit
|
||||
if (ChitYID[CALBarNumber][PlaneNumber]==-1)
|
||||
{
|
||||
GammaRayTelCalorimeterHit* CalorimeterHit
|
||||
= new GammaRayTelCalorimeterHit;
|
||||
CalorimeterHit->SetCALType(0);
|
||||
CalorimeterHit->AddEnergy(edep);
|
||||
CalorimeterHit->SetPos(aStep->GetPreStepPoint()->GetPosition());
|
||||
CalorimeterHit->SetCALPlaneNumber(PlaneNumber);
|
||||
CalorimeterHit->SetCALBarNumber(CALBarNumber);
|
||||
ChitYID[CALBarNumber][PlaneNumber] =
|
||||
CalorimeterCollection->insert(CalorimeterHit)-1;
|
||||
}
|
||||
else // This is not new
|
||||
{
|
||||
(*CalorimeterCollection)
|
||||
[ChitYID[CALBarNumber][PlaneNumber]]->AddEnergy(edep);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
void GammaRayTelCalorimeterSD::EndOfEvent(G4HCofThisEvent* HCE)
|
||||
{
|
||||
static G4int HCID = -1;
|
||||
if(HCID<0)
|
||||
{
|
||||
HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]);
|
||||
}
|
||||
HCE->AddHitsCollection(HCID,CalorimeterCollection);
|
||||
|
||||
|
||||
for (G4int i=0;i<NbOfCALBars;i++)
|
||||
for (G4int j=0;j<NbOfCALLayers;j++)
|
||||
{
|
||||
ChitXID[i][j] = -1;
|
||||
ChitYID[i][j] = -1;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelCalorimeterSD::clear()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelCalorimeterSD::DrawAll()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelCalorimeterSD::PrintAll()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelDetectorConstruction.cc,v 1.4 2000/12/06 16:53:13 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: GammaRayTelDetectorConstruction.cc,v 1.5 2001/03/05 13:58:23 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// CERN Geneva Switzerland
|
||||
@@ -24,8 +24,11 @@
|
||||
#include "GammaRayTelDetectorConstruction.hh"
|
||||
#include "GammaRayTelDetectorMessenger.hh"
|
||||
|
||||
#include "GammaRayTelPayloadSD.hh"
|
||||
#include "GammaRayTelPayloadROGeometry.hh"
|
||||
#include "GammaRayTelTrackerSD.hh"
|
||||
#include "GammaRayTelTrackerROGeometry.hh"
|
||||
|
||||
#include "GammaRayTelAnticoincidenceSD.hh"
|
||||
#include "GammaRayTelCalorimeterSD.hh"
|
||||
|
||||
#include "G4Material.hh"
|
||||
#include "G4Box.hh"
|
||||
@@ -57,8 +60,10 @@ GammaRayTelDetectorConstruction::GammaRayTelDetectorConstruction()
|
||||
solidTKRDetectorX(0),logicTKRDetectorX(0),
|
||||
solidTKRDetectorY(0),logicTKRDetectorY(0),
|
||||
physiTKRDetectorX(0),physiTKRDetectorY(0),
|
||||
solidCALDetector(0),logicCALDetector(0),
|
||||
physiCALDetectorX(0),physiCALDetectorY(0),
|
||||
solidCALDetectorX(0),logicCALDetectorX(0),physiCALDetectorX(0),
|
||||
solidCALDetectorY(0),logicCALDetectorY(0),physiCALDetectorY(0),
|
||||
solidCALLayerX(0),logicCALLayerX(0),physiCALLayerX(0),
|
||||
solidCALLayerY(0),logicCALLayerY(0),physiCALLayerY(0),
|
||||
solidPlane(0),logicPlane(0),physiPlane(0)
|
||||
|
||||
{
|
||||
@@ -77,6 +82,8 @@ GammaRayTelDetectorConstruction::GammaRayTelDetectorConstruction()
|
||||
NbOfCALBars = 12;
|
||||
NbOfCALLayers = 5;
|
||||
ACDThickness = 1.*cm;
|
||||
NbOfACDTopTiles = 1;
|
||||
NbOfACDLateralTiles = 2;
|
||||
|
||||
TilesSeparation = 100.*micrometer;
|
||||
ACDTKRDistance = 5.*cm;
|
||||
@@ -246,427 +253,514 @@ G4VPhysicalVolume* GammaRayTelDetectorConstruction::ConstructPayload()
|
||||
solidTKRDetectorX=0;logicTKRDetectorX=0;
|
||||
solidTKRDetectorY=0;logicTKRDetectorY=0;
|
||||
physiTKRDetectorX=0;physiTKRDetectorY=0;
|
||||
solidCALDetector=0;logicCALDetector=0;
|
||||
physiCALDetectorX=0;physiCALDetectorY=0;
|
||||
solidCALDetectorX=0;logicCALDetectorX=0;physiCALDetectorX=0;
|
||||
solidCALDetectorY=0;logicCALDetectorY=0;physiCALDetectorY=0;
|
||||
solidPlane=0;logicPlane=0;physiPlane=0;
|
||||
|
||||
// if (PayloadSizeZ > 0.)
|
||||
// {
|
||||
|
||||
//
|
||||
// Payload
|
||||
//
|
||||
|
||||
solidPayload = new G4Box("Payload",
|
||||
PayloadSizeXY/2,
|
||||
PayloadSizeXY/2,
|
||||
PayloadSizeZ/2);
|
||||
|
||||
logicPayload = new G4LogicalVolume(solidPayload,
|
||||
defaultMaterial,
|
||||
"Payload");
|
||||
|
||||
physiPayload = new G4PVPlacement(0,
|
||||
G4ThreeVector(),
|
||||
"Payload",
|
||||
logicPayload,
|
||||
physiWorld,
|
||||
false,
|
||||
0);
|
||||
//
|
||||
// Calorimeter (CAL)
|
||||
//
|
||||
|
||||
solidCAL = new G4Box("CAL",
|
||||
CALSizeXY/2,CALSizeXY/2,CALSizeZ/2);
|
||||
|
||||
logicCAL = new G4LogicalVolume(solidCAL,
|
||||
defaultMaterial,
|
||||
"CAL");
|
||||
physiCAL = new G4PVPlacement(0,
|
||||
G4ThreeVector(0,0,
|
||||
-PayloadSizeZ/2+CALSizeZ/2),
|
||||
"CAL",
|
||||
logicCAL,
|
||||
physiPayload,
|
||||
false,
|
||||
0);
|
||||
//
|
||||
// Tracker (TKR)
|
||||
//
|
||||
// Payload
|
||||
//
|
||||
|
||||
solidPayload = new G4Box("Payload",
|
||||
PayloadSizeXY/2,
|
||||
PayloadSizeXY/2,
|
||||
PayloadSizeZ/2);
|
||||
|
||||
logicPayload = new G4LogicalVolume(solidPayload,
|
||||
defaultMaterial,
|
||||
"Payload");
|
||||
|
||||
physiPayload = new G4PVPlacement(0,
|
||||
G4ThreeVector(),
|
||||
"Payload",
|
||||
logicPayload,
|
||||
physiWorld,
|
||||
false,
|
||||
0);
|
||||
//
|
||||
// Calorimeter (CAL)
|
||||
//
|
||||
|
||||
solidCAL = new G4Box("CAL",
|
||||
CALSizeXY/2,CALSizeXY/2,CALSizeZ/2);
|
||||
|
||||
logicCAL = new G4LogicalVolume(solidCAL,
|
||||
defaultMaterial,
|
||||
"CAL");
|
||||
physiCAL = new G4PVPlacement(0,
|
||||
G4ThreeVector(0,0,
|
||||
-PayloadSizeZ/2+CALSizeZ/2),
|
||||
"CAL",
|
||||
logicCAL,
|
||||
physiPayload,
|
||||
false,
|
||||
0);
|
||||
//
|
||||
// Tracker (TKR)
|
||||
//
|
||||
|
||||
solidTKR = new G4Box("TKR",
|
||||
|
||||
solidTKR = new G4Box("TKR",
|
||||
TKRSizeXY/2,TKRSizeXY/2,TKRSizeZ/2);
|
||||
|
||||
logicTKR = new G4LogicalVolume(solidTKR,
|
||||
defaultMaterial,
|
||||
"TKR");
|
||||
physiTKR = new G4PVPlacement(0,
|
||||
G4ThreeVector(0,0,
|
||||
-PayloadSizeZ/2+CALSizeZ+
|
||||
CALTKRDistance+TKRSizeZ/2),
|
||||
"TKR",
|
||||
logicTKR,
|
||||
physiPayload,
|
||||
false,
|
||||
0);
|
||||
|
||||
|
||||
//
|
||||
// Anticoincidence Top (ACT)
|
||||
//
|
||||
|
||||
solidACT = new G4Box("ACT",
|
||||
ACTSizeXY/2,ACTSizeXY/2,ACTSizeZ/2);
|
||||
|
||||
logicACT = new G4LogicalVolume(solidACT,ACDMaterial,"ACT");
|
||||
|
||||
physiACT = new G4PVPlacement(0,
|
||||
G4ThreeVector(0,0,
|
||||
-PayloadSizeZ/2+CALSizeZ+
|
||||
CALTKRDistance+TKRSizeZ+
|
||||
ACDTKRDistance+ACTSizeZ/2),
|
||||
"ACT",
|
||||
logicACT,
|
||||
physiPayload,
|
||||
false,
|
||||
0);
|
||||
|
||||
//
|
||||
// Anticoincidence Lateral Side (ACL)
|
||||
//
|
||||
|
||||
solidACL1 = new G4Box("ACL1",
|
||||
ACL1SizeX/2,ACL1SizeY/2,ACL1SizeZ/2);
|
||||
|
||||
logicACL1 = new G4LogicalVolume(solidACL1,ACDMaterial,"ACL");
|
||||
|
||||
physiACL1 = new G4PVPlacement(0,
|
||||
G4ThreeVector(-PayloadSizeXY/2+ACL1SizeX/2,
|
||||
-PayloadSizeXY/2+ACL1SizeY/2,
|
||||
-PayloadSizeZ/2+ACL1SizeZ/2),
|
||||
"ACL1",
|
||||
logicACL1,
|
||||
physiPayload,
|
||||
false,
|
||||
0);
|
||||
|
||||
physiACL1 = new G4PVPlacement(0,
|
||||
G4ThreeVector(PayloadSizeXY/2-ACL1SizeX/2,
|
||||
PayloadSizeXY/2-ACL1SizeY/2,
|
||||
-PayloadSizeZ/2+ACL1SizeZ/2),
|
||||
"ACL1",
|
||||
logicACL1,
|
||||
physiPayload,
|
||||
false,
|
||||
1);
|
||||
|
||||
solidACL2 = new G4Box("ACL2",
|
||||
ACL2SizeX/2,ACL2SizeY/2,ACL2SizeZ/2);
|
||||
|
||||
logicACL2 = new G4LogicalVolume(solidACL2,
|
||||
ACDMaterial,
|
||||
"ACL2");
|
||||
|
||||
|
||||
physiACL2 = new G4PVPlacement(0,
|
||||
G4ThreeVector(-PayloadSizeXY/2+ACL2SizeX/2,
|
||||
PayloadSizeXY/2-ACL2SizeY/2,
|
||||
-PayloadSizeZ/2+ACL2SizeZ/2),
|
||||
"ACL2",
|
||||
logicACL2,
|
||||
physiPayload,
|
||||
false,
|
||||
0);
|
||||
|
||||
physiACL2 = new G4PVPlacement(0,
|
||||
G4ThreeVector(PayloadSizeXY/2-ACL2SizeX/2,
|
||||
-PayloadSizeXY/2+ACL2SizeY/2,
|
||||
-PayloadSizeZ/2+ACL2SizeZ/2),
|
||||
"ACL2",
|
||||
logicACL2,
|
||||
physiPayload,
|
||||
false,
|
||||
1);
|
||||
|
||||
|
||||
// Tracker Structure (Plane + Converter + TKRDetectorX + TKRDetectorY)
|
||||
|
||||
solidPlane = new G4Box("Plane",
|
||||
TKRSizeXY/2,TKRSizeXY/2,TKRSupportThickness/2);
|
||||
|
||||
logicPlane = new G4LogicalVolume(solidPlane,
|
||||
defaultMaterial,
|
||||
"Plane");
|
||||
|
||||
solidTKRDetectorY = new G4Box
|
||||
("TKRDetectorY",TKRSizeXY/2,TKRSizeXY/2,TKRSiliconThickness/2);
|
||||
|
||||
logicTKRDetectorY = new G4LogicalVolume(solidTKRDetectorY,
|
||||
TKRMaterial,
|
||||
"TKRDetector Y");
|
||||
|
||||
|
||||
solidTKRDetectorX = new G4Box
|
||||
("TKRDetectorX",TKRSizeXY/2,TKRSizeXY/2,TKRSiliconThickness/2);
|
||||
|
||||
logicTKRDetectorX = new G4LogicalVolume(solidTKRDetectorX,
|
||||
TKRMaterial,
|
||||
"TKRDetector X");
|
||||
|
||||
|
||||
solidConverter = new G4Box
|
||||
("Converter",TKRSizeXY/2,TKRSizeXY/2,ConverterThickness/2);
|
||||
|
||||
logicConverter = new G4LogicalVolume(solidConverter,
|
||||
ConverterMaterial,
|
||||
"Converter");
|
||||
|
||||
G4int i=0;
|
||||
|
||||
for (i = 0; i < NbOfTKRLayers; i++)
|
||||
{
|
||||
|
||||
physiTKRDetectorY =
|
||||
new G4PVPlacement(0,G4ThreeVector(0.,0.,-TKRSizeZ/2
|
||||
+TKRSiliconThickness/2
|
||||
+(i)*TKRLayerDistance),
|
||||
"TKRDetectorY",
|
||||
logicTKRDetectorY,
|
||||
physiTKR,
|
||||
false,
|
||||
i);
|
||||
|
||||
physiTKRDetectorX =
|
||||
new G4PVPlacement(0,G4ThreeVector(0.,0.,
|
||||
-TKRSizeZ/2+
|
||||
TKRSiliconThickness/2 +
|
||||
TKRViewsDistance+
|
||||
TKRSiliconThickness+
|
||||
(i)*TKRLayerDistance),
|
||||
"TKRDetectorX",
|
||||
logicTKRDetectorX,
|
||||
physiTKR,
|
||||
false,
|
||||
i);
|
||||
|
||||
|
||||
physiConverter =
|
||||
new G4PVPlacement(0,G4ThreeVector(0.,0.,
|
||||
-TKRSizeZ/2+
|
||||
2*TKRSiliconThickness +
|
||||
TKRViewsDistance+
|
||||
ConverterThickness/2+
|
||||
(i)*TKRLayerDistance),
|
||||
"Converter",
|
||||
logicConverter,
|
||||
physiTKR,
|
||||
false,
|
||||
i);
|
||||
|
||||
logicTKR = new G4LogicalVolume(solidTKR,
|
||||
defaultMaterial,
|
||||
"TKR");
|
||||
physiTKR = new G4PVPlacement(0,
|
||||
G4ThreeVector(0,0,
|
||||
-PayloadSizeZ/2+CALSizeZ+
|
||||
CALTKRDistance+TKRSizeZ/2),
|
||||
"TKR",
|
||||
logicTKR,
|
||||
physiPayload,
|
||||
false,
|
||||
0);
|
||||
|
||||
|
||||
//
|
||||
// Anticoincidence Top (ACT)
|
||||
//
|
||||
|
||||
solidACT = new G4Box("ACT",
|
||||
ACTSizeXY/2,ACTSizeXY/2,ACTSizeZ/2);
|
||||
|
||||
logicACT = new G4LogicalVolume(solidACT,ACDMaterial,"ACT");
|
||||
|
||||
physiACT = new G4PVPlacement(0,
|
||||
G4ThreeVector(0,0,
|
||||
-PayloadSizeZ/2+CALSizeZ+
|
||||
CALTKRDistance+TKRSizeZ+
|
||||
ACDTKRDistance+ACTSizeZ/2),
|
||||
"ACT",
|
||||
logicACT,
|
||||
physiPayload,
|
||||
false,
|
||||
0);
|
||||
|
||||
//
|
||||
// Anticoincidence Lateral Side (ACL)
|
||||
//
|
||||
|
||||
solidACL1 = new G4Box("ACL1",
|
||||
ACL1SizeX/2,ACL1SizeY/2,ACL1SizeZ/2);
|
||||
|
||||
logicACL1 = new G4LogicalVolume(solidACL1,ACDMaterial,"ACL");
|
||||
|
||||
physiACL1 = new G4PVPlacement(0,
|
||||
G4ThreeVector(-PayloadSizeXY/2+ACL1SizeX/2,
|
||||
-PayloadSizeXY/2+ACL1SizeY/2,
|
||||
-PayloadSizeZ/2+ACL1SizeZ/2),
|
||||
"ACL1",
|
||||
logicACL1,
|
||||
physiPayload,
|
||||
false,
|
||||
0);
|
||||
|
||||
physiACL1 = new G4PVPlacement(0,
|
||||
G4ThreeVector(PayloadSizeXY/2-ACL1SizeX/2,
|
||||
PayloadSizeXY/2-ACL1SizeY/2,
|
||||
-PayloadSizeZ/2+ACL1SizeZ/2),
|
||||
"ACL1",
|
||||
logicACL1,
|
||||
physiPayload,
|
||||
false,
|
||||
1);
|
||||
|
||||
solidACL2 = new G4Box("ACL2",
|
||||
ACL2SizeX/2,ACL2SizeY/2,ACL2SizeZ/2);
|
||||
|
||||
logicACL2 = new G4LogicalVolume(solidACL2,
|
||||
ACDMaterial,
|
||||
"ACL2");
|
||||
|
||||
|
||||
physiACL2 = new G4PVPlacement(0,
|
||||
G4ThreeVector(-PayloadSizeXY/2+ACL2SizeX/2,
|
||||
PayloadSizeXY/2-ACL2SizeY/2,
|
||||
-PayloadSizeZ/2+ACL2SizeZ/2),
|
||||
"ACL2",
|
||||
logicACL2,
|
||||
physiPayload,
|
||||
false,
|
||||
0);
|
||||
|
||||
physiACL2 = new G4PVPlacement(0,
|
||||
G4ThreeVector(PayloadSizeXY/2-ACL2SizeX/2,
|
||||
-PayloadSizeXY/2+ACL2SizeY/2,
|
||||
-PayloadSizeZ/2+ACL2SizeZ/2),
|
||||
"ACL2",
|
||||
logicACL2,
|
||||
physiPayload,
|
||||
false,
|
||||
1);
|
||||
physiPlane =
|
||||
new G4PVPlacement(0,G4ThreeVector(0.,0.,
|
||||
-TKRSizeZ/2+
|
||||
2*TKRSiliconThickness +
|
||||
TKRViewsDistance+
|
||||
ConverterThickness+
|
||||
TKRSupportThickness/2),
|
||||
"Plane",
|
||||
logicPlane,
|
||||
physiTKR,
|
||||
false,
|
||||
i);
|
||||
|
||||
|
||||
// Tracker Structure (Plane + Converter + TKRDetectorX + TKRDetectorY)
|
||||
|
||||
solidPlane = new G4Box("Plane",
|
||||
TKRSizeXY/2,TKRSizeXY/2,TKRSupportThickness/2);
|
||||
|
||||
logicPlane = new G4LogicalVolume(solidPlane,
|
||||
defaultMaterial,
|
||||
"Plane");
|
||||
|
||||
solidTKRDetectorY = new G4Box
|
||||
("TKRDetectorY",TKRSizeXY/2,TKRSizeXY/2,TKRSiliconThickness/2);
|
||||
|
||||
logicTKRDetectorY = new G4LogicalVolume(solidTKRDetectorY,
|
||||
TKRMaterial,
|
||||
"TKRDetector Y");
|
||||
|
||||
|
||||
solidTKRDetectorX = new G4Box
|
||||
("TKRDetectorX",TKRSizeXY/2,TKRSizeXY/2,TKRSiliconThickness/2);
|
||||
|
||||
logicTKRDetectorX = new G4LogicalVolume(solidTKRDetectorX,
|
||||
TKRMaterial,
|
||||
"TKRDetector X");
|
||||
|
||||
|
||||
solidConverter = new G4Box
|
||||
("Converter",TKRSizeXY/2,TKRSizeXY/2,ConverterThickness/2);
|
||||
|
||||
logicConverter = new G4LogicalVolume(solidConverter,
|
||||
ConverterMaterial,
|
||||
"Converter");
|
||||
|
||||
G4int i=0;
|
||||
|
||||
for (i = 0; i < NbOfTKRLayers; i++)
|
||||
}
|
||||
|
||||
|
||||
|
||||
G4VSolid * solidTKRActiveTileX = new
|
||||
G4Box("Active Tile X", TKRActiveTileXY/2,
|
||||
TKRActiveTileXY/2,TKRActiveTileZ/2);
|
||||
|
||||
|
||||
G4VSolid * solidTKRActiveTileY = new
|
||||
G4Box("Active Tile Y", TKRActiveTileXY/2,
|
||||
TKRActiveTileXY/2,TKRActiveTileZ/2);
|
||||
|
||||
|
||||
G4LogicalVolume* logicTKRActiveTileX =
|
||||
new G4LogicalVolume(solidTKRActiveTileX, TKRMaterial,
|
||||
"Active Tile X",0,0,0);
|
||||
|
||||
|
||||
G4LogicalVolume* logicTKRActiveTileY =
|
||||
new G4LogicalVolume(solidTKRActiveTileY, TKRMaterial,
|
||||
"Active Tile Y",0,0,0);
|
||||
|
||||
|
||||
G4int j=0;
|
||||
G4int k=0;
|
||||
|
||||
G4VPhysicalVolume* physiTKRActiveTileX = 0;
|
||||
G4VPhysicalVolume* physiTKRActiveTileY = 0;
|
||||
|
||||
G4double x=0.;
|
||||
G4double y=0.;
|
||||
G4double z=0.;
|
||||
|
||||
for (i=0;i< NbOfTKRTiles; i++)
|
||||
{
|
||||
for (j=0;j< NbOfTKRTiles; j++)
|
||||
{
|
||||
k = i*NbOfTKRTiles + j;
|
||||
|
||||
physiTKRDetectorY =
|
||||
new G4PVPlacement(0,G4ThreeVector(0.,0.,-TKRSizeZ/2
|
||||
+TKRSiliconThickness/2
|
||||
+(i)*TKRLayerDistance),
|
||||
"TKRDetectorY",
|
||||
logicTKRDetectorY,
|
||||
physiTKR,
|
||||
|
||||
x = -TKRSizeXY/2+TilesSeparation+SiliconGuardRing+
|
||||
TKRActiveTileXY/2+(i)*((2*SiliconGuardRing)+
|
||||
TilesSeparation+TKRActiveTileXY);
|
||||
y = -TKRSizeXY/2+TilesSeparation+SiliconGuardRing+
|
||||
TKRActiveTileXY/2+(j)*((2*SiliconGuardRing)+TilesSeparation+
|
||||
TKRActiveTileXY);
|
||||
z = 0.;
|
||||
|
||||
physiTKRActiveTileY =
|
||||
new G4PVPlacement(0,
|
||||
G4ThreeVector(x,y,z),
|
||||
"Active Tile Y",
|
||||
logicTKRActiveTileY,
|
||||
physiTKRDetectorY,
|
||||
false,
|
||||
i);
|
||||
|
||||
physiTKRDetectorX =
|
||||
new G4PVPlacement(0,G4ThreeVector(0.,0.,
|
||||
-TKRSizeZ/2+
|
||||
TKRSiliconThickness/2 +
|
||||
TKRViewsDistance+
|
||||
TKRSiliconThickness+
|
||||
(i)*TKRLayerDistance),
|
||||
"TKRDetectorX",
|
||||
logicTKRDetectorX,
|
||||
physiTKR,
|
||||
false,
|
||||
i);
|
||||
|
||||
|
||||
physiConverter =
|
||||
new G4PVPlacement(0,G4ThreeVector(0.,0.,
|
||||
-TKRSizeZ/2+
|
||||
2*TKRSiliconThickness +
|
||||
TKRViewsDistance+
|
||||
ConverterThickness/2+
|
||||
(i)*TKRLayerDistance),
|
||||
"Converter",
|
||||
logicConverter,
|
||||
physiTKR,
|
||||
false,
|
||||
i);
|
||||
k);
|
||||
|
||||
|
||||
physiPlane =
|
||||
new G4PVPlacement(0,G4ThreeVector(0.,0.,
|
||||
-TKRSizeZ/2+
|
||||
2*TKRSiliconThickness +
|
||||
TKRViewsDistance+
|
||||
ConverterThickness+
|
||||
TKRSupportThickness/2),
|
||||
"Plane",
|
||||
logicPlane,
|
||||
physiTKR,
|
||||
x = -TKRSizeXY/2+TilesSeparation+SiliconGuardRing+
|
||||
TKRActiveTileXY/2+(j)*((2*SiliconGuardRing)+
|
||||
TilesSeparation+TKRActiveTileXY);
|
||||
y = -TKRSizeXY/2+TilesSeparation+SiliconGuardRing+
|
||||
TKRActiveTileXY/2+(i)*((2*SiliconGuardRing)+
|
||||
TilesSeparation+TKRActiveTileXY);
|
||||
z = 0.;
|
||||
|
||||
physiTKRActiveTileX =
|
||||
new G4PVPlacement(0,
|
||||
G4ThreeVector(x,y,z),
|
||||
"Active Tile X",
|
||||
logicTKRActiveTileX,
|
||||
physiTKRDetectorX,
|
||||
false,
|
||||
i);
|
||||
|
||||
k);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
G4VSolid * solidTKRActiveTileX = new
|
||||
G4Box("Active Tile X", TKRActiveTileXY/2,TKRActiveTileXY/2,TKRActiveTileZ/2);
|
||||
|
||||
|
||||
G4VSolid * solidTKRActiveTileY = new
|
||||
G4Box("Active Tile Y", TKRActiveTileXY/2,TKRActiveTileXY/2,TKRActiveTileZ/2);
|
||||
// Calorimeter Structure (CALLayerX + CALLayerY)
|
||||
|
||||
|
||||
G4LogicalVolume* logicTKRActiveTileX =
|
||||
new G4LogicalVolume(solidTKRActiveTileX, TKRMaterial,
|
||||
"Active Tile X",0,0,0);
|
||||
|
||||
|
||||
G4LogicalVolume* logicTKRActiveTileY =
|
||||
new G4LogicalVolume(solidTKRActiveTileY, TKRMaterial,
|
||||
"Active Tile Y",0,0,0);
|
||||
|
||||
|
||||
G4int j=0;
|
||||
G4int k=0;
|
||||
|
||||
G4VPhysicalVolume* physiTKRActiveTileX = 0;
|
||||
G4VPhysicalVolume* physiTKRActiveTileY = 0;
|
||||
|
||||
G4double x=0.;
|
||||
G4double y=0.;
|
||||
G4double z=0.;
|
||||
|
||||
for (i=0;i< NbOfTKRTiles; i++)
|
||||
{
|
||||
for (j=0;j< NbOfTKRTiles; j++)
|
||||
{
|
||||
k = i*NbOfTKRTiles + j;
|
||||
|
||||
|
||||
x = -TKRSizeXY/2+TilesSeparation+SiliconGuardRing+
|
||||
TKRActiveTileXY/2+(i)*((2*SiliconGuardRing)+
|
||||
TilesSeparation+TKRActiveTileXY);
|
||||
y = -TKRSizeXY/2+TilesSeparation+SiliconGuardRing+
|
||||
TKRActiveTileXY/2+(j)*((2*SiliconGuardRing)+TilesSeparation+
|
||||
TKRActiveTileXY);
|
||||
z = 0.;
|
||||
|
||||
physiTKRActiveTileY =
|
||||
new G4PVPlacement(0,
|
||||
G4ThreeVector(x,y,z),
|
||||
"Active Tile Y",
|
||||
logicTKRActiveTileY,
|
||||
physiTKRDetectorY,
|
||||
false,
|
||||
k);
|
||||
|
||||
|
||||
x = -TKRSizeXY/2+TilesSeparation+SiliconGuardRing+
|
||||
TKRActiveTileXY/2+(j)*((2*SiliconGuardRing)+
|
||||
TilesSeparation+TKRActiveTileXY);
|
||||
y = -TKRSizeXY/2+TilesSeparation+SiliconGuardRing+
|
||||
TKRActiveTileXY/2+(i)*((2*SiliconGuardRing)+
|
||||
TilesSeparation+TKRActiveTileXY);
|
||||
z = 0.;
|
||||
|
||||
physiTKRActiveTileX =
|
||||
new G4PVPlacement(0,
|
||||
G4ThreeVector(x,y,z),
|
||||
"Active Tile X",
|
||||
logicTKRActiveTileX,
|
||||
physiTKRDetectorX,
|
||||
false,
|
||||
k);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Calorimeter Structure (CALDetectorX + CALDetectorY)
|
||||
|
||||
|
||||
solidCALDetector = new G4Box("CALDetector",
|
||||
solidCALLayerX = new G4Box("CALLayerX",
|
||||
CALSizeXY/2,CALSizeXY/2,CALBarThickness/2);
|
||||
|
||||
logicCALDetector = new G4LogicalVolume(solidCALDetector,
|
||||
CALMaterial,
|
||||
"CALDetector");
|
||||
|
||||
for (i = 0; i < NbOfCALLayers; i++)
|
||||
{
|
||||
|
||||
physiCALDetectorY =
|
||||
new G4PVPlacement(0,G4ThreeVector(0,0,
|
||||
-CALSizeZ/2+
|
||||
CALBarThickness/2 +
|
||||
(i)*2*CALBarThickness),
|
||||
"CALDetectorY",
|
||||
logicCALDetector,
|
||||
physiCAL,
|
||||
false,
|
||||
i);
|
||||
|
||||
physiCALDetectorX =
|
||||
new G4PVPlacement(0,G4ThreeVector(0,0,
|
||||
-CALSizeZ/2+
|
||||
CALBarThickness/2 +
|
||||
CALBarThickness +
|
||||
(i)*2*CALBarThickness),
|
||||
"CALDetectorX",
|
||||
logicCALDetector,
|
||||
physiCAL,
|
||||
false,
|
||||
i);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//}
|
||||
|
||||
|
||||
//
|
||||
// Sensitive Detectors: TKRDetector
|
||||
//
|
||||
|
||||
G4SDManager* SDman = G4SDManager::GetSDMpointer();
|
||||
if(!payloadSD)
|
||||
{
|
||||
payloadSD = new GammaRayTelPayloadSD("PayloadSD",this);
|
||||
SDman->AddNewDetector( payloadSD );
|
||||
}
|
||||
|
||||
G4String ROgeometryName = "PayloadROGeom";
|
||||
G4VReadOutGeometry* payloadRO =
|
||||
payloadRO = new GammaRayTelPayloadROGeometry(ROgeometryName, this);
|
||||
|
||||
payloadRO->BuildROGeometry();
|
||||
payloadSD->SetROgeometry(payloadRO);
|
||||
|
||||
|
||||
// if (logicTKRDetector)
|
||||
// logicTKRDetector->SetSensitiveDetector(payloadSD); // sensitive planes
|
||||
|
||||
if (logicTKRActiveTileX)
|
||||
logicTKRActiveTileX->SetSensitiveDetector(payloadSD); // sensitive tile
|
||||
if (logicTKRActiveTileY)
|
||||
logicTKRActiveTileY->SetSensitiveDetector(payloadSD); // sensitive tile
|
||||
|
||||
//
|
||||
// Visualization attributes
|
||||
//
|
||||
|
||||
// Invisible Volume
|
||||
logicWorld->SetVisAttributes (G4VisAttributes::Invisible);
|
||||
logicPayload->SetVisAttributes (G4VisAttributes::Invisible);
|
||||
logicTKR->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicTKRActiveTileX->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicTKRActiveTileY->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicPlane->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicConverter->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicCALLayerX = new G4LogicalVolume(solidCALLayerX,
|
||||
CALMaterial,
|
||||
"CALLayerX");
|
||||
|
||||
// Some visualization styles
|
||||
G4VisAttributes* VisAtt1= new G4VisAttributes(G4Colour(0.3,0.8,0.1));
|
||||
VisAtt1->SetVisibility(true);
|
||||
VisAtt1->SetForceSolid(TRUE);
|
||||
|
||||
G4VisAttributes* VisAtt2= new G4VisAttributes(G4Colour(0.2,0.3,0.8));
|
||||
VisAtt2->SetVisibility(true);
|
||||
VisAtt2->SetForceSolid(FALSE);
|
||||
|
||||
G4VisAttributes* VisAtt3= new G4VisAttributes(G4Colour(0.8,0.2,0.3));
|
||||
VisAtt3->SetVisibility(true);
|
||||
VisAtt3->SetForceWireframe(TRUE);
|
||||
|
||||
// Visible Volumes
|
||||
logicCAL->SetVisAttributes(VisAtt1);
|
||||
logicTKRDetectorX->SetVisAttributes(VisAtt2);
|
||||
logicTKRDetectorY->SetVisAttributes(VisAtt2);
|
||||
logicACT->SetVisAttributes(VisAtt3);
|
||||
logicACL1->SetVisAttributes(VisAtt3);
|
||||
logicACL2->SetVisAttributes(VisAtt3);
|
||||
solidCALLayerY = new G4Box("CALLayerY",
|
||||
CALSizeXY/2,CALSizeXY/2,CALBarThickness/2);
|
||||
|
||||
logicCALLayerY = new G4LogicalVolume(solidCALLayerY,
|
||||
CALMaterial,
|
||||
"CALLayerY");
|
||||
|
||||
for (i = 0; i < NbOfCALLayers; i++)
|
||||
{
|
||||
|
||||
physiCALLayerY =
|
||||
new G4PVPlacement(0,G4ThreeVector(0,0,
|
||||
-CALSizeZ/2+
|
||||
CALBarThickness/2 +
|
||||
(i)*2*CALBarThickness),
|
||||
"CALLayerY",
|
||||
logicCALLayerY,
|
||||
physiCAL,
|
||||
false,
|
||||
i);
|
||||
|
||||
physiCALLayerX =
|
||||
new G4PVPlacement(0,G4ThreeVector(0,0,
|
||||
-CALSizeZ/2+
|
||||
CALBarThickness/2 +
|
||||
CALBarThickness +
|
||||
(i)*2*CALBarThickness),
|
||||
"CALLayerX",
|
||||
logicCALLayerX,
|
||||
physiCAL,
|
||||
false,
|
||||
i);
|
||||
|
||||
}
|
||||
|
||||
// Calorimeter Structure (CALDetectorX + CALDetectorY)
|
||||
|
||||
solidCALDetectorX = new G4Box("CALDetectorX",
|
||||
CALBarX/2,CALBarY/2,CALBarThickness/2);
|
||||
|
||||
logicCALDetectorX = new G4LogicalVolume(solidCALDetectorX,
|
||||
CALMaterial,
|
||||
"CALDetectorX");
|
||||
|
||||
solidCALDetectorY = new G4Box("CALDetectorY",
|
||||
CALBarY/2,CALBarX/2,CALBarThickness/2);
|
||||
|
||||
logicCALDetectorY = new G4LogicalVolume(solidCALDetectorY,
|
||||
CALMaterial,
|
||||
"CALDetectorY");
|
||||
|
||||
for (i = 0; i < NbOfCALBars; i++)
|
||||
{
|
||||
|
||||
physiCALDetectorY =
|
||||
new G4PVPlacement(0,
|
||||
G4ThreeVector(-CALSizeXY/2+ CALBarY/2 +
|
||||
(i)*CALBarY, 0, 0),
|
||||
"CALDetectorY",
|
||||
logicCALDetectorY,
|
||||
physiCALLayerY,
|
||||
false,
|
||||
i);
|
||||
|
||||
physiCALDetectorX =
|
||||
new G4PVPlacement(0,
|
||||
G4ThreeVector(0,-CALSizeXY/2+ CALBarY/2 +
|
||||
(i)*CALBarY, 0),
|
||||
"CALDetectorX",
|
||||
logicCALDetectorX,
|
||||
physiCALLayerX,
|
||||
false,
|
||||
i);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Sensitive Detector Manager
|
||||
|
||||
G4SDManager* SDman = G4SDManager::GetSDMpointer();
|
||||
|
||||
//
|
||||
// Sensitive Detectors - Tracker
|
||||
//
|
||||
|
||||
|
||||
if(!trackerSD)
|
||||
{
|
||||
trackerSD = new GammaRayTelTrackerSD("TrackerSD",this);
|
||||
SDman->AddNewDetector( trackerSD );
|
||||
}
|
||||
|
||||
G4String ROgeometryName = "TrackerROGeom";
|
||||
G4VReadOutGeometry* trackerRO =
|
||||
new GammaRayTelTrackerROGeometry(ROgeometryName, this);
|
||||
|
||||
trackerRO->BuildROGeometry();
|
||||
trackerSD->SetROgeometry(trackerRO);
|
||||
|
||||
if (logicTKRActiveTileX)
|
||||
logicTKRActiveTileX->SetSensitiveDetector(trackerSD); // ActiveTileX
|
||||
if (logicTKRActiveTileY)
|
||||
logicTKRActiveTileY->SetSensitiveDetector(trackerSD); // ActiveTileY
|
||||
|
||||
//
|
||||
// Sensitive Detectors: Calorimeter
|
||||
//
|
||||
|
||||
|
||||
|
||||
if(!calorimeterSD)
|
||||
{
|
||||
calorimeterSD = new GammaRayTelCalorimeterSD("CalorimeterSD",this);
|
||||
SDman->AddNewDetector( calorimeterSD );
|
||||
}
|
||||
|
||||
if (logicCALDetectorX)
|
||||
logicCALDetectorX->SetSensitiveDetector(calorimeterSD); // BarX
|
||||
if (logicCALDetectorY)
|
||||
logicCALDetectorY->SetSensitiveDetector(calorimeterSD); // BarY
|
||||
|
||||
//
|
||||
// Sensitive Detectors: Anticoincidence
|
||||
//
|
||||
|
||||
if(!anticoincidenceSD)
|
||||
{
|
||||
anticoincidenceSD = new GammaRayTelAnticoincidenceSD
|
||||
("AnticoincidenceSD",this);
|
||||
SDman->AddNewDetector( anticoincidenceSD );
|
||||
}
|
||||
|
||||
if (logicACT)
|
||||
logicACT->SetSensitiveDetector(anticoincidenceSD); // ACD top
|
||||
if (logicACL1)
|
||||
logicACL1->SetSensitiveDetector(anticoincidenceSD); // ACD lateral side
|
||||
if (logicACL2)
|
||||
logicACL2->SetSensitiveDetector(anticoincidenceSD); // ACD lateral side
|
||||
|
||||
//
|
||||
// Visualization attributes
|
||||
//
|
||||
|
||||
// Invisible Volume
|
||||
logicWorld->SetVisAttributes (G4VisAttributes::Invisible);
|
||||
logicPayload->SetVisAttributes (G4VisAttributes::Invisible);
|
||||
logicTKR->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicTKRActiveTileX->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicTKRActiveTileY->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicPlane->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicConverter->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicCAL->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicCALLayerX->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
logicCALLayerY->SetVisAttributes(G4VisAttributes::Invisible);
|
||||
|
||||
// Some visualization styles
|
||||
|
||||
G4VisAttributes* VisAtt1= new G4VisAttributes(G4Colour(0.3,0.8,0.1));
|
||||
VisAtt1->SetVisibility(true);
|
||||
VisAtt1->SetForceSolid(TRUE);
|
||||
|
||||
G4VisAttributes* VisAtt2= new G4VisAttributes(G4Colour(0.2,0.3,0.8));
|
||||
VisAtt2->SetVisibility(true);
|
||||
VisAtt2->SetForceSolid(FALSE);
|
||||
|
||||
G4VisAttributes* VisAtt3= new G4VisAttributes(G4Colour(0.8,0.2,0.3));
|
||||
VisAtt3->SetVisibility(true);
|
||||
VisAtt3->SetForceWireframe(TRUE);
|
||||
|
||||
// Visible Volumes
|
||||
|
||||
logicCALDetectorX->SetVisAttributes(VisAtt1);
|
||||
logicCALDetectorY->SetVisAttributes(VisAtt1);
|
||||
logicTKRDetectorX->SetVisAttributes(VisAtt2);
|
||||
logicTKRDetectorY->SetVisAttributes(VisAtt2);
|
||||
logicACT->SetVisAttributes(VisAtt3);
|
||||
logicACL1->SetVisAttributes(VisAtt3);
|
||||
logicACL2->SetVisAttributes(VisAtt3);
|
||||
|
||||
|
||||
//
|
||||
//always return the physical World
|
||||
//
|
||||
PrintPayloadParameters();
|
||||
return physiWorld;
|
||||
}
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelDetectorConstruction::PrintPayloadParameters()
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelDetectorMessenger.cc,v 1.3 2000/12/06 16:53:14 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelEventAction.cc,v 1.4 2000/12/06 16:53:14 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: GammaRayTelEventAction.cc,v 1.5 2001/03/05 13:58:23 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// CERN Geneva Switzerland
|
||||
@@ -20,7 +20,10 @@
|
||||
// ************************************************************
|
||||
|
||||
#include "GammaRayTelEventAction.hh"
|
||||
#include "GammaRayTelPayloadHit.hh"
|
||||
#include "GammaRayTelTrackerHit.hh"
|
||||
#include "GammaRayTelAnticoincidenceHit.hh"
|
||||
#include "GammaRayTelCalorimeterHit.hh"
|
||||
|
||||
#include "g4rw/tvordvec.h"
|
||||
|
||||
#ifdef G4ANALYSIS_USE
|
||||
@@ -48,12 +51,14 @@ extern G4std::ofstream outFile;
|
||||
|
||||
#ifdef G4ANALYSIS_USE
|
||||
GammaRayTelEventAction::GammaRayTelEventAction(GammaRayTelAnalysisManager* aMgr)
|
||||
:drawFlag("all"),trackerCollID(-1),analysisManager(aMgr)
|
||||
:drawFlag("all"),trackerCollID(-1), calorimeterCollID(-1),
|
||||
anticoincidenceCollID(-1), analysisManager(aMgr)
|
||||
{
|
||||
}
|
||||
#else
|
||||
GammaRayTelEventAction::GammaRayTelEventAction()
|
||||
:drawFlag("all"), trackerCollID(-1)
|
||||
:drawFlag("all"), trackerCollID(-1),calorimeterCollID(-1),
|
||||
anticoincidenceCollID(-1)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
@@ -71,13 +76,22 @@ void GammaRayTelEventAction::BeginOfEventAction(const G4Event* evt)
|
||||
|
||||
G4int evtNb = evt->GetEventID();
|
||||
G4cout << "Event: " << evtNb << G4endl;
|
||||
|
||||
|
||||
G4SDManager * SDman = G4SDManager::GetSDMpointer();
|
||||
if (trackerCollID==-1)
|
||||
{
|
||||
G4SDManager * SDman = G4SDManager::GetSDMpointer();
|
||||
trackerCollID = SDman->GetCollectionID("PayloadCollection");
|
||||
trackerCollID = SDman->GetCollectionID("TrackerCollection");
|
||||
}
|
||||
if(anticoincidenceCollID==-1)
|
||||
{
|
||||
anticoincidenceCollID =
|
||||
SDman->GetCollectionID("AnticoincidenceCollection");
|
||||
}
|
||||
if(calorimeterCollID==-1)
|
||||
{
|
||||
calorimeterCollID =
|
||||
SDman->GetCollectionID("CalorimeterCollection");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -86,39 +100,50 @@ void GammaRayTelEventAction::EndOfEventAction(const G4Event* evt)
|
||||
{
|
||||
G4int event_id = evt->GetEventID();
|
||||
|
||||
|
||||
G4TrajectoryContainer * trajectoryContainer = evt->GetTrajectoryContainer();
|
||||
G4int n_trajectories = 0;
|
||||
if (trajectoryContainer) n_trajectories = trajectoryContainer->entries();
|
||||
|
||||
|
||||
G4HCofThisEvent* HCE = evt->GetHCofThisEvent();
|
||||
GammaRayTelPayloadHitsCollection* CHC = NULL;
|
||||
GammaRayTelTrackerHitsCollection* THC = 0;
|
||||
GammaRayTelCalorimeterHitsCollection* CHC = 0;
|
||||
GammaRayTelAnticoincidenceHitsCollection* AHC = 0;
|
||||
|
||||
|
||||
if (HCE)
|
||||
CHC = (GammaRayTelPayloadHitsCollection*)(HCE->GetHC(trackerCollID));
|
||||
|
||||
if (CHC)
|
||||
{
|
||||
int n_hit = CHC->entries();
|
||||
G4cout << "Number of hits in this event = " << n_hit << G4endl;
|
||||
THC = (GammaRayTelTrackerHitsCollection*)(HCE->GetHC(trackerCollID));
|
||||
CHC = (GammaRayTelCalorimeterHitsCollection*)
|
||||
(HCE->GetHC(calorimeterCollID));
|
||||
AHC = (GammaRayTelAnticoincidenceHitsCollection*)
|
||||
(HCE->GetHC(anticoincidenceCollID));
|
||||
}
|
||||
|
||||
if (THC)
|
||||
{
|
||||
int n_hit = THC->entries();
|
||||
G4cout << "Number of tracker hits in this event = " << n_hit << G4endl;
|
||||
G4double ESil=0;
|
||||
G4int NStrip, NPlane, IsX;
|
||||
// This is a cycle on all the hits of this event
|
||||
|
||||
// This is a cycle on all the tracker hits of this event
|
||||
|
||||
for (int i=0;i<n_hit;i++)
|
||||
{
|
||||
// Here we put the hit data in a an ASCII file for
|
||||
// later analysis
|
||||
ESil = (*CHC)[i]->GetEdepSil();
|
||||
NStrip = (*CHC)[i]->GetNStrip();
|
||||
NPlane = (*CHC)[i]->GetNSilPlane();
|
||||
IsX = (*CHC)[i]->GetPlaneType();
|
||||
|
||||
ESil = (*THC)[i]->GetEdepSil();
|
||||
NStrip = (*THC)[i]->GetNStrip();
|
||||
NPlane = (*THC)[i]->GetNSilPlane();
|
||||
IsX = (*THC)[i]->GetPlaneType();
|
||||
|
||||
outFile << G4std::setw(7) << event_id << " " <<
|
||||
ESil/keV << " " << NStrip <<
|
||||
" " << NPlane << " " << IsX << " " <<
|
||||
(*CHC)[i]->GetPos().x()/mm <<" "<<
|
||||
(*CHC)[i]->GetPos().y()/mm <<" "<<
|
||||
(*CHC)[i]->GetPos().z()/mm <<" "<<
|
||||
(*THC)[i]->GetPos().x()/mm <<" "<<
|
||||
(*THC)[i]->GetPos().y()/mm <<" "<<
|
||||
(*THC)[i]->GetPos().z()/mm <<" "<<
|
||||
G4endl;
|
||||
|
||||
#ifdef G4ANALYSIS_USE
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelPhysicsList.cc,v 1.2 2000/11/15 20:27:41 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// CERN Geneva Switzerland
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelPrimaryGeneratorAction.cc,v 1.3 2000/11/24 16:57:00 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// CERN Geneva Switzerland
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelPrimaryGeneratorMessenger.cc,v 1.2 2000/11/15 20:27:41 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// CERN Geneva Switzerland
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelRunAction.cc,v 1.3 2000/12/06 16:53:14 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// CERN Geneva Switzerland
|
||||
|
||||
+12
-12
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelPayloadHit.cc,v 1.2 2000/11/15 20:27:41 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: GammaRayTelTrackerHit.cc,v 1.1 2001/03/05 13:58:23 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// CERN Geneva Switzerland
|
||||
@@ -14,20 +14,20 @@
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD group
|
||||
//
|
||||
// ------------ GammaRayTelPayloadHit ------
|
||||
// ------------ GammaRayTelTrackerHit ------
|
||||
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
|
||||
//
|
||||
// ************************************************************
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
#include "GammaRayTelPayloadHit.hh"
|
||||
#include "GammaRayTelTrackerHit.hh"
|
||||
|
||||
G4Allocator<GammaRayTelPayloadHit> GammaRayTelPayloadHitAllocator;
|
||||
G4Allocator<GammaRayTelTrackerHit> GammaRayTelTrackerHitAllocator;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
GammaRayTelPayloadHit::GammaRayTelPayloadHit()
|
||||
GammaRayTelTrackerHit::GammaRayTelTrackerHit()
|
||||
{
|
||||
EdepSil = 0.;
|
||||
NStrip = 0; NSilPlane = 0; IsXPlane = 0;
|
||||
@@ -36,12 +36,12 @@ GammaRayTelPayloadHit::GammaRayTelPayloadHit()
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
GammaRayTelPayloadHit::~GammaRayTelPayloadHit()
|
||||
GammaRayTelTrackerHit::~GammaRayTelTrackerHit()
|
||||
{;}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
GammaRayTelPayloadHit::GammaRayTelPayloadHit(const GammaRayTelPayloadHit& right)
|
||||
GammaRayTelTrackerHit::GammaRayTelTrackerHit(const GammaRayTelTrackerHit& right)
|
||||
{
|
||||
EdepSil = right.EdepSil;
|
||||
NStrip = right.NStrip; NSilPlane = right.NSilPlane;
|
||||
@@ -51,7 +51,7 @@ GammaRayTelPayloadHit::GammaRayTelPayloadHit(const GammaRayTelPayloadHit& right)
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
const GammaRayTelPayloadHit& GammaRayTelPayloadHit::operator=(const GammaRayTelPayloadHit& right)
|
||||
const GammaRayTelTrackerHit& GammaRayTelTrackerHit::operator=(const GammaRayTelTrackerHit& right)
|
||||
{
|
||||
EdepSil = right.EdepSil;
|
||||
NStrip = right.NStrip; NSilPlane = right.NSilPlane;
|
||||
@@ -62,19 +62,19 @@ const GammaRayTelPayloadHit& GammaRayTelPayloadHit::operator=(const GammaRayTelP
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
int GammaRayTelPayloadHit::operator==(const GammaRayTelPayloadHit& right) const
|
||||
int GammaRayTelTrackerHit::operator==(const GammaRayTelTrackerHit& right) const
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelPayloadHit::Draw()
|
||||
void GammaRayTelTrackerHit::Draw()
|
||||
{;}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelPayloadHit::Print()
|
||||
void GammaRayTelTrackerHit::Print()
|
||||
{;}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
+9
-9
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelPayloadROGeometry.cc,v 1.2 2000/11/20 16:49:02 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: GammaRayTelTrackerROGeometry.cc,v 1.1 2001/03/05 13:58:23 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
@@ -16,12 +16,12 @@
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD group
|
||||
//
|
||||
// ------------ GammaRayTelPayloadROGeometry class ------
|
||||
// ------------ GammaRayTelTrackerROGeometry class ------
|
||||
// by F.Longo, R.Giannitrapani & G.Santin (13 nov 2000)
|
||||
//
|
||||
// ************************************************************
|
||||
|
||||
#include "GammaRayTelPayloadROGeometry.hh"
|
||||
#include "GammaRayTelTrackerROGeometry.hh"
|
||||
#include "GammaRayTelDummySD.hh"
|
||||
#include "GammaRayTelDetectorConstruction.hh"
|
||||
|
||||
@@ -35,25 +35,25 @@
|
||||
#include "G4Material.hh"
|
||||
|
||||
|
||||
GammaRayTelPayloadROGeometry::GammaRayTelPayloadROGeometry()
|
||||
GammaRayTelTrackerROGeometry::GammaRayTelTrackerROGeometry()
|
||||
: G4VReadOutGeometry()
|
||||
{
|
||||
}
|
||||
GammaRayTelPayloadROGeometry::GammaRayTelPayloadROGeometry(G4String aString,GammaRayTelDetectorConstruction* GammaRayTelDC)
|
||||
GammaRayTelTrackerROGeometry::GammaRayTelTrackerROGeometry(G4String aString,GammaRayTelDetectorConstruction* GammaRayTelDC)
|
||||
:GammaRayTelDetector(GammaRayTelDC), G4VReadOutGeometry(aString)
|
||||
{
|
||||
}
|
||||
|
||||
GammaRayTelPayloadROGeometry::GammaRayTelPayloadROGeometry(G4String aString)
|
||||
GammaRayTelTrackerROGeometry::GammaRayTelTrackerROGeometry(G4String aString)
|
||||
: G4VReadOutGeometry(aString)
|
||||
{
|
||||
}
|
||||
|
||||
GammaRayTelPayloadROGeometry::~GammaRayTelPayloadROGeometry()
|
||||
GammaRayTelTrackerROGeometry::~GammaRayTelTrackerROGeometry()
|
||||
{
|
||||
}
|
||||
|
||||
G4VPhysicalVolume* GammaRayTelPayloadROGeometry::Build()
|
||||
G4VPhysicalVolume* GammaRayTelTrackerROGeometry::Build()
|
||||
{
|
||||
// A dummy material is used to fill the volumes of the readout geometry.
|
||||
// ( It will be allowed to set a NULL pointer in volumes of such virtual
|
||||
+48
-47
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelPayloadSD.cc,v 1.6 2000/12/06 17:48:10 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// $Id: GammaRayTelTrackerSD.cc,v 1.1 2001/03/05 13:58:23 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// CERN Geneva Switzerland
|
||||
@@ -14,14 +14,14 @@
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD group
|
||||
//
|
||||
// ------------ GammaRayTelPayloadSD ------
|
||||
// ------------ GammaRayTelTrackerSD ------
|
||||
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
|
||||
//
|
||||
// ************************************************************
|
||||
|
||||
#include "GammaRayTelPayloadSD.hh"
|
||||
#include "GammaRayTelTrackerSD.hh"
|
||||
|
||||
#include "GammaRayTelPayloadHit.hh"
|
||||
#include "GammaRayTelTrackerHit.hh"
|
||||
#include "GammaRayTelDetectorConstruction.hh"
|
||||
|
||||
#include "G4VPhysicalVolume.hh"
|
||||
@@ -35,7 +35,7 @@
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
GammaRayTelPayloadSD::GammaRayTelPayloadSD(G4String name,
|
||||
GammaRayTelTrackerSD::GammaRayTelTrackerSD(G4String name,
|
||||
GammaRayTelDetectorConstruction* det)
|
||||
:G4VSensitiveDetector(name),Detector(det)
|
||||
{
|
||||
@@ -44,36 +44,37 @@ GammaRayTelPayloadSD::GammaRayTelPayloadSD(G4String name,
|
||||
NbOfTKRLayers = Detector->GetNbOfTKRLayers();
|
||||
NbOfTKRStrips = NbOfTKRStrips*NbOfTKRTiles;
|
||||
|
||||
HitXID = new G4int[NbOfTKRStrips][30];
|
||||
HitYID = new G4int[NbOfTKRStrips][30];
|
||||
collectionName.insert("PayloadCollection");
|
||||
ThitXID = new G4int[NbOfTKRStrips][30];
|
||||
ThitYID = new G4int[NbOfTKRStrips][30];
|
||||
collectionName.insert("TrackerCollection");
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
GammaRayTelPayloadSD::~GammaRayTelPayloadSD()
|
||||
GammaRayTelTrackerSD::~GammaRayTelTrackerSD()
|
||||
{
|
||||
delete [] HitXID;
|
||||
delete [] HitYID;
|
||||
delete [] ThitXID;
|
||||
delete [] ThitYID;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelPayloadSD::Initialize(G4HCofThisEvent*HCE)
|
||||
void GammaRayTelTrackerSD::Initialize(G4HCofThisEvent*HCE)
|
||||
{
|
||||
PayloadCollection = new GammaRayTelPayloadHitsCollection
|
||||
TrackerCollection = new GammaRayTelTrackerHitsCollection
|
||||
(SensitiveDetectorName,collectionName[0]);
|
||||
for (G4int i=0;i<NbOfTKRStrips;i++)
|
||||
|
||||
for (G4int i=0;i<NbOfTKRStrips;i++)
|
||||
for (G4int j=0;j<NbOfTKRLayers;j++)
|
||||
{
|
||||
HitXID[i][j] = -1;
|
||||
HitYID[i][j] = -1;
|
||||
ThitXID[i][j] = -1;
|
||||
ThitYID[i][j] = -1;
|
||||
};
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
G4bool GammaRayTelPayloadSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist)
|
||||
G4bool GammaRayTelTrackerSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhist)
|
||||
{
|
||||
|
||||
G4double edep = aStep->GetTotalEnergyDeposit();
|
||||
@@ -129,20 +130,20 @@ G4bool GammaRayTelPayloadSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhis
|
||||
// The hit is on an X silicon plane
|
||||
{
|
||||
// This is a new hit
|
||||
if (HitXID[StripNumber][PlaneNumber]==-1)
|
||||
if (ThitXID[StripNumber][PlaneNumber]==-1)
|
||||
{
|
||||
GammaRayTelPayloadHit* PayloadHit = new GammaRayTelPayloadHit;
|
||||
PayloadHit->SetPlaneType(1);
|
||||
PayloadHit->AddSil(edep);
|
||||
PayloadHit->SetPos(aStep->GetPreStepPoint()->GetPosition());
|
||||
PayloadHit->SetNSilPlane(PlaneNumber);
|
||||
PayloadHit->SetNStrip(StripNumber);
|
||||
HitXID[StripNumber][PlaneNumber] =
|
||||
PayloadCollection->insert(PayloadHit) -1;
|
||||
GammaRayTelTrackerHit* TrackerHit = new GammaRayTelTrackerHit;
|
||||
TrackerHit->SetPlaneType(1);
|
||||
TrackerHit->AddSil(edep);
|
||||
TrackerHit->SetPos(aStep->GetPreStepPoint()->GetPosition());
|
||||
TrackerHit->SetNSilPlane(PlaneNumber);
|
||||
TrackerHit->SetNStrip(StripNumber);
|
||||
ThitXID[StripNumber][PlaneNumber] =
|
||||
TrackerCollection->insert(TrackerHit) -1;
|
||||
}
|
||||
else // This is not new
|
||||
{
|
||||
(*PayloadCollection)[HitXID[StripNumber][PlaneNumber]]->AddSil(edep);
|
||||
(*TrackerCollection)[ThitXID[StripNumber][PlaneNumber]]->AddSil(edep);
|
||||
// G4cout << "X" << PlaneNumber << " " << StripNumber << G4endl;
|
||||
}
|
||||
}
|
||||
@@ -151,20 +152,20 @@ G4bool GammaRayTelPayloadSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhis
|
||||
// The hit is on an Y silicon plane
|
||||
{
|
||||
// This is a new hit
|
||||
if (HitYID[StripNumber][PlaneNumber]==-1)
|
||||
if (ThitYID[StripNumber][PlaneNumber]==-1)
|
||||
{
|
||||
GammaRayTelPayloadHit* PayloadHit = new GammaRayTelPayloadHit;
|
||||
PayloadHit->SetPlaneType(0);
|
||||
PayloadHit->AddSil(edep);
|
||||
PayloadHit->SetPos(aStep->GetPreStepPoint()->GetPosition());
|
||||
PayloadHit->SetNSilPlane(PlaneNumber);
|
||||
PayloadHit->SetNStrip(StripNumber);
|
||||
HitYID[StripNumber][PlaneNumber] =
|
||||
PayloadCollection->insert(PayloadHit)-1;
|
||||
GammaRayTelTrackerHit* TrackerHit = new GammaRayTelTrackerHit;
|
||||
TrackerHit->SetPlaneType(0);
|
||||
TrackerHit->AddSil(edep);
|
||||
TrackerHit->SetPos(aStep->GetPreStepPoint()->GetPosition());
|
||||
TrackerHit->SetNSilPlane(PlaneNumber);
|
||||
TrackerHit->SetNStrip(StripNumber);
|
||||
ThitYID[StripNumber][PlaneNumber] =
|
||||
TrackerCollection->insert(TrackerHit)-1;
|
||||
}
|
||||
else // This is not new
|
||||
{
|
||||
(*PayloadCollection)[HitYID[StripNumber][PlaneNumber]]->AddSil(edep);
|
||||
(*TrackerCollection)[ThitYID[StripNumber][PlaneNumber]]->AddSil(edep);
|
||||
// G4cout << "Y" << PlaneNumber << " " << StripNumber << G4endl;
|
||||
}
|
||||
}
|
||||
@@ -174,37 +175,37 @@ G4bool GammaRayTelPayloadSD::ProcessHits(G4Step* aStep,G4TouchableHistory* ROhis
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelPayloadSD::EndOfEvent(G4HCofThisEvent* HCE)
|
||||
void GammaRayTelTrackerSD::EndOfEvent(G4HCofThisEvent* HCE)
|
||||
{
|
||||
static G4int HCID = -1;
|
||||
if(HCID<0)
|
||||
{
|
||||
HCID = G4SDManager::GetSDMpointer()->GetCollectionID(collectionName[0]);
|
||||
}
|
||||
HCE->AddHitsCollection(HCID,PayloadCollection);
|
||||
HCE->AddHitsCollection(HCID,TrackerCollection);
|
||||
|
||||
|
||||
for (G4int i=0;i<NbOfTKRLayers;i++)
|
||||
for (G4int j=0;j<NbOfTKRStrips;j++)
|
||||
for (G4int i=0;i<NbOfTKRStrips;i++)
|
||||
for (G4int j=0;j<NbOfTKRLayers;j++)
|
||||
{
|
||||
HitXID[i][j] = -1;
|
||||
HitYID[i][j] = -1;
|
||||
ThitXID[i][j] = -1;
|
||||
ThitYID[i][j] = -1;
|
||||
};
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelPayloadSD::clear()
|
||||
void GammaRayTelTrackerSD::clear()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelPayloadSD::DrawAll()
|
||||
void GammaRayTelTrackerSD::DrawAll()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
|
||||
void GammaRayTelPayloadSD::PrintAll()
|
||||
void GammaRayTelTrackerSD::PrintAll()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -7,7 +7,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: GammaRayTelVisManager.cc,v 1.2 2000/11/15 20:27:42 flongo Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// CERN Geneva Switzerland
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01.cc,v 1.6 2000/11/15 13:46:23 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01AnalysisManager.hh,v 1.3 2000/10/31 13:10:00 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01CalorHit.hh,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01CalorimeterSD.hh,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01DetectorConstruction.hh,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01DetectorMessenger.hh,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01EventAction.hh,v 1.3 2000/11/10 14:12:07 gbarrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01PhysicsList.hh,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01PrimaryGeneratorAction.hh,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01PrimaryGeneratorMessenger.hh,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01RunAction.hh,v 1.3 2000/11/10 14:12:07 gbarrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01SteppingAction.hh,v 1.3 2000/11/10 14:12:07 gbarrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01SteppingVerbose.hh,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01VisManager.hh,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01AnalysisManager.cc,v 1.9 2000/12/06 13:08:03 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
// Guy Barrand 14th Septembre 2000.
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01CalorHit.cc,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01CalorimeterSD.cc,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01DetectorConstruction.cc,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01DetectorMessenger.cc,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01EventAction.cc,v 1.3 2000/11/10 14:08:08 gbarrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01PhysicsList.cc,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01PrimaryGeneratorAction.cc,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01PrimaryGeneratorMessenger.cc,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01RunAction.cc,v 1.3 2000/11/10 14:08:09 gbarrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01SteppingAction.cc,v 1.3 2000/11/10 14:08:10 gbarrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01SteppingVerbose.cc,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: AnaEx01VisManager.cc,v 1.1.1.1 2000/09/14 11:37:21 barrand Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
// John Allison 24th January 1998.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.4 2000/12/07 11:43:03 maire Exp $
|
||||
# $Id: GNUmakefile,v 1.5 2001/02/21 14:00:33 maire Exp $
|
||||
# --------------------------------------------------------------
|
||||
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
|
||||
# --------------------------------------------------------------
|
||||
@@ -16,4 +16,12 @@ all: lib bin
|
||||
|
||||
include $(G4INSTALL)/config/architecture.gmk
|
||||
|
||||
G4NOHIST := true
|
||||
ifdef G4NOHIST
|
||||
CPPFLAGS += -DG4NOHIST
|
||||
else
|
||||
LDFLAGS += -L$(CERN)/pro/lib
|
||||
LOADLIBS += -lpacklib $(FCLIBS)
|
||||
endif
|
||||
|
||||
include $(G4INSTALL)/config/binmake.gmk
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History,v 1.7 2000/12/07 11:43:03 maire Exp $
|
||||
$Id: History,v 1.11 2001/03/27 08:34:07 maire Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -15,6 +15,19 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
27-03-01 mma (testem1-V03-00-05)
|
||||
- set cppflag G4NOHIST = true in gnumakefile
|
||||
|
||||
08-03-01 Hisaya (testem1-V03-00-04)
|
||||
- adapted ProcessesCount to STL
|
||||
|
||||
21-02-01 mma (testem1-V03-00-03)
|
||||
- hbook histograms restored
|
||||
|
||||
20-02-01 mma (testem1-V03-00-02)
|
||||
- verbose stepping adapted for STL
|
||||
- save rndm at begin of event
|
||||
|
||||
07-12-00 mma (testem1-V02-00-03 & testem-noHist)
|
||||
remove hbook histograms: GNUmakefile,runAction,trackingAction,
|
||||
steppingAction
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: README,v 1.1 1999/10/11 13:07:24 maire Exp $
|
||||
$Id: README,v 1.3 2001/03/30 12:41:27 gcosmo Exp $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -90,13 +90,16 @@ $Id: README,v 1.1 1999/10/11 13:07:24 maire Exp $
|
||||
|
||||
7- HISTOGRAMS
|
||||
|
||||
Testem1 produces several histo which are saved as testem1.histo
|
||||
Testem1 produces several histo which are saved as testem1.paw
|
||||
|
||||
Content of these histo:
|
||||
|
||||
1 : track length of a charged particle
|
||||
2 : number of steps per track (charged particle)
|
||||
3 : step length (charged particle)
|
||||
|
||||
|
||||
|
||||
|
||||
Note that, histograms are disabled via the flag G4NOHIST in the GNUmakefile.
|
||||
Currently, histograms in this example are implemented through the obsolete
|
||||
CLHEP/Hist package, which is no longer supported. The implementation will
|
||||
be replaced by direct call to the "analysis" module in a near future.
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: TestEm1.cc,v 1.4 2000/12/06 13:21:48 maire Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
**********************************************
|
||||
Geant4 version $Name: geant4-03-00 $
|
||||
(30-Jun-2000)
|
||||
Geant4 version $Name: geant4-03-01 $
|
||||
(15-Dec-2000)
|
||||
Copyright : Geant4 Collaboration
|
||||
**********************************************
|
||||
|
||||
***** Table : Nb of materials = 8 *****
|
||||
***** Table : Nb of materials = 9 *****
|
||||
|
||||
Material: Air density: 1.290 mg/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 285.161 m
|
||||
---> Element: Nitrogen N Z = 7.0 N = 14.0 A = 14.01 g/mole fractionMass: 70.00 % Abundance 72.71 %
|
||||
@@ -23,6 +23,9 @@
|
||||
Material: Aluminium density: 2.700 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 8.893 cm
|
||||
---> Element: Aluminium Z = 13.0 N = 27.0 A = 26.98 g/mole fractionMass: 100.00 % Abundance 100.00 %
|
||||
|
||||
Material: Silicon density: 2.330 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 9.368 cm
|
||||
---> Element: Silicon Z = 14.0 N = 28.1 A = 28.09 g/mole fractionMass: 100.00 % Abundance 100.00 %
|
||||
|
||||
Material: Iron density: 7.870 g/cm3 temperature: 273.15 K pressure: 1.00 atm RadLength: 1.759 cm
|
||||
---> Element: Iron Z = 26.0 N = 55.9 A = 55.85 g/mole fractionMass: 100.00 % Abundance 100.00 %
|
||||
|
||||
@@ -63,13 +66,14 @@ eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to
|
||||
material min.delta energy(keV)
|
||||
|
||||
Air 0.99
|
||||
H2liquid 28.675
|
||||
Water 81.507
|
||||
liquidArgon 78.362
|
||||
Aluminium 125.06
|
||||
Iron 224.07
|
||||
Lead 229.55
|
||||
Uranium 296.06
|
||||
H2liquid 28.089
|
||||
Water 81.851
|
||||
liquidArgon 79.954
|
||||
Aluminium 125.02
|
||||
Silicon 116.88
|
||||
Iron 225.11
|
||||
Lead 228.53
|
||||
Uranium 294.24
|
||||
|
||||
eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library.
|
||||
Good description from 1 KeV to 100 GeV.
|
||||
@@ -91,13 +95,14 @@ msc: Tables of transport mean free paths.
|
||||
material min.delta energy(keV)
|
||||
|
||||
Air 0.99
|
||||
H2liquid 28.675
|
||||
Water 81.507
|
||||
liquidArgon 78.362
|
||||
Aluminium 125.06
|
||||
Iron 224.07
|
||||
Lead 229.55
|
||||
Uranium 296.06
|
||||
H2liquid 28.089
|
||||
Water 81.851
|
||||
liquidArgon 79.954
|
||||
Aluminium 125.02
|
||||
Silicon 116.88
|
||||
Iron 225.11
|
||||
Lead 228.53
|
||||
Uranium 294.24
|
||||
|
||||
hIoni: Knock-on electron cross sections .
|
||||
Good description above the mean excitation energy.
|
||||
@@ -130,11 +135,12 @@ Cut in energy
|
||||
Water 2.9 keV 347 keV
|
||||
liquidArgon 6.18 keV 343 keV
|
||||
Aluminium 6.89 keV 597 keV
|
||||
Silicon 6.89 keV 541 keV
|
||||
Iron 20.8 keV 1.28 MeV
|
||||
Lead 101 keV 1.38 MeV
|
||||
Uranium 110 keV 1.92 MeV
|
||||
===================================================
|
||||
# $Id: TestEm1.out,v 1.7 2000/11/24 10:36:58 stesting Exp $
|
||||
# $Id: TestEm1.out,v 1.11 2001/03/30 09:02:57 stesting Exp $
|
||||
#
|
||||
# Macro file for "TestEm1.cc"
|
||||
# (can be run in batch, without graphic)
|
||||
@@ -176,11 +182,12 @@ eIoni: delta cross sections from Moller+Bhabha. Good description from 1 KeV to
|
||||
Air 0.99
|
||||
H2liquid 0.99
|
||||
Water 3.2733
|
||||
liquidArgon 3.7293
|
||||
Aluminium 6.3003
|
||||
Iron 10.422
|
||||
Lead 8.9769
|
||||
Uranium 11.54
|
||||
liquidArgon 3.9154
|
||||
Aluminium 6.2979
|
||||
Silicon 5.8817
|
||||
Iron 10.524
|
||||
Lead 9.1135
|
||||
Uranium 11.689
|
||||
|
||||
eBrem: Total cross sections from a NEW parametrisation based on the EEDL data library.
|
||||
Good description from 1 KeV to 100 GeV.
|
||||
@@ -204,11 +211,12 @@ msc: Tables of transport mean free paths.
|
||||
Air 0.99
|
||||
H2liquid 0.99
|
||||
Water 3.2733
|
||||
liquidArgon 3.7293
|
||||
Aluminium 6.3003
|
||||
Iron 10.422
|
||||
Lead 8.9769
|
||||
Uranium 11.54
|
||||
liquidArgon 3.9154
|
||||
Aluminium 6.2979
|
||||
Silicon 5.8817
|
||||
Iron 10.524
|
||||
Lead 9.1135
|
||||
Uranium 11.689
|
||||
|
||||
hIoni: Knock-on electron cross sections .
|
||||
Good description above the mean excitation energy.
|
||||
@@ -241,6 +249,7 @@ Cut in energy
|
||||
Water 4.06 keV 3.27 keV
|
||||
liquidArgon 9.08 keV 3.98 keV
|
||||
Aluminium 9.99 keV 9.97 keV
|
||||
Silicon 10 keV 8.45 keV
|
||||
Iron 31.1 keV 43.3 keV
|
||||
Lead 124 keV 42.8 keV
|
||||
Uranium 143 keV 53.4 keV
|
||||
@@ -265,18 +274,18 @@ Start Run processing.
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 100
|
||||
User=70.06s Real=75.54s Sys=4.95s
|
||||
User=91.99s Real=97.75s Sys=5.73s
|
||||
|
||||
nb tracks/event neutral: 28.42 charged: 650.00
|
||||
nb steps/event neutral: 151.89 charged: 1278.63
|
||||
nb tracks/event neutral: 27.57 charged: 666.07
|
||||
nb steps/event neutral: 144.93 charged: 2194.99
|
||||
|
||||
nb of process calls per event:
|
||||
eIoni eBrem phot compt conv annihil
|
||||
1251.55 25.69 27.03 123.47 1.39 1.39
|
||||
eIoni eBrem conv annihil compt phot
|
||||
2168.94 24.47 1.58 1.58 117.36 25.99
|
||||
|
||||
--------- Ranecu engine status ---------
|
||||
Initial seed (index) = 0
|
||||
Current couple of seeds = 1391858697, 202982242
|
||||
Current couple of seeds = 1463312763, 65501812
|
||||
----------------------------------------
|
||||
G4 kernel has come to Quit state.
|
||||
Deletion of G4 kernel class start.
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1DetectorConstruction.hh,v 1.2 1999/12/15 14:48:52 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1DetectorMessenger.hh,v 1.2 1999/12/15 14:48:53 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1EventAction.hh,v 1.2 1999/12/15 14:48:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1EventActionMessenger.hh,v 1.2 1999/12/15 14:48:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1PhysicsList.hh,v 1.2 1999/12/15 14:48:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: Em1PhysicsListMessenger.hh,v 1.2 1999/12/15 14:48:55 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
// GEANT4 tag $Name: geant4-03-01 $
|
||||
//
|
||||
//
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user