Import Geant4 4.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 16:18:25 +02:00
parent 36c080dca6
commit 921d3b1cda
3990 changed files with 185376 additions and 82884 deletions
+903 -872
View File
File diff suppressed because it is too large Load Diff
+649
View File
@@ -0,0 +1,649 @@
Geant4 4.0 Release Notes
------------------------
14th December 2001
These are the main new features/fixes included in this release since the
last public release (for the detailed list of fixes/additions, please refer
to the related History files):
o Analysis:
--------
- Removed analysis module. AIDA 2.2 or higher should now be adopted.
o Configuration:
-------------
- New version of the 'Configure' script for installation.
- architecture.gmk:
o made Linux-g++ architecture the default G4SYSTEM.
o removed references to STLInterface.
- Added Linux-egcs for old Linux architectures based on egcs-1.1.2 compiler.
- Made Linux-g++ specific to gcc-2.95.2 compiler or higher.
- Made SUN-CC specific to CC-5.2 compiler, the default compiler on SUN
systems. CC-4.2 is no longer supported.
- Introduced environment variable G4VIS_NONE that, if set, no visualization
drivers are built and no vis libraries are built.
- Introduced environment variable G4UI_NONE that, if set, no UI
sessions nor any UI libraries are built.
- Re-engineered G4VIS variables: removed the need to specify environment
variables for visualization drivers which do not need external packages
or libraries, namely :
G4VIS_BUILD_DAWNFILE_DRIVER
G4VIS_BUILD_RAYTRACER_DRIVER
G4VIS_BUILD_VRMLFILE_DRIVER
G4VIS_BUILD_ASCIITREE_DRIVER
G4VIS_BUILD_GAGTREE_DRIVER
with associated G4VIS_USE environment variables:
G4VIS_USE_DAWNFILE
G4VIS_USE_RAYTRACER
G4VIS_USE_VRMLFILE
G4VIS_USE_ASCIITREE
G4VIS_USE_GAGTREE
- Re-engineered G4UI variables: removed the need to specify environment
variables for UI sessions which do not need external packages or
libraries, namely :
G4UI_BUILD_GAG_SESSION, G4UI_BUILD_TERMINAL_SESSION
with associated G4UI_USE environment variables:
G4UI_USE_GAG, G4UI_USE_TCSH, G4UI_USE_TERMINAL
- Removed references to STLInterface module in architecture.gmk
and architecture setups.
- analysis.gmk: added flags to use an AIDA 2.2 compliant analysis system.
o Event:
-----
- Added a new feature for the user to increase the number of waiting stacks.
- Added Beam option for generating accelerator beams.
- Added check whether the primary vertex is inside of the world volume.
- G4PrimaryParticle now stores the proper trackID.
- G4PrimaryTransformer: now considering case where a primary is
placed on the boundary of the world volume.
- G4GeneralParticleSource (GPS): implemented co-ordinates rotation for
angular distribution.
- Bug fix in G4EventManager in case G4_STORETRAJECTORY is off.
- Moved set method of position and time from G4ParticleGun to
G4VPrimaryGenerator so that G4HEPEvtInterface can accept the primary
vertex position
- Cleared compilation warnings on gcc-2.95.2.
- Fixes to comply with removal of STLInterface.
o Electromagnetic Processes (Low-energy):
--------------------------------------
- Major revision of G4LowEnergyCompton, G4LowEnergyRayleigh and
G4LowEnergyGammaConversion: re-implementation according to the design
iteration in the data domain.
- New version of data G4EMLOW0.5 required.
- New classes for shell cross sections for proton-induced fluorescence.
- First implementation of fluorescence process.
- Introduced PIXE in G4hLowEnergyIonisation.
- Significant physics an performance improvement in electron processes.
- Added method to deactivate fluorescence in ionisation if needed.
- Added protection in G4LowEnergyPhotoElectric to avoid generation of
photons causing negative energy balance.
- Fixed a problem of continuity of ion effective charge.
- Fixed energy conservation problems for small range cuts in
G4LowEnergyIonisation.
- Introduced changes to allow multiple cuts per material (temporary).
- Removed static inline methods to non inline.
- Cleared compilation warnings on gcc-2.95.2.
- Fixes to comply with removal of STLInterface.
o Electromagnetic Processes (Standard):
------------------------------------
- Implemented mechanism for storing and retrieving Physics Tables.
- Implemented new function ComputeRestrictedMeandEdx() for ionisation
processes.
- Implemented subcutoff delta-rays mechanism in G4VMuEnergyLoss.
- Suppression of the production threshold in phot, compt, conv, annih
processes.
- Removed obsolete "integral" module.
- Fixed old outstanding bug in G4EnergyLossTables, responsible for
causing negative energy deposit in some occasions.
- Introduced changes for reference-counted touchables.
- Introduced changes to allow multiple cuts per material (temporary).
- Removed static inline methods to non inline.
- Cleared compilation warnings on gcc-2.95.2.
- Fixes to comply with removal of STLInterface.
o General Processes, Parameterisation, Decay, Optical:
---------------------------------------------------
- management:
o Added Set/GetProcessManager() to G4VProcess and modified
G4ProcessManager::AddProcess() to invoke SetProcessManager().
o Fixed bug in copy constructor of G4ProcessManager.
- parameterisation(s):
o Added new classes describing X-ray transition radiation generation
inside radiators (i.e. just along incident particle track):
G4FoamXTRdEdx, G4GamDistrXTRdEdx, G4IrregularXTRdEdx,
G4PlateIrrGasXTRdEdx, G4RegularXTRdEdx, G4VXTRdEdx, G4VXrayTRadModel.
o Introduced changes in G4VClusterModel for reference-counted
touchables.
- optical:
o Changed process name for G4OpRayleigh, G4OpBoundary and G4OpAbsorption.
- Cleared compilation warnings on gcc-2.95.2 compiler.
- Fixes to comply with removal of STLInterface.
o Geometry:
--------
- Introduced geometry/verification module for checking geometry for
volumes overlaps.
- Magnetic field:
o Handling Electric Field and time-dependent fields.
o Introduced ability to set field per volume.
o New extended examples for field in examples/extended.
o Added method in G4ChordFinder to erase/reset the state of the
StepEstimate. This is unwanted internal state that was carried
between tracks and events as a side effect.
Calling this at the start of each track, it is now possible to
eliminate a reported problem of non-repeatability.
o Reduced maximum number of steps in G4MagIntegratorDriver.
o Protected verbose warnings with G4DEBUG_FIELD flag in G4ChordFinder
and G4MagIntegratorDriver.
o G4FieldManager: added fFieldChangesEnergy data member and get/set
methods.
o Fixed interface to virtual functions in the inheritance chain of
G4Field and subclasses.
- Management:
o Added definition of G4TouchableHandle.
o Added class G4SmartVoxelStat for statistics on geometry optimisation
of volumes through voxelisation.
o Modified G4GeometryManager to make use of G4SmartVoxelStat when run
in verbose mode:
- added argument to CloseGeometry() method for verbosity
- added ReportVoxelStats() method for reporting optimisation statistics.
o Initialise noNodes to 1 in G4SmartVoxelHeader::BuildNodes() in case
computed nodes for smartless happen to be zero.
- Volumes:
o Introduced G4GeometryMessenger associated to G4TransportationManager
with following commands defined:
- geometry/test/run - to start verification of geometry for overlapping
regions based on standard grid setup.
- geometry/test/line_test - to activate test along a specified
direction and position user defined.
- geometry/test/position - to specify position for the line_test.
- geometry/test/direction - to specify direction for the line_test.
- geometry/test/tolerance - to customise test precision.
- geometry/navigator/reset - for resetting navigation history
and position.
o Added handles for reference counting: G4GRSSolidHandle,
G4GRSVolumeHandle, G4TouchableHistoryHandle.
o Modified G4Navigator for reference counted touchables.
Introduced new methods CreateTouchableHistoryHandle() and
LocateGlobalPointAndUpdateTouchableHandle(...).
o G4PropagatorInField:
- Added thresholds for number of steps with get/Set methods.
- Modified choice of subsequent step size in case of zero steps.
- Added GetCurrentFieldManager() method.
- Added 'maximum' epsilon value.
o G4Navigator:
- Fixed mirroring of the input argument for global direction into
local variable in LocateGlobalPointAndSetup().
- Added ResetState() method (that only reset state - not stack).
- Added optional argument for direction to LocateGlobalPointAndSetup().
- State is now resetted when touchable history is used to
re-initialise it.
- Direction in LocateGlobalPointAndSetup() methods is now used.
- solids/Boolean:
o Introduced first implementation of classes G4ReflectedSolid and
G4ReflectionFactory for reflections of positioned volumes based
on simple CSG solids.
o Introduced G4BOOLDEBUG flag and relaxed G4Exception calls with
warnings to G4cerr for rare occurences of anomalous conditions.
- solids/BREPS:
o Fix in G4BSplineCurve::Init() for initialisation of point vector.
o G4BREPSolidPolyhedra.cc: fixed situation when phi1 = 0 dphi1 = 2*pi
and all RMINs = 0.0. In this case the inner planes are not created.
- solids/CSG:
o G4Sphere: bug fix in SurfaceNormal() for the case kNETheta.
- solids/STEP & STEPinterface:
o SdaiCONFIG_CONTROL_DESIGN.cc: cleaned up warnings issued on SUN-CC.
o dirobj.cc: restored usage of strdup() and forced non-ANSI setup.
o Fixes for compilation on gcc-2.96.98 and gcc-3.0.2 compilers.
o G4Axis2Placement3dCreator::CreateG4Geometry(): added check to
attribute validity for 'direction'.
- Cleared compilation warnings on gcc-2.95.2 compiler.
- Fixes to comply with removal of STLInterface.
o Global:
------
- Introduced G4ReferenceCountedHandle templated class.
- Modified G4Exception behavior, now setting G4StateManager to
"abort" state instead of aborting the application.
- Removed STLinterface module:
o renamed cstring[.h.icc] to G4String[.hh.icc].
o renamed ctoken.h to G4Tokenizer.hh.
o Graphics Representations:
------------------------
- Added G4Scale class.
- Added G4Polyline::transform.
- Cleared compilation warnings on gcc-2.95.2 compiler.
o Hadronic Processes:
------------------
- Doppler broadening of low energy neutron cross-sections on the fly,
enabling to simulate setups with mixed temperatures from 0K data files.
- First release of chiral invariant phase-cpace decay.
Usable now for electron and gamma nuclear reactions, and for pi-
and anti-proton absorption. Also a cascade back-end replacement for
string models.
- First release of specialized models for neutron and proton scattering
off Hydrogene, with particular focus on recoils.
- First release of the evaporation and utilities parts of the HETC
re-write.
- Optimized memory usage of the neutron_hp transport code (gained an
integer factor)
- Maximized robustness: system tests now at O(5000) LHC event of hadronic
energy flow; large-N tests with about a factor 100 more statistics.
- Addition of gamma nuclar and electro nuclear reaction cross-sections.
- Checking for tracking consistancy.
- Added possibility to activate models for single elements/materials in
one call
- Now calling ResetNumberOfInteractionLengthLeft() rather than
ClearNumberOfInteractionLengthLeft().
- Enabled logging in various places.
- Fix for final state rotation from z; this can be done in general in
the hadronic process framework layer.
- Added G4PhotoNuclearProcess, G4PositronNuclearProcess, and
G4ElectronNuclearProcess.
- Optimised sampling of gaussian distributions.
- Fixed a missing initialization of strangeness in the high energy
models.
- Fixed the particle production for low energy light ion reactions.
- Bug fix for beta+ decay in radioactive decay (corrected Q-value).
- Bug-fix in neutron induced isotope production code to allow for mixtures.
- Bug-fix in the vector hash to allow for re-use of the hash tables.
- Getting rid of the strstream portability problem between SUN and Linux.
- Some conservative programming in the sampling vector, to allow for
binary re-use of the hash.
- Minor bug fix on gamma distributions in very special cases (yields and
integral energy was correct, but distribution had a slight bias before).
- Fix on elastic scattering final states: getting rid of a bias that was
there for a particular data representation. Affects Xenon.
- Fix for inelastic n->b+m*gamma channel; for the case of 4 gammas in the
final state, the mass of the recoil was of by one under certain condition.
(Mildly relevant for activation when simulating earth.)
- Fix in Names finding for scattering off Hydrogen.
- New calculation for compound radius in coulomb barrier calculation.
- Reduced default vector size.
- Added delete structs to the vectors.
- Getting rid of the E-11ev gamma problem, and a few memory leaks
introduced in the STL transition.
- Templated qgs models with the type of participants to enable heavy ion
collision simulation; heavy ion participants still to be fixed for
impact of fermi momentum.
- qgs model now also for kaons.
- Enabled 'meson' splitting for incident gammas in quark gluon string
model.
- First tuning of pomeron trajectory and vertex parameters for incident
gammas, assuming vector meson dominance; based on total reaction
cross-section only; further improvement scheduled.
- Fixed minimum mass constraint on string fragmentation in the
presence of zeitgleiche multiple and multi pomoron exchange, and
diffractive collisions.
- Design iteration on string fragmentation.
- Traced an elusing charge non-conservation to isotopic composition of
Hydrogene, which is taken care of internally.
- Bug-fix for splitting Omega- into partons.
- Added transformation in pre-equilibrium decay.
- Enabled tracing of colour, spin and iso-spin in the parton.
- Some improvement on folding two resonance collision cross-section.
- Cleared most compilation warnings and minor fixes for gcc-2.95.2 compiler.
- Fixes to comply with removal of STLInterface.
o Materials:
---------
- G4Isotope, G4Element, G4Material: IndexInTable is now obtained
dynamically via GetIndex().
- Added new function G4Materials::SetChemicalFormula().
- Fixed problems erasing when deleting Isotope, Element or Material objects.
- Fixed memory leak in G4SandiaTable::ComputeMatSandiaMatrix(),
for deletion of temporary vectors Z, tmp1, tmp2.
- Moved definitions of G4IsotopeVector and G4ElementVector
G4ElementTable and G4MaterialTable to the appropriate headers.
- Removed static inline methods to non-inline.
- Cleared compilation warnings on gcc-2.95.2 compiler.
- Fixes to comply with removal of STLInterface.
o Particles:
---------
- Introduced G4NeutronBetaDecayChannel and added to G4Neutron.
- Allow MassDifference in case of nucleon decay.
- Fixed bug in copy constructor of G4DecayProduct.
- Introduced changes to allow multiple cuts per material (temporary).
- Removed static inline methods to non-inlined.
- Cleared compilation warnings and minor fixed for gcc-2.95.2 compiler.
- Fixes to comply with removal of STLInterface.
o Persistency:
-----------
- Fixes to comply with removal of STLInterface.
- Fixed porting problems on gcc-2.95.2.
o Run, Intercoms and Interfaces
-----------------------------
- run:
o Added new feature allowing to increase the number of waiting stacks.
o Added Set/GetApplyCuts methods in G4VUserPhysicsList.
o Added /run/particle/applyCuts command in G4UserPhysicsListMessenger.
o Added GetVersionString() method to G4RunManager.
o Added rndmSaveThisRun() and rndmSaveThisEvent() methods to G4RunManager.
o Added /random/ commands to G4RunMessenger.
o Fixed bugs in G4VUserPhysicsList.
- intercoms:
o Introduced feature for suppressing the program abortion due to
G4Exception.
o Introduced "Shell variables" for UI command handling. Added
class G4UIaliasList.
o Introduced loop execution of a macro file, recursive expansion of
aliased variables, and some other new features in G4UImanager and
related classes.
New commands: /control/shell, /control/foreach, /control/loop,
/control/createHTML.
o Added G4VGraphicsScene::AddPrimitive(const G4Scale&).
o Added G4VisManager::Draw(const G4Scale&,...).
o Modified G4UIbatch to display (G4cerr) the error message.
Comment lines are now displayed only for verbose level=2.
o Included correction for string parameter starting with a space.
o Fixed parsing of quoted (") tokens.
o Fixed a problem for commands with doubled slash.
- interfaces:
o Re-engineered G4UI variables:
changed GNUmakefile so that GAG, TERMINAL and TCSH built by default.
Nothing built if G4UI_NONE is set.
o G4VInteractorManager::RemoveDispatcher : change the remove logic in
order to fix a disfunctionning with vis/OpenInventor driver.
- Cleared compilation warnings on gcc-2.95.2 compiler.
- Fixes to comply with removal of STLInterface.
o Tracking & Track:
----------------
- track:
o Fixed bug for velocity in method G4Step::UpdateTrack().
o Implemented assignment operator for G4ParticleChangeForRadDecay.
o Fixed bug in assignment operator of G4Track.
o Removed static inline methods to non inline.
- tracking:
o Added protection for tracks placed outside the world volume
at the initial point.
o Correction to the use the touchable Handle for secondary tracks,
when it is available. Now the direction is used in locating a particle
(primary or secondary) in SetInitialStep(). This is in order to assist
in starting particles that are on/near-to boundaries in the correct
volume.
- Introduced changes for reference-counted touchables mechanism.
- Cleared compilation warnings on gcc-2.95.2 compiler.
- Fixes to comply with removal of STLInterface.
o Transportation:
--------------
- Motivated by the use case of an Electric Field, in order to achieve
reasonable accuracy in time integration, and to enable fields that
vary with the global time:
o G4Transportation now try obtaining the delta_time from G4FieldTrack.
- Introduced changes to G4Transportation for reference-counted touchables.
Added methods GetFreeTouchable() and SetTheOtherTouchableFree().
- Added protection in G4Transportation::AlongStepGPIL for messaging
"ResestStepEstimate" of G4ChordFinder for the case there is no global
field.
o Visualization:
-------------
- Introduced new HepRep graphics driver.
- Removed the need to specify environment variables for visualization
drivers which do not need external packages or libraries.
- Removed old-style commands.
- Added commands:
o /vis/scene/add/scale
o /vis/viewer/flush = refresh + update.
o /vis/viewer/set/upThetaPhi and upVector.
o refresh|flush option to /vis/scene/notifyHandlers.
- Moved /vis/viewer/lights and viewpoint to /vis/viewer/set.
- Added G4ScaleModel.
- Added G4VModel::SetExtent(const G4VisExtent&).
- Added G4VisManager::Draw(const G4Scale&,...).
- Added template graphics system XXX.
- Re-implemented verbosity control. Output statements wherever possible
are controlled by the verbosity in a simple graded message scheme.
- Improved auto-refreshing.
- Force rebuild of graphics "stores" (graphical databases) and,
if auto-refresh is true, refresh of all views
(/vis/scene/notifyHandlers) after an addition to scene.
- Eliminated view parameters from G4VisManager.
Paramenters can be copied from one view to another with:
/vis/viewer/set/all
- Updated G4RTJpegMaker for porting Windows systems.
- OpenInventor : move HEPVis/SoWindow under vis/OpenInventor/G4SoWindow
to prepare HEPVis/6.0. (HEPVis/SoWindow will disappear from HEPVis/6.0).
- Fixed crash in optimised mode: added Initialise() to viewers so
that windows are opened after viewers are fully constructed.
- Corrected mistake which could cause crash if user specified a
non-existent scene handler in /vis/sceneHandler/remove.
- Fix for replica rotation matrix. It Fixes observed crashes in replica
tracking with visualisation.
- Fixed bug in G4VSceneHandler::AddPrimitive(const G4Scale&).
- Fixed bug in G4VisManager::EndOfEvent.
- Added README.quick, a quick installation guide.
- Improved verbosity guidance and READMEs.
- Cleared compilation warnings on gcc-2.95.2 compiler.
- Fixes to comply with removal of STLInterface.
o G4toG4 Tool:
-----------
- Implemented reflection of CSG solids through G4ReflectionFactory
class and G4ReflectedSolid. Added G3G4_NO_REFLECTION flag to exclude
it if needed for cases not yet covered.
- Added limited support for MANY volumes through adoption of boolean solids.
- Changed G3Division::CreatePVReplica() to return a G4PhysicalVolumesPair.
- Cleared compilation warnings on gcc-2.95.2 compiler.
- Fixes to comply with removal of STLInterface.
o Examples:
--------
- Novice:
o updated visualization macros.
o updated vis-managers.
- Extended:
o new electromagnetic example "TestEm10" for exercising
specific parameterisation models.
o new examples for electro-magnetic field: field01, field02, field03.
o updated vis-managers.
- Advanced:
o underground_physics: new example for simulation of an underground
dark matter experiment.
o xray_fluorescence: new simulation setup for the study the elemental
composition of a planet through the measurement of the X-rays emitted.
o new improved versions of existing advanced applications.
- Cleared most compilation warnings on gcc-2.95.2 compiler.
- Fixes to comply with removal of STLInterface.
- Updated reference outputs.
----------------------------------------------------------------------------
Technical Notes
---------------
o Geant4 4.0 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.
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.7, C++ 5.2 Patch 109508-03.
o Linux, gcc 2.95.2, egcs-2.91.66 (egcs 1.1.2).
This configuration was tested with the RedHat 6.1 distribution, but
versions of Geant4 have also been compiled successfully on more recent
RedHat, Debian and Suse distributions.
o NT 4.0 (Service Pack 4) or Windows-2000 and Cygnus Tools b20 with:
Visual C++ 6.0 Service Pack 5
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 HP 10.20, aCC C++ B3910B A.01.23
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 4.0 requires the installation of CLHEP.
See <A href="http://wwwinfo.cern.ch/asd/lhc++/INSTALLATION/clhep.html">
CLHEP</A>. Tests have been performed with CLHEP 1.7.0.0.
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 4.0 coworks with ANAPHE 3.6.5 and components included therein:
Objectivity 6.1.3
HepODBMS 0.3.3.1
CLHEP 1.7.0.0
For more information about ANAPHE 3.6.5, see:
<A href="http://cern.ch/anaphe">ANAPHE</A>
3. The Standard Template Library
--------------------------------
Native versions of STL have been tested on the following platforms:
Windows/2000, Linux, DEC and SUN.
NOTES:
- Platform specific setup:
o DEC: Native STL is required for ISO/ANSI setup.
o SUN: Native STL is required for ISO/ANSI setup (CC 5.2 only).
o Linux: Native STL is required (non ISO/ANSI setup for egcs compiler only).
o W2000: Native STL and ISO/ANSI setup required (VC++ 6.0).
4. Persistency
--------------
Platform
--------
Persistency in Geant4 4.0 release is tested on the following
platforms:
G4SYSTEM OS C++ compiler HepODBMS Objectivity
--------- ----------- ------------ --------- -----------
SUN-CC SunOS 5.7 CC 5.2 0.3.3.1 6.1.3 (*)
Linux-g++ RedHat 6.1 gcc-2.95.2 0.3.3.1 6.1.3 (#)
(*) HepODBMS header files must be prepared with "ooddlx -noline"
option. See below.
(#) See g4odbms_setup[.sh.csh] in example PersistentEx01 in
'geant4/examples/extended/persistency' for example setup scripts.
Known Problems
--------------
- There are several warning messages on some platforms during the
installation of the libraries and the compilation of the examples.
Most of them can be safely ignored. It is annoying but hard to get
rid of them due to various reasons.
- If you are using Solaris7 CC compiler 5.2 (SUN-CC) with the original
release version, persistent header files has to be generated by
ooddlx with "-noline" option due to a bug in C++ compiler.
This workaround applies not only to Geant4 Persistency category but
also to HepODBMS, and the user defined ddl files as well.
This is the default for SUN-CC configuration for Geant4 GNUmakefiles.
When this option is turned on, it removes the "#line" directive of
the file name and the line number of the original .ddl file. As a
consequences, C++ compiler no longer "tells" the correct file name
and the line number of the .ddl file if compiler error occurs. When
you design a persistent object with Geant4 GNUmakefiles and get the
compiler errors, try to identify the problem by first looking into
the header file generated by ooddlx, and then locate the source of
the problem by looking into the .ddl file.
A patch to the compiler is released from SUN, and you may remove this
option by commenting out the line:
G4DDLX_FLAGS += -noline
in the file $G4INSTALL/config/sys/SUN-CC.gmk.
You can check the SUN-CC patch by the following command:
% what `which CC` | grep RELEASE
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.
+9 -24
View File
@@ -1,21 +1,18 @@
# $Id: G4UI_BUILD.gmk,v 1.1 1999/01/07 15:58:31 gunter Exp $
# $Id: G4UI_BUILD.gmk,v 1.2 2001/08/11 22:36:47 johna Exp $
# -------------------------------------------------------------
# Interfaces-specific CPPFLAGS for BUILD phase.
# John Allison, 6th July 1998.
# Include this *after* architecture.gmk
# Include this *before* interactivity.gmk
########################### interfaces/basic #######################
ifndef G4UI_BUILD_TERMINAL_SESSION
G4UI_BUILD_TERMINAL_SESSION = 1
endif
ifdef G4UI_BUILD_TERMINAL_SESSION
ifndef G4UI_NONE
G4UI_BUILD = 1
G4UI_BUILD_BASIC_SESSION = 1
CPPFLAGS += -DG4UI_BUILD_TERMINAL_SESSION
endif
CPPFLAGS += -DG4UI_BUILD
# The following sessions are built by default (no environment
# variables needed)...
# GAG_SESSION
# TERMINAL_SESSION
ifdef G4UI_BUILD_XM_SESSION
G4UI_BUILD = 1
@@ -40,13 +37,6 @@ ifdef G4UI_BUILD_WIN32_SESSION
CPPFLAGS += -DG4UI_BUILD_WIN32_SESSION
endif
########################### interfaces/GAG #######################
ifdef G4UI_BUILD_GAG_SESSION
G4UI_BUILD = 1
CPPFLAGS += -DG4UI_BUILD_GAG_SESSION
endif
########################### interfaces/OPACS #######################
ifdef G4UI_BUILD_WO_SESSION
@@ -60,10 +50,5 @@ endif
############################################################################
ifdef G4UI_BUILD
CPPFLAGS += -DG4UI_BUILD
endif
endif #G4UI_NONE
+40 -32
View File
@@ -1,31 +1,53 @@
# $Id: G4UI_USE.gmk,v 1.2 2000/11/21 10:15:22 maire Exp $
# $Id: G4UI_USE.gmk,v 1.5 2001/11/13 16:00:44 johna Exp $
# -------------------------------------------------------------
# GNUmakefile for CPPFLAGS for interfaces USE phase.
# John Allison, 6th July 1998.
########################### interfaces/basic #######################
ifndef G4UI_NONE
UILIBS :=
ifndef G4UI_USE_TERMINAL
G4UI_USE_TERMINAL = 1
endif
# Sessions not needing external packages or libraries. These
# libraries are always built (see G4UI_BUILD.gmk) and linked so the
# user can instantiate one of these sessions without rebuilding the
# libraries. For backwards compatibility with user code, as typified
# by geant4/examples main programs, the C-pre-processor variables
# corresponding to the original environment variables are set, but
# there is no dependency in the Geant4 kernel; a user may instantiate
# a session from this list without setting any environment variables.
# However, if he/she sets no environment variables, then the
# C-pre-processor variable G4UI_USE_TERMINAL is set by default, although
# there is no need to use it.
CPPFLAGS += -I$(G4BASE)/interfaces/basic/include
UILIBS += -lG4UIbasic
CPPFLAGS += -I$(G4BASE)/interfaces/common/include
UILIBS += -lG4UIcommon
CPPFLAGS += -I$(G4BASE)/interfaces/GAG/include
UILIBS += -lG4UIGAG
ifdef G4UI_USE_TERMINAL
G4UI_USE = 1
G4UI_USE_BASIC = 1
G4UI_USE = 1
CPPFLAGS += -DG4UI_USE_TERMINAL
endif
ifdef G4UI_USE_TCSH
G4UI_USE = 1
G4UI_USE_BASIC = 1
G4UI_USE = 1
CPPFLAGS += -DG4UI_USE_TCSH
endif
ifdef G4UI_USE_GAG
G4UI_USE = 1
CPPFLAGS += -DG4UI_USE_GAG
endif
# Other sessions: environment variables *must* be used to control the build
# and the usage, becuase they need external packages or libraries.
ifdef G4UI_USE_XM
G4UI_USE = 1
G4UI_USE_BASIC = 1
G4INTY_USE_XT = 1
INC_XM = 1
LOAD_XM = 1
@@ -34,7 +56,6 @@ endif
ifdef G4UI_USE_XAW
G4UI_USE = 1
G4UI_USE_BASIC = 1
G4INTY_USE_XT = 1
INC_XAW = 1
LOAD_XAW = 1
@@ -42,30 +63,15 @@ ifdef G4UI_USE_XAW
endif
ifdef G4UI_USE_WIN32
G4UI_USE = 1
G4UI_USE_BASIC = 1
G4UI_USE = 1
G4INTY_USE_WIN32 = 1
CPPFLAGS += -DG4UI_USE_WIN32
endif
ifdef G4UI_USE_BASIC
CPPFLAGS += -I$(G4BASE)/interfaces/basic/include
UILIBS += -lG4UIbasic
endif
########################### interfaces/GAG #######################
ifdef G4UI_USE_GAG
G4UI_USE = 1
CPPFLAGS += -DG4UI_USE_GAG
CPPFLAGS += -I$(G4BASE)/interfaces/GAG/include
UILIBS += -lG4UIGAG
endif
########################### interfaces/OPACS #######################
ifdef G4UI_USE_WO
G4UI_USE = 1
G4UI_USE = 1
G4INTY_USE_XT = 1
CPPFLAGS += -DG4UI_USE_WO
CPPFLAGS += -I$(G4BASE)/interfaces/OPACS/include
@@ -76,10 +82,12 @@ endif
########################### interfaces/XVT - not currently implemented #####
########################### and finally... #######################
##################### Default to TERMINAL if no environment variables set ##
##################### (No need actually to use it - see above.) ############
ifdef G4UI_USE
CPPFLAGS += -DG4UI_USE
CPPFLAGS += -I$(G4BASE)/interfaces/common/include
UILIBS += -lG4UIcommon
ifndef G4UI_USE
G4UI_USE = 1
CPPFLAGS += -DG4UI_USE_TERMINAL
endif
endif #G4UI_NONE
+14 -36
View File
@@ -1,29 +1,28 @@
# $Id: G4VIS_BUILD.gmk,v 1.5 2001/06/19 20:38:12 johna Exp $
# $Id: G4VIS_BUILD.gmk,v 1.11 2001/11/06 13:16:39 johna Exp $
# -------------------------------------------------------------
# Visualization-specific CPPFLAGS for BUILD phase.
# John Allison, 24th January 1998.
# Include this *after* architecture.gmk
# Include this *before* interactivity.gmk
ifndef G4VIS_NONE
G4VIS_BUILD = 1
CPPFLAGS += -DG4VIS_BUILD
# The following drivers are built by default (no environment
# variables needed)...
# G4VIS_BUILD_ASCIITREE_DRIVER
# G4VIS_BUILD_DAWNFILE_DRIVER
# G4VIS_BUILD_GAGTREE_DRIVER
# G4VIS_BUILD_HEPREPFILE_DRIVER
# G4VIS_BUILD_RAYTRACER_DRIVER
# G4VIS_BUILD_VRMLFILE_DRIVER
# For DAWN and DAWNFILE drivers
ifdef G4VIS_BUILD_DAWN_DRIVER
G4VIS_BUILD = 1
CPPFLAGS += -DG4VIS_BUILD_DAWN_DRIVER
endif
ifdef G4VIS_BUILD_DAWNFILE_DRIVER
G4VIS_BUILD = 1
CPPFLAGS += -DG4VIS_BUILD_DAWNFILE_DRIVER
endif
# End of DAWN and DAWNFILE drivers
ifdef G4VIS_BUILD_RAYTRACER_DRIVER
G4VIS_BUILD = 1
CPPFLAGS += -DG4VIS_BUILD_RAYTRACER_DRIVER
endif
ifdef G4VIS_BUILD_OPACS_DRIVER
G4VIS_BUILD = 1
G4INTY_BUILD_XT = 1
CPPFLAGS += -DG4VIS_BUILD_OPACS_DRIVER
INC_OPACS = 1
@@ -46,7 +45,6 @@ ifdef G4VIS_BUILD_OPENGLXM_DRIVER
CPPFLAGS += -DG4VIS_BUILD_OPENGLXM_DRIVER
endif
ifdef G4VIS_BUILD_OPENGL_DRIVER
G4VIS_BUILD = 1
INC_GL = 1
CPPFLAGS += -DG4VIS_BUILD_OPENGL_DRIVER
endif
@@ -62,32 +60,12 @@ ifdef G4VIS_BUILD_OIWIN32_DRIVER
CPPFLAGS += -DG4VIS_BUILD_OIWIN32_DRIVER
endif
ifdef G4VIS_BUILD_OI_DRIVER
G4VIS_BUILD = 1
INC_IV = 1
CPPFLAGS += -DG4VIS_BUILD_OI_DRIVER
endif
# For VRML and VRMLFILE drivers
ifdef G4VIS_BUILD_VRML_DRIVER
G4VIS_BUILD = 1
CPPFLAGS += -DG4VIS_BUILD_VRML_DRIVER
endif
ifdef G4VIS_BUILD_VRMLFILE_DRIVER
G4VIS_BUILD = 1
CPPFLAGS += -DG4VIS_BUILD_VRMLFILE_DRIVER
endif
# End of VRML and VRMLFILE drivers
ifdef G4VIS_BUILD_ASCIITREE_DRIVER
G4VIS_BUILD = 1
CPPFLAGS += -DG4VIS_BUILD_ASCIITREE_DRIVER
endif
ifdef G4VIS_BUILD_GAGTREE_DRIVER
G4VIS_BUILD = 1
CPPFLAGS += -DG4VIS_BUILD_GAGTREE_DRIVER
endif
ifdef G4VIS_BUILD
CPPFLAGS += -DG4VIS_BUILD
endif
endif #G4VIS_NONE
+46 -60
View File
@@ -1,35 +1,44 @@
# $Id: G4VIS_USE.gmk,v 1.5 2001/06/19 20:38:31 johna Exp $
# $Id: G4VIS_USE.gmk,v 1.12 2001/12/03 08:09:48 barrand Exp $
# -------------------------------------------------------------
# GNUmakefile for CPPFLAGS for visualization USE phase.
# John Allison, 24th January 1998.
ifndef G4VIS_NONE
ifndef VISLIBS
VISLIBS :=
endif
ifdef G4VIS_USE_DAWN
G4VIS_USE_DAWN_OR_DAWNFILE = 1
CPPFLAGS += -DG4VIS_USE_DAWN
endif
ifdef G4VIS_USE_DAWNFILE
G4VIS_USE_DAWN_OR_DAWNFILE = 1
CPPFLAGS += -DG4VIS_USE_DAWNFILE
endif
ifdef G4VIS_USE_DAWN_OR_DAWNFILE
G4VIS_USE = 1
CPPFLAGS += -I$(G4BASE)/visualization/FukuiRenderer/include
VISLIBS += -lG4FR
endif
# Not needing external packages or libraries...
# Set old USE C-pre-processor flags for backwards compatibility of user code...
ifdef G4VIS_USE_RAYTRACER
G4VIS_USE = 1
CPPFLAGS += -DG4VIS_USE_RAYTRACER
CPPFLAGS += -I$(G4BASE)/visualization/RayTracer/include
VISLIBS += -lG4RayTracer
CPPFLAGS += -DG4VIS_USE_DAWNFILE
CPPFLAGS += -I$(G4BASE)/visualization/FukuiRenderer/include
VISLIBS += -lG4FR
CPPFLAGS += -DG4VIS_USE_HEPREPFILE
CPPFLAGS += -I$(G4BASE)/visualization/HepRep/include
VISLIBS += -lG4visHepRep
CPPFLAGS += -DG4VIS_USE_RAYTRACER
CPPFLAGS += -I$(G4BASE)/visualization/RayTracer/include
VISLIBS += -lG4RayTracer
CPPFLAGS += -DG4VIS_USE_VRMLFILE
CPPFLAGS += -I$(G4BASE)/visualization/VRML/include
VISLIBS += -lG4VRML
CPPFLAGS += -DG4VIS_USE_ASCIITREE
CPPFLAGS += -DG4VIS_USE_GAGTREE
CPPFLAGS += -I$(G4BASE)/visualization/Tree/include
VISLIBS += -lG4Tree
ifdef G4VIS_USE_DAWN
CPPFLAGS += -DG4VIS_USE_DAWN
# CPPFLAGS += -I... and VISLIBS += set above.
endif
ifdef G4VIS_USE_OPACS
G4VIS_USE = 1
INC_OPACS = 1
LOAD_OPACS = 1
CPPFLAGS += -DG4VIS_USE_OPACS
@@ -50,7 +59,6 @@ ifdef G4VIS_USE_OPENGLXM
LOAD_XM = 1
endif
ifdef G4VIS_USE_OPENGL
G4VIS_USE = 1
CPPFLAGS += -DG4VIS_USE_OPENGL
CPPFLAGS += -I$(G4BASE)/visualization/OpenGL/include
VISLIBS += -lG4OpenGL
@@ -69,7 +77,6 @@ ifdef G4VIS_USE_OIWIN32
CPPFLAGS += -DG4VIS_USE_OIWIN32
endif
ifdef G4VIS_USE_OI
G4VIS_USE = 1
CPPFLAGS += -DG4VIS_USE_OI
CPPFLAGS += -I$(G4BASE)/visualization/OpenInventor/include
VISLIBS += -lG4OpenInventor
@@ -78,47 +85,26 @@ ifdef G4VIS_USE_OI
endif
ifdef G4VIS_USE_VRML
G4VIS_USE_VRML_OR_VRMLFILE = 1
CPPFLAGS += -DG4VIS_USE_VRML
endif
ifdef G4VIS_USE_VRMLFILE
G4VIS_USE_VRML_OR_VRMLFILE = 1
CPPFLAGS += -DG4VIS_USE_VRMLFILE
endif
ifdef G4VIS_USE_VRML_OR_VRMLFILE
G4VIS_USE = 1
CPPFLAGS += -I$(G4BASE)/visualization/VRML/include
VISLIBS += -lG4VRML
# CPPFLAGS += -I... and VISLIBS += set above.
endif
ifdef G4VIS_USE_ASCIITREE
G4VIS_USE_TREE = 1
CPPFLAGS += -DG4VIS_USE_ASCIITREE
endif
ifdef G4VIS_USE_GAGTREE
G4VIS_USE_TREE = 1
CPPFLAGS += -DG4VIS_USE_GAGTREE
endif
ifdef G4VIS_USE_TREE
G4VIS_USE = 1
CPPFLAGS += -I$(G4BASE)/visualization/Tree/include
VISLIBS += -lG4Tree
endif
########################### and finally... #######################
ifdef G4VIS_USE
ifdef G4_SOLVE_TEMPLATES
G4_SOLVE_VIS_TEMPLATES = 1
endif
ifdef GNU_GCC
G4_SOLVE_VIS_TEMPLATES = 1
endif
ifdef G4_SOLVE_VIS_TEMPLATES
CPPFLAGS += -DG4_SOLVE_VIS_TEMPLATES
endif
CPPFLAGS += -DG4VIS_USE
CPPFLAGS += -I$(G4BASE)/visualization/management/include
CPPFLAGS += -I$(G4BASE)/visualization/modeling/include
VISLIBS += -lG4vis_management
VISLIBS += -lG4modeling
G4VIS_USE = 1
CPPFLAGS += -DG4VIS_USE
ifdef G4_SOLVE_TEMPLATES
G4_SOLVE_VIS_TEMPLATES = 1
endif
ifdef GNU_GCC
G4_SOLVE_VIS_TEMPLATES = 1
endif
ifdef G4_SOLVE_VIS_TEMPLATES
CPPFLAGS += -DG4_SOLVE_VIS_TEMPLATES
endif
CPPFLAGS += -I$(G4BASE)/visualization/management/include
CPPFLAGS += -I$(G4BASE)/visualization/modeling/include
VISLIBS += -lG4vis_management
VISLIBS += -lG4modeling
endif # G4VIS_NONE
+175 -2
View File
@@ -1,5 +1,5 @@
$Id: History,v 1.149 2001/06/29 12:49:25 gcosmo Exp $
$Name: $
$Id: History,v 1.177 2001/12/14 08:37:39 gcosmo Exp $
$Name: geant4-04-00 $
-------------------------------------------------------------------
@@ -18,6 +18,179 @@ committal in the CVS repository !
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
10th December 2001 Gabriele Cosmo (config-V03-02-15)
- architecture.gmk:
o updated list of supported compilers
o removed obsolete setup for STL ObjectSpace and STLport for Win/VC++.
- binmake.gmk: activated mechanism for using $G4INCLUDE effectively for
building examples/applications. Currently activated only for global compound
libraries; for granular libraries it requires re-engineering of liblist,
feature which will be added in future.
This mechanism allows to considerably reduce the compilation/linking command
length and the number of -I options fed to the compiler.
- Added G4PROFILE options to Linux-g++ and Linux-egcs setups.
- Removed binmake.EXTRALIBS.README, now part of User's Guide.
- Updated sources for Configure installation script.
3rd December 2001 Guy Barrand (config-V03-02-14)
- G4VIS_USE.gmk : -lG4HepRep replaced by -lG4visHepRep.
29th November 2001 Gabriele Cosmo (config-V03-02-13)
- Removed SUN-CC5.gmk configuration file. Now replaced by SUN-CC architecture
21st Novemver 2001 Gabriele Cosmo (config-V03-02-12)
- On top of "config-V03-02-11", added paths in binmake.gmk including
new hadronic models for cascade, CHIPS and coherent_elastic.
Does not include changes to analysis.gmk.
19th November 2001 Guy Barrand
- analysis.gmk : then remove all system specifc flags, have
only the AIDA ones. Have G4ANALYSIS_USE to drive the insertion of
CPP and libs in the Geant4 GNUmakefile system.
19th November 2001 John Allison (config-V03-02-11)
- Does not include Guy's changes of 16rd November.
- Re-instated creation of CPPFLAGS (see 6th November) but conditonal
on existence of corresponding environment variable. If no environmet
variable is set, CPPFLAGS += -DG4UI_USE_TERMINAL.
16rd November 2001 Guy Barrand
- analysis.gmk : add flags to use an AIDA 2.2 compliant analysis system.
6th November 2001 John Allison (config-V03-02-10)
- Removed CPPFLAGS += -DG4UI_USE_GAG -DG4UI_USE_TCSH -DG4UI_USE_TERMINAL.
6th November 2001 John Allison (config-V03-02-09)
- Removed references to HepRep, added code for HepRepFile, thus
needed by vis-V03-02-15.
23rd October 2001 Gabriele Cosmo (config-V03-02-08)
- Merged changes in "config-V03-02-07" for removal of STLInterface.
22nd October 2001 Gabriele Cosmo (config-V03-02-06b)
- binmake.gmk: added include path for geometry/verification
according to tag "geometry-V03-02-01".
1st October 2001 Gabriele Cosmo (config-V03-02-06a)
- binmake.gmk: removed include path for processes/electromagnetic/integral
according to tag "em-V03-02-02".
30th September 2001 Gabriele Cosmo (config-V03-02-07)
- Removed references to STLInterface module in architecture.gmk
and architecture setups. Coworks with tag "global-V03-02-03" where
STLInterface module has been removed.
29th August 2001 John Allison/Joseph Perl (config-V03-02-06)
- Needed by vis-V03-02-14.
- First developers release of HepRep graphics driver.
27th August 2001 John Allison
- Tidied HepRep configuration in G4VIS*, moving stuff to interactivity.gmk.
24th August 2001 Joseph Perl (config-V03-02-05)
- Introduced HepRep graphics driver
11th August 2001 John Allison (config-V03-02-04)
- Re-engineered G4UI variables. Coworks with interfaces-V03-02-00.
- Introduced environment variable G4UI_NONE that, if set, no UI
sessions nor any UI libraries are built, not even libG4UIbasic.a nor
libG4UIcommon.a. (This would only happen in a pure batch job or,
perhaps, in a user framework having its own UI system.)
- Removed the need to specify environment variables for UI sessions
which do not need external packages or libraries, namely :
G4UI_BUILD_GAG_SESSION
G4UI_BUILD_TERMINAL_SESSION
with associated G4UI_USE environment variables:
G4UI_USE_GAG
G4UI_USE_TCSH
G4UI_USE_TERMINAL
In other words, the above environment variables become redundant and are
ignored.
For backwards compatibility, unless G4UI_NONE is set, the corresponding
G4UI_USE C-pre-processor variables are automatically set. Also, the
C-pre-processor variables G4UI_BUILD and G4UI_USE are set.
- As before, environment variables for other sessions still need positive
setting of their G4UI_BUILD and G4UI_USE environment variables. In this
category are:
G4UI_BUILD_WIN32_SESSION
G4UI_BUILD_WO_SESSION
G4UI_BUILD_XAW_SESSION
G4UI_BUILD_XM_SESSION
with associated G4UI_USE environment variables:
G4UI_USE_WIN32
G4UI_USE_WO
G4UI_USE_XAW
G4UI_USE_XM
- Note: The user must still instantiate and SessionStart only *one*
session, but if it is to be one in the category needing external
packages or libraries, the corresponding G4UI_USE must be set to
trigger inclusion oflibraries. Otherwise the user need not set any
environment variables.
3rd August 2001 Gabriele Cosmo (config-V03-02-03)
- architecture.gmk:
o updated list of supported systems/compilers.
o made Linux-g++ architecture the default G4SYSTEM. Replaced SUN-CC.
- Added SUN-CC4.gmk for old SUN architectures based on CC-4.2 compiler.
- Added Linux-egcs for old Linux architectures based on egcs-1.1.2 compiler.
- Made SUN-CC.gmk a copy of SUN-CC5.gmk (kept for backward compatibility,
will be removed soon). CC-5.2 compiler is now the default on SUN systems.
- Made Linux-g++.gmk specific to gcc-2.95.2 compiler, from now on the default
compiler on Linux systems.
1st August 2001 Gabriele Cosmo (config-V03-02-02)
- Included recent updates to scripts sources for 'Configure'.
27th July 2001 John Allison (config-V03-02-01)
- Introduced environment variable G4VIS_NONE that, if set, no visualization
drivers are built and no vis libraries are built, not even
libG4vis_management. (libG4modeling is still built.) The C-pre-processor
variables G4VIS_BUILD and G4VIS_USE are *not* set.
- Removed the need to specify environment variables for visualization drivers
which do not need external packages or libraries, namely :
G4VIS_BUILD_DAWNFILE_DRIVER
G4VIS_BUILD_RAYTRACER_DRIVER
G4VIS_BUILD_VRMLFILE_DRIVER
G4VIS_BUILD_ASCIITREE_DRIVER
G4VIS_BUILD_GAGTREE_DRIVER
with associated G4VIS_USE environment variables:
G4VIS_USE_DAWNFILE
G4VIS_USE_RAYTRACER
G4VIS_USE_VRMLFILE
G4VIS_USE_ASCIITREE
G4VIS_USE_GAGTREE
In other words, the above environment variables become redundant and are
ignored.
For backwards compatibility, unless G4VIS_NONE is set, the corresponding
G4VIS_USE C-pre-processor variables are automatically set. Also, the
C-pre-processor variables G4VIS_BUILD and G4VIS_USE are set.
- As before, environment variables for other drivers still need positive
setting of their G4VIS_BUILD and G4VIS_USE environment variables. In this
category are:
G4VIS_BUILD_DAWN_DRIVER
G4VIS_BUILD_OPACS_DRIVER
G4VIS_BUILD_OPENGLX_DRIVER
G4VIS_BUILD_OPENGLWIN32_DRIVER
G4VIS_BUILD_OPENGLXM_DRIVER
G4VIS_BUILD_OIX_DRIVER
G4VIS_BUILD_OIWIN32_DRIVER
G4VIS_BUILD_VRML_DRIVER
with associated G4VIS_USE environment variables:
G4VIS_USE_DAWN
G4VIS_USE_OPACS
G4VIS_USE_OPENGLX
G4VIS_USE_OPENGLWIN32
G4VIS_USE_OPENGLXM
G4VIS_USE_OIX
G4VIS_USE_OIWIN32
G4VIS_USE_VRML
In this case G4VIS_NONE must *not* be set.
- Added binmake.EXTRALIBS.README.
5th July 2001 Youhei Morita (config-V03-02-00)
- Linux-g++.gmk: Use -pedantic (G.Cosmo)
- Linux-g++.gmk, SUN-CC.gmk, SUN-CC5.gmk: added -DG4std in G4DDLX_FLAGS
29th June 2001 Gabriele Cosmo (config-V03-01-10)
- Updated source scripts for 'Configure'.
+4 -141
View File
@@ -3,150 +3,13 @@
# Analysis variables...
#
# -----------------------------------
ANALYSISLIBS :=
ifdef G4ANALYSIS_USE
CPPFLAGS += -DG4ANALYSIS_USE
G4ANALYSIS_BUILD = 1
endif
ifdef G4ANALYSIS_BUILD
CPPFLAGS += -DG4ANALYSIS_BUILD
INC_ANALYSIS = 1
LIB_ANALYSIS = 1
endif
# ------------- Lab -----------------
ifdef G4ANALYSIS_USE_LAB
CPPFLAGS += -DG4ANALYSIS_USE_LAB
CPPFLAGS += -DG4ANALYSIS_USE
G4ANALYSIS_BUILD_LAB = 1
endif
ifdef G4ANALYSIS_BUILD_LAB
CPPFLAGS += -DG4ANALYSIS_BUILD
CPPFLAGS += -DG4ANALYSIS_BUILD_LAB
INC_ANALYSIS = 1
LIB_ANALYSIS = 1
INC_LAB = 1
LIB_LAB = 1
endif
# ------------- jas -----------------
ifdef G4ANALYSIS_USE_JAS
CPPFLAGS += -DG4ANALYSIS_USE_JAS
CPPFLAGS += -DG4ANALYSIS_USE
G4ANALYSIS_BUILD_JAS = 1
endif
ifdef G4ANALYSIS_BUILD_JAS
CPPFLAGS += -DG4ANALYSIS_BUILD
CPPFLAGS += -DG4ANALYSIS_BUILD_JAS
INC_ANALYSIS = 1
LIB_ANALYSIS = 1
INC_JAS = 1
LIB_JAS = 1
endif
# ------------- Lizard -----------------
ifdef G4ANALYSIS_USE_LIZARD
CPPFLAGS += -DG4ANALYSIS_USE_LIZARD
CPPFLAGS += -DG4ANALYSIS_USE
G4ANALYSIS_BUILD_LIZARD = 1
endif
ifdef G4ANALYSIS_BUILD_LIZARD
CPPFLAGS += -DG4ANALYSIS_BUILD
CPPFLAGS += -DG4ANALYSIS_BUILD_LIZARD
INC_ANALYSIS = 1
LIB_ANALYSIS = 1
INC_LIZARD = 1
LIB_LIZARD = 1
endif
# ------------- Else ---------------
ifdef G4ANALYSIS_NON_AIDA
CPPFLAGS += -DG4ANALYSIS_NON_AIDA
endif
# ------------- Hook packages -----------------
ANALYSISLIBS :=
#
ifdef INC_ANALYSIS
CPPFLAGS += -I$(G4BASE)/analysis/management/include
# AIDA interfaces :
ifdef G4ANALYSIS_AIDA
CPPFLAGS += -I$(G4ANALYSIS_AIDA)
endif
endif
#
ifdef LIB_LAB
ANALYSISLIBS += -lG4Lab
endif
ifdef LIB_JAS
ANALYSISLIBS += -lG4jas
endif
ifdef LIB_LIZARD
ANALYSISLIBS += -lG4Lizard
endif
ifdef LIB_ANALYSIS
ANALYSISLIBS += -lG4analysis_management
endif
#
# ------------- Lab -----------------
ifdef INC_LAB
CPPFLAGS += -I$(G4BASE)/analysis/Lab/include
CPPFLAGS += -I$(LIBROOT)/include -I$(HCLROOT)/include -I$(LABROOT)/include
CPPFLAGS += -DHasRio
ifdef G4ANALYSIS_LAB_VISUALIZATION
CPPFLAGS += -DG4ANALYSIS_LAB_VISUALIZATION
CPPFLAGS += -I$(ONXROOT)/include
INC_XM = 1
endif
endif
#
ifdef LIB_LAB
ifdef G4ANALYSIS_LAB_VISUALIZATION
ANALYSISLIBS += $(ONXROOT)/$(ONXCONFIG)/XmUI.o
ANALYSISLIBS += -L$(ONXROOT)/$(ONXCONFIG) -lOnXInventorXt
ANALYSISLIBS += -L$(HEPVISROOT)/$(HEPVISCONFIG) -lHEPVisXt
ANALYSISLIBS += -L$(ONXROOT)/$(ONXCONFIG) -lOnXInventor
ANALYSISLIBS += -L$(ONXROOT)/$(ONXCONFIG) -lOnX
ANALYSISLIBS += -L$(EXPATROOT)/$(EXPATCONFIG) -lexpat
ANALYSISLIBS += -L$(SOFREEROOT)/$(SOFREECONFIG) -lSoFreeXt
ANALYSISLIBS += -L$(HEPVISROOT)/$(HEPVISCONFIG) -lHEPVis
ANALYSISLIBS += -L$(SOFREEROOT)/$(SOFREECONFIG) -lSoFree
LIB_XM = 1
LIB_GL = 1
endif
ANALYSISLIBS += -L$(LABROOT)/$(LABCONFIG) -lLab
ANALYSISLIBS += -L$(RIOGRANDEROOT)/$(RIOGRANDECONFIG) -lRioTree -lRioBed
ANALYSISLIBS += -L$(CINTROOT)/$(CINTCONFIG) -lcint
ANALYSISLIBS += -L$(HCLROOT)/$(HCLCONFIG) -lHCL
ANALYSISLIBS += -L$(MIDNIGHTROOT)/$(MIDNIGHTCONFIG) -lMidnight
ANALYSISLIBS += -L$(LIBROOT)/$(LIBCONFIG) -lLib
ANALYSISLIBS += $(DLDLIBS)
endif
#
# ------------- jas -----------------
ifdef INC_JAS
CPPFLAGS += -I$(G4BASE)/analysis/jas/include
CPPFLAGS += -I$(JDKHOME)/include -I$(JDKHOME)/include/linux
endif
#
ifdef LIB_JAS
ANALYSISLIBS += -L$(JDKHOME)/jre/lib/i386/classic -L$(JDKHOME)/jre/lib/i386/native_threads -ljvm -lhpi
endif
# ------------- Lizard -----------------
ifdef INC_LIZARD
CPPFLAGS += -I$(G4BASE)/analysis/Lizard/include
CPPFLAGS += -I$(LIZARDROOT)/include
endif
#
ifdef LIB_LIZARD
ANALYSISLIBS += -L$(LIZARDROOT)/lib -lAIDA_HTL -lT_Histoxx -lVector -lAIDA_Annotation -lAIDA_Plotter -lqp -lqpview -lqpqwt -lqt -lHepUtilities
CPPFLAGS += $(G4ANALYSIS_AIDA_CONFIG_CFLAGS)
ANALYSISLIBS += $(G4ANALYSIS_AIDA_CONFIG_LIBS)
endif
+14 -44
View File
@@ -1,4 +1,4 @@
# $Id: architecture.gmk,v 1.71 2001/05/30 15:04:13 gunter Exp $
# $Id: architecture.gmk,v 1.77 2001/12/11 15:31:11 gcosmo Exp $
# ------------------------------------------------------------------------
# GEANT 4 - Architecture configuration script for GNU Make
#
@@ -13,18 +13,16 @@
# List of the supported architectures/compilers and related flavors for
# the environment variable G4SYSTEM:
#
# SUN-CC SunOS 5.6, CC 4.2 compiler (default)
# Linux-g++ Linux (Red Hat 6.1), gcc-2.95.2 (default)
#
# HP-aCC HP-UX 10.20, aCC A.01.23 compiler
# Linux-egcs Linux (Red Hat 6.1), egcs-1.1.2
#
# SUN-CC SunOS 5.7, CC 5.2
#
# DEC-cxx DEC-OSF/1 4.0, DEC C++ 6.1
#
# Linux-g++ Linux (Red Hat 6.1), egcs 1.1.2
#
# WIN32-VC Windows/NT and Microsoft Visual C++ 6.0
# Adding CYGWIN32 tools (make, g++ as "makedepend", sh...)
# Note: you will need to set your environment, see the
# installation guide.
# WIN32-VC Windows/2000 and Microsoft Visual C++ 6.0 - SP5
# Adding CYGWIN32 tools
# -------------------------------------------------------------------------
# Definition of HEP_ODBMS_LIBS, OBJY_LIBS and OSPACE_LIBS by HepODBMS.
@@ -39,13 +37,10 @@ endif
MAKEFLAGS= --no-print-directory
# If not specified, the default platform for G4SYSTEM is SUN-CC ...
# If not specified, the default platform for G4SYSTEM is Linux-g++ ...
#
ifndef G4SYSTEM
G4SYSTEM := SUN-CC
endif
ifeq ($(G4SYSTEM),WIN32-VC-NICE)
G4SYSTEM := WIN32-VC
G4SYSTEM := Linux-g++
endif
# If not specified, the default path for G4 installation G4INSTALL is
@@ -201,12 +196,11 @@ endif
# Native STL is the default
#
CPPFLAGS += -DG4USE_STL
G4STLINC := $(G4BASE)/global/STLInterface
# Path to ObjectSpace STL (or STLport <- only test for Win/NT)
# Path to ObjectSpace STL (NOT supported. Kept for backward compatibility)
#
ifdef G4USE_OSPACE
#
# ObjectSpace STL implementation
#
ifndef OSPACE_BASE_DIR
@@ -214,31 +208,7 @@ ifdef G4USE_OSPACE
endif
OSPACEINC := -I$(OSPACE_BASE_DIR)/ospace/std -I$(OSPACE_BASE_DIR)/ospace/stl
OSPACELIBS := -L$(OSPACE_BASE_DIR)/lib -lospace
ifeq ($(G4SYSTEM),WIN32-VC)
OSPACE_BASE_DIR := $(OBJECT_SPACE_BASE)
OSPACEINC := -I$(OSPACE_BASE_DIR)/ospace/std -I$(OSPACE_BASE_DIR)/ospace/stl -I$(OSPACE_BASE_DIR)
OSPACELIBS := '-libpath':$(OSPACE_BASE_DIR)/lib std-2.1-vc5.0-mt.lib
CPPFLAGS += -DG4USE_OLDSTL
CPPFLAGS += -DOS_WIN_NT_4_0 -DOS_MULTI_THREADED -D_WIN32_WINNT $(OSPACEINC)
endif
else
ifdef G4USE_STLPORT
# STLport STL implementation
# (derived from SGI implementation) - TEST on WIN32
#
ifeq ($(G4SYSTEM),WIN32-VC)
STLPORT_BASE_DIR := $(STLPORT_BASE)
OSPACEINC := -I$(STLPORT_BASE_DIR)/stl
CPPFLAGS += -DG4USE_OLDSTL
CPPFLAGS += -D_NOTHREADS -D__STL_NO_NEW_IOSTREAMS -D__STL_NO_NAMESPACES
CPPFLAGS += -D__STL_NO_NEW_STYLE_HEADERS
endif
endif #STLport
endif #OPSPACE
endif #OSPACE
# Paths for G4 data
#
@@ -284,7 +254,7 @@ endif
# Variables for implicit rules, etc., as suggested in GNU Make manual...
#
CPPFLAGS += -Iinclude -I$(G4STLINC)
CPPFLAGS += -Iinclude
CPPFLAGS += -I$(CLHEP_INCLUDE_DIR)
# Positional qualifiers in action...
@@ -345,7 +315,7 @@ endif
# coherent we set in Geant4 the default toolkit to lesstif
# on Linux in order to link with -lXaw, etc...
ifndef G4_OPACS_WIDGET_SET
ifeq ($(G4SYSTEM),Linux-g++)
ifeq ($(findstring Linux,$(G4SYSTEM)),Linux)
G4_OPACS_WIDGET_SET := lesstif
else
G4_OPACS_WIDGET_SET := Xm
+41 -28
View File
@@ -1,4 +1,4 @@
# $Id: binmake.gmk,v 1.63 2001/06/22 16:11:21 gcosmo Exp $
# $Id: binmake.gmk,v 1.74 2001/12/13 11:36:05 gcosmo Exp $
# ----------------------------------------------------------
# Script defining rules and paths for making binaries.
# First implementation: Gabriele Cosmo, 25/06/1998.
@@ -10,20 +10,39 @@ endif
G4LIBDIR := $(G4LIB)/$(G4SYSTEM)
# Define variable checking for existence of centrally installed headers.
# If check will be true, avoid explicit definition of paths to INCFLAGS.
#
# G4INCLUDE_EXEC := $(shell [ -r $(G4INCLUDE)/globals.hh ] && echo 1)
include $(G4INSTALL)/config/G4UI_USE.gmk
include $(G4INSTALL)/config/G4VIS_USE.gmk
include $(G4INSTALL)/config/interactivity.gmk
include $(G4INSTALL)/config/analysis.gmk
ifndef G4LIB_USE_GRANULAR
GLOBALLIBS := $(shell test -f $(G4LIB)/$(G4SYSTEM)/libG4global.a && echo yes)
ifndef GLOBALLIBS
GLOBALLIBS := $(shell test -f $(G4LIB)/$(G4SYSTEM)/libG4global.$(SHEXT) && echo yes)
SHAREDLIBS := $(shell test -f $(G4LIB)/$(G4SYSTEM)/libG4global.$(SHEXT) && echo yes)
endif
endif
ifndef SHAREDLIBS
SHAREDLIBS := $(shell test -f $(G4LIB)/$(G4SYSTEM)/libG4globman.$(SHEXT) && echo yes)
endif
# Define variable checking for existence of centrally installed headers,
# and global compound libraries installed (in future, the mechanism will
# be extended to the granular libraries as well. The liblist application
# must be re-engineered for that).
# If check will be true, avoid explicit definition of paths to INCFLAGS.
#
ifndef GLOBALLIBS
G4INCLUDE_EXEC := 0
else
G4INCLUDE_EXEC := $(shell [ -r $(G4INCLUDE)/globals.hh ] && echo 1)
endif
ifndef INCFLAGS
# ifeq ($(G4INCLUDE_EXEC),1)
# INCFLAGS := -I$(G4INCLUDE)
# else
ifeq ($(G4INCLUDE_EXEC),1)
INCFLAGS := -I$(G4INCLUDE)
else
INCFLAGS := \
-I$(G4BASE)/global/management/include \
-I$(G4BASE)/global/HEPRandom/include \
@@ -47,7 +66,6 @@ ifndef INCFLAGS
-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 \
@@ -56,6 +74,11 @@ ifndef INCFLAGS
-I$(G4BASE)/processes/hadronic/processes/include \
-I$(G4BASE)/processes/hadronic/util/include \
-I$(G4BASE)/processes/hadronic/cross_sections/include \
-I$(G4BASE)/processes/hadronic/models/cascade/evaporation/include \
-I$(G4BASE)/processes/hadronic/models/cascade/utils/include \
-I$(G4BASE)/processes/hadronic/models/coherent_elastic/include \
-I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/body/include \
-I$(G4BASE)/processes/hadronic/models/chiral_inv_phase_space/interface/include \
-I$(G4BASE)/processes/hadronic/models/generator/de_excitation/include \
-I$(G4BASE)/processes/hadronic/models/generator/diffractive_string/include \
-I$(G4BASE)/processes/hadronic/models/generator/high_energy/include \
@@ -80,6 +103,7 @@ ifndef INCFLAGS
-I$(G4BASE)/geometry/solids/STEP/include \
-I$(G4BASE)/geometry/solids/STEPinterface/include \
-I$(G4BASE)/geometry/volumes/include \
-I$(G4BASE)/geometry/verification/include \
-I$(G4BASE)/geometry/magneticfield/include \
-I$(G4BASE)/track/include \
-I$(G4BASE)/tracking/include \
@@ -91,11 +115,11 @@ ifndef INCFLAGS
-I$(G4BASE)/graphics_reps/include \
-I$(G4BASE)/intercoms/include \
-I$(G4BASE)/g3tog4/include
# endif
endif
endif
ifdef G4ODBMS
# ifneq ($(G4INCLUDE_EXEC),1)
ifneq ($(G4INCLUDE_EXEC),1)
INCFLAGS += \
-I$(G4BASE)/persistency/global/include \
-I$(G4BASE)/persistency/digits+hits/hits/include \
@@ -104,27 +128,16 @@ ifdef G4ODBMS
-I$(G4BASE)/persistency/geometry/global/include \
-I$(G4BASE)/persistency/geometry/solids/CSG/include \
-I$(G4BASE)/persistency/geometry/solids/Boolean/include \
-I$(G4BASE)/persistency/geometry/solids/specific/include \
-I$(G4BASE)/persistency/geometry/management/include \
-I$(G4BASE)/persistency/management/include
# endif
INCFLAGS += -I$(G4SCHEMA_INCLUDE) \
-I$(OBJY_DIR)/include \
-I$(G4BASE)/persistency/management/include \
-I$(G4SCHEMA_INCLUDE)
endif
INCFLAGS += -I$(OBJY_DIR)/include \
-I$(HEP_ODBMS_DIR)/include \
-DHep_HAS_BUILDIN_BOOL_CONSTANTS
endif
ifndef G4LIB_USE_GRANULAR
GLOBALLIBS := $(shell test -f $(G4LIB)/$(G4SYSTEM)/libG4global.a && echo yes)
ifndef GLOBALLIBS
GLOBALLIBS := $(shell test -f $(G4LIB)/$(G4SYSTEM)/libG4global.$(SHEXT) && echo yes)
SHAREDLIBS := $(shell test -f $(G4LIB)/$(G4SYSTEM)/libG4global.$(SHEXT) && echo yes)
endif
endif
ifndef SHAREDLIBS
SHAREDLIBS := $(shell test -f $(G4LIB)/$(G4SYSTEM)/libG4globman.$(SHEXT) && echo yes)
endif
CPPFLAGS += $(INCFLAGS)
LDFLAGS += -L$(G4LIBDIR)
+211 -404
View File
@@ -26,502 +26,309 @@ $spitshell >env.csh <<!GROK!THIS!
#
# g4system.U
#
set G4SYSTEM="$g4system"
#+
setenv G4SYSTEM "$g4system"
echo "On this machine the G4SYSTEM=\$G4SYSTEM"
#
# g4dirs.U
#
set G4INSTALL="$g4install"
set G4INCLUDE="$g4include"
set G4BASE="$g4base"
set G4WORKDIR="$g4workdir"
set G4TMP="$g4tmp"
set G4LIB="$g4lib"
set G4BIN="$g4bin"
set G4DATA="$g4data"
set G4LEVELGAMMADATA="$g4levelgammadata"
#+
set G4RADIOACTIVEDATA="$g4radioactivedata"
setenv G4INSTALL "$g4install"
echo "On this machine the G4INSTALL=\$G4INSTALL"
#+
set G4LEDATA="$g4ledata"
if ( X$g4include != X ) then
setenv G4INCLUDE "$g4include"
echo "On this machine the G4INCLUDE=\$G4INCLUDE"
endif
#+
set NeutronHPCrossSections="$g4neutronhpcrosssections"
if ( X$g4lib != X ) then
setenv G4LIB "$g4lib"
echo "On this machine the G4LIB=\$G4LIB"
endif
#+
if ( X$g4levelgammadata != X ) then
setenv G4LEVELGAMMADATA "$g4levelgammadata"
echo "On this machine the G4LEVELGAMMADATA=\$G4LEVELGAMMADATA"
endif
#+
if ( X$g4radioactivedata != X ) then
setenv G4RADIOACTIVEDATA "$g4radioactivedata"
echo "On this machine the G4RADIOACTIVEDATA=\$G4RADIOACTIVEDATA"
endif
#+
if ( X$g4ledata != X ) then
setenv G4LEDATA "$g4ledata"
echo "On this machine the G4LEDATA=\$G4LEDATA"
endif
#+
if ( X$g4neutronhpcrosssections != X ) then
setenv NeutronHPCrossSections "$g4neutronhpcrosssections"
echo "On this machine the NeutronHPCrossSections=\$NeutronHPCrossSections"
endif
#
# g4clhep.U
#
set CLHEP_BASE_DIR="$g4clhep_base_dir"
set CLHEP_INCLUDE_DIR="$g4clhep_include_dir"
set set CLHEP_LIB_DIR="$g4clhep_lib_dir"
set CLHEP_LIB="$g4clhep_lib"
#
# g4ospace
#
if ( X$g4use_ospace == Xy ) then
set G4USE_OSPACE=1
else
set G4USE_OSPACE=""
if ( X$g4clhep_base_dir != X ) then
setenv CLHEP_BASE_DIR "$g4clhep_base_dir"
echo "On this machine the CLHEP_BASE_DIR=\$CLHEP_BASE_DIR"
endif
set G4OSPACE_BASE_DIR="$g4ospace_base_dir"
#+
if ( X$g4clhep_include_dir != X ) then
setenv CLHEP_INCLUDE_DIR "$g4clhep_include_dir"
echo "On this machine the CLHEP_INCLUDE_DIR=\$CLHEP_INCLUDE_DIR"
endif
#+
if ( X$g4clhep_lib_dir != X ) then
setenv CLHEP_LIB_DIR "$g4clhep_lib_dir"
echo "On this machine the CLHEP_LIB_DIR=\$CLHEP_LIB_DIR"
endif
#+
if ( X$g4clhep_lib != X ) then
setenv CLHEP_LIB "$g4clhep_lib"
echo "On this machine the CLHEP_LIB=\$CLHEP_LIB"
endif
#+
#
# g4debug
#
set G4DEBUG="$g4debug"
if ( X$g4debug != X ) then
setenv G4DEBUG "$g4debug"
echo "On this machine the G4DEBUG=\$G4DEBUG"
endif
#
# g4analysis
#
if ( X$g4wanalysis_build == Xy ) then
set G4ANALYSIS_BUILD=1
else
set G4ANALYSIS_BUILD=""
endif
if ( X$g4wanalysis_build_lab == Xy ) then
set G4ANALYSIS_BUILD_LAB=1
else
set G4ANALYSIS_BUILD_LAB=""
endif
if ( X$g4wanalysis_build_jas == Xy ) then
set G4ANALYSIS_BUILD_JAS=1
else
set G4ANALYSIS_BUILD_JAS=""
endif
if ( X$g4wanalysis_build_lizard == Xy ) then
set G4ANALYSIS_BUILD_LIZARD=1
else
set G4ANALYSIS_BUILD_LIZARD=""
endif
#+
if ( X$g4wanalysis_use == Xy ) then
set G4ANALYSIS_USE=1
else
set G4ANALYSIS_USE=""
endif
if ( X$g4wanalysis_use_lab == Xy ) then
set G4ANALYSIS_USE_LAB=1
else
set G4ANALYSIS_USE_LAB=""
endif
if ( X$g4wanalysis_use_jas == Xy ) then
set G4ANALYSIS_USE_JAS=1
else
set G4ANALYSIS_USE_JAS=""
endif
if ( X$g4wanalysis_use_lizard == Xy ) then
set G4ANALYSIS_USE_LIZARD=1
else
set G4ANALYSIS_USE_LIZARD=""
endif
setenv G4ANALYSIS_USE 1
echo "On this machine the G4ANALYSIS_USE=\$G4ANALYSIS_USE"
endif
#+
#
# g4persistency
#
if ( X$g4use_hepodbms == Xy ) then
set G4USE_HEPODBMS=1
setenv G4USE_HEPODBMS 1
source \$G4INSTALL/examples/extended/persistency/PersistentEx01/g4odbms_setup.csh
else
set G4USE_HEPODBMS=""
endif
echo "On this machine the G4USE_HEPODBMS=\$G4USE_HEPODBMS"
endif
#
# g4ui
#
if ( X$g4ui_build_terminal_session == Xy ) then
set G4UI_BUILD_TERMINAL_SESSION=1
else
set G4UI_BUILD_TERMINAL_SESSION=""
endif
if ( X$g4ui_use_terminal == Xy ) then
set G4UI_USE_TERMINAL=1
else
set G4UI_USE_TERMINAL=""
endif
if ( X$g4ui_build_gag_session == Xy ) then
set G4UI_BUILD_GAG_SESSION=1
else
set G4UI_BUILD_GAG_SESSION=""
endif
if ( X$g4ui_use_gag == Xy ) then
set G4UI_USE_GAG=1
else
set G4UI_USE_GAG=""
endif
#+
if ( X$g4ui_build_xaw_session == Xy ) then
set G4UI_BUILD_XAW_SESSION=1
else
set G4UI_BUILD_XAW_SESSION=""
endif
setenv G4UI_BUILD_XAW_SESSION 1
echo "On this machine the G4UI_BUILD_XAW_SESSION=\$G4UI_BUILD_XAW_SESSION"
endif
#+
if ( X$g4ui_use_xaw == Xy ) then
set G4UI_USE_XAW=1
else
set G4UI_USE_XAW=""
endif
setenv G4UI_USE_XAW 1
echo "On this machine the G4UI_USE_XAW=\$G4UI_USE_XAW"
endif
#+
if ( X$g4ui_build_xm_session == Xy ) then
set G4UI_BUILD_XM_SESSION=1
else
set G4UI_BUILD_XM_SESSION=""
endif
setenv G4UI_BUILD_XM_SESSION 1
echo "On this machine the G4UI_BUILD_XM_SESSION=\$G4UI_BUILD_XM_SESSION"
endif
#+
if ( X$g4ui_use_xm == Xy ) then
set G4UI_USE_XM=1
else
set G4UI_USE_XM=""
endif
setenv G4UI_USE_XM 1
echo "On this machine the G4UI_USE_XM=\$G4UI_USE_XM"
endif
#+
if ( X$g4ui_build_win32_session == Xy ) then
set G4UI_BUILD_WIN32_SESSION=1
else
set G4UI_BUILD_WIN32_session=""
endif
setenv G4UI_BUILD_WIN32_SESSION 1
echo "On this machine the G4UI_BUILD_WIN32_SESSION=\$G4UI_BUILD_WIN32_SESSION"
endif
#+
if ( X$g4ui_use_win32 == Xy ) then
set G4UI_USE_WIN32=1
else
set G4UI_USE_WIN32=""
endif
setenv G4UI_USE_WIN32 1
echo "On this machine the G4UI_USE_WIN32=\$G4UI_USE_WIN32"
endif
if ( X$g4ui_use_tcsh == Xy ) then
set G4UI_USE_TCSH=1
else
set G4UI_USE_TCSH=""
endif
#+
if ( X$g4ui_build_wo_session == Xy ) then
setenv G4UI_BUILD_WO_SESSION 1
echo "On this machine the G4UI_BUILD_WO_SESSION=\$G4UI_BUILD_WO_SESSION"
endif
#+
if ( X$g4ui_use_wo == Xy ) then
setenv G4UI_USE_WO 1
echo "On this machine the G4UI_USE_WO=\$G4UI_USE_WO"
endif
#
# g4vis
#
#+
if ( X$g4vis_build_dawn_driver == Xy ) then
set G4VIS_BUILD_DAWN_DRIVER=1
else
set G4VIS_BUILD_DAWN_DRIVER=""
endif
if ( X$g4vis_build_dawnfile_driver == Xy ) then
set G4VIS_BUILD_DAWNFILE_DRIVER=1
else
set G4VIS_BUILD_DAWN_DRIVER=""
endif
setenv G4VIS_BUILD_DAWN_DRIVER 1
echo "On this machine the G4VIS_BUILD_DAWN_DRIVER=\$G4VIS_BUILD_DAWN_DRIVER"
endif
#+
if ( X$g4vis_build_opacs_driver == Xy ) then
set G4VIS_BUILD_OPACS_DRIVER=1
else
set G4VIS_BUILD_OPACS_DRIVER=""
endif
setenv G4VIS_BUILD_OPACS_DRIVER 1
echo "On this machine the G4VIS_BUILD_OPACS_DRIVER=\$G4VIS_BUILD_OPACS_DRIVER"
endif
if ( X$g4vis_build_opengl_driver == Xy ) then
set G4VIS_BUILD_OPENGL_DRIVER=1
else
set G4VIS_BUILD_OPENGL_DRIVER=""
endif
#+
if ( X$g4vis_build_openglx_driver == Xy ) then
setenv G4VIS_BUILD_OPENGLX_DRIVER 1
echo "On this machine the G4VIS_BUILD_OPENGLX_DRIVER=\$G4VIS_BUILD_OPENGLX_DRIVER"
endif
if ( X$g4vis_build_OPENGLX_driver == Xy ) then
set G4VIS_BUILD_OPENGLX_DRIVER=1
else
set G4VIS_BUILD_OPENGLX_DRIVER=""
endif
#+
if ( X$g4vis_build_openglxm_driver == Xy ) then
setenv G4VIS_BUILD_OPENGLXM_DRIVER 1
echo "On this machine the G4VIS_BUILD_OPENGLXM_DRIVER=\$G4VIS_BUILD_OPENGLXM_DRIVER"
endif
#+
if ( X$g4vis_build_openglwin32_driver == Xy ) then
setenv G4VIS_BUILD_OPENGLWIN32_DRIVER 1
echo "On this machine the G4VIS_BUILD_OPENGLWIN32_DRIVER=\$G4VIS_BUILD_OPENGLWIN32_DRIVER"
endif
#+
if ( X$g4vis_build_oix_driver == Xy ) then
set G4VIS_BUILD_OIX_DRIVER=1
else
set G4VIS_BUILD_OIX_DRIVER=""
endif
setenv G4VIS_BUILD_OIX_DRIVER 1
echo "On this machine the G4VIS_BUILD_OIX_DRIVER=\$G4VIS_BUILD_OIX_DRIVER"
endif
if ( X$g4vis_build_raytracer_driver == Xy ) then
set G4VIS_BUILD_RAYTRACER_DRIVER=1
else
set G4VIS_BUILD_RAYTRACER_DRIVER=""
endif
#+
if ( X$g4vis_build_oiwin32_driver == Xy ) then
setenv G4VIS_BUILD_OIWIN32_DRIVER 1
echo "On this machine the G4VIS_BUILD_OIWIN32_DRIVER=\$G4VIS_BUILD_OIWIN32_DRIVER"
endif
#+
if ( X$g4vis_build_vrml_driver == Xy ) then
set G4VIS_BUILD_VRML_DRIVER=1
else
set G4VIS_BUILD_VRML_DRIVER=""
endif
if ( X$g4vis_build_vrmlfile_driver == Xy ) then
set G4VIS_BUILD_VRMLFILE_DRIVER=1
else
set G4VIS_BUILD_VRMLFILE_DRIVER=""
endif
if ( X$g4vis_build_asciitree_driver == Xy ) then
set G4VIS_BUILD_ASCIITREE_DRIVER=1
else
set G4VIS_BUILD_ASCIITREE_DRIVER=""
endif
setenv G4VIS_BUILD_VRML_DRIVER 1
echo "On this machine the G4VIS_BUILD_VRML_DRIVER=\$G4VIS_BUILD_VRML_DRIVER"
endif
#+
if ( X$g4vis_use_dawn == Xy ) then
set G4VIS_USE_DAWN=1
else
set G4VIS_USE_DAWN=""
endif
if ( X$g4vis_use_dawnfile == Xy ) then
set G4VIS_USE_DAWNFILE=1
else
set G4VIS_USE_DAWN=""
endif
setenv G4VIS_USE_DAWN 1
echo "On this machine the G4VIS_USE_DAWN=\$G4VIS_USE_DAWN"
endif
#+
if ( X$g4vis_use_opacs == Xy ) then
set G4VIS_USE_OPACS=1
else
set G4VIS_USE_OPACS=""
setenv G4VIS_USE_OPACS 1
echo "On this machine the G4VIS_USE_OPACS=\$G4VIS_USE_OPACS"
endif
if ( X$g4vis_use_opengl == Xy ) then
set G4VIS_USE_OPENGL=1
else
set G4VIS_USE_OPENGL=""
endif
#+
if ( X$g4vis_use_openglx == Xy ) then
setenv G4VIS_USE_OPENGLX 1
echo "On this machine the G4VIS_USE_OPENGLX=\$G4VIS_USE_OPENGLX"
endif
if ( X$g4vis_use_OPENGLX == Xy ) then
set G4VIS_USE_OPENGLX=1
else
set G4VIS_USE_OPENGLX=""
endif
#+
if ( X$g4vis_use_openglxm == Xy ) then
setenv G4VIS_USE_OPENGLXM 1
echo "On this machine the G4VIS_USE_OPENGLXM=\$G4VIS_USE_OPENGLXM"
endif
#+
if ( X$g4vis_use_openglwin32 == Xy ) then
setenv G4VIS_USE_OPENGLWIN32 1
echo "On this machine the G4VIS_USE_OPENGLWIN32=\$G4VIS_USE_OPENGLWIN32"
endif
#+
if ( X$g4vis_use_oix == Xy ) then
set G4VIS_USE_OIX=1
else
set G4VIS_USE_OIX=""
endif
if ( X$g4vis_use_raytracer == Xy ) then
set G4VIS_USE_RAYTRACER=1
else
set G4VIS_USE_RAYTRACER=""
endif
if ( X$g4vis_use_vrml == Xy ) then
set G4VIS_USE_VRML=1
else
set G4VIS_USE_VRML=""
endif
if ( X$g4vis_use_vrmlfile == Xy ) then
set G4VIS_USE_VRMLFILE=1
else
set G4VIS_USE_VRMLFILE=""
endif
if ( X$g4vis_use_asciitree == Xy ) then
set G4VIS_USE_ASCIITREE=1
else
set G4VIS_USE_ASCIITREE=""
setenv G4VIS_USE_OIX 1
echo "On this machine the G4VIS_USE_OIX=\$G4VIS_USE_OIX"
endif
#+
if ( X$g4vis_use_oiwin32 == Xy ) then
setenv G4VIS_USE_OIWIN32 1
echo "On this machine the G4VIS_USE_OIWIN32=\$G4VIS_USE_OIWIN32"
endif
#+
if ( X$g4vis_use_vrml == Xy ) then
setenv G4VIS_USE_VRML 1
echo "On this machine the G4VIS_USE_VRML=\$G4VIS_USE_VRML"
endif
#+
#
# g4shared
#
set G4LIB_BUILD_SHARED="$g4lib_build_shared"
set G4LIB_BUILD_STATIC="$g4lib_build_static"
set G4LIB_USE_SHARED="$g4lib_use_shared"
set G4LIB_USE_STATIC="$g4lib_use_static"
if ( X$g4lib_build_shared == Xy ) then
set G4LIB_BUILD_SHARED=1
else
set G4LIB_BUILD_SHARED=""
endif
setenv G4LIB_BUILD_SHARED 1
echo "On this machine the G4LIB_BUILD_SHARED=\$G4LIB_BUILD_SHARED"
endif
if ( X$g4lib_build_static == Xy ) then
set G4LIB_BUILD_STATIC=1
else
set G4LIB_BUILD_STATIC=""
endif
setenv G4LIB_BUILD_STATIC 1
echo "On this machine the G4LIB_BUILD_STATIC=\$G4LIB_BUILD_STATIC"
endif
if ( X$g4lib_use_shared == Xy ) then
set G4LIB_USE_SHARED=1
else
set G4LIB_USE_SHARED=""
endif
setenv G4LIB_USE_SHARED 1
echo "On this machine the G4LIB_USE_SHARED=\$G4LIB_USE_SHARED"
endif
if ( X$g4lib_use_static == Xy ) then
set G4LIB_USE_STATIC=1
else
set G4LIB_USE_STATIC=""
endif
setenv G4LIB_USE_STATIC 1
echo "On this machine the G4LIB_USE_STATIC=\$G4LIB_USE_STATIC"
endif
#+
#
# g4granular
#
if ( X$g4lib_use_granular == Xy ) then
set G4LIB_USE_GRANULAR=1
else
set G4LIB_USE_GRANULAR=""
endif
#####################################################################
setenv G4SYSTEM $G4SYSTEM
setenv G4INSTALL $G4INSTALL
setenv G4INCLUDE $G4INCLUDE
setenv G4BASE $G4BASE
setenv G4WORKDIR $G4WORKDIR
setenv G4TMP $G4TMP
setenv G4LIB $G4LIB
setenv G4BIN $G4BIN
setenv G4DATA $G4DATA
setenv G4LEVELGAMMADATA $G4LEVELGAMMADATA
setenv CLHEP_BASE_DIR $CLHEP_BASE_DIR
setenv CLHEP_INCLUDE_DIR $CLHEP_INCLUDE_DIR
setenv CLHEP_LIB_DIR $CLHEP_LIB_DIR
setenv CLHEP_LIB $CLHEP_LIB
setenv G4USE_OSPACE $G4USE_OSPACE
setenv G4OSPACE_BASE_DIR $G4OSPACE_BASE_DIR
setenv G4LIB_USE_GRANULAR $G4LIB_USE_GRANULAR
setenv G4DEBUG $G4DEBUG
setenv G4ANALYSIS_BUILD $G4ANALYSIS_BUILD
setenv G4ANALYSIS_BUILD_LAB $G4ANALYSIS_BUILD_LAB
setenv G4ANALYSIS_BUILD_JAS $G4ANALYSIS_BUILD_JAS
setenv G4ANALYSIS_BUILD_LIZARD $G4ANALYSIS_BUILD_LIZARD
setenv G4ANALYSIS_USE $G4ANALYSIS_USE
setenv G4ANALYSIS_USE_LAB $G4ANALYSIS_USE_LAB
setenv G4ANALYSIS_USE_JAS $G4ANALYSIS_USE_JAS
setenv G4ANALYSIS_USE_LIZARD $G4ANALYSIS_USE_LIZARD
setenv G4USE_HEPODBMS $G4USE_HEPODBMS
setenv G4UI_BUILD_TERMINAL_SESSION $G4UI_BUILD_TERMINAL_SESSION
setenv G4UI_USE_TERMINAL $G4UI_USE_TERMINAL
setenv G4UI_BUILD_GAG_SESSION $G4UI_BUILD_GAG_SESSION
setenv G4UI_USE_GAG $G4UI_USE_GAG
setenv G4UI_BUILD_XAW_SESSION $G4UI_BUILD_XAW_SESSION
setenv G4UI_USE_XAW $G4UI_USE_XAW
setenv G4UI_BUILD_XM_SESSION $G4UI_BUILD_XM_SESSION
setenv G4UI_USE_XM $G4UI_USE_XM
setenv G4UI_BUILD_WIN32_SESSION $G4UI_BUILD_WIN32_SESSION
setenv G4UI_USE_WIN32 $G4UI_USE_WIN32
setenv G4UI_USE_TCSH $G4UI_USE_TCSH
setenv G4VIS_BUILD_DAWN_DRIVER $G4VIS_BUILD_DAWN_DRIVER
setenv G4VIS_USE_DAWN $G4VIS_USE_DAWN
setenv G4VIS_BUILD_DAWNFILE_DRIVER $G4VIS_BUILD_DAWNFILE_DRIVER
setenv G4VIS_USE_DAWNFILE $G4VIS_USE_DAWNFILE
setenv G4VIS_BUILD_OPACS_DRIVER $G4VIS_BUILD_OPACS_DRIVER
setenv G4VIS_USE_OPACS $G4VIS_USE_OPACS
setenv G4VIS_BUILD_OPENGL_DRIVER $G4VIS_BUILD_OPENGL_DRIVER
setenv G4VIS_USE_OPENGL $G4VIS_USE_OPENGL
setenv G4VIS_BUILD_OPENGLX_DRIVER $G4VIS_BUILD_OPENGLX_DRIVER
setenv G4VIS_USE_OPENGLX $G4VIS_USE_OPENGLX
setenv G4VIS_BUILD_OIX_DRIVER $G4VIS_BUILD_OIX_DRIVER
setenv G4VIS_USE_OIX $G4VIS_USE_OIX
setenv G4VIS_BUILD_RAYTRACER_DRIVER $G4VIS_BUILD_RAYTRACER_DRIVER
setenv G4VIS_USE_RAYTRACER $G4VIS_USE_RAYTRACER
setenv G4VIS_BUILD_VRML_DRIVER $G4VIS_BUILD_VRML_DRIVER
setenv G4VIS_USE_VRML $G4VIS_USE_VRML
setenv G4VIS_BUILD_VRMLFILE_DRIVER $G4VIS_BUILD_VRMLFILE_DRIVER
setenv G4VIS_USE_VRMLFILE $G4VIS_USE_VRMLFILE
setenv G4VIS_BUILD_ASCIITREE_DRIVER $G4VIS_BUILD_ASCIITREE_DRIVER
setenv G4VIS_USE_ASCIITREE $G4VIS_USE_ASCIITREE
setenv G4LIB_BUILD_SHARED $G4LIB_BUILD_SHARED
setenv G4LIB_BUILD_STATIC $G4LIB_BUILD_STATIC
setenv G4LIB_USE_SHARED $G4LIB_USE_SHARED
setenv G4LIB_USE_STATIC $G4LIB_USE_STATIC
###############################################
#####################################################################
echo "On this machine the G4SYSTEM=\$G4SYSTEM"
echo "On this machine the G4INSTALL=\$G4INSTALL"
echo "On this machine the G4INCLUDE=\$G4INCLUDE"
echo "On this machine the G4BASE=\$G4BASE"
echo "On this machine the G4WORKDIR=\$G4WORKDIR"
echo "On this machine the G4TMP=\$G4TMP"
echo "On this machine the G4LIB=\$G4LIB"
echo "On this machine the G4BIN=\$G4BIN"
echo "On this machine the G4DATA=\$G4DATA"
echo "On this machine the G4LEVELGAMMADATA=\$G4LEVELGAMMADATA"
echo "On this machine the CLHEP_BASE_DIR=\$CLHEP_BASE_DIR"
echo "On this machine the CLHEP_INCLUDE_DIR=\$CLHEP_INCLUDE_DIR"
echo "On this machine the CLHEP_LIB_DIR=\$CLHEP_LIB_DIR"
echo "On this machine the CLHEP_LIB=\$CLHEP_LIB"
echo "On this machine the G4USE_OSPACE=\$G4USE_OSPACE"
echo "On this machine the G4OSPACE_BASE_DIR=\$G4OSPACE_BASE_DIR"
setenv G4LIB_USE_GRANULAR 1
echo "On this machine the G4LIB_USE_GRANULAR=\$G4LIB_USE_GRANULAR"
endif
echo "On this machine the G4DEBUG=\$G4DEBUG"
#####################################################################
echo "On this machine the G4UI_BUILD_TERMINAL_SESSION=\$G4UI_BUILD_TERMINAL_SESSION"
echo "On this machine the G4UI_USE_TERMINAL=\$G4UI_USE_TERMINAL"
echo "On this machine the G4UI_BUILD_GAG_SESSION=\$G4UI_BUILD_GAG_SESSION"
echo "On this machine the G4UI_USE_GAG=\$G4UI_USE_GAG"
echo "On this machine the G4UI_BUILD_XAW_SESSION=\$G4UI_BUILD_XAW_SESSION"
echo "On this machine the G4UI_USE_XAW=\$G4UI_USE_XAW"
echo "On this machine the G4UI_BUILD_XM_SESSION=\$G4UI_BUILD_XM_SESSION"
echo "On this machine the G4UI_USE_XM=\$G4UI_USE_XM"
echo "On this machine the G4UI_BUILD_WIN32_SESSION=\$G4UI_BUILD_WIN32_SESSION"
echo "On this machine the G4UI_USE_WIN32=\$G4UI_USE_WIN32"
echo "On this machine the G4UI_USE_TCSH=\$G4UI_USE_TCSH"
echo "On this machine the G4ANALYSIS_BUILD=\$G4ANALYSIS_BUILD"
echo "On this machine the G4ANALYSIS_BUILD_LAB=\$G4ANALYSIS_BUILD_LAB"
echo "On this machine the G4ANALYSIS_BUILD_JAS=\$G4ANALYSIS_BUILD_JAS"
echo "On this machine the G4ANALYSIS_BUILD_LIZARD=\$G4ANALYSIS_BUILD_LIZARD"
echo "On this machine the G4ANALYSIS_USE=\$G4ANALYSIS_USE"
echo "On this machine the G4ANALYSIS_USE_LAB=\$G4ANALYSIS_USE_LAB"
echo "On this machine the G4ANALYSIS_USE_JAS=\$G4ANALYSIS_USE_JAS"
echo "On this machine the G4ANALYSIS_USE_LIZARD=\$G4ANALYSIS_USE_LIZARD"
echo "On this machine the G4USE_HEPODBMS=\$G4USE_HEPODBMS"
echo "On this machine the G4VIS_BUILD_DAWN_DRIVER=\$G4VIS_BUILD_DAWN_DRIVER"
echo "On this machine the G4VIS_USE_DAWN=\$G4VIS_USE_DAWN"
echo "On this machine the G4VIS_BUILD_DAWNFILE_DRIVER=\$G4VIS_BUILD_DAWNFILE_DRIVER"
echo "On this machine the G4VIS_USE_DAWNFILE=\$G4VIS_USE_DAWNFILE"
echo "On this machine the G4VIS_BUILD_OPACS_DRIVER=\$G4VIS_BUILD_OPACS_DRIVER"
echo "On this machine the G4VIS_USE_OPACS=\$G4VIS_USE_OPACS"
echo "On this machine the G4VIS_BUILD_OPENGL_DRIVER=\$G4VIS_BUILD_OPENGL_DRIVER"
echo "On this machine the G4VIS_USE_OPENGL=\$G4VIS_USE_OPENGL"
echo "On this machine the G4VIS_BUILD_OPENGLX_DRIVER=\$G4VIS_BUILD_OPENGLX_DRIVER"
echo "On this machine the G4VIS_USE_OPENGLX=\$G4VIS_USE_OPENGLX"
echo "On this machine the G4VIS_BUILD_OIX_DRIVER=\$G4VIS_BUILD_OIX_DRIVER"
echo "On this machine the G4VIS_USE_OIX=\$G4VIS_USE_OIX"
echo "On this machine the G4VIS_BUILD_RAYTRACER_DRIVER=\$G4VIS_BUILD_RAYTRACER_DRIVER"
echo "On this machine the G4VIS_USE_RAYTRACER=\$G4VIS_USE_RAYTRACER"
echo "On this machine the G4VIS_BUILD_VRML_DRIVER=\$G4VIS_BUILD_VRML_DRIVER"
echo "On this machine the G4VIS_USE_VRML=\$G4VIS_USE_VRML"
echo "On this machine the G4VIS_BUILD_VRMLFILE_DRIVER=\$G4VIS_BUILD_VRMLFILE_DRIVER"
echo "On this machine the G4VIS_USE_VRMLFILE=\$G4VIS_USE_VRMLFILE"
echo "On this machine the G4VIS_BUILD_ASCIITREE_DRIVER=\$G4VIS_BUILD_ASCIITREE_DRIVER"
echo "On this machine the G4VIS_USE_ASCIITREE=\$G4VIS_USE_ASCIITREE"
echo "On this machine the G4LIB_BUILD_SHARED=\$G4LIB_BUILD_SHARED"
echo "On this machine the G4LIB_BUILD_STATIC=\$G4LIB_BUILD_STATIC"
echo "On this machine the G4LIB_USE_SHARED=\$G4LIB_USE_SHARED"
echo "On this machine the G4LIB_USE_STATIC=\$G4LIB_USE_STATIC"
###############################################################
!GROK!THIS!
: In the following dollars and backticks do not need the extra backslash.
$spitshell >>env.csh <<'!NO!SUBS!'
#+
#
# G4WORKDIR
#
if ( ${?G4WORKDIR} ) then
echo "In your environment you have the G4WORKDIR=$G4WORKDIR"
else
echo "G4WORKDIR will be set to HOME=$HOME."
setenv G4WORKDIR $HOME
endif
!NO!SUBS!
chmod 755 env.csh
$eunicefix env.csh
+196 -346
View File
@@ -26,100 +26,109 @@ $spitshell >env.sh <<!GROK!THIS!
#
# g4system.U
#
#+
G4SYSTEM="$g4system"
export G4SYSTEM
echo "On this machine the G4SYSTEM=\$G4SYSTEM"
#
# g4dirs.U
#
#+
G4INSTALL="$g4install"
export G4INSTALL
echo "On this machine the G4INSTALL=\$G4INSTALL"
#+
if [ X$g4include != X ] ; then
G4INCLUDE="$g4include"
G4BASE="$g4base"
G4WORKDIR="$g4workdir"
G4TMP="$g4tmp"
export G4INCLUDE
echo "On this machine the G4INCLUDE=\$G4INCLUDE"
fi
#+
if [ X$g4lib != X ] ; then
G4LIB="$g4lib"
G4BIN="$g4bin"
G4DATA="$g4data"
export G4LIB
echo "On this machine the G4LIB=\$G4LIB"
fi
#+
if [ X$g4levelgammadata != X ] ; then
G4LEVELGAMMADATA="$g4levelgammadata"
export G4LEVELGAMMADATA
echo "On this machine the G4LEVELGAMMADATA=\$G4LEVELGAMMADATA"
fi
#+
if [ X$g4radioactivedata != X ] ; then
G4RADIOACTIVEDATA="$g4radioactivedata"
export G4RADIOACTIVEDATA
echo "On this machine the G4RADIOACTIVEDATA=\$G4RADIOACTIVEDATA"
fi
#+
if [ X$g4ledata != X ] ; then
G4LEDATA="$g4ledata"
export G4LEDATA
echo "On this machine the G4LEDATA=\$G4LEDATA"
fi
#+
if [ X$g4neutronhpcrosssections != X ] ; then
NeutronHPCrossSections="$g4neutronhpcrosssections"
export NeutronHPCrossSections
echo "On this machine the NeutronHPCrossSections=\$NeutronHPCrossSections"
fi
#
# g4clhep.U
#
if [ X$g4clhep_base_dir != X ] ; then
CLHEP_BASE_DIR="$g4clhep_base_dir"
CLHEP_INCLUDE_DIR="$g4clhep_include_dir"
CLHEP_LIB_DIR="$g4clhep_lib_dir"
CLHEP_LIB="$g4clhep_lib"
#
# g4ospace
#
if [ X$g4use_ospace = Xy ] ; then
G4USE_OSPACE=1
else
G4USE_OSPACE=""
export CLHEP_BASE_DIR
echo "On this machine the CLHEP_BASE_DIR=\$CLHEP_BASE_DIR"
fi
G4OSPACE_BASE_DIR="$g4ospace_base_dir"
#+
if [ X$g4clhep_include_dir != X ] ; then
CLHEP_INCLUDE_DIR="$g4clhep_include_dir"
export CLHEP_INCLUDE_DIR
echo "On this machine the CLHEP_INCLUDE_DIR=\$CLHEP_INCLUDE_DIR"
fi
#+
if [ X$g4clhep_lib_dir != X ] ; then
CLHEP_LIB_DIR="$g4clhep_lib_dir"
export CLHEP_LIB_DIR
echo "On this machine the CLHEP_LIB_DIR=\$CLHEP_LIB_DIR"
fi
#+
if [ X$g4clhep_lib != X ] ; then
CLHEP_LIB="$g4clhep_lib"
export CLHEP_LIB
echo "On this machine the CLHEP_LIB=\$CLHEP_LIB"
fi
#+
#
# g4debug
#
if [ X$g4debug != X ] ; then
G4DEBUG="$g4debug"
export G4DEBUG
echo "On this machine the G4DEBUG=\$G4DEBUG"
fi
#
# g4analysis
#
if [ X$g4wanalysis_build = Xy ] ; then
G4ANALYSIS_BUILD=1
else
G4ANALYSIS_BUILD=""
fi
if [ X$g4wanalysis_build_lab = Xy ] ; then
G4ANALYSIS_BUILD_LAB=1
else
G4ANALYSIS_BUILD_LAB=""
fi
if [ X$g4wanalysis_build_jas = Xy ] ; then
G4ANALYSIS_BUILD_JAS=1
else
G4ANALYSIS_BUILD_JAS=""
fi
if [ X$g4wanalysis_build_lizard = Xy ] ; then
G4ANALYSIS_BUILD_LIZARD=1
else
G4ANALYSIS_BUILD_LIZARD=""
fi
#+
if [ X$g4wanalysis_use = Xy ] ; then
G4ANALYSIS_USE=1
else
G4ANALYSIS_USE=""
fi
if [ X$g4wanalysis_use_lab = Xy ] ; then
G4ANALYSIS_USE_LAB=1
else
G4ANALYSIS_USE_LAB=""
fi
if [ X$g4wanalysis_use_jas = Xy ] ; then
G4ANALYSIS_USE_JAS=1
else
G4ANALYSIS_USE_JAS=""
fi
if [ X$g4wanalysis_use_lizard = Xy ] ; then
G4ANALYSIS_USE_LIZARD=1
else
G4ANALYSIS_USE_LIZARD=""
export G4ANALYSIS_USE
echo "On this machine the G4ANALYSIS_USE=\$G4ANALYSIS_USE"
fi
#+
@@ -128,400 +137,241 @@ fi
#
if [ X$g4use_hepodbms = Xy ] ; then
G4USE_HEPODBMS=1
export G4USE_HEPODBMS
. \$G4INSTALL/examples/extended/persistency/PersistentEx01/g4odbms_setup.sh
else
G4USE_HEPODBMS=""
echo "On this machine the G4USE_HEPODBMS=\$G4USE_HEPODBMS"
fi
#
# g4ui
#
if [ X$g4ui_build_terminal_session = Xy ] ; then
G4UI_BUILD_TERMINAL_SESSION=1
else
G4UI_BUILD_TERMINAL_SESSION=""
fi
if [ X$g4ui_use_terminal = Xy ] ; then
G4UI_USE_TERMINAL=1
else
G4UI_USE_TERMINAL=""
fi
if [ X$g4ui_build_gag_session = Xy ] ; then
G4UI_BUILD_GAG_SESSION=1
else
G4UI_BUILD_GAG_SESSION=""
fi
if [ X$g4ui_use_gag = Xy ] ; then
G4UI_USE_GAG=1
else
G4UI_USE_GAG=""
fi
#+
if [ X$g4ui_build_xaw_session = Xy ] ; then
G4UI_BUILD_XAW_SESSION=1
else
G4UI_BUILD_XAW_SESSION=""
export G4UI_BUILD_XAW_SESSION
echo "On this machine the G4UI_BUILD_XAW_SESSION=\$G4UI_BUILD_XAW_SESSION"
fi
#+
if [ X$g4ui_use_xaw = Xy ] ; then
G4UI_USE_XAW=1
else
G4UI_USE_XAW=""
export G4UI_USE_XAW
echo "On this machine the G4UI_USE_XAW=\$G4UI_USE_XAW"
fi
#+
if [ X$g4ui_build_xm_session = Xy ] ; then
G4UI_BUILD_XM_SESSION=1
else
G4UI_BUILD_XM_SESSION=""
export G4UI_BUILD_XM_SESSION
echo "On this machine the G4UI_BUILD_XM_SESSION=\$G4UI_BUILD_XM_SESSION"
fi
#+
if [ X$g4ui_use_xm = Xy ] ; then
G4UI_USE_XM=1
else
G4UI_USE_XM=""
export G4UI_USE_XM
echo "On this machine the G4UI_USE_XM=\$G4UI_USE_XM"
fi
#+
if [ X$g4ui_build_win32_session = Xy ] ; then
G4UI_BUILD_WIN32_SESSION=1
else
G4UI_BUILD_WIN32_session=""
export G4UI_BUILD_WIN32_SESSION
echo "On this machine the G4UI_BUILD_WIN32_SESSION=\$G4UI_BUILD_WIN32_SESSION"
fi
#+
if [ X$g4ui_use_win32 = Xy ] ; then
G4UI_USE_WIN32=1
else
G4UI_USE_WIN32=""
export G4UI_USE_WIN32
echo "On this machine the G4UI_USE_WIN32=\$G4UI_USE_WIN32"
fi
if [ X$g4ui_use_tcsh = Xy ] ; then
G4UI_USE_TCSH=1
else
G4UI_USE_TCSH=""
#+
if [ X$g4ui_build_wo_session = Xy ] ; then
G4UI_BUILD_WO_SESSION=1
export G4UI_BUILD_WO_SESSION
echo "On this machine the G4UI_BUILD_WO_SESSION=\$G4UI_BUILD_WO_SESSION"
fi
#+
if [ X$g4ui_use_wo = Xy ] ; then
G4UI_USE_WO=1
export G4UI_USE_WO
echo "On this machine the G4UI_USE_WO=\$G4UI_USE_WO"
fi
#
# g4vis
#
#+
if [ X$g4vis_build_dawn_driver = Xy ] ; then
G4VIS_BUILD_DAWN_DRIVER=1
else
G4VIS_BUILD_DAWN_DRIVER=""
fi
if [ X$g4vis_build_dawnfile_driver = Xy ] ; then
G4VIS_BUILD_DAWNFILE_DRIVER=1
else
G4VIS_BUILD_DAWN_DRIVER=""
export G4VIS_BUILD_DAWN_DRIVER
echo "On this machine the G4VIS_BUILD_DAWN_DRIVER=\$G4VIS_BUILD_DAWN_DRIVER"
fi
#+
if [ X$g4vis_build_opacs_driver = Xy ] ; then
G4VIS_BUILD_OPACS_DRIVER=1
else
G4VIS_BUILD_OPACS_DRIVER=""
export G4VIS_BUILD_OPACS_DRIVER
echo "On this machine the G4VIS_BUILD_OPACS_DRIVER=\$G4VIS_BUILD_OPACS_DRIVER"
fi
if [ X$g4vis_build_opengl_driver = Xy ] ; then
G4VIS_BUILD_OPENGL_DRIVER=1
else
G4VIS_BUILD_OPENGL_DRIVER=""
fi
if [ X$g4vis_build_OPENGLX_driver = Xy ] ; then
#+
if [ X$g4vis_build_openglx_driver = Xy ] ; then
G4VIS_BUILD_OPENGLX_DRIVER=1
else
G4VIS_BUILD_OPENGLX_DRIVER=""
export G4VIS_BUILD_OPENGLX_DRIVER
echo "On this machine the G4VIS_BUILD_OPENGLX_DRIVER=\$G4VIS_BUILD_OPENGLX_DRIVER"
fi
#+
if [ X$g4vis_build_openglxm_driver = Xy ] ; then
G4VIS_BUILD_OPENGLXM_DRIVER=1
export G4VIS_BUILD_OPENGLXM_DRIVER
echo "On this machine the G4VIS_BUILD_OPENGLXM_DRIVER=\$G4VIS_BUILD_OPENGLXM_DRIVER"
fi
#+
if [ X$g4vis_build_openglwin32_driver = Xy ] ; then
G4VIS_BUILD_OPENGLWIN32_DRIVER=1
export G4VIS_BUILD_OPENGLWIN32_DRIVER
echo "On this machine the G4VIS_BUILD_OPENGLWIN32_DRIVER=\$G4VIS_BUILD_OPENGLWIN32_DRIVER"
fi
#+
if [ X$g4vis_build_oix_driver = Xy ] ; then
G4VIS_BUILD_OIX_DRIVER=1
else
G4VIS_BUILD_OIX_DRIVER=""
export G4VIS_BUILD_OIX_DRIVER
echo "On this machine the G4VIS_BUILD_OIX_DRIVER=\$G4VIS_BUILD_OIX_DRIVER"
fi
if [ X$g4vis_build_raytracer_driver = Xy ] ; then
G4VIS_BUILD_RAYTRACER_DRIVER=1
else
G4VIS_BUILD_RAYTRACER_DRIVER=""
#+
if [ X$g4vis_build_oiwin32_driver = Xy ] ; then
G4VIS_BUILD_OIWIN32_DRIVER=1
export G4VIS_BUILD_OIWIN32_DRIVER
echo "On this machine the G4VIS_BUILD_OIWIN32_DRIVER=\$G4VIS_BUILD_OIWIN32_DRIVER"
fi
#+
if [ X$g4vis_build_vrml_driver = Xy ] ; then
G4VIS_BUILD_VRML_DRIVER=1
else
G4VIS_BUILD_VRML_DRIVER=""
fi
if [ X$g4vis_build_vrmlfile_driver = Xy ] ; then
G4VIS_BUILD_VRMLFILE_DRIVER=1
else
G4VIS_BUILD_VRMLFILE_DRIVER=""
fi
if [ X$g4vis_build_asciitree_driver = Xy ] ; then
G4VIS_BUILD_ASCIITREE_DRIVER=1
else
G4VIS_BUILD_ASCIITREE_DRIVER=""
export G4VIS_BUILD_VRML_DRIVER
echo "On this machine the G4VIS_BUILD_VRML_DRIVER=\$G4VIS_BUILD_VRML_DRIVER"
fi
#+
if [ X$g4vis_use_dawn = Xy ] ; then
G4VIS_USE_DAWN=1
else
G4VIS_USE_DAWN=""
fi
if [ X$g4vis_use_dawnfile = Xy ] ; then
G4VIS_USE_DAWNFILE=1
else
G4VIS_USE_DAWN=""
export G4VIS_USE_DAWN
echo "On this machine the G4VIS_USE_DAWN=\$G4VIS_USE_DAWN"
fi
#+
if [ X$g4vis_use_opacs = Xy ] ; then
G4VIS_USE_OPACS=1
else
G4VIS_USE_OPACS=""
export G4VIS_USE_OPACS
echo "On this machine the G4VIS_USE_OPACS=\$G4VIS_USE_OPACS"
fi
if [ X$g4vis_use_opengl = Xy ] ; then
G4VIS_USE_OPENGL=1
else
G4VIS_USE_OPENGL=""
fi
if [ X$g4vis_use_OPENGLX = Xy ] ; then
#+
if [ X$g4vis_use_openglx = Xy ] ; then
G4VIS_USE_OPENGLX=1
else
G4VIS_USE_OPENGLX=""
export G4VIS_USE_OPENGLX
echo "On this machine the G4VIS_USE_OPENGLX=\$G4VIS_USE_OPENGLX"
fi
#+
if [ X$g4vis_use_openglxm = Xy ] ; then
G4VIS_USE_OPENGLXM=1
export G4VIS_USE_OPENGLXM
echo "On this machine the G4VIS_USE_OPENGLXM=\$G4VIS_USE_OPENGLXM"
fi
#+
if [ X$g4vis_use_openglwin32 = Xy ] ; then
G4VIS_USE_OPENGLWIN32=1
export G4VIS_USE_OPENGLWIN32
echo "On this machine the G4VIS_USE_OPENGLWIN32=\$G4VIS_USE_OPENGLWIN32"
fi
#+
if [ X$g4vis_use_oix = Xy ] ; then
G4VIS_USE_OIX=1
else
G4VIS_USE_OIX=""
export G4VIS_USE_OIX
echo "On this machine the G4VIS_USE_OIX=\$G4VIS_USE_OIX"
fi
if [ X$g4vis_use_raytracer = Xy ] ; then
G4VIS_USE_RAYTRACER=1
else
G4VIS_USE_RAYTRACER=""
#+
if [ X$g4vis_use_oiwin32 = Xy ] ; then
G4VIS_USE_OIWIN32=1
export G4VIS_USE_OIWIN32
echo "On this machine the G4VIS_USE_OIWIN32=\$G4VIS_USE_OIWIN32"
fi
#+
if [ X$g4vis_use_vrml = Xy ] ; then
G4VIS_USE_VRML=1
else
G4VIS_USE_VRML=""
fi
if [ X$g4vis_use_vrmlfile = Xy ] ; then
G4VIS_USE_VRMLFILE=1
else
G4VIS_USE_VRMLFILE=""
fi
if [ X$g4vis_use_asciitree = Xy ] ; then
G4VIS_USE_ASCIITREE=1
else
G4VIS_USE_ASCIITREE=""
export G4VIS_USE_VRML
echo "On this machine the G4VIS_USE_VRML=\$G4VIS_USE_VRML"
fi
#+
#
# g4shared
#
G4LIB_BUILD_SHARED="$g4lib_build_shared"
G4LIB_BUILD_STATIC="$g4lib_build_static"
G4LIB_USE_SHARED="$g4lib_use_shared"
G4LIB_USE_STATIC="$g4lib_use_static"
if [ X$g4lib_build_shared = Xy ] ; then
G4LIB_BUILD_SHARED=1
else
G4LIB_BUILD_SHARED=""
export G4LIB_BUILD_SHARED
echo "On this machine the G4LIB_BUILD_SHARED=\$G4LIB_BUILD_SHARED"
fi
if [ X$g4lib_build_static = Xy ] ; then
G4LIB_BUILD_STATIC=1
else
G4LIB_BUILD_STATIC=""
export G4LIB_BUILD_STATIC
echo "On this machine the G4LIB_BUILD_STATIC=\$G4LIB_BUILD_STATIC"
fi
if [ X$g4lib_use_shared = Xy ] ; then
G4LIB_USE_SHARED=1
else
G4LIB_USE_SHARED=""
export G4LIB_USE_SHARED
echo "On this machine the G4LIB_USE_SHARED=\$G4LIB_USE_SHARED"
fi
if [ X$g4lib_use_static = Xy ] ; then
G4LIB_USE_STATIC=1
else
G4LIB_USE_STATIC=""
export G4LIB_USE_STATIC
echo "On this machine the G4LIB_USE_STATIC=\$G4LIB_USE_STATIC"
fi
#+
#
# g4granular
#
if [ X$g4lib_use_granular = Xy ] ; then
G4LIB_USE_GRANULAR=1
else
G4LIB_USE_GRANULAR=""
export G4LIB_USE_GRANULAR
echo "On this machine the G4LIB_USE_GRANULAR=\$G4LIB_USE_GRANULAR"
fi
#####################################################################
export G4SYSTEM
export G4INSTALL
export G4INCLUDE
export G4BASE
export G4WORKDIR
export G4TMP
export G4LIB
export G4BIN
export G4DATA
export G4LEVELGAMMADATA
export CLHEP_BASE_DIR
export CLHEP_INCLUDE_DIR
export CLHEP_LIB_DIR
export CLHEP_LIB
export G4USE_OSPACE
export G4OSPACE_BASE_DIR
export G4LIB_USE_GRANULAR
export G4DEBUG
export G4ANALYSIS_BUILD
export G4ANALYSIS_BUILD_LAB
export G4ANALYSIS_BUILD_JAS
export G4ANALYSIS_BUILD_LIZARD
export G4ANALYSIS_USE
export G4ANALYSIS_USE_LAB
export G4ANALYSIS_USE_JAS
export G4ANALYSIS_USE_LIZARD
export G4USE_HEPODBMS
export G4UI_BUILD_TERMINAL_SESSION
export G4UI_USE_TERMINAL
export G4UI_BUILD_GAG_SESSION
export G4UI_USE_GAG
export G4UI_BUILD_XAW_SESSION
export G4UI_USE_XAW
export G4UI_BUILD_XM_SESSION
export G4UI_USE_XM
export G4UI_BUILD_WIN32_SESSION
export G4UI_USE_WIN32
export G4UI_USE_TCSH
export G4VIS_BUILD_DAWN_DRIVER
export G4VIS_USE_DAWN
export G4VIS_BUILD_DAWNFILE_DRIVER
export G4VIS_USE_DAWNFILE
export G4VIS_BUILD_OPACS_DRIVER
export G4VIS_USE_OPACS
export G4VIS_BUILD_OPENGL_DRIVER
export G4VIS_USE_OPENGL
export G4VIS_BUILD_OPENGLX_DRIVER
export G4VIS_USE_OPENGLX
export G4VIS_BUILD_OIX_DRIVER
export G4VIS_USE_OIX
export G4VIS_BUILD_RAYTRACER_DRIVER
export G4VIS_USE_RAYTRACER
export G4VIS_BUILD_VRML_DRIVER
export G4VIS_USE_VRML
export G4VIS_BUILD_VRMLFILE_DRIVER
export G4VIS_USE_VRMLFILE
export G4VIS_BUILD_ASCIITREE_DRIVER
export G4VIS_USE_ASCIITREE
export G4LIB_BUILD_SHARED
export G4LIB_BUILD_STATIC
export G4LIB_USE_SHARED
export G4LIB_USE_STATIC
###############################################
#####################################################################
echo "On this machine the G4SYSTEM=\$G4SYSTEM"
echo "On this machine the G4INSTALL=\$G4INSTALL"
echo "On this machine the G4INCLUDE=\$G4INCLUDE"
echo "On this machine the G4BASE=\$G4BASE"
echo "On this machine the G4WORKDIR=\$G4WORKDIR"
echo "On this machine the G4TMP=\$G4TMP"
echo "On this machine the G4LIB=\$G4LIB"
echo "On this machine the G4BIN=\$G4BIN"
echo "On this machine the G4DATA=\$G4DATA"
echo "On this machine the G4LEVELGAMMADATA=\$G4LEVELGAMMADATA"
echo "On this machine the CLHEP_BASE_DIR=\$CLHEP_BASE_DIR"
echo "On this machine the CLHEP_INCLUDE_DIR=\$CLHEP_INCLUDE_DIR"
echo "On this machine the CLHEP_LIB_DIR=\$CLHEP_LIB_DIR"
echo "On this machine the CLHEP_LIB=\$CLHEP_LIB"
echo "On this machine the G4USE_OSPACE=\$G4USE_OSPACE"
echo "On this machine the G4OSPACE_BASE_DIR=\$G4OSPACE_BASE_DIR"
echo "On this machine the G4LIB_USE_GRANULAR=\$G4LIB_USE_GRANULAR"
echo "On this machine the G4DEBUG=\$G4DEBUG"
echo "On this machine the G4UI_BUILD_TERMINAL_SESSION=\$G4UI_BUILD_TERMINAL_SESSION"
echo "On this machine the G4UI_USE_TERMINAL=\$G4UI_USE_TERMINAL"
echo "On this machine the G4UI_BUILD_GAG_SESSION=\$G4UI_BUILD_GAG_SESSION"
echo "On this machine the G4UI_USE_GAG=\$G4UI_USE_GAG"
echo "On this machine the G4UI_BUILD_XAW_SESSION=\$G4UI_BUILD_XAW_SESSION"
echo "On this machine the G4UI_USE_XAW=\$G4UI_USE_XAW"
echo "On this machine the G4UI_BUILD_XM_SESSION=\$G4UI_BUILD_XM_SESSION"
echo "On this machine the G4UI_USE_XM=\$G4UI_USE_XM"
echo "On this machine the G4UI_BUILD_WIN32_SESSION=\$G4UI_BUILD_WIN32_SESSION"
echo "On this machine the G4UI_USE_WIN32=\$G4UI_USE_WIN32"
echo "On this machine the G4UI_USE_TCSH=\$G4UI_USE_TCSH"
echo "On this machine the G4ANALYSIS_BUILD=\$G4ANALYSIS_BUILD"
echo "On this machine the G4ANALYSIS_BUILD_LAB=\$G4ANALYSIS_BUILD_LAB"
echo "On this machine the G4ANALYSIS_BUILD_JAS=\$G4ANALYSIS_BUILD_JAS"
echo "On this machine the G4ANALYSIS_BUILD_LIZARD=\$G4ANALYSIS_BUILD_LIZARD"
echo "On this machine the G4ANALYSIS_USE=\$G4ANALYSIS_USE"
echo "On this machine the G4ANALYSIS_USE_LAB=\$G4ANALYSIS_USE_LAB"
echo "On this machine the G4ANALYSIS_USE_JAS=\$G4ANALYSIS_USE_JAS"
echo "On this machine the G4ANALYSIS_USE_LIZARD=\$G4ANALYSIS_USE_LIZARD"
echo "On this machine the G4USE_HEPODBMS=\$G4USE_HEPODBMS"
echo "On this machine the G4VIS_BUILD_DAWN_DRIVER=\$G4VIS_BUILD_DAWN_DRIVER"
echo "On this machine the G4VIS_USE_DAWN=\$G4VIS_USE_DAWN"
echo "On this machine the G4VIS_BUILD_DAWNFILE_DRIVER=\$G4VIS_BUILD_DAWNFILE_DRIVER"
echo "On this machine the G4VIS_USE_DAWNFILE=\$G4VIS_USE_DAWNFILE"
echo "On this machine the G4VIS_BUILD_OPACS_DRIVER=\$G4VIS_BUILD_OPACS_DRIVER"
echo "On this machine the G4VIS_USE_OPACS=\$G4VIS_USE_OPACS"
echo "On this machine the G4VIS_BUILD_OPENGL_DRIVER=\$G4VIS_BUILD_OPENGL_DRIVER"
echo "On this machine the G4VIS_USE_OPENGL=\$G4VIS_USE_OPENGL"
echo "On this machine the G4VIS_BUILD_OPENGLX_DRIVER=\$G4VIS_BUILD_OPENGLX_DRIVER"
echo "On this machine the G4VIS_USE_OPENGLX=\$G4VIS_USE_OPENGLX"
echo "On this machine the G4VIS_BUILD_OIX_DRIVER=\$G4VIS_BUILD_OIX_DRIVER"
echo "On this machine the G4VIS_USE_OIX=\$G4VIS_USE_OIX"
echo "On this machine the G4VIS_BUILD_RAYTRACER_DRIVER=\$G4VIS_BUILD_RAYTRACER_DRIVER"
echo "On this machine the G4VIS_USE_RAYTRACER=\$G4VIS_USE_RAYTRACER"
echo "On this machine the G4VIS_BUILD_VRML_DRIVER=\$G4VIS_BUILD_VRML_DRIVER"
echo "On this machine the G4VIS_USE_VRML=\$G4VIS_USE_VRML"
echo "On this machine the G4VIS_BUILD_VRMLFILE_DRIVER=\$G4VIS_BUILD_VRMLFILE_DRIVER"
echo "On this machine the G4VIS_USE_VRMLFILE=\$G4VIS_USE_VRMLFILE"
echo "On this machine the G4VIS_BUILD_ASCIITREE_DRIVER=\$G4VIS_BUILD_ASCIITREE_DRIVER"
echo "On this machine the G4VIS_USE_ASCIITREE=\$G4VIS_USE_ASCIITREE"
echo "On this machine the G4LIB_BUILD_SHARED=\$G4LIB_BUILD_SHARED"
echo "On this machine the G4LIB_BUILD_STATIC=\$G4LIB_BUILD_STATIC"
echo "On this machine the G4LIB_USE_SHARED=\$G4LIB_USE_SHARED"
echo "On this machine the G4LIB_USE_STATIC=\$G4LIB_USE_STATIC"
###############################################################
!GROK!THIS!
: In the following dollars and backticks do not need the extra backslash.
$spitshell >>env.sh <<'!NO!SUBS!'
#+
#
# G4WORKDIR
#
if [ $G4WORKDIR ] ; then
echo "In your environment you have the G4WORKDIR=$G4WORKDIR"
else
echo "G4WORKDIR will be set to HOME=$HOME."
export G4WORKDIR=$HOME
fi
!NO!SUBS!
chmod 755 env.sh
$eunicefix env.sh
+172 -373
View File
@@ -28,119 +28,114 @@ $spitshell >install.sh <<!GROK!THIS!
#
#+
G4SYSTEM="$g4system"
export G4SYSTEM
echo "On this machine the G4SYSTEM=\$G4SYSTEM"
#
# g4dirs.U
#
#+
G4INSTALL="$g4install"
export G4INSTALL
echo "On this machine the G4INSTALL=\$G4INSTALL"
#+
if [ X$g4include != X ] ; then
G4INCLUDE="$g4include"
G4BASE="$g4base"
G4WORKDIR="$g4workdir"
export G4INCLUDE
echo "On this machine the G4INCLUDE=\$G4INCLUDE"
fi
#+
if [ X$g4tmp != X ] ; then
G4TMP="$g4tmp"
export G4TMP
echo "On this machine the G4TMP=\$G4TMP"
fi
#+
if [ X$g4lib != X ] ; then
G4LIB="$g4lib"
export G4LIB
echo "On this machine the G4LIB=\$G4LIB"
fi
#+
G4BIN="$g4bin"
G4DATA="$g4data"
#+
if [ X$g4levelgammadata != X ] ; then
G4LEVELGAMMADATA="$g4levelgammadata"
export G4LEVELGAMMADATA
echo "On this machine the G4LEVELGAMMADATA=\$G4LEVELGAMMADATA"
fi
#+
if [ X$g4radioactivedata != X ] ; then
G4RADIOACTIVEDATA="$g4radioactivedata"
export G4RADIOACTIVEDATA
echo "On this machine the G4RADIOACTIVEDATA=\$G4RADIOACTIVEDATA"
fi
#+
if [ X$g4ledata != X ] ; then
G4LEDATA="$g4ledata"
export G4LEDATA
echo "On this machine the G4LEDATA=\$G4LEDATA"
fi
#+
if [ X$g4neutronhpcrosssections != X ] ; then
NeutronHPCrossSections="$g4neutronhpcrosssections"
export NeutronHPCrossSections
echo "On this machine the NeutronHPCrossSections=\$NeutronHPCrossSections"
fi
#
# g4clhep.U
#
if [ X$g4clhep_base_dir != X ] ; then
CLHEP_BASE_DIR="$g4clhep_base_dir"
#+
CLHEP_INCLUDE_DIR="$g4clhep_include_dir"
#+
CLHEP_LIB_DIR="$g4clhep_lib_dir"
#+
CLHEP_LIB="$g4clhep_lib"
#+
#
# g4ospace
#
if [ X$g4use_ospace = Xy ] ; then
G4USE_OSPACE=1
else
G4USE_OSPACE=""
export CLHEP_BASE_DIR
echo "On this machine the CLHEP_BASE_DIR=\$CLHEP_BASE_DIR"
fi
G4OSPACE_BASE_DIR="$g4ospace_base_dir"
#+
if [ X$g4clhep_include_dir != X ] ; then
CLHEP_INCLUDE_DIR="$g4clhep_include_dir"
export CLHEP_INCLUDE_DIR
echo "On this machine the CLHEP_INCLUDE_DIR=\$CLHEP_INCLUDE_DIR"
fi
#+
if [ X$g4clhep_lib_dir != X ] ; then
CLHEP_LIB_DIR="$g4clhep_lib_dir"
export CLHEP_LIB_DIR
echo "On this machine the CLHEP_LIB_DIR=\$CLHEP_LIB_DIR"
fi
#+
if [ X$g4clhep_lib != X ] ; then
CLHEP_LIB="$g4clhep_lib"
export CLHEP_LIB
echo "On this machine the CLHEP_LIB=\$CLHEP_LIB"
fi
#+
#
# g4debug
#
if [ X$g4debug != X ] ; then
G4DEBUG="$g4debug"
export G4DEBUG
echo "On this machine the G4DEBUG=\$G4DEBUG"
fi
#
# g4analysis
#
#+
if [ X$g4wanalysis_build = Xy ] ; then
G4ANALYSIS_BUILD=1
else
G4ANALYSIS_BUILD=""
fi
#+
if [ X$g4wanalysis_build_lab = Xy ] ; then
G4ANALYSIS_BUILD_LAB=1
else
G4ANALYSIS_BUILD_LAB=""
fi
#+
if [ X$g4wanalysis_build_jas = Xy ] ; then
G4ANALYSIS_BUILD_JAS=1
else
G4ANALYSIS_BUILD_JAS=""
fi
#+
if [ X$g4wanalysis_build_lizard = Xy ] ; then
G4ANALYSIS_BUILD_LIZARD=1
else
G4ANALYSIS_BUILD_LIZARD=""
fi
#+
if [ X$g4wanalysis_use = Xy ] ; then
G4ANALYSIS_USE=1
else
G4ANALYSIS_USE=""
fi
#+
if [ X$g4wanalysis_use_lab = Xy ] ; then
G4ANALYSIS_USE_LAB=1
else
G4ANALYSIS_USE_LAB=""
fi
#+
if [ X$g4wanalysis_use_jas = Xy ] ; then
G4ANALYSIS_USE_JAS=1
else
G4ANALYSIS_USE_JAS=""
fi
#+
if [ X$g4wanalysis_use_lizard = Xy ] ; then
G4ANALYSIS_USE_LIZARD=1
else
G4ANALYSIS_USE_LIZARD=""
export G4ANALYSIS_USE
echo "On this machine the G4ANALYSIS_USE=\$G4ANALYSIS_USE"
fi
#+
@@ -149,89 +144,68 @@ fi
#
if [ X$g4use_hepodbms = Xy ] ; then
G4USE_HEPODBMS=1
export G4USE_HEPODBMS
. \$G4INSTALL/examples/extended/persistency/PersistentEx01/g4odbms_setup.sh
else
G4USE_HEPODBMS=""
echo "On this machine the G4USE_HEPODBMS=\$G4USE_HEPODBMS"
fi
#
# g4ui
#
#+
if [ X$g4ui_build_terminal_session = Xy ] ; then
G4UI_BUILD_TERMINAL_SESSION=1
else
G4UI_BUILD_TERMINAL_SESSION=""
fi
#+
if [ X$g4ui_use_terminal = Xy ] ; then
G4UI_USE_TERMINAL=1
else
G4UI_USE_TERMINAL=""
fi
#+
if [ X$g4ui_build_gag_session = Xy ] ; then
G4UI_BUILD_GAG_SESSION=1
else
G4UI_BUILD_GAG_SESSION=""
fi
#+
if [ X$g4ui_use_gag = Xy ] ; then
G4UI_USE_GAG=1
else
G4UI_USE_GAG=""
fi
#+
if [ X$g4ui_build_xaw_session = Xy ] ; then
G4UI_BUILD_XAW_SESSION=1
else
G4UI_BUILD_XAW_SESSION=""
export G4UI_BUILD_XAW_SESSION
echo "On this machine the G4UI_BUILD_XAW_SESSION=\$G4UI_BUILD_XAW_SESSION"
fi
#+
if [ X$g4ui_use_xaw = Xy ] ; then
G4UI_USE_XAW=1
else
G4UI_USE_XAW=""
export G4UI_USE_XAW
echo "On this machine the G4UI_USE_XAW=\$G4UI_USE_XAW"
fi
#+
if [ X$g4ui_build_xm_session = Xy ] ; then
G4UI_BUILD_XM_SESSION=1
else
G4UI_BUILD_XM_SESSION=""
export G4UI_BUILD_XM_SESSION
echo "On this machine the G4UI_BUILD_XM_SESSION=\$G4UI_BUILD_XM_SESSION"
fi
#+
if [ X$g4ui_use_xm = Xy ] ; then
G4UI_USE_XM=1
else
G4UI_USE_XM=""
export G4UI_USE_XM
echo "On this machine the G4UI_USE_XM=\$G4UI_USE_XM"
fi
#+
if [ X$g4ui_build_win32_session = Xy ] ; then
G4UI_BUILD_WIN32_SESSION=1
else
G4UI_BUILD_WIN32_session=""
export G4UI_BUILD_WIN32_SESSION
echo "On this machine the G4UI_BUILD_WIN32_SESSION=\$G4UI_BUILD_WIN32_SESSION"
fi
#+
if [ X$g4ui_use_win32 = Xy ] ; then
G4UI_USE_WIN32=1
else
G4UI_USE_WIN32=""
export G4UI_USE_WIN32
echo "On this machine the G4UI_USE_WIN32=\$G4UI_USE_WIN32"
fi
#+
if [ X$g4ui_use_tcsh = Xy ] ; then
G4UI_USE_TCSH=1
else
G4UI_USE_TCSH=""
if [ X$g4ui_build_wo_session = Xy ] ; then
G4UI_BUILD_WO_SESSION=1
export G4UI_BUILD_WO_SESSION
echo "On this machine the G4UI_BUILD_WO_SESSION=\$G4UI_BUILD_WO_SESSION"
fi
#+
if [ X$g4ui_use_wo = Xy ] ; then
G4UI_USE_WO=1
export G4UI_USE_WO
echo "On this machine the G4UI_USE_WO=\$G4UI_USE_WO"
fi
#
@@ -240,174 +214,141 @@ fi
#+
if [ X$g4vis_build_dawn_driver = Xy ] ; then
G4VIS_BUILD_DAWN_DRIVER=1
else
G4VIS_BUILD_DAWN_DRIVER=""
fi
#+
if [ X$g4vis_build_dawnfile_driver = Xy ] ; then
G4VIS_BUILD_DAWNFILE_DRIVER=1
else
G4VIS_BUILD_DAWN_DRIVER=""
export G4VIS_BUILD_DAWN_DRIVER
echo "On this machine the G4VIS_BUILD_DAWN_DRIVER=\$G4VIS_BUILD_DAWN_DRIVER"
fi
#+
if [ X$g4vis_build_opacs_driver = Xy ] ; then
G4VIS_BUILD_OPACS_DRIVER=1
else
G4VIS_BUILD_OPACS_DRIVER=""
fi
#?
if [ X$g4vis_build_opengl_driver = Xy ] ; then
G4VIS_BUILD_OPENGL_DRIVER=1
else
G4VIS_BUILD_OPENGL_DRIVER=""
export G4VIS_BUILD_OPACS_DRIVER
echo "On this machine the G4VIS_BUILD_OPACS_DRIVER=\$G4VIS_BUILD_OPACS_DRIVER"
fi
#+
if [ X$g4vis_build_OPENGLX_driver = Xy ] ; then
if [ X$g4vis_build_openglx_driver = Xy ] ; then
G4VIS_BUILD_OPENGLX_DRIVER=1
else
G4VIS_BUILD_OPENGLX_DRIVER=""
export G4VIS_BUILD_OPENGLX_DRIVER
echo "On this machine the G4VIS_BUILD_OPENGLX_DRIVER=\$G4VIS_BUILD_OPENGLX_DRIVER"
fi
#+
if [ X$g4vis_build_openglxm_driver = Xy ] ; then
G4VIS_BUILD_OPENGLXM_DRIVER=1
export G4VIS_BUILD_OPENGLXM_DRIVER
echo "On this machine the G4VIS_BUILD_OPENGLXM_DRIVER=\$G4VIS_BUILD_OPENGLXM_DRIVER"
fi
#+
if [ X$g4vis_build_openglwin32_driver = Xy ] ; then
G4VIS_BUILD_OPENGLWIN32_DRIVER=1
export G4VIS_BUILD_OPENGLWIN32_DRIVER
echo "On this machine the G4VIS_BUILD_OPENGLWIN32_DRIVER=\$G4VIS_BUILD_OPENGLWIN32_DRIVER"
fi
#+
if [ X$g4vis_build_oix_driver = Xy ] ; then
G4VIS_BUILD_OIX_DRIVER=1
else
G4VIS_BUILD_OIX_DRIVER=""
export G4VIS_BUILD_OIX_DRIVER
echo "On this machine the G4VIS_BUILD_OIX_DRIVER=\$G4VIS_BUILD_OIX_DRIVER"
fi
#+
if [ X$g4vis_build_raytracer_driver = Xy ] ; then
G4VIS_BUILD_RAYTRACER_DRIVER=1
else
G4VIS_BUILD_RAYTRACER_DRIVER=""
if [ X$g4vis_build_oiwin32_driver = Xy ] ; then
G4VIS_BUILD_OIWIN32_DRIVER=1
export G4VIS_BUILD_OIWIN32_DRIVER
echo "On this machine the G4VIS_BUILD_OIWIN32_DRIVER=\$G4VIS_BUILD_OIWIN32_DRIVER"
fi
#+
if [ X$g4vis_build_vrml_driver = Xy ] ; then
G4VIS_BUILD_VRML_DRIVER=1
else
G4VIS_BUILD_VRML_DRIVER=""
fi
#+
if [ X$g4vis_build_vrmlfile_driver = Xy ] ; then
G4VIS_BUILD_VRMLFILE_DRIVER=1
else
G4VIS_BUILD_VRMLFILE_DRIVER=""
fi
#?
if [ X$g4vis_build_asciitree_driver = Xy ] ; then
G4VIS_BUILD_ASCIITREE_DRIVER=1
else
G4VIS_BUILD_ASCIITREE_DRIVER=""
export G4VIS_BUILD_VRML_DRIVER
echo "On this machine the G4VIS_BUILD_VRML_DRIVER=\$G4VIS_BUILD_VRML_DRIVER"
fi
#+
if [ X$g4vis_use_dawn = Xy ] ; then
G4VIS_USE_DAWN=1
else
G4VIS_USE_DAWN=""
fi
#+
if [ X$g4vis_use_dawnfile = Xy ] ; then
G4VIS_USE_DAWNFILE=1
else
G4VIS_USE_DAWN=""
export G4VIS_USE_DAWN
echo "On this machine the G4VIS_USE_DAWN=\$G4VIS_USE_DAWN"
fi
#+
if [ X$g4vis_use_opacs = Xy ] ; then
G4VIS_USE_OPACS=1
else
G4VIS_USE_OPACS=""
fi
#?
if [ X$g4vis_use_opengl = Xy ] ; then
G4VIS_USE_OPENGL=1
else
G4VIS_USE_OPENGL=""
export G4VIS_USE_OPACS
echo "On this machine the G4VIS_USE_OPACS=\$G4VIS_USE_OPACS"
fi
#+
if [ X$g4vis_use_OPENGLX = Xy ] ; then
if [ X$g4vis_use_openglx = Xy ] ; then
G4VIS_USE_OPENGLX=1
else
G4VIS_USE_OPENGLX=""
export G4VIS_USE_OPENGLX
echo "On this machine the G4VIS_USE_OPENGLX=\$G4VIS_USE_OPENGLX"
fi
#+
if [ X$g4vis_use_openglxm = Xy ] ; then
G4VIS_USE_OPENGLXM=1
export G4VIS_USE_OPENGLXM
echo "On this machine the G4VIS_USE_OPENGLXM=\$G4VIS_USE_OPENGLXM"
fi
#+
if [ X$g4vis_use_openglwin32 = Xy ] ; then
G4VIS_USE_OPENGLWIN32=1
export G4VIS_USE_OPENGLWIN32
echo "On this machine the G4VIS_USE_OPENGLWIN32=\$G4VIS_USE_OPENGLWIN32"
fi
#+
if [ X$g4vis_use_oix = Xy ] ; then
G4VIS_USE_OIX=1
else
G4VIS_USE_OIX=""
export G4VIS_USE_OIX
echo "On this machine the G4VIS_USE_OIX=\$G4VIS_USE_OIX"
fi
#+
if [ X$g4vis_use_raytracer = Xy ] ; then
G4VIS_USE_RAYTRACER=1
else
G4VIS_USE_RAYTRACER=""
if [ X$g4vis_use_oiwin32 = Xy ] ; then
G4VIS_USE_OIWIN32=1
export G4VIS_USE_OIWIN32
echo "On this machine the G4VIS_USE_OIWIN32=\$G4VIS_USE_OIWIN32"
fi
#+
if [ X$g4vis_use_vrml = Xy ] ; then
G4VIS_USE_VRML=1
else
G4VIS_USE_VRML=""
fi
#+
if [ X$g4vis_use_vrmlfile = Xy ] ; then
G4VIS_USE_VRMLFILE=1
else
G4VIS_USE_VRMLFILE=""
fi
#?
if [ X$g4vis_use_asciitree = Xy ] ; then
G4VIS_USE_ASCIITREE=1
else
G4VIS_USE_ASCIITREE=""
export G4VIS_USE_VRML
echo "On this machine the G4VIS_USE_VRML=\$G4VIS_USE_VRML"
fi
#+
#
# g4shared
#
G4LIB_BUILD_SHARED="$g4lib_build_shared"
G4LIB_BUILD_STATIC="$g4lib_build_static"
G4LIB_USE_SHARED="$g4lib_use_shared"
G4LIB_USE_STATIC="$g4lib_use_static"
if [ X$g4lib_build_shared = Xy ] ; then
G4LIB_BUILD_SHARED=1
else
G4LIB_BUILD_SHARED=""
export G4LIB_BUILD_SHARED
echo "On this machine the G4LIB_BUILD_SHARED=\$G4LIB_BUILD_SHARED"
fi
if [ X$g4lib_build_static = Xy ] ; then
G4LIB_BUILD_STATIC=1
else
G4LIB_BUILD_STATIC=""
export G4LIB_BUILD_STATIC
echo "On this machine the G4LIB_BUILD_STATIC=\$G4LIB_BUILD_STATIC"
fi
if [ X$g4lib_use_shared = Xy ] ; then
G4LIB_USE_SHARED=1
else
G4LIB_USE_SHARED=""
export G4LIB_USE_SHARED
echo "On this machine the G4LIB_USE_SHARED=\$G4LIB_USE_SHARED"
fi
if [ X$g4lib_use_static = Xy ] ; then
G4LIB_USE_STATIC=1
else
G4LIB_USE_STATIC=""
export G4LIB_USE_STATIC
echo "On this machine the G4LIB_USE_STATIC=\$G4LIB_USE_STATIC"
fi
#+
@@ -416,178 +357,35 @@ fi
#
if [ X$g4lib_use_granular = Xy ] ; then
G4LIB_USE_GRANULAR=1
else
G4LIB_USE_GRANULAR=""
export G4LIB_USE_GRANULAR
echo "On this machine the G4LIB_USE_GRANULAR=\$G4LIB_USE_GRANULAR"
fi
#####################################################################
export G4SYSTEM
export G4INSTALL
export G4INCLUDE
export G4BASE
export G4WORKDIR
export G4TMP
export G4LIB
export G4BIN
export G4DATA
export G4LEVELGAMMADATA
export CLHEP_BASE_DIR
export CLHEP_INCLUDE_DIR
export CLHEP_LIB_DIR
export CLHEP_LIB
export G4USE_OSPACE
export G4OSPACE_BASE_DIR
export G4LIB_USE_GRANULAR
export G4DEBUG
export G4ANALYSIS_BUILD
export G4ANALYSIS_BUILD_LAB
export G4ANALYSIS_BUILD_JAS
export G4ANALYSIS_BUILD_LIZARD
export G4ANALYSIS_USE
export G4ANALYSIS_USE_LAB
export G4ANALYSIS_USE_JAS
export G4ANALYSIS_USE_LIZARD
export G4USE_HEPODBMS
export G4UI_BUILD_TERMINAL_SESSION
export G4UI_USE_TERMINAL
export G4UI_BUILD_GAG_SESSION
export G4UI_USE_GAG
export G4UI_BUILD_XAW_SESSION
export G4UI_USE_XAW
export G4UI_BUILD_XM_SESSION
export G4UI_USE_XM
export G4UI_BUILD_WIN32_SESSION
export G4UI_USE_WIN32
export G4UI_USE_TCSH
export G4VIS_BUILD_DAWN_DRIVER
export G4VIS_USE_DAWN
export G4VIS_BUILD_DAWNFILE_DRIVER
export G4VIS_USE_DAWNFILE
export G4VIS_BUILD_OPACS_DRIVER
export G4VIS_USE_OPACS
export G4VIS_BUILD_OPENGL_DRIVER
export G4VIS_USE_OPENGL
export G4VIS_BUILD_OPENGLX_DRIVER
export G4VIS_USE_OPENGLX
export G4VIS_BUILD_OIX_DRIVER
export G4VIS_USE_OIX
export G4VIS_BUILD_RAYTRACER_DRIVER
export G4VIS_USE_RAYTRACER
export G4VIS_BUILD_VRML_DRIVER
export G4VIS_USE_VRML
export G4VIS_BUILD_VRMLFILE_DRIVER
export G4VIS_USE_VRMLFILE
export G4VIS_BUILD_ASCIITREE_DRIVER
export G4VIS_USE_ASCIITREE
export G4LIB_BUILD_SHARED
export G4LIB_BUILD_STATIC
export G4LIB_USE_SHARED
export G4LIB_USE_STATIC
###############################################
#####################################################################
echo "On this machine the G4SYSTEM=\$G4SYSTEM"
echo "On this machine the G4INSTALL=\$G4INSTALL"
echo "On this machine the G4INCLUDE=\$G4INCLUDE"
echo "On this machine the G4BASE=\$G4BASE"
echo "On this machine the G4WORKDIR=\$G4WORKDIR"
echo "On this machine the G4TMP=\$G4TMP"
echo "On this machine the G4LIB=\$G4LIB"
echo "On this machine the G4BIN=\$G4BIN"
echo "On this machine the G4DATA=\$G4DATA"
echo "On this machine the G4LEVELGAMMADATA=\$G4LEVELGAMMADATA"
echo "On this machine the CLHEP_BASE_DIR=\$CLHEP_BASE_DIR"
echo "On this machine the CLHEP_INCLUDE_DIR=\$CLHEP_INCLUDE_DIR"
echo "On this machine the CLHEP_LIB_DIR=\$CLHEP_LIB_DIR"
echo "On this machine the CLHEP_LIB=\$CLHEP_LIB"
echo "On this machine the G4USE_OSPACE=\$G4USE_OSPACE"
echo "On this machine the G4OSPACE_BASE_DIR=\$G4OSPACE_BASE_DIR"
echo "On this machine the G4LIB_USE_GRANULAR=\$G4LIB_USE_GRANULAR"
echo "On this machine the G4DEBUG=\$G4DEBUG"
echo "On this machine the G4UI_BUILD_TERMINAL_SESSION=\$G4UI_BUILD_TERMINAL_SESSION"
echo "On this machine the G4UI_USE_TERMINAL=\$G4UI_USE_TERMINAL"
echo "On this machine the G4UI_BUILD_GAG_SESSION=\$G4UI_BUILD_GAG_SESSION"
echo "On this machine the G4UI_USE_GAG=\$G4UI_USE_GAG"
echo "On this machine the G4UI_BUILD_XAW_SESSION=\$G4UI_BUILD_XAW_SESSION"
echo "On this machine the G4UI_USE_XAW=\$G4UI_USE_XAW"
echo "On this machine the G4UI_BUILD_XM_SESSION=\$G4UI_BUILD_XM_SESSION"
echo "On this machine the G4UI_USE_XM=\$G4UI_USE_XM"
echo "On this machine the G4UI_BUILD_WIN32_SESSION=\$G4UI_BUILD_WIN32_SESSION"
echo "On this machine the G4UI_USE_WIN32=\$G4UI_USE_WIN32"
echo "On this machine the G4UI_USE_TCSH=\$G4UI_USE_TCSH"
echo "On this machine the G4ANALYSIS_BUILD=\$G4ANALYSIS_BUILD"
echo "On this machine the G4ANALYSIS_BUILD_LAB=\$G4ANALYSIS_BUILD_LAB"
echo "On this machine the G4ANALYSIS_BUILD_JAS=\$G4ANALYSIS_BUILD_JAS"
echo "On this machine the G4ANALYSIS_BUILD_LIZARD=\$G4ANALYSIS_BUILD_LIZARD"
echo "On this machine the G4ANALYSIS_USE=\$G4ANALYSIS_USE"
echo "On this machine the G4ANALYSIS_USE_LAB=\$G4ANALYSIS_USE_LAB"
echo "On this machine the G4ANALYSIS_USE_JAS=\$G4ANALYSIS_USE_JAS"
echo "On this machine the G4ANALYSIS_USE_LIZARD=\$G4ANALYSIS_USE_LIZARD"
echo "On this machine the G4USE_HEPODBMS=\$G4USE_HEPODBMS"
echo "On this machine the G4VIS_BUILD_DAWN_DRIVER=\$G4VIS_BUILD_DAWN_DRIVER"
echo "On this machine the G4VIS_USE_DAWN=\$G4VIS_USE_DAWN"
echo "On this machine the G4VIS_BUILD_DAWNFILE_DRIVER=\$G4VIS_BUILD_DAWNFILE_DRIVER"
echo "On this machine the G4VIS_USE_DAWNFILE=\$G4VIS_USE_DAWNFILE"
echo "On this machine the G4VIS_BUILD_OPACS_DRIVER=\$G4VIS_BUILD_OPACS_DRIVER"
echo "On this machine the G4VIS_USE_OPACS=\$G4VIS_USE_OPACS"
echo "On this machine the G4VIS_BUILD_OPENGL_DRIVER=\$G4VIS_BUILD_OPENGL_DRIVER"
echo "On this machine the G4VIS_USE_OPENGL=\$G4VIS_USE_OPENGL"
echo "On this machine the G4VIS_BUILD_OPENGLX_DRIVER=\$G4VIS_BUILD_OPENGLX_DRIVER"
echo "On this machine the G4VIS_USE_OPENGLX=\$G4VIS_USE_OPENGLX"
echo "On this machine the G4VIS_BUILD_OIX_DRIVER=\$G4VIS_BUILD_OIX_DRIVER"
echo "On this machine the G4VIS_USE_OIX=\$G4VIS_USE_OIX"
echo "On this machine the G4VIS_BUILD_RAYTRACER_DRIVER=\$G4VIS_BUILD_RAYTRACER_DRIVER"
echo "On this machine the G4VIS_USE_RAYTRACER=\$G4VIS_USE_RAYTRACER"
echo "On this machine the G4VIS_BUILD_VRML_DRIVER=\$G4VIS_BUILD_VRML_DRIVER"
echo "On this machine the G4VIS_USE_VRML=\$G4VIS_USE_VRML"
echo "On this machine the G4VIS_BUILD_VRMLFILE_DRIVER=\$G4VIS_BUILD_VRMLFILE_DRIVER"
echo "On this machine the G4VIS_USE_VRMLFILE=\$G4VIS_USE_VRMLFILE"
echo "On this machine the G4VIS_BUILD_ASCIITREE_DRIVER=\$G4VIS_BUILD_ASCIITREE_DRIVER"
echo "On this machine the G4VIS_USE_ASCIITREE=\$G4VIS_USE_ASCIITREE"
echo "On this machine the G4LIB_BUILD_SHARED=\$G4LIB_BUILD_SHARED"
echo "On this machine the G4LIB_BUILD_STATIC=\$G4LIB_BUILD_STATIC"
echo "On this machine the G4LIB_USE_SHARED=\$G4LIB_USE_SHARED"
echo "On this machine the G4LIB_USE_STATIC=\$G4LIB_USE_STATIC"
###############################################################
echo ""
echo "Starting installation..."
echo ""
cd $g4install/source
echo `pwd`
# THere is no env!
if [ X$g4global = Xy ] ; then
gmake global
fi
# There is env for binaries - for User: should be set in env.[c]sh!
if [ X$g4granular = Xy ] ; then
G4LIB_USE_GRANULAR=1
export G4LIB_USE_GRANULAR
gmake
fi
else
gmake
fi
# There is no env!
if [ X$g4includes_flag = Xy ] ; then
gmake includes
fi
!GROK!THIS!
: In the following dollars and backticks do not need the extra backslash.
@@ -595,3 +393,4 @@ $spitshell >>install.sh <<'!NO!SUBS!'
!NO!SUBS!
chmod 755 install.sh
$eunicefix install.sh
+1 -1
View File
@@ -28,7 +28,7 @@ ifeq ($(G4SYSTEM),AIX-xlC)
OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL
endif
CPPFLAGS += -DG4NOT_ISO_DELETES
CPPFLAGS += -I$(G4STLINC)/wrappers/$(G4SYSTEM)
CPPFLAGS += -I$(G4BASE)/global/management/include/g4std/wrappers/$(G4SYSTEM)
ifdef G4USE_OSPACE
CPPFLAGS += -DOS_AIX_4 -DOS_NEW_CHECK -DOS_STL_ASSERT
CPPFLAGS += -DOS_NO_WSTRING -DOS_NO_ALLOCATORS
+1 -1
View File
@@ -27,7 +27,7 @@ ifeq ($(G4SYSTEM),DEC-cxx)
OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL
# OGLLIBS := -lMesaGLU -lMesaGL
endif
CPPFLAGS += -I$(G4STLINC)/wrappers/$(G4SYSTEM)
CPPFLAGS += -I$(G4BASE)/global/management/include/g4std/wrappers/$(G4SYSTEM)
ifdef G4USE_OSPACE
CPPFLAGS += -DOS_OSF1_4 -DOS_NEW_CHECK -DOS_STL_ASSERT -DOS_NO_WSTRING
CPPFLAGS += -DOS_NO_ALLOCATORS -D__NO_EDG_EXCEPTION_CLASSES
+1 -1
View File
@@ -39,7 +39,7 @@ ifeq ($(G4SYSTEM),HP-aCC)
OGLLIBS += -L/opt/graphics/common/lib -lXwindow -lhpgfx -lXhp11 -ldld
endif
CPPFLAGS += -DG4NOT_ISO_DELETES
CPPFLAGS += -I$(G4STLINC)/wrappers/$(G4SYSTEM)
CPPFLAGS += -I$(G4BASE)/global/management/include/g4std/wrappers/$(G4SYSTEM)
ifdef G4USE_OSPACE
CPPFLAGS += -DOS_HPUX_10_20 -DOS_NEW_CHECK -DOS_STL_ASSERT
CPPFLAGS += -DOS_NO_WSTRING -DOS_NO_ALLOCATORS -D__HPACC_NOEH
+67
View File
@@ -0,0 +1,67 @@
#
# ------ GNU/LINUX ------
#
ifeq ($(G4SYSTEM),Linux-egcs)
CXX := g++
GNU_GCC = 1
CXXFLAGS := -pipe -fno-for-scope -DGNU_GCC
ifdef G4OPTIMISE
CXXFLAGS += -O
FCFLAGS := -O
CCFLAGS := -O
else
ifdef G4DEBUG
CXXFLAGS += -g
FCFLAGS := -g
CCFLAGS := -g
endif
endif
ifdef G4PROFILE
CXXFLAGS += -pg
FCFLAGS += -pg
CCFLAGS += -pg
endif
ifdef G4LIB_BUILD_SHARED
CXXFLAGS += -fPIC
FCFLAGS += -fPIC
CCFLAGS += -fPIC
endif
G4RUNPATHOPTION := -Wl,-rpath
FC := g77
FCFLAGS += -fno-automatic -fno-backslash -fno-second-underscore
FCLIBS := -lg2c -lnsl
ECHO := /bin/echo -e
SHEXT := so
X11FLAGS := -I/usr/include/X11/extensions -I/usr/include/X11
X11LIBS := -L/usr/X11R6/lib -lXmu -lXt -lXext -lX11 -lSM -lICE
XMFLAGS := -I/usr/X11R6/include
XMLIBS := -lXm -lXpm
DLDLIBS := -ldl
ifndef OGLFLAGS
OGLFLAGS := -I$(OGLHOME)/include
endif
ifndef OGLLIBS
OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL
endif
OIVFLAGS += -I$(OIHOME)/include
ifdef G4USE_OSPACE
CPPFLAGS += -DOS_LINUX_2 -DOS_NEW_CHECK -DOS_STL_ASSERT
CPPFLAGS += -DOS_NO_WSTRING -DOS_NO_ALLOCATORS
CPPFLAGS += -I$(OSPACE_BASE_DIR)/ospace/std -I$(OSPACE_BASE_DIR)
endif
ifdef G4ODBMS
G4DDLX_FLAGS += -D__STL_CLASS_PARTIAL_SPECIALIZATION -Dstd="" -DG4std=""
endif
define build-granular-shared-lib
@libdir=`(cd $(@D);/bin/pwd)`; \
cd $(G4TMPDIR); \
$(CXX) -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) *.o
endef
define build-global-shared-lib
@libdir=`(cd $(@D);/bin/pwd)`; \
cd $(G4TMP)/$(G4SYSTEM); \
$(CXX) -Wl,-soname,$(@F) -shared -o $$libdir/$(@F) \
$(foreach dir,$(SUBLIBS),$(dir)/*.o);
endef
endif
+11 -15
View File
@@ -1,11 +1,11 @@
#
# ------ GNU/LINUX ------
# ------ GNU/LINUX ------ gcc 2.95.2
#
ifeq ($(G4SYSTEM),Linux-g++)
CXX := g++
GNU_GCC = 1
# CXXFLAGS := -Wall -ansi -pedantic -pipe -fno-for-scope -DGNU_GCC
CXXFLAGS := -pipe -fno-for-scope -DGNU_GCC
CXXFLAGS := -Wall -ansi -pedantic -pipe -fno-for-scope -DGNU_GCC
# CXXFLAGS := -pipe -fno-for-scope -DGNU_GCC
ifdef G4OPTIMISE
CXXFLAGS += -O
FCFLAGS := -O
@@ -17,6 +17,11 @@ ifeq ($(G4SYSTEM),Linux-g++)
CCFLAGS := -g
endif
endif
ifdef G4PROFILE
CXXFLAGS += -pg
FCFLAGS += -pg
CCFLAGS += -pg
endif
ifdef G4LIB_BUILD_SHARED
CXXFLAGS += -fPIC
FCFLAGS += -fPIC
@@ -40,19 +45,10 @@ ifeq ($(G4SYSTEM),Linux-g++)
OGLLIBS := -L$(OGLHOME)/lib -lGLU -lGL
endif
OIVFLAGS += -I$(OIHOME)/include
ifdef G4USE_OSPACE
CPPFLAGS += -DOS_LINUX_2 -DOS_NEW_CHECK -DOS_STL_ASSERT
CPPFLAGS += -DOS_NO_WSTRING -DOS_NO_ALLOCATORS
CPPFLAGS += -I$(OSPACE_BASE_DIR)/ospace/std -I$(OSPACE_BASE_DIR)
# else
# G4USE_STD_NAMESPACE := yes
# CPPFLAGS += -DG4USE_STD_NAMESPACE
endif
G4USE_STD_NAMESPACE := yes
CPPFLAGS += -DG4USE_STD_NAMESPACE
ifdef G4ODBMS
GCCVERSION := $(shell g++ -v 2>&1 | grep version | grep egcs)
ifeq ($(findstring 1.1,$(GCCVERSION)),1.1)
G4DDLX_FLAGS += -D__STL_CLASS_PARTIAL_SPECIALIZATION -Dstd=""
endif
G4DDLX_FLAGS += -DG4std=""
endif
define build-granular-shared-lib
@libdir=`(cd $(@D);/bin/pwd)`; \
+1 -1
View File
@@ -27,7 +27,7 @@ ifeq ($(G4SYSTEM),SGI-CC)
OGLLIBS := -L/usr/lib -lGLU -lGL
endif
CPPFLAGS += -DSOCKET_IRIX_SOLARIS
CPPFLAGS += -I$(G4STLINC)/wrappers/$(G4SYSTEM)
CPPFLAGS += -I$(G4BASE)/global/management/include/g4std/wrappers/$(G4SYSTEM)
ifdef G4USE_OSPACE
CPPFLAGS += -DOS_IRIX_6_5 -DOS_NEW_CHECK -DOS_STL_ASSERT
CPPFLAGS += -DOS_NO_WSTRING -DOS_NO_ALLOCATORS
+19 -5
View File
@@ -12,13 +12,15 @@ ifeq ($(G4SYSTEM),SUN-CC)
CCFLAGS := -g
endif
endif
CXXFLAGS += -features=no%anachronisms -mt -lpthread
# CXXFLAGS += -fnonstd
ifdef G4LIB_BUILD_SHARED
CXXFLAGS += -KPIC
FCFLAGS += -KPIC
CCFLAGS += -KPIC
endif
G4RUNPATHOPTION = -R
# CXXFLAGS += -fnonstd
G4RUNPATHOPTION := -R
G4_HAVE_BOOL := yes
CFRONT_G4TEMPLATE_REPOSITORY := true
FC := f77
SHEXT := so
@@ -44,11 +46,24 @@ ifeq ($(G4SYSTEM),SUN-CC)
CPPFLAGS += -DSOCKET_IRIX_SOLARIS
LOADLIBS += -L/usr/lib -lsocket -lnsl
CPPFLAGS += -DG4NOT_ISO_DELETES
CPPFLAGS += -I$(G4STLINC)/wrappers/$(G4SYSTEM)
ifdef G4ODBMS
G4DDLX_FLAGS += -noline
endif
ifdef G4USE_OSPACE
CPPFLAGS += -DOS_SOLARIS_2_5 -DOS_NEW_CHECK -DOS_STL_ASSERT
CPPFLAGS += -DOS_NO_WSTRING -DOS_NO_ALLOCATORS
CPPFLAGS += $(OSPACEINC) -I$(OSPACE_BASE_DIR)
CXXFLAGS += -compat
else
ifndef G4NO_STD_NAMESPACE
G4USE_STD_NAMESPACE := yes
CPPFLAGS += -DG4USE_STD_NAMESPACE
ifdef G4ODBMS
G4DDLX_FLAGS += -DG4std="std"
endif
else
CXXFLAGS += -compat
endif
endif
define build-granular-shared-lib
@@ -61,6 +76,5 @@ ifeq ($(G4SYSTEM),SUN-CC)
cd $(G4TMP)/$(G4SYSTEM); \
$(CXX) -G $(CXXTEMPLATE_FLAGS) -o $$libdir/$(@F) -h $(@F) \
$(foreach dir,$(SUBLIBS),$(dir)/*.o);
endef
endef
endif
@@ -1,7 +1,7 @@
#
# -------- SUN ---------
#
ifeq ($(G4SYSTEM),SUN-CC5)
# -------- SUN --------- !!! not supported !!!
# SUN CC-4.2
ifeq ($(G4SYSTEM),SUN-CC4)
CXX := CC
ifdef G4OPTIMISE
CXXFLAGS := -O
@@ -12,15 +12,13 @@ ifeq ($(G4SYSTEM),SUN-CC5)
CCFLAGS := -g
endif
endif
CXXFLAGS += -features=no%anachronisms -mt -lpthread
# CXXFLAGS += -fnonstd
ifdef G4LIB_BUILD_SHARED
CXXFLAGS += -KPIC
FCFLAGS += -KPIC
CCFLAGS += -KPIC
endif
G4RUNPATHOPTION := -R
G4_HAVE_BOOL := yes
G4RUNPATHOPTION = -R
# CXXFLAGS += -fnonstd
CFRONT_G4TEMPLATE_REPOSITORY := true
FC := f77
SHEXT := so
@@ -46,22 +44,14 @@ ifeq ($(G4SYSTEM),SUN-CC5)
CPPFLAGS += -DSOCKET_IRIX_SOLARIS
LOADLIBS += -L/usr/lib -lsocket -lnsl
CPPFLAGS += -DG4NOT_ISO_DELETES
CPPFLAGS += -I$(G4STLINC)/wrappers/$(G4SYSTEM)
ifdef G4ODBMS
G4DDLX_FLAGS += -noline
endif
CPPFLAGS += -I$(G4BASE)/global/management/include/g4std/wrappers/$(G4SYSTEM)
ifdef G4USE_OSPACE
CPPFLAGS += -DOS_SOLARIS_2_5 -DOS_NEW_CHECK -DOS_STL_ASSERT
CPPFLAGS += -DOS_NO_WSTRING -DOS_NO_ALLOCATORS
CPPFLAGS += $(OSPACEINC) -I$(OSPACE_BASE_DIR)
CXXFLAGS += -compat
else
ifndef G4NO_STD_NAMESPACE
G4USE_STD_NAMESPACE := yes
CPPFLAGS += -DG4USE_STD_NAMESPACE
else
CXXFLAGS += -compat
endif
endif
ifdef G4ODBMS
G4DDLX_FLAGS += -DG4std=""
endif
define build-granular-shared-lib
@@ -74,5 +64,6 @@ ifeq ($(G4SYSTEM),SUN-CC5)
cd $(G4TMP)/$(G4SYSTEM); \
$(CXX) -G $(CXXTEMPLATE_FLAGS) -o $$libdir/$(@F) -h $(@F) \
$(foreach dir,$(SUBLIBS),$(dir)/*.o);
endef
endef
endif
+1 -1
View File
@@ -47,7 +47,7 @@ ifeq ($(G4SYSTEM),WIN32-g++)
CPPFLAGS += -I$(OSPACE_BASE_DIR)/ospace/std -I$(OSPACE_BASE_DIR)
endif
ifdef G4ODBMS
G4DDLX_FLAGS += -D__STL_CLASS_PARTIAL_SPECIALIZATION -Dstd=""
G4DDLX_FLAGS += -D__STL_CLASS_PARTIAL_SPECIALIZATION -Dstd="" -DG4std=""
endif
define build-granular-shared-lib
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: EXPO.cc,v 1.8.4.1 2001/06/28 19:06:29 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
#include <stdlib.h>
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: TEST.cc,v 1.3.4.1 2001/06/28 19:06:29 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
#include <stdlib.h>
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: EXPO_Detector.icc,v 1.3.4.1 2001/06/28 19:06:31 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
// See also G4/run/example/MyDetectorConstruction.cc.
@@ -22,7 +22,7 @@
//
//
// $Id: EXPO_PhysicsList.hh,v 1.4.4.1 2001/06/28 19:06:31 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// ------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: EXPO_PhysicsList.icc,v 1.4.4.1 2001/06/28 19:06:31 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// ------------------------------------------------------------
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: EXPO_Primary.icc,v 1.3.4.1 2001/06/28 19:06:31 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
// See also G4/run/example/EXPO_PrimaryGeneratorAction.cc.
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4o.h,v 1.3.4.1 2001/06/28 19:06:31 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oCommon.hh,v 1.3.4.1 2001/06/28 19:06:32 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
/*
Included by G4o.h.
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oCommon.icc,v 1.3.4.1 2001/06/28 19:06:32 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
/*
Included by G4o.cc.
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oDrawer.hh,v 1.3.4.1 2001/06/28 19:06:32 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oEXPO.h,v 1.3.4.1 2001/06/28 19:06:32 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oScene.hh,v 1.4.4.1 2001/06/28 19:06:33 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oState.hh,v 1.4.4.1 2001/06/28 19:06:33 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
#ifndef G4oState_h
#define G4oState_h
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: WoG4o.h,v 1.3.4.1 2001/06/28 19:06:33 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4o.cc,v 1.7.4.1 2001/06/28 19:06:33 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
/*
#define DEBUG
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oDrawer.cc,v 1.6.4.1 2001/06/28 19:06:34 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
/*
From geant4/visualization/management/src/G4VisManager.cc.
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oScene.cc,v 1.7.4.1 2001/06/28 19:06:34 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
/* +---------------------- Copyright notice -------------------------------+ */
/* | Copyright (C) 1995, Guy Barrand, LAL Orsay, (barrand@lal.in2p3.fr) | */
+1 -1
View File
@@ -22,7 +22,7 @@
//
//
// $Id: G4oState.cc,v 1.6.4.1 2001/06/28 19:06:34 gunter Exp $
// GEANT4 tag $Name: $
// GEANT4 tag $Name: geant4-04-00 $
//
//#define DEBUG
+13 -1
View File
@@ -1,4 +1,4 @@
$Id: History,v 1.59 2001/01/25 11:58:05 stesting Exp $
$Id: History,v 1.63 2001/12/13 17:49:48 gcosmo Exp $
-------------------------------------------------------------------
=========================================================
@@ -17,6 +17,18 @@ committal in the CVS repository !
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
13th December 2001 Gabriele Cosmo (examples-V03-02-05)
- Updated reference outputs.
12th December 2001 John Allison (examples-V03-02-04)
- Updated new VisManagers for new graphics systems and defaults.
19th November 2001 John Allison (examples-V03-02-02)
- Updated VisManagers for new graphics systems and defaults.
23-Oct-2001 Gabriele Cosmo (examples-V03-02-01)
- Synchronised with HEAD revision. Removal of all occurences of RW wrappers.
25-Jan-2001 Steve O'Neale (examples-V03-00-00)
- Updated all "small_N" test outputs
+28 -15
View File
@@ -1,4 +1,4 @@
$Id: README,v 1.2 1999/05/31 08:14:43 asaim Exp $
$Id: README,v 1.3 2001/10/23 15:24:08 gcosmo Exp $
-------------------------------------------------------------------
=========================================================
@@ -14,16 +14,18 @@ in a correct way those user-classes which the user is supposed to
customize in order to define his/her own simulation setup.
One set of examples is oriented to "novice" users and covering all
possible general use-cases typical of an "application"-oriented kind of
development. An "Extended" set of examples require some additional
libraries besides of Geant4. This set covers some realistic use cases
for actual detector simulation for HEP. An "advanced" set of examples
(not yet available at the current time), will cover the use-cases typical
of a "toolkit"-oriented kind of development.
development. An "extended" set of examples require some additional
libraries besides of Geant4. This set covers some specific use cases
for actual detector simulation. An "advanced" set of examples covers
the use-cases typical of a "toolkit"-oriented kind of development,
where real complete applications for different simulation studies are
provided; may require additional third party products to be built.
Most of the examples can be run both in interactive and batch mode, and
input macro files (*.in) and reference output files (*.out) are provided.
These examples are considered part of the validation procedure for the
official releases of the GEANT4 toolkit, as "acceptance"-testing phase
of the validation process.
Novice and most of the extended examples are considered part of the
system testing suite for validation of the official releases of the
GEANT4 toolkit. Novice examples are used as "acceptance"-tests for the
release process.
Novice level examples
ExampleN01
@@ -48,10 +50,21 @@ Novice level examples
- Optical photon processes
Extended level examples
ExampleE01
- CLHEP histogramming
ExampleE02
- Persistency by HepODBMS (CERN RD45)
ExampleE03
- STEP geometry interface
analysis
- Histogramming through the AIDA interface
electromagnetic
- Specific EM physics simulation with histogramming
field
- Specific simulation setups in magnetic field
g3tog3
- Examples of usage of the g3tog4 converter tool
persistency
- Persistency through the HepODBMS interface
Advanced level examples
brachytherapy
- Setup for brachytherapy Ir-192 HDR source
gammaray_telescope
- Simulation of a typical telescope for gamma ray analysis
xray_telescope
- Realistic simulation of an X-ray Telescope
+3 -2
View File
@@ -1,4 +1,4 @@
# $Id: GNUmakefile,v 1.1 1999/01/07 16:05:17 gunter Exp $
# $Id: GNUmakefile,v 1.3 2001/12/04 13:38:55 gcosmo Exp $
# --------------------------------------------------------------
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
# --------------------------------------------------------------
@@ -9,7 +9,8 @@ endif
include $(G4INSTALL)/config/architecture.gmk
SUBDIRS = A01 A02 A03 A04 A05 A06
SUBDIRS = brachytherapy gammaray_telescope underground_physics
SUBDIRS += xray_fluorescence xray_telescope
.PHONY : all clean clean_libs
+10 -1
View File
@@ -1,4 +1,4 @@
$Id: README,v 1.1 1999/01/07 16:05:17 gunter Exp $
$Id: README,v 1.2 2001/10/23 15:09:27 gcosmo Exp $
-------------------------------------------------------------------
=========================================================
@@ -8,3 +8,12 @@ $Id: README,v 1.1 1999/01/07 16:05:17 gunter Exp $
Advanced Examples
-----------------
In this directory one can find examples of real complete applications used
for different simulation studies. The applications included here may require
third party products for handling of the data produced (visualization,
analysis or persistency tools). Refer to the README and documentation provided
in each example for the details.
These application are made part of the official GEANT4 distribution, however
their maintenance and updates is under responsibility of the authors. These
applications are not subject to regular system testing.
+34 -14
View File
@@ -19,10 +19,7 @@
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: Brachy.cc,v 1.4.4.1 2001/06/28 19:06:34 gunter Exp $
// GEANT4 tag $Name: $
//
// --------------------------------------------------------------
// GEANT 4 - Brachytherapy example
@@ -37,12 +34,13 @@
//
// Simplified gamma generation is used.
// Source axis is oriented along Z axis.
// Voxel data on the X-Z plane is output to ASCII file
// Voxel data on the X-Z plan
//e is output to ASCII file
// "Brachy.out".
//
// For information related to this code contact the developers.
//
// --------------------------------------------------------------
//
// $Id: Brachy.cc,v 1.8 2001/12/13 13:44:53 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
#include "BrachyEventAction.hh"
#include "BrachyDetectorConstruction.hh"
@@ -50,6 +48,7 @@
#include "BrachyPrimaryGeneratorAction.hh"
#include "BrachyWaterBoxSD.hh"
#include "Randomize.hh"
#include "G4RunManager.hh"
#include "G4SDManager.hh"
@@ -58,7 +57,7 @@
int main()
{
// Number of generated photons
G4int NumberOfEvents = 10;
G4int NumberOfEvents = 1000;
// Define number of voxels in X-Z plane
G4int NumVoxelX = 101;
@@ -103,8 +102,15 @@ int main()
// Format = x coord [mm] <tab> z coord [mm] <tab> edep [MeV] <eol>
ofs.open("Brachy.out");
{
G4double VoxelWidth_X = pDetectorConstruction->m_BoxDimX/NumVoxelX;
G4double VoxelWidth_Z = pDetectorConstruction->m_BoxDimZ/NumVoxelZ;
ofs<<" x(mm)"<<'\t'<<"z(mm)"<<'\t'<<"released energy(Mev)"
<<G4endl;
G4double VoxelWidth_X = pDetectorConstruction->GetBoxDim_X()/NumVoxelX;
G4double VoxelWidth_Z = pDetectorConstruction->GetBoxDim_Z()/NumVoxelZ;
G4double x,z;
for(G4int k=0;k<NumVoxelZ;k++)
@@ -118,8 +124,12 @@ int main()
// Do not consider near voxels
if(fabs(x) > 3*mm || fabs(z) > 6*mm)
ofs << x << '\t' << z << '\t' << pVoxel[j] << G4endl;
}
{ ofs << x << '\t' << z << '\t' << pVoxel[j] << G4endl;
//check released energy
// if(pVoxel[j]!=0)
// G4cout<<x<<'\t'<<z<< '\t'<<pVoxel[j]<<G4endl;
}
}
}
ofs.close();
}
@@ -132,3 +142,13 @@ int main()
return 0;
}
@@ -42,17 +42,20 @@ class BrachyDetectorConstruction : public G4VUserDetectorConstruction
~BrachyDetectorConstruction();
public:
const G4double m_BoxDimX;
const G4double m_BoxDimY;
const G4double m_BoxDimZ;
const G4int m_NumVoxelX;
const G4int m_NumVoxelZ;
G4String m_SDName;
G4double GetBoxDim_X() {return m_BoxDimX;};
G4double GetBoxDim_Z() {return m_BoxDimZ;};
public:
G4VPhysicalVolume* Construct();
};
private:
const G4int m_NumVoxelX;
const G4int m_NumVoxelZ;
G4double m_BoxDimX;
G4double m_BoxDimY;
G4double m_BoxDimZ;
G4String m_SDName;
};
#endif
@@ -42,13 +42,17 @@ class BrachyEventAction : public G4UserEventAction
void BeginOfEventAction(const G4Event*);
void EndOfEventAction(const G4Event*);
public:
private:
const G4int m_NumVoxelX;
const G4int m_NumVoxelZ;
G4float *m_pVoxel;
private:
G4int m_HitsCollectionID;
};
#endif
@@ -28,7 +28,7 @@
#ifndef BrachyWaterBoxROGeometry_h
#define BrachyWaterBoxROGeometry_h 1
#define BrachyWaterBoxROGeometry_h
#include "G4VReadOutGeometry.hh"
@@ -38,7 +38,7 @@ class BrachyWaterBoxROGeometry : public G4VReadOutGeometry
BrachyWaterBoxROGeometry(G4String aString,G4double DetDimX,G4double DetDimZ,G4int NumVoxelX,G4int NumVoxelZ);
~BrachyWaterBoxROGeometry();
public:
private:
const G4double m_DetDimX;
const G4double m_DetDimZ;
const G4int m_NumVoxelX;
@@ -89,3 +89,15 @@ void BrachyEventAction::EndOfEventAction(const G4Event* evt)
}
}
}
@@ -1,4 +1,4 @@
# $Id: GNUmakefile,v 1.3 2000/12/06 16:53:11 flongo Exp $
# $Id: GNUmakefile,v 1.17 2001/12/10 08:52:09 gcosmo Exp $
# --------------------------------------------------------------
# GNUmakefile for examples module. Gabriele Cosmo, 06/04/98.
# --------------------------------------------------------------
@@ -11,13 +11,28 @@ ifndef G4INSTALL
G4INSTALL = ../../..
endif
.PHONY: all
all: lib bin
include $(G4INSTALL)/config/architecture.gmk
# Copy the GammaRayTelAnalysis files according to which version
# is selected.
# As the dependency is checked before "all" is reached, we need
# to do some tricks here ...
ifdef G4ANALYSIS_AIDA_CONFIG_CFLAGS
# AIDA (version 2.2 for now) selected
FOO := $(shell cp -p include/GammaRayTelAnalysis.hh-AIDA include/GammaRayTelAnalysis.hh )
FOO := $(shell cp -p src/GammaRayTelAnalysis.cc-AIDA src/GammaRayTelAnalysis.cc )
else
# Anaphe selected
include anaphe.gmk
FOO := $(shell cp -p include/GammaRayTelAnalysis.hh-Anaphe include/GammaRayTelAnalysis.hh )
FOO := $(shell cp -p src/GammaRayTelAnalysis.cc-Anaphe src/GammaRayTelAnalysis.cc )
endif
# End Analysis.
.PHONY: all
all: lib bin
include $(G4INSTALL)/config/binmake.gmk
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTel.cc,v 1.3.4.2 2001/06/28 20:18:35 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTel.cc,v 1.8 2001/12/04 11:40:27 flongo Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// ------------------------------------------------------------
@@ -33,11 +33,14 @@
// ------------ GammaRayTel example main program ------
// by F.Longo, R.Giannitrapani & G.Santin (29 nov 2000)
// See README file for details on this example
// 20.11.01 G.Santin: new analysis management, and some modification in the
// construction of some Action's
// ************************************************************
#include "G4RunManager.hh"
#include "G4UImanager.hh"
#include "G4UIterminal.hh"
#include "G4UItcsh.hh"
#ifdef G4UI_USE_XM
#include "G4UIXm.hh"
@@ -54,9 +57,11 @@
#include "GammaRayTelEventAction.hh"
#ifdef G4ANALYSIS_USE
#include "GammaRayTelAnalysisManager.hh"
#include "GammaRayTelAnalysis.hh"
#endif
//using namespace Lizard;
/* This global file is used to store relevant data for
analysis with external tools */
@@ -75,24 +80,17 @@ int main(int argc, char** argv)
runManager->SetUserInitialization(new GammaRayTelPhysicsList);
// Set mandatory user action classes
runManager->SetUserAction(new GammaRayTelPrimaryGeneratorAction(detector));
runManager->SetUserAction(new GammaRayTelPrimaryGeneratorAction);
#ifdef G4ANALYSIS_USE
// Creation of the analysis manager
GammaRayTelAnalysisManager* analysisMgr = new GammaRayTelAnalysisManager(detector);
GammaRayTelAnalysis* analysis = GammaRayTelAnalysis::getInstance();
#endif
// Set optional user action classes
#ifdef G4ANALYSIS_USE
GammaRayTelEventAction* eventAction =
new GammaRayTelEventAction(analysisMgr);
GammaRayTelRunAction* runAction =
new GammaRayTelRunAction(analysisMgr);
#else
GammaRayTelEventAction* eventAction = new GammaRayTelEventAction();
GammaRayTelRunAction* runAction = new GammaRayTelRunAction();
#endif
runManager->SetUserAction(eventAction);
runManager->SetUserAction(runAction);
@@ -102,10 +100,15 @@ int main(int argc, char** argv)
#ifdef G4UI_USE_XM
// Create a XMotif user interface
session = new G4UIXm(argc,argv);
#else
#ifdef G4UI_USE_TCSH
session = new G4UIterminal(new G4UItcsh);
#else
// Create the standard user interface
session = new G4UIterminal;
session = new G4UIterminal();
#endif
#endif
#ifdef G4VIS_USE
// Visualization manager
G4VisManager* visManager = new GammaRayTelVisManager;
@@ -143,7 +146,7 @@ int main(int argc, char** argv)
delete visManager;
#endif
#ifdef G4ANALYSIS_USE
delete analysisMgr;
delete analysis;
#endif
delete runManager;
return 0;
@@ -156,3 +159,5 @@ int main(int argc, char** argv)
+112 -41
View File
@@ -1,4 +1,4 @@
$Id: README,v 1.2 2000/12/06 16:53:12 flongo Exp $
$Id: README,v 1.11 2001/12/07 12:57:30 pfeiffer Exp $
-------------------------------------------------------------------
=========================================================
@@ -19,12 +19,14 @@ GammaRayTel is an example of application of Geant4 in a space
envinronment. It simulates a typical telescope for gamma ray analysis;
the detector setup is composed by a tracker made with silicon planes,
subdivided in ladders and strips, a CsI calorimeter and an
anticoincidence system. In this version, only the tracker is made
sensitive; the hits on the tracker strips are registered and relevant
anticoincidence system. In this version, the three detectors are made
sensitive but only the hits on the tracker strips are registered and relevant
information (energy deposition, position etc) are dumped to an external
ASCII file for subsequent analysis. If Lizard is available on the user
platform, than some histograms with relevant hits information are
displayed and saved as PostScript files.
ASCII file for subsequent analysis. If the user has set up the
AIDA (version 2.2 or compatible) environment or Anaphe/Lizard is available,
then some histograms with relevant hits information are displayed
and saved as PostScript files, and histograms and ntuples with
relevant information are stored on a HBOOK file.
The main features of this example are
@@ -39,11 +41,12 @@ The main features of this example are
subdivisions of the planes of the tracker (strips) without
affecting in a relevant way the simulation performances
d) Histogramming for Linux and Solaris platform via the
Lizard system (tested on Linux platform); this is a preliminary
feature of GEANT4, so expect some changes and/or improvements in
future releases
d) Histograming facilities are presently provided for the Linux
environment either by using the AIDA interfaces, or through
the Anaphe/Lizard system. The AIDA compliant version has not
been tested by the developers and is here as a example of
"forward compatibility" on how to use analysis.
e) User interfaces via Xmotif or normal terminal provided
@@ -67,36 +70,43 @@ The main features of this example are
- Setup for Xmotif user interface
setenv G4UI_USE_XM 1
(IMPORTANT: Do not set G4ANALYSIS_USE_NTUPLE when using XM!)
- Set up for analysis using Lizard
IMPORTANT: be sure that your G4 installation has been done properly;
in particular be sure that the following environment variables are
set prior to build the library (this is working only on Linux and
Solaris platform)
setenv G4ANALYSIS_BUILD 1 # Build the analysis tools
setenv G4ANALYSIS_BUILD_LIZARD 1 # Build the Lizard interface
setenv LIZARDROOT /usr/local/freeLizard/3.2.0 #get correct path
For example at CERN the path is
setenv LIZARDROOT /afs/cern.ch/project/asddat/lhcxx/3.2.0/freeLizard/3.2.0
- Set up for analysis using AIDA
To compile the GammaRayTel example with the analysis tools activated,
set the following variables
setenv G4ANALYSIS_USE 1 # Use the analysis tools
setenv G4ANALYSIS_USE_LIZARD 1 # Use the Lizard one
and be sure to have the right path to the Lizard library
To be sure to have the right compilation and link flags, the
'aida-config' command, provided by an AIDA compliant implementation
must be up and running ; in particular 'aida-config --cflags' and
'aida-config --libs' must be active.
#add to the LD_LIBRARY_PATH (get correct path)
setenv LD_LIBRARY_PATH /usr/local/freeLizard/3.2.0/Linux/lib
- Set up for analysis using Anaphe/Lizard
For example at CERN the path is
setenv LD_LIBRARY_PATH /afs/cern.ch/project/asddat/lhcxx/3.2.0/freeLizard/3.2.0/Linux/lib
To compile the GammaRayTel example with the analysis tools activated,
set the following variables
setenv G4ANALYSIS_USE 1 # Use the analysis tools
setenv G4ANALYSIS_USE_NTUPLE 1 # To store Ntuples
(IMPORTANT: Do not set G4UI_USE_XM when using Ntuples!)
and be sure to have the right path to the Lizard library, inserting this
on the .tcshrc:
(on a CERN machine with the gcc-2.95 compiler)
setenv PATH ${PATH}:/afs/cern.ch/sw/lhcxx/specific/redhat61/gcc-2.95.2/3.6.5/bin
source /afs/cern.ch/sw/lhcxx/share/LHCXX/3.6.5/install/sharedstart.csh
(on a CERN machine with the egcs-2.91.66 compiler (G4SYSTEM Linux-egcs)
setenv PATH ${PATH}:/afs/cern.ch/sw/lhcxx/specific/redhat61/egcs_1.1.2/3.6.5-sec/bin
source /afs/cern.ch/sw/lhcxx/share/LHCXX/3.6.5-sec/install/sharedstart.csh
2. Sample run
@@ -120,6 +130,18 @@ The main features of this example are
your local G4 installation (see geant4/source/visualization/README for
more information).
ATTENTION:
If you use analysis with Lizard, you have to remove any hbook file in the
example directory obtained in previous Geant4 sessions. This issues will be
solved in future releases. Note also that the following error can be reported
during run with analysis activated
***** ERROR in HLNEXT : Bad sequence for RZ : ID= 1
Ignore this message; histograms (and ntuples) are correctly saved in the hbook files.
3. Detector description
-----------------------
@@ -163,8 +185,9 @@ The main features of this example are
7. Hit
------
In this version only the hits from the TKR are recorded. Each hit
contains the following information
In this version the hits from the TKR the CAL and the ACD are generated.
Only the hit from the TRK are saved. Each TKR hit contains the following
information
a) ID of the event (this is important for multiple events run)
b) Energy deposition of the particle in the strip (keV)
@@ -176,7 +199,20 @@ The main features of this example are
The hit information are saved on an ASCII file named Tracks_N.dat, where
N is the progressive ID number associated to the run.
8. Histogramming
8. Analysis
----------------
At present there are two options for analysis packages: either
explicitely the Anaphe 3.6.5 (or compatible) version is selected,
or any AIDA-2.2 compliant analysis system is chosen. This dual
approach will be removed in the next release when only the AIDA
compliant version will be present. Presently, the OpenScientist
package (version 8) provides an implementation of AIDA 2.2,
other packages as Anaphe and JAS will follow soon. The AIDA
compliant version has not been tested by the developers and is
here as a example of "forward compatibility" on how to use analysis.
9. Histogramming
----------------
Some hits information can be visualized runtime using Lizard (if it is
@@ -207,7 +243,20 @@ The main features of this example are
for next releases.
9. Classes Overview
10. Digi
--------
For the TKR also the digits corresponding to the Hits are generated.
A digi is generated when the hit energy deposit is greater than a threshold
(in this example setted at 120 keV).
The TKR digi information are stored on the same file Tracks_N.dat and contain:
a) ID of the event (this is important for multiple events run)
b) Number of the strip
c) Number of the plane
d) Type of the plane (1=X 0=Y)
11. Classes Overview
-------------------
This is the overview of the classes defined in this example
@@ -233,7 +282,7 @@ The main features of this example are
Messenger for interactive geometry parameters
modification via the User Interface
GammaRayTelAnalysisManager
GammaRayTelAnalysis
Analysis manager class with Lizard tool (experimental)
GammaRayTelAnalysisMessenger
@@ -246,14 +295,36 @@ The main features of this example are
GammaRayTelEventAction
User event action class
GammaRayTelPayloadHit
GammaRayTelTrackerHit
Description of the hits on the tracker
GammaRayTelPayloadROGeometry
GammaRayTelDigi
Description of the digi on the tracker
GammaRayTelDigitizer
Description of the digitizer for the tracker
GammaRayTelTrackerROGeometry
Description of the readout geometry for strips subdivision
GammaRayTelPayloadSD
Description of the sensitive detector
GammaRayTelTrackerSD
Description of the TKR sensitive detector
GammaRayTelAnticoincidenceHit
Description of the hits on the anticoincidence
GammaRayTelAnticoincidenceSD
Description of the ACD sensitive detector
GammaRayTelCalorimeterHit
Description of the hits on the calorimeter
GammaRayTelCalorimeterSD
Description of the CAL sensitive detector
@@ -0,0 +1,38 @@
# Some pieces to include if Anaphe is selected as analysis environment
# be aware that this will be obsolete as soon as Anaphe is implementing
# the AIDA 2.2 interfaces.
#
# This requires the env-var LHCXX_REL_DIR to be set up correctly,
# see the first lines in G4ComptonTest.cc
#
ifdef G4ANALYSIS_USE
CPPFLAGS += -I$(LHCXX_REL_DIR)/include
ifdef G4ANALYSIS_USE_NTUPLE
CPPFLAGS += -DG4ANALYSIS_USE_NTUPLE
endif
# C_FLAGS += -I$(LHCXX_REL_DIR)/include
LDFLAGS += -L$(LHCXX_REL_DIR)/lib
# general stuff:
LOADLIBS += -lHepUtilities -lAIDA_Annotation
# add for Histograms:
LOADLIBS += -lAIDA_HBook
# add for Vectors:
LOADLIBS += -lVector
# add for Plotter:
LOADLIBS += -lAIDA_Plotter -lqp -lqpview -lqt-mt -lqutil -lqt
# add for Ntuples:
LOADLIBS += -lAIDA_Ntuple -lNtupleTag -lNtupleTag_HBook
# ... and finally system stuff and to deal with the "Fortran legacy":
LOADLIBS += -lCHBook -ldl -lg2c
# Xm Xt
LDFLAGS += -L$/usr/local/lib -lXm -L/usr/X11R6/lib -lXt
endif
@@ -0,0 +1,32 @@
# tell HistoManager where to find the histograms:
# change the name to access hbook files different from the first run
hm.selectStore("gammaraytel0.hbook")
# ... and load them into memory:
hE = hm.load1D(1)
hPl = hm.load1D(2)
hXZ = hm.load2D(3)
hYZ = hm.load2D(4)
# set plotter to 3*2 zones
pl.zone(2,2)
# ... and plot the histograms
hplot(hE)
hplot(hPl)
hplot(hXZ)
hplot(hYZ)
# get the primary ntuple from the NtupleManager
nt1 = ntm.findNtuple("gammaraytel0.hbook::1" )
# see which attributes there are:
nt1.listAttributes()
@@ -21,23 +21,29 @@
// ********************************************************************
//
//
// $Id: GammaRayTelAnalysisManager.hh,v 1.2.2.2 2001/06/28 20:18:37 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelAnalysis.hh-AIDA,v 1.3 2001/12/07 13:20:20 pfeiffer Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
//
//
// ------------ GammaRayTelAnalysisManager ------
// ------------ GammaRayTelAnalysis ------
// by R.Giannitrapani, F. Longo & G.Santin (30 nov 2000)
//
// 07.12.2001 A.Pfeiffer
// - integrated Guy's addition of the ntuple
//
// 06.12.2001 A.Pfeiffer
// - updating to new design (singleton)
//
// 22.11.2001 G.Barrand
// - Adaptation to AIDA
//
// ************************************************************
#ifdef G4ANALYSIS_USE
#ifndef GammaRayTelAnalysisManager_h
#define GammaRayTelAnalysisManager_h 1
#include "G4VAnalysisManager.hh"
#ifndef GammaRayTelAnalysis_h
#define GammaRayTelAnalysis_h 1
#include "globals.hh"
#include "g4std/vector"
@@ -45,33 +51,29 @@
class GammaRayTelAnalysisMessenger;
class GammaRayTelDetectorConstruction;
class IAnalysisFactory;
class IHistogramFactory;
class ITree;
class IHistogram1D;
class IHistogram2D;
class ITuple;
class IPlotter;
class IVectorFactory;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class GammaRayTelAnalysisManager: public G4VAnalysisManager
{
class GammaRayTelAnalysis {
public:
GammaRayTelAnalysisManager(GammaRayTelDetectorConstruction*);
virtual ~GammaRayTelAnalysisManager();
virtual ~GammaRayTelAnalysis();
public:
G4bool RegisterAnalysisSystem(G4VAnalysisSystem*);
IHistogramFactory* GetHistogramFactory(const G4String&);
void Store(IHistogram* = 0, const G4String& = "");
void Plot(IHistogram* = 0);
void InsertPositionXZ(double x, double z);
void InsertPositionYZ(double y, double z);
void InsertEnergy(double en);
void InsertHits(int nplane);
void BeginOfRun();
void BeginOfRun(G4int n);
void EndOfRun(G4int n);
void EndOfEvent(G4int flag);
void Init();
void Finish();
void SetHisto1DDraw(G4String str) {histo1DDraw = str;};
void SetHisto1DSave(G4String str) {histo1DSave = str;};
void SetHisto2DDraw(G4String str) {histo2DDraw = str;};
@@ -80,19 +82,35 @@ public:
G4String GetHisto2DMode() {return histo2DMode;};
void InsertPositionXZ(double x, double z);
void InsertPositionYZ(double y, double z);
void InsertEnergy(double en);
void InsertHits(int nplane);
void setNtuple(float E, float p, float x, float y, float z);
static GammaRayTelAnalysis* getInstance(int = 0, char** = 0);
private:
G4VAnalysisSystem* analysisSystem;
IPlotter* pl;
IVectorFactory* fVectorFactory;
IHistogramFactory* histoFactory;
GammaRayTelAnalysis(int = 0, char** = 0);
void plot1D(IHistogram1D* histo);
void plot2D(IHistogram2D* histo);
void Plot();
private:
static GammaRayTelAnalysis* instance;
GammaRayTelDetectorConstruction* GammaRayTelDetector;
IAnalysisFactory* analysisFactory;
ITree* tree;
IPlotter* plotter;
ITuple* tuple;
IHistogram1D* energy;
IHistogram1D* hits;
IHistogram2D* posXZ;
IHistogram2D* posYZ;
GammaRayTelDetectorConstruction* GammaRayTelDetector;
G4String histo1DDraw;
G4String histo1DSave;
G4String histo2DDraw;
@@ -104,13 +122,4 @@ private:
#endif
#endif
@@ -0,0 +1,175 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
// Author: A. Pfeiffer (Andreas.Pfeiffer@cern.ch)
// (copy of his UserAnalyser class)
//
// History:
// -----------
// 7 Nov 2001 MGP Implemented according to A. Pfeiffer's instructions
// 18 Nov 2001 G.Santin GammaRayTel analysis management modified
// according to the new design
//
// -------------------------------------------------------------------
// Class description:
// Example of analysis in a simulation application (histograms, ntuples etc.)
// This class follows the singleton design pattern;
// it is responsible for the analysis management and algorithms
// Histograms are compliant with AIDA, except for the usage of IHistoManager,
// which is Anaphe/Lizard-specific
// For ntuples, for which the AIDA interfaces and compliant implementations
// are still in progress at the time of the current Geant4 release,
// an implementation with Anaphe/Lizard is shown
// Other implementations specific to an analysis system are possible too
// (see, for instance, JAS and OpenScientist documentation from the links
// in http://aida.freehep.org/)
// The implementation of the usage of ntuples shown in this example
// is expected to change in future Geant4 releases, when AIDA interfaces
// and related implementations would be available
// Further documentation is available from: http://www.ge.infn.it/geant4/lowE/
// http://aida.freehep.org/
// http://cern.ch/anaphe/
// -------------------------------------------------------------------
#ifdef G4ANALYSIS_USE
#ifndef GammaRayTelAnalysis_h
#define GammaRayTelAnalysis_h
#include "globals.hh"
// Histogramming from AIDA
#include "Interfaces/IHistogram1D.h"
#include "Interfaces/IHistogram2D.h"
// Histogramming from Anaphe
#include "Interfaces/IHistoManager.h"
// Vectors from ?
#include "Interfaces/IVector.h"
#include "Interfaces/IVectorFactory.h"
// Plotting from Anaphe?
#include "Interfaces/IPlotter.h"
//#include "AIDA_Plotter/AIDAPlotter.h"
// Ntuples from Anaphe
#ifdef G4ANALYSIS_USE_NTUPLE
#include "NtupleTag/LizardNTupleFactory.h"
#include "NtupleTag/LizardQuantity.h"
#include "NtupleTag/LizardNTuple.h"
//using namespace Lizard;
#endif
class G4Track;
class GammaRayTelAnalysisMessenger;
class GammaRayTelDetectorConstruction;
class GammaRayTelAnalysis
{
public:
~GammaRayTelAnalysis();
void BeginOfRun(G4int n);
void EndOfRun(G4int n);
void EndOfEvent(G4int flag);
void Init();
void Finish();
void SetHisto1DDraw(G4String str) {histo1DDraw = str;};
void SetHisto1DSave(G4String str) {histo1DSave = str;};
void SetHisto2DDraw(G4String str) {histo2DDraw = str;};
void SetHisto2DSave(G4String str) {histo2DSave = str;};
void SetHisto2DMode(G4String str) {histo2DMode = str;};
G4String GetHisto2DMode() {return histo2DMode;};
void InsertPositionXZ(double x, double z);
void InsertPositionYZ(double y, double z);
void InsertEnergy(double en);
void InsertHits(int nplane);
#ifdef G4ANALYSIS_USE_NTUPLE
void setNtuple(float E, float p, float x, float y, float z);
#endif
static GammaRayTelAnalysis* getInstance();
private:
GammaRayTelAnalysis();
void plot1D(IHistogram1D* histo);
void plot2D(IHistogram2D* histo);
void Plot();
static GammaRayTelAnalysis* instance;
IHistoManager* histoManager;
IVectorFactory* vectorFactory;
IPlotter* plotter;
#ifdef G4ANALYSIS_USE_NTUPLE
// ---- NOTE ----
// Histograms are compliant to AIDA interfaces, ntuples are Lizard specific
Lizard::NTuple* ntuple;
Lizard::NTupleFactory* ntFactory;
// Quantities for the ntuple
Lizard::Quantity<float> ntEnergy;
Lizard::Quantity<float> ntPlane;
Lizard::Quantity<float> ntX;
Lizard::Quantity<float> ntY;
Lizard::Quantity<float> ntZ;
#endif
GammaRayTelDetectorConstruction* GammaRayTelDetector;
G4String histo1DDraw;
G4String histo1DSave;
G4String histo2DDraw;
G4String histo2DSave;
G4String histo2DMode;
GammaRayTelAnalysisMessenger* analysisMessenger;
};
#endif
#endif
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelAnalysisMessenger.hh,v 1.1.4.2 2001/06/28 20:18:37 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelAnalysisMessenger.hh,v 1.3 2001/11/23 17:44:54 santin Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// ------------------------------------------------------------
// GEANT 4 class header file
@@ -31,6 +31,7 @@
//
// ------------ GammaRayTelAnalysysMessenger ------
// by R.Giannitrapani, F.Longo & G.Santin (03 dec 2000)
// 20.11.01 G.Santin: new analysis management, modified according to GammaRayTelAnalysis
//
// ************************************************************
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -42,7 +43,7 @@
#include "globals.hh"
#include "G4UImessenger.hh"
class GammaRayTelAnalysisManager;
class GammaRayTelAnalysis;
class G4UIdirectory;
class G4UIcmdWithAString;
@@ -51,14 +52,14 @@ class G4UIcmdWithAString;
class GammaRayTelAnalysisMessenger: public G4UImessenger
{
public:
GammaRayTelAnalysisMessenger(GammaRayTelAnalysisManager* );
GammaRayTelAnalysisMessenger(GammaRayTelAnalysis* );
~GammaRayTelAnalysisMessenger();
void SetNewValue(G4UIcommand*, G4String);
private:
GammaRayTelAnalysisManager* GammaRayTelAnalysis;
G4UIdirectory* GammaRayTelAnalysisDir;
GammaRayTelAnalysis* gammaRayTelAnalysis;
G4UIdirectory* gammaRayTelAnalysisDir;
G4UIcmdWithAString* Histo1DDrawCmd;
G4UIcmdWithAString* Histo2DDrawCmd;
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelAnticoincidenceHit.hh,v 1.1.2.2 2001/06/28 20:18:37 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelAnticoincidenceHit.hh,v 1.2 2001/07/11 09:56:56 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelAnticoincidenceSD.hh,v 1.1.2.2 2001/06/28 20:18:37 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelAnticoincidenceSD.hh,v 1.3 2001/11/29 11:19:17 griccard Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
@@ -50,7 +50,7 @@ class GammaRayTelAnticoincidenceSD : public G4VSensitiveDetector
{
public:
GammaRayTelAnticoincidenceSD(G4String, GammaRayTelDetectorConstruction* );
GammaRayTelAnticoincidenceSD(G4String);
~GammaRayTelAnticoincidenceSD();
void Initialize(G4HCofThisEvent*);
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelCalorimeterHit.hh,v 1.1.2.2 2001/06/28 20:18:37 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelCalorimeterHit.hh,v 1.2 2001/07/11 09:56:56 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelCalorimeterSD.hh,v 1.1.2.2 2001/06/28 20:18:37 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelCalorimeterSD.hh,v 1.4 2001/11/29 11:19:17 griccard Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
@@ -50,7 +50,7 @@ class GammaRayTelCalorimeterSD : public G4VSensitiveDetector
{
public:
GammaRayTelCalorimeterSD(G4String, GammaRayTelDetectorConstruction* );
GammaRayTelCalorimeterSD(G4String);
~GammaRayTelCalorimeterSD();
void Initialize(G4HCofThisEvent*);
@@ -64,10 +64,14 @@ private:
GammaRayTelCalorimeterHitsCollection* CalorimeterCollection;
GammaRayTelDetectorConstruction* Detector;
G4int (*ChitXID)[12];
G4int (*ChitYID)[12];
G4int (*ChitXID);
G4int (*ChitYID);
G4int NbOfCALLayers;
G4int NbOfCALBars;
G4int NbOfCALChannels;
};
#endif
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelDetectorConstruction.hh,v 1.5.2.2 2001/06/28 20:18:37 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelDetectorConstruction.hh,v 1.6 2001/07/11 09:56:56 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelDetectorMessenger.hh,v 1.2.4.2 2001/06/28 20:18:38 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelDetectorMessenger.hh,v 1.3 2001/07/11 09:56:56 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// ------------------------------------------------------------
// GEANT 4 class header file
@@ -0,0 +1,114 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: GammaRayTelDigi.hh,v 1.1 2001/10/24 13:11:54 flongo Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
//
//
// ------------ GammaRayTelDigi ------
// by F.Longo, R.Giannitrapani & G.Santin (24 oct 2001)
//
// ************************************************************
// This Class describe the digits
#ifndef GammaRayTelDigi_h
#define GammaRayTelDigi_h 1
#include "G4VDigi.hh"
#include "G4TDigiCollection.hh"
#include "G4Allocator.hh"
#include "G4ThreeVector.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class GammaRayTelDigi : public G4VDigi
{
public:
GammaRayTelDigi();
~GammaRayTelDigi();
GammaRayTelDigi(const GammaRayTelDigi&);
const GammaRayTelDigi& operator=(const GammaRayTelDigi&);
int operator==(const GammaRayTelDigi&) const;
inline void* operator new(size_t);
inline void operator delete(void*);
void Draw();
void Print();
private:
G4int PlaneNumber; // (active detector)
G4int PlaneType; // (0 or 1 for X or Y plane)
G4int StripNumber; // strip number
public:
inline void SetPlaneNumber(G4int PlaneNum) {PlaneNumber = PlaneNum;};
inline void SetPlaneType(G4int PlaneTyp) {PlaneType = PlaneTyp;};
inline void SetStripNumber(G4int StripNum) {StripNumber = StripNum;};
inline G4int GetPlaneNumber() {return PlaneNumber;};
inline G4int GetPlaneType() {return PlaneType;};
inline G4int GetStripNumber() {return StripNumber;};
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
typedef G4TDigiCollection<GammaRayTelDigi> GammaRayTelDigitsCollection;
extern G4Allocator<GammaRayTelDigi> GammaRayTelDigiAllocator;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline void* GammaRayTelDigi::operator new(size_t)
{
void* aDigi;
aDigi = (void*) GammaRayTelDigiAllocator.MallocSingle();
return aDigi;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
inline void GammaRayTelDigi::operator delete(void* aDigi)
{
GammaRayTelDigiAllocator.FreeSingle((GammaRayTelDigi*) aDigi);
}
#endif
@@ -21,49 +21,55 @@
// ********************************************************************
//
//
// $Id: G4AnalysisManager.hh,v 1.8.4.1 2001/06/28 19:07:47 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelDigitizer.hh,v 1.2 2001/11/29 09:34:17 flongo Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
//
//
// Guy Barrand 20th Mai 2000
//
// Class description
// ------------ GammaRayTelDigitizer ------
//
// Base class for the analysis manager proxy mechanism.
// by F.Longo, R.Giannitrapani & G.Santin (24 oct 2001)
//
// ************************************************************
#ifndef G4ANALYSIS_HH
#define G4ANALYSIS_HH
#if defined(G4ANALYSIS_BUILD) || defined(G4ANALYSIS_USE)
#ifndef GammaRayTelDigitizer_h
#define GammaRayTelDigitizer_h 1
#include "G4VDigitizerModule.hh"
#include "GammaRayTelDigi.hh"
#include "globals.hh"
#include "g4std/vector"
#include "G4VAnalysisManager.hh"
//#include "g4std/vector"
class G4AnalysisManager : public G4VAnalysisManager {
public: // I methods :
G4bool RegisterAnalysisSystem(G4VAnalysisSystem*);
IHistogramFactory* GetHistogramFactory(const G4String&);
//
virtual void Store(IHistogram* = 0,const G4String& = "");
virtual void Plot(IHistogram*);
class GammaRayTelDigitizerMessenger;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class GammaRayTelDigitizer : public G4VDigitizerModule
{
public:
G4AnalysisManager();
virtual ~G4AnalysisManager();
GammaRayTelDigitizer(G4String name);
~GammaRayTelDigitizer();
void Digitize();
void SetThreshold(G4double val) { Energy_Threshold = val;}
private:
G4VAnalysisSystem* FindSystem(const G4String&);
G4std::vector<G4VAnalysisSystem*> fSystems;
G4VAnalysisSystem* fCurrentSystem;
//
#ifdef G4ANALYSIS_NON_AIDA
public:
ICloudFactory* GetCloudFactory(const G4String&);
virtual void Plot(ICloud*);
ITuple* CreateTuple(const G4String&,const G4String&,const G4String&);
#endif
GammaRayTelDigitsCollection* DigitsCollection;
G4double Energy_Threshold;
GammaRayTelDigitizerMessenger* digiMessenger;
};
#endif
#endif
@@ -0,0 +1,68 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: GammaRayTelDigitizerMessenger.hh,v 1.1 2001/11/29 09:34:17 flongo Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
//
//
// ------------ GammaRayTelDigitizerMessenger ------
// by F.Longo, G.Santin & R.Giannitrapani (29 nov 2001)
//
// ************************************************************
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifndef GammaRayTelDigitizerMessenger_h
#define GammaRayTelDigitizerMessenger_h 1
#include "G4UImessenger.hh"
#include "globals.hh"
class GammaRayTelDigitizer;
class G4UIcmdWithADoubleAndUnit;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class GammaRayTelDigitizerMessenger: public G4UImessenger
{
public:
GammaRayTelDigitizerMessenger(GammaRayTelDigitizer*);
~GammaRayTelDigitizerMessenger();
void SetNewValue(G4UIcommand*, G4String);
private:
GammaRayTelDigitizer* GammaRayTelAction;
G4UIcmdWithADoubleAndUnit* ThresholdCmd;
};
#endif
@@ -22,8 +22,8 @@
//
//
// $Id: GammaRayTelDummySD.hh,v 1.1.4.2 2001/06/28 20:18:38 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelDummySD.hh,v 1.4 2001/11/28 10:07:01 griccard Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
@@ -42,12 +42,14 @@
#define GammaRayTelDummySD_h 1
#include "G4VSensitiveDetector.hh"
#include "globals.hh"
class G4Step;
class GammaRayTelDummySD : public G4VSensitiveDetector
{
public:
GammaRayTelDummySD();
GammaRayTelDummySD(G4String name):G4VSensitiveDetector(name){};
~GammaRayTelDummySD() {};
void Initialize(G4HCofThisEvent*HCE) {};
@@ -57,7 +59,5 @@ public:
void DrawAll() {};
void PrintAll() {};
};
GammaRayTelDummySD::GammaRayTelDummySD()
: G4VSensitiveDetector("dummySD")
{}
#endif
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelEventAction.hh,v 1.4.2.2 2001/06/28 20:18:38 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelEventAction.hh,v 1.9 2001/12/04 11:40:28 flongo Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
@@ -31,6 +31,8 @@
// ------------ GammaRayTelEventAction ------
// by R.Giannitrapani, F. Longo & G.Santin (13 nov 2000)
//
//- inclusion of Digits by F.Longo & R.Giannitrapani (24 oct 2001)
// 20.11.01 G.Santin: new analysis management, modified according to GammaRayTelAnalysis
// ************************************************************
@@ -43,21 +45,13 @@
#include "G4UserEventAction.hh"
#include "globals.hh"
#ifdef G4ANALYSIS_USE
#include "GammaRayTelAnalysisManager.hh"
#endif
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class GammaRayTelEventAction : public G4UserEventAction
{
public:
#ifdef G4ANALYSIS_USE
GammaRayTelEventAction(GammaRayTelAnalysisManager* analysisMgr);
#else
GammaRayTelEventAction();
#endif
virtual ~GammaRayTelEventAction();
public:
@@ -67,13 +61,11 @@ public:
void SetDrawFlag (G4String val) {drawFlag = val;};
private:
G4int trackerCollID;
G4int calorimeterCollID;
G4int anticoincidenceCollID;
G4String drawFlag;
#ifdef G4ANALYSIS_USE
GammaRayTelAnalysisManager* analysisManager;
#endif
};
#endif
@@ -83,3 +75,4 @@ private:
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelPhysicsList.hh,v 1.2.4.2 2001/06/28 20:18:39 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelPhysicsList.hh,v 1.3 2001/07/11 09:56:57 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelPrimaryGeneratorAction.hh,v 1.3.4.2 2001/06/28 20:18:39 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelPrimaryGeneratorAction.hh,v 1.6 2001/11/29 11:19:17 griccard Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// ------------------------------------------------------------
// GEANT 4 class header file
@@ -55,7 +55,8 @@ class GammaRayTelPrimaryGeneratorMessenger;
class GammaRayTelPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
{
public:
GammaRayTelPrimaryGeneratorAction(GammaRayTelDetectorConstruction*);
GammaRayTelPrimaryGeneratorAction();
~GammaRayTelPrimaryGeneratorAction();
public:
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelPrimaryGeneratorMessenger.hh,v 1.2.4.2 2001/06/28 20:18:39 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelPrimaryGeneratorMessenger.hh,v 1.3 2001/07/11 09:56:57 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// ------------------------------------------------------------
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelRunAction.hh,v 1.3.4.2 2001/06/28 20:18:39 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelRunAction.hh,v 1.5 2001/11/23 17:44:54 santin Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
@@ -30,6 +30,7 @@
//
// ------------ GammaRayTelRunAction ------
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
// 18.11.2001 G.Santin - Modified the analysis management according to the new design
//
// ************************************************************
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -41,10 +42,6 @@
#include "G4UserRunAction.hh"
#include "globals.hh"
#ifdef G4ANALYSIS_USE
#include "GammaRayTelAnalysisManager.hh"
#endif
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
class G4Run;
@@ -52,11 +49,7 @@ class G4Run;
class GammaRayTelRunAction : public G4UserRunAction
{
public:
#ifdef G4ANALYSIS_USE
GammaRayTelRunAction(GammaRayTelAnalysisManager* analysisMgr);
#else
GammaRayTelRunAction();
#endif
~GammaRayTelRunAction();
public:
@@ -64,9 +57,6 @@ public:
void EndOfRunAction(const G4Run*);
private:
#ifdef G4ANALYSIS_USE
GammaRayTelAnalysisManager* analysisManager;
#endif
};
#endif
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelTrackerHit.hh,v 1.1.2.2 2001/06/28 20:18:40 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelTrackerHit.hh,v 1.2 2001/07/11 09:56:57 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelTrackerROGeometry.hh,v 1.1.2.2 2001/06/28 20:18:40 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelTrackerROGeometry.hh,v 1.3 2001/11/29 11:19:17 griccard Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
@@ -45,7 +45,6 @@ class GammaRayTelTrackerROGeometry : public G4VReadOutGeometry
public:
GammaRayTelTrackerROGeometry();
GammaRayTelTrackerROGeometry(G4String);
GammaRayTelTrackerROGeometry(G4String, GammaRayTelDetectorConstruction*);
~GammaRayTelTrackerROGeometry();
private:
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelTrackerSD.hh,v 1.1.2.2 2001/06/28 20:18:40 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelTrackerSD.hh,v 1.4 2001/11/29 11:19:17 griccard Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
@@ -50,7 +50,7 @@ class GammaRayTelTrackerSD : public G4VSensitiveDetector
{
public:
GammaRayTelTrackerSD(G4String, GammaRayTelDetectorConstruction* );
GammaRayTelTrackerSD(G4String);
~GammaRayTelTrackerSD();
void Initialize(G4HCofThisEvent*);
@@ -64,10 +64,14 @@ private:
GammaRayTelTrackerHitsCollection* TrackerCollection;
GammaRayTelDetectorConstruction* Detector;
G4int (*ThitXID)[30];
G4int (*ThitYID)[30];
G4int (*ThitXID);
G4int (*ThitYID);
G4int NbOfTKRLayers;
G4int NbOfTKRStrips;
G4int NbOfTKRChannels;
};
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelVisManager.hh,v 1.2.4.2 2001/06/28 20:18:40 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelVisManager.hh,v 1.3 2001/07/11 09:56:57 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class header file
// CERN Geneva Switzerland
@@ -22,35 +22,24 @@
#/payload/setNbOfTKRLayers 15
#/payload/update
#
# Create empty scene ("world" is default)
/vis/scene/create
#
# Add volume to scene
/vis/scene/add/volume
#
# Create a scene handler for a specific graphics system
/vis/sceneHandler/create OGLSX
/vis/open OGLSX
# Create a viewer
/vis/viewer/create
/vis/viewer/reset
/vis/viewer/viewpointThetaPhi 90 0
# Positioning of the camera
/vis/camera/viewpoint 30 30
# Visualize of the whole detector geometry
/vis/drawVolume
# for drawing the tracks
# if too many tracks cause core dump => storeTrajectory 0
/tracking/storeTrajectory 1
#/vis/scene/include/trajectories
#
# Flush visualization
/vis/viewer/update
#
# Draw scene
/vis/scene/notifyHandlers
@@ -22,39 +22,21 @@
/payload/setNbOfTKRLayers 10
/payload/update
#
# Create empty scene ("world" is default)
/vis/scene/create
#
# Add volume to scene
/vis/scene/add/volume
# Create a scene handler for a specific graphics system
/vis/open VRML2FILE
#
# Create a scene handler for a VRML file
/vis/sceneHandler/create VRML2FILE
# Create a viewer
/vis/viewer/create
# Positioning of the camera
/vis/camera/viewpoint 30 30
# Create a viewer
/vis/viewer/create
# Positioning of the camera
/vis/camera/viewpoint 90 0
# Draw scene
/vis/scene/notifyHandlers
/vis/viewer/reset
/vis/viewer/viewpointThetaPhi 90 0
# Visualize of the whole detector geometry
/vis/drawVolume
# for drawing the tracks
# if too many tracks cause core dump => storeTrajectory 0
/tracking/storeTrajectory 1
#/vis/scene/include/trajectories
#
# Flush visualization
/vis/viewer/update
@@ -65,4 +47,3 @@
@@ -22,6 +22,7 @@
#/payload/setNbOfTKRLayers 15
#/payload/update
#
# Create empty scene ("world" is default)
/vis/scene/create
@@ -31,7 +32,7 @@
/vis/scene/add/volume
#
# Create a scene handler for a specific graphics system
# Create a scene handler for a VRML file
/vis/sceneHandler/create DAWNFILE
# Create a viewer
@@ -40,6 +41,17 @@
# Positioning of the camera
/vis/camera/viewpoint 30 30
# Create a viewer
/vis/viewer/create
# Positioning of the camera
/vis/camera/viewpoint 90 0
# Draw scene
/vis/scene/notifyHandlers
# for drawing the tracks
# if too many tracks cause core dump => storeTrajectory 0
/tracking/storeTrajectory 1
@@ -48,9 +60,9 @@
# Flush visualization
/vis/viewer/update
#
# Draw scene
/vis/scene/notifyHandlers
@@ -6,12 +6,10 @@
#
/control/verbose 2
/control/saveHistory
/run/verbose 2
/run/verbose 1
/gun/particle gamma
/gun/energy 1 GeV
/gun/vertexRadius 25. cm
/gun/sourceType 2
@@ -0,0 +1,344 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: GammaRayTelAnalysis.cc-AIDA,v 1.3 2001/12/07 13:20:20 pfeiffer Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class implementation file
// CERN Geneva Switzerland
//
//
// ------------ GammaRayAnalysisManager ------
// by R.Giannitrapani, F.Longo & G.Santin (03 dic 2000)
//
// 07.12.2001 A.Pfeiffer
// - integrated Guy's addition of the ntuple
//
// 06.12.2001 A.Pfeiffer
// - updating to new design (singleton)
//
// 22.11.2001 G.Barrand
// - Adaptation to AIDA
//
// ************************************************************
#include "G4RunManager.hh"
#include "GammaRayTelAnalysis.hh"
#include "GammaRayTelDetectorConstruction.hh"
#include "GammaRayTelAnalysisMessenger.hh"
#ifdef G4ANALYSIS_USE
#include <AIDA/IAnalysisFactory.h>
#include <AIDA/ITreeFactory.h>
#include <AIDA/ITree.h>
#include <AIDA/IHistogramFactory.h>
#include <AIDA/IHistogram1D.h>
#include <AIDA/IHistogram2D.h>
#include <AIDA/IPlotterFactory.h>
#include <AIDA/IPlotter.h>
#include <AIDA/ITupleFactory.h>
#include <AIDA/ITuple.h>
#endif
GammaRayTelAnalysis* GammaRayTelAnalysis::instance = 0;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
GammaRayTelAnalysis::GammaRayTelAnalysis(int argc,char** argv)
:GammaRayTelDetector(0)
,analysisFactory(0), tree(0), plotter(0), tuple(0)
,energy(0), hits(0), posXZ(0), posYZ(0)
,histo1DDraw("enable"),histo1DSave("enable"),histo2DDraw("enable")
,histo2DSave("enable"),histo2DMode("strip")
{
G4RunManager* runManager = G4RunManager::GetRunManager();
GammaRayTelDetector =
(GammaRayTelDetectorConstruction*)(runManager->GetUserDetectorConstruction());
#ifdef G4ANALYSIS_USE
// Define the messenger and the analysis system
analysisMessenger = new GammaRayTelAnalysisMessenger(this);
analysisFactory = AIDA_createAnalysisFactory();
if(analysisFactory) {
ITreeFactory* treeFactory = analysisFactory->createTreeFactory();
if(treeFactory) {
// Tree in memory :
//tree = treeFactory->create();
// Create a "tree" associated to a ROOT "store" (in RECREATE mode).
tree = treeFactory->create("GammaRayTel.root",false,false,"ROOT");
if(tree) {
IHistogramFactory* histoFactory =
analysisFactory->createHistogramFactory(*tree);
if(histoFactory) {
// Create histos :
int Nplane = GammaRayTelDetector->GetNbOfTKRLayers();
int Nstrip = GammaRayTelDetector->GetNbOfTKRStrips();
int Ntile = GammaRayTelDetector->GetNbOfTKRTiles();
float sizexy = GammaRayTelDetector->GetTKRSizeXY();
float sizez = GammaRayTelDetector->GetTKRSizeZ();
int N = Nstrip*Ntile;
// 1D histogram that store the energy deposition of the
// particle in the last (number 0) TKR X-plane
energy = histoFactory->create1D("1","Energy deposition in the last X plane (keV)", 100, 50, 200);
// 1D histogram that store the hits distribution along the TKR X-planes
hits = histoFactory->create1D("2","Hits distribution in the TKR X planes",Nplane, 0, Nplane-1);
// 2D histogram that store the position (mm) of the hits (XZ projection)
if (histo2DMode == "strip")
posXZ = histoFactory->create2D("3","Tracker Hits XZ (strip,plane)",
N, 0, N-1,
2*Nplane, 0, Nplane-1);
else
posXZ = histoFactory->create2D("3","Tracker Hits XZ (x,z) in mm",
sizexy/5, -sizexy/2, sizexy/2,
sizez/5, -sizez/2, sizez/2);
// 2D histogram that store the position (mm) of the hits (YZ projection)
if(histo2DMode=="strip")
posYZ = histoFactory->create2D("4","Tracker Hits YZ (strip,plane)",
N, 0, N-1,
2*Nplane, 0, Nplane-1);
else
posYZ = histoFactory->create2D("4","Tracker Hits YZ (y,z) in mm",
sizexy/5, -sizexy/2, sizexy/2,
sizez/5, -sizez/2, sizez/2);
delete histoFactory;
}
// Get a tuple factory :
ITupleFactory* tupleFactory = analysisFactory->createTupleFactory(*tree);
if(tupleFactory) {
// Create a tuple :
tuple = tupleFactory->create("tuple","tuple",
"energy plane x y z");
delete tupleFactory;
}
}
delete treeFactory; // Will not delete the ITree.
}
IPlotterFactory* plotterFactory =
analysisFactory->createPlotterFactory(argc,argv);
if(plotterFactory) {
plotter = plotterFactory->create();
if(plotter) {
plotter->show();
plotter->setParameter("pageTitle","Gamma Ray Tel");
}
delete plotterFactory;
}
}
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
GammaRayTelAnalysis::~GammaRayTelAnalysis() {
Finish();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
void GammaRayTelAnalysis::Init()
{
}
void GammaRayTelAnalysis::Finish()
{
#ifdef G4ANALYSIS_USE
delete plotter;
delete analysisFactory; // Will delete tree and histos.
delete analysisMessenger;
analysisMessenger = 0;
#endif
}
GammaRayTelAnalysis* GammaRayTelAnalysis::getInstance(int argc,char** argv)
{
if (instance == 0) instance = new GammaRayTelAnalysis(argc,argv);
return instance;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
// This function fill the 2d histogram of the XZ positions
void GammaRayTelAnalysis::InsertPositionXZ(double x, double z)
{
#ifdef G4ANALYSIS_USE
if(posXZ) posXZ->fill(x, z);
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
// This function fill the 2d histogram of the YZ positions
void GammaRayTelAnalysis::InsertPositionYZ(double y, double z)
{
#ifdef G4ANALYSIS_USE
if(posYZ) posYZ->fill(y, z);
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
// This function fill the 1d histogram of the energy released in the last Si plane
void GammaRayTelAnalysis::InsertEnergy(double en)
{
#ifdef G4ANALYSIS_USE
if(energy) energy->fill(en);
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
// This function fill the 1d histogram of the hits distribution along the TKR planes
void GammaRayTelAnalysis::InsertHits(int nplane)
{
#ifdef G4ANALYSIS_USE
if(hits) hits->fill(nplane);
#endif
}
void GammaRayTelAnalysis::setNtuple(float E, float p, float x, float y, float z)
{
#ifdef G4ANALYSIS_USE
if(tuple) {
tuple->fill(0,E);
tuple->fill(1,p);
tuple->fill(2,x);
tuple->fill(3,y);
tuple->fill(4,z);
tuple->addRow();
}
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
/*
This member reset the histograms and it is called at the begin
of each run; here we put the inizialization so that the histograms have
always the right dimensions depending from the detector geometry
*/
void GammaRayTelAnalysis::BeginOfRun(G4int n)
{
#ifdef G4ANALYSIS_USE
if(energy) energy->reset();
if(hits) hits->reset();
if(posXZ) posXZ->reset();
if(posYZ) posYZ->reset();
// Set the plotter ; set the number of regions and attach histograms
// to plot for each region.
// It is done here, since then EndOfRun set regions
// for paper output.
if(plotter) {
if((histo2DDraw == "enable") && (histo1DDraw == "enable")) {
plotter->createRegions(2,2);
plotter->plot(*posXZ);
plotter->next();
plotter->plot(*posYZ);
plotter->next();
plotter->plot(*energy);
plotter->next();
plotter->plot(*hits);
} else if((histo1DDraw == "enable") && (histo2DDraw != "enable")) {
plotter->createRegions(1,2);
plotter->plot(*energy);
plotter->next();
plotter->plot(*hits);
} else if((histo1DDraw != "enable") && (histo2DDraw == "enable")) {
plotter->createRegions(1,2);
plotter->plot(*posXZ);
plotter->next();
plotter->plot(*posYZ);
} else { // Nothing to plot.
plotter->createRegions(1,1);
}
plotter->refresh();
}
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
/*
This member is called at the end of each run
*/
void GammaRayTelAnalysis::EndOfRun(G4int n)
{
#ifdef G4ANALYSIS_USE
if(tree) tree->commit();
if(plotter) {
// We set one single region for the plotter
plotter->createRegions(1,1);
// We now print the histograms, each one in a separate file
if(histo2DSave == "enable") {
char name[15];
sprintf(name,"posxz_%d.ps", n);
plotter->plot(*posXZ);
plotter->write(name,"PS");
sprintf(name,"posyz_%d.ps", n);
plotter->clearRegion();
plotter->plot(*posYZ);
plotter->write(name,"PS");
}
if(histo1DSave == "enable") {
char name[15];
sprintf(name,"energy_%d.ps", n);
plotter->plot(*energy);
plotter->write(name,"PS");
sprintf(name,"hits_%d.ps", n);
plotter->clearRegion();
plotter->plot(*hits);
plotter->write(name,"PS");
}
}
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
/* This member is called at the end of every event */
void GammaRayTelAnalysis::EndOfEvent(G4int flag)
{
// The plotter is updated only if there is some
// hits in the event
if(!flag) return;
#ifdef G4ANALYSIS_USE
if(plotter) plotter->refresh();
#endif
}
@@ -0,0 +1,405 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
// Author: A. Pfeiffer (Andreas.Pfeiffer@cern.ch)
// (copied from his UserAnalyser class)
//
// History:
// -----------
// 7 Nov 2001 MGP Implementation
// 03 dic 2000 AnalysisManager by R.Giannitrapani, F.Longo & G.Santin
// 18 Nov 2001 G.Santin GammaRayTel analysis management modified
// according to the new design
//
// -------------------------------------------------------------------
#ifdef G4ANALYSIS_USE
#include "GammaRayTelAnalysis.hh"
#include "GammaRayTelAnalysisMessenger.hh"
#include "globals.hh"
#include "G4RunManager.hh"
#include "G4Track.hh"
#include "G4SteppingManager.hh"
#include "G4ThreeVector.hh"
#include "GammaRayTelDetectorConstruction.hh"
//using namespace Lizard;
GammaRayTelAnalysis* GammaRayTelAnalysis::instance = 0;
GammaRayTelAnalysis::GammaRayTelAnalysis() :
histoManager(0), vectorFactory(0),plotter(0),
histo1DDraw("enable"),histo1DSave("enable"),histo2DDraw("enable"),
histo2DSave("enable"),histo2DMode("strip"),
analysisMessenger(0)
{
}
GammaRayTelAnalysis::~GammaRayTelAnalysis()
{
Finish();
}
void GammaRayTelAnalysis::Init()
{
G4RunManager* runManager = G4RunManager::GetRunManager();
GammaRayTelDetector =
(GammaRayTelDetectorConstruction*)(runManager->GetUserDetectorConstruction());
analysisMessenger = new GammaRayTelAnalysisMessenger(this);
histoManager = createIHistoManager();
#ifdef G4ANALYSIS_USE_NTUPLE
ntFactory = Lizard::createNTupleFactory();
#endif
vectorFactory = createIVectorFactory();
plotter = createIPlotter();
}
void GammaRayTelAnalysis::Finish()
{
#ifdef G4ANALYSIS_USE_NTUPLE
delete ntFactory;
ntFactory = 0;
#endif
delete histoManager;
histoManager = 0;
delete vectorFactory;
vectorFactory = 0;
delete plotter;
plotter = 0;
delete analysisMessenger;
analysisMessenger = 0;
}
GammaRayTelAnalysis* GammaRayTelAnalysis::getInstance()
{
if (instance == 0) instance = new GammaRayTelAnalysis;
return instance;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
// This function fill the 2d histogram of the XZ positions
void GammaRayTelAnalysis::InsertPositionXZ(double x, double z)
{
IHistogram2D* posXZ = histoManager->retrieveHisto2D("3");
posXZ->fill(x, z);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
// This function fill the 2d histogram of the YZ positions
void GammaRayTelAnalysis::InsertPositionYZ(double y, double z)
{
IHistogram2D* posYZ = histoManager->retrieveHisto2D("4");
posYZ->fill(y, z);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
// This function fill the 1d histogram of the energy released in the last Si plane
void GammaRayTelAnalysis::InsertEnergy(double en)
{
IHistogram1D* energy = histoManager->retrieveHisto1D("1");
energy->fill(en);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
// This function fill the 1d histogram of the hits distribution along the TKR planes
void GammaRayTelAnalysis::InsertHits(int nplane)
{
IHistogram1D* hits = histoManager->retrieveHisto1D("2");
hits->fill(nplane);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
/*
This member reset the histograms and it is called at the begin
of each run; here we put the inizialization so that the histograms have
always the right dimensions depending from the detector geometry
*/
void GammaRayTelAnalysis::BeginOfRun(G4int n)
{
float sizexy, sizez;
int Nstrip, Nplane, Ntile, N;
char name[30];
Init();
// Relevant data from the detector to set the histograms dimensions
Nplane = GammaRayTelDetector->GetNbOfTKRLayers();
Nstrip = GammaRayTelDetector->GetNbOfTKRStrips();
Ntile = GammaRayTelDetector->GetNbOfTKRTiles();
sizexy = GammaRayTelDetector->GetTKRSizeXY();
sizez = GammaRayTelDetector->GetTKRSizeZ();
N = Nstrip*Ntile;
if (histoManager) {
sprintf(name,"gammaraytel%d.hbook", n);
histoManager->selectStore(name);
// Check if deleteHisto is enough, maybe we need to delete the object
histoManager->deleteHisto("1");
histoManager->create1D("1","Energy deposition in the last X plane (keV)", 100, 50., 200.);
// 1D histogram that store the hits distribution along the TKR X-planes
histoManager->deleteHisto("2");
histoManager->create1D("2","Hits distribution in the TKR X planes",
Nplane, 0, Nplane-1);
// 2D histogram that store the position (mm) of the hits (XZ projection)
histoManager->deleteHisto("3");
if (histo2DMode == "strip")
histoManager->create2D("3","Tracker Hits XZ (strip,plane)",
N, 0, N-1,
2*Nplane, 0, Nplane-1);
else
histoManager->create2D("3","Tracker Hits XZ (x,z) in mm",
sizexy/5, -sizexy/2, sizexy/2,
sizez/5, -sizez/2, sizez/2);
// 2D histogram that store the position (mm) of the hits (YZ projection)
histoManager->deleteHisto("4");
if(histo2DMode=="strip")
histoManager->create2D("4","Tracker Hits YZ (strip,plane)",
N, 0, N-1,
2*Nplane, 0, Nplane-1);
else
histoManager->create2D("4","Tracker Hits YZ (y,z) in mm",
sizexy/5, -sizexy/2, sizexy/2,
sizez/5, -sizez/2, sizez/2);
}
IHistogram2D* posXZ = histoManager->retrieveHisto2D("3");
if (posXZ)
posXZ->reset();
IHistogram2D* posYZ = histoManager->retrieveHisto2D("4");
if(posYZ)
posYZ->reset();
IHistogram1D* energy = histoManager->retrieveHisto1D("1");
if(energy)
energy->reset();
IHistogram1D* hits = histoManager->retrieveHisto1D("2");
if(hits)
hits->reset();
// We divide the plotter in the right nuber of zone depending
// on which histograms the user want to draw
if((histo2DDraw == "enable") && (histo1DDraw == "enable"))
plotter->zone(2,2,0,0);
else if((histo1DDraw == "enable") || (histo2DDraw == "enable"))
plotter->zone(1,2,0,0);
else
plotter->zone(1,1,0,0);
#ifdef G4ANALYSIS_USE_NTUPLE
// Book ntuples
sprintf(name,"gammaraytel%d.hbook::1", n);
ntuple = ntFactory->createC(name);
// Add and bind the attributes to the ntuple
if ( !( ntuple->addAndBind( "energy", ntEnergy) &&
ntuple->addAndBind( "plane" , ntPlane) &&
ntuple->addAndBind( "x" , ntX ) &&
ntuple->addAndBind( "y" , ntY ) &&
ntuple->addAndBind( "z" , ntZ ) ) ) {
delete ntuple;
G4Exception(" GammaRayTelAnalysis::BeginOfRun - Could not addAndBind ntuple");
}
#endif
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
/*
This member is called at the end of each run
*/
void GammaRayTelAnalysis::EndOfRun(G4int n)
{
// This variable contains the names of the PS files
char name[15];
// We define some vectors
IVector* vxz = 0;
IVector* vyz = 0;
IVector* ve = 0;
IVector* vhit = 0;
// Temporary we set one single zone for the plotter
plotter->zone(1,1,0,0);
// We now print the histograms, each one in a separate file
if(histo2DSave == "enable") {
IHistogram2D* posXZ = histoManager->retrieveHisto2D("3");
IHistogram2D* posYZ = histoManager->retrieveHisto2D("4");
plot2D(posXZ);
sprintf(name,"posxz_%d.ps", n);
plotter->psPrint(name);
plot2D(posYZ);
sprintf(name,"posyz_%d.ps", n);
plotter->psPrint(name);
}
if(histo1DSave == "enable") {
IHistogram1D* energy = histoManager->retrieveHisto1D("1");
IHistogram1D* hits = histoManager->retrieveHisto1D("2");
plot1D(energy);
sprintf(name,"energy_%d.ps", n);
plotter->psPrint(name);
plot1D(hits);
sprintf(name,"hits_%d.ps", n);
plotter->psPrint(name);
}
delete vxz;
delete vyz;
delete ve;
delete vhit;
// Store histograms
// Because of a Lizard feature, ntuples must be deleted at this stage,
// not in the destructor (otherwise the ntuples are not stored)
// In version 3.6.4 of Anaphe, no licence, storing other histograms after
// having stored a 2D one generates an error message "ERROR in HLNEXT"
// Histograms are stored correctly, in spite of the error message
// The same error message is issued if attempting to store 1D or 2D
// histograms after deleting a ntuple
histoManager->store("1");
histoManager->store("3");
histoManager->store("2");
histoManager->store("4");
#ifdef G4ANALYSIS_USE_NTUPLE
delete ntuple;
ntuple = 0;
G4cout << "Deleted ntuple" << G4endl;
#endif
// close files for this run
if (histoManager != 0) Finish();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
/* This member is called at the end of every event */
void GammaRayTelAnalysis::EndOfEvent(G4int flag)
{
// The histograms are updated only if there is some
// hits in the event
if(flag) Plot();
}
void GammaRayTelAnalysis::Plot()
{
// In a normal case we use the following line to use the standard plot
// analysisSystem->Plot(histo);
// We define some vectors
IVector* vxz = 0;
IVector* vyz = 0;
IVector* ve = 0;
IVector* vhit= 0;
// We fill them with the histograms and
// draw them
if(histo2DDraw == "enable")
{
IHistogram2D* posXZ = histoManager->retrieveHisto2D("3");
IHistogram2D* posYZ = histoManager->retrieveHisto2D("4");
plot2D(posXZ);
plot2D(posYZ);
plotter->refresh();
}
if(histo1DDraw == "enable")
{
IHistogram1D* energy = histoManager->retrieveHisto1D("1");
IHistogram1D* hits = histoManager->retrieveHisto1D("2");
plot1D(energy);
plot1D(hits);
plotter->refresh();
}
delete vxz;
delete vyz;
delete ve;
delete vhit;
}
void GammaRayTelAnalysis::plot1D(IHistogram1D* histo)
{
IVector* v = vectorFactory->from1D(histo);
plotter->plot(v,0);
plotter->refresh();
delete v;
}
void GammaRayTelAnalysis::plot2D(IHistogram2D* histo)
{
IVector* v = vectorFactory->from2D(histo);
plotter->plot(v,0);
plotter->refresh();
delete v;
}
#ifdef G4ANALYSIS_USE_NTUPLE
void GammaRayTelAnalysis::setNtuple(float E, float p, float x, float y, float z)
{
ntEnergy = E;
ntPlane = p;
ntX = x;
ntY = y;
ntZ = z;
ntuple->addRow();
}
#endif
#endif
@@ -1,334 +0,0 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: GammaRayTelAnalysisManager.cc,v 1.1.4.2 2001/06/28 20:18:40 gunter Exp $
// GEANT4 tag $Name: $
// ------------------------------------------------------------
// GEANT 4 class implementation file
// CERN Geneva Switzerland
//
//
// ------------ GammaRayAnalysisManager ------
// by R.Giannitrapani, F.Longo & G.Santin (03 dic 2000)
//
// ************************************************************
#ifdef G4ANALYSIS_USE
#include <stdlib.h>
#include "g4std/fstream"
#include "GammaRayTelAnalysisManager.hh"
#include "G4VAnalysisSystem.hh"
#include "GammaRayTelDetectorConstruction.hh"
#include "GammaRayTelAnalysisMessenger.hh"
#include <IHistogramFactory.h>
#include <IHistogram1D.h>
#include <IHistogram2D.h>
#include <IPlotter.h>
#include <IVector.h>
#include <IVectorFactory.h>
#include "G4LizardSystem.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
GammaRayTelAnalysisManager::GammaRayTelAnalysisManager(GammaRayTelDetectorConstruction* GammaRayTelDC):
GammaRayTelDetector(GammaRayTelDC),
posXZ(0), posYZ(0), energy(0), hits(0), histoFactory(0), pl(0),
histo1DDraw("enable"),histo1DSave("enable"),histo2DDraw("enable"),
histo2DSave("enable"),histo2DMode("strip")
{
// Define the messenger and the analysis system
analysisMessenger = new GammaRayTelAnalysisMessenger(this);
analysisSystem = new G4LizardSystem;
histoFactory = analysisSystem->GetHistogramFactory();
/*
The following lines set the plotter and the vectorfactory that
are needed in this example for a multiple histograms
visualization. Please see the README for more information
*/
fVectorFactory = createIVectorFactory();
pl = createIPlotter();
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
GammaRayTelAnalysisManager::~GammaRayTelAnalysisManager() {
delete posXZ;
delete posYZ;
delete energy;
delete hits;
delete analysisSystem;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
G4bool GammaRayTelAnalysisManager::RegisterAnalysisSystem(G4VAnalysisSystem*)
{
return true;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
IHistogramFactory* GammaRayTelAnalysisManager::GetHistogramFactory(const G4String& aSystem)
{
return histoFactory;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
void GammaRayTelAnalysisManager::Store(IHistogram* histo, const G4String& ID)
{
analysisSystem->Store(histo, ID);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
/*
Since the Lizard interface and analysis classes in G4 are still
experimental, they lack for now the possibility to show directly
more than one histograms at the same time. In order to show 2 or 4 histo
in a single view in our example, we decided to override this implementation
and use directly the IPlotter interface for our needs. This will change
in future releases.
Please note that for visualization purpouses the histograms result
stretched along the x axis; when they are saved in a PostScript
file the proportions are the right ones.
*/
void GammaRayTelAnalysisManager::Plot(IHistogram* histo = 0)
{
// In a normal case we use the following line to use the standard plot
// analysisSystem->Plot(histo);
// We define some vectors
IVector* vxz = 0;
IVector* vyz = 0;
IVector* ve = 0;
IVector* vhit= 0;
// We fill them with the histograms and
// draw them
if(histo2DDraw == "enable")
{
vxz = fVectorFactory->from2D(dynamic_cast<IHistogram2D*>(posXZ));
vyz = fVectorFactory->from2D(dynamic_cast<IHistogram2D*>(posYZ));
pl->plot(vxz);
pl->plot(vyz);
pl->refresh();
}
if(histo1DDraw == "enable")
{
ve = fVectorFactory->from1D(dynamic_cast<IHistogram1D*>(energy));
vhit = fVectorFactory->from1D(dynamic_cast<IHistogram1D*>(hits));
pl->plot(ve);
pl->plot(vhit);
pl->refresh();
}
delete vxz;
delete vyz;
delete ve;
delete vhit;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
// This function fill the 2d histogram of the XZ positions
void GammaRayTelAnalysisManager::InsertPositionXZ(double x, double z)
{
posXZ->fill(x, z);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
// This function fill the 2d histogram of the YZ positions
void GammaRayTelAnalysisManager::InsertPositionYZ(double y, double z)
{
posYZ->fill(y, z);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
// This function fill the 1d histogram of the energy released in the last Si plane
void GammaRayTelAnalysisManager::InsertEnergy(double en)
{
energy->fill(en);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
// This function fill the 1d histogram of the hits distribution along the TKR planes
void GammaRayTelAnalysisManager::InsertHits(int nplane)
{
hits->fill(nplane);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
/*
This member reset the histograms and it is called at the begin
of each run; here we put the inizialization so that the histograms have
always the right dimensions depending from the detector geometry
*/
void GammaRayTelAnalysisManager::BeginOfRun()
{
float sizexy, sizez;
int nplane;
int Nstrip, Nplane, Ntile, N;
// Relevant data from the detector to set the histograms dimensions
Nplane = GammaRayTelDetector->GetNbOfTKRLayers();
Nstrip = GammaRayTelDetector->GetNbOfTKRStrips();
Ntile = GammaRayTelDetector->GetNbOfTKRTiles();
sizexy = GammaRayTelDetector->GetTKRSizeXY();
sizez = GammaRayTelDetector->GetTKRSizeZ();
N = Nstrip*Ntile;
if (histoFactory)
{
// 1D histogram that store the energy deposition of the
// particle in the last (number 0) TKR X-plane
histoFactory->destroy(energy);
energy = histoFactory->create1D("Energy deposition in the last X plane (keV)", 100, 50, 200);
// 1D histogram that store the hits distribution along the TKR X-planes
histoFactory->destroy(hits);
hits = histoFactory->create1D("Hits distribution in the TKR X planes",
Nplane, 0, Nplane-1);
// 2D histogram that store the position (mm) of the hits (XZ projection)
histoFactory->destroy(posXZ);
if (histo2DMode == "strip")
posXZ = histoFactory->create2D("Tracker Hits XZ (strip,plane)",
N, 0, N-1,
2*Nplane, 0, Nplane-1);
else
posXZ = histoFactory->create2D("Tracker Hits XZ (x,z) in mm",
sizexy/5, -sizexy/2, sizexy/2,
sizez/5, -sizez/2, sizez/2);
// 2D histogram that store the position (mm) of the hits (YZ projection)
histoFactory->destroy(posYZ);
if(histo2DMode=="strip")
posYZ = histoFactory->create2D("Tracker Hits YZ (strip,plane)",
N, 0, N-1,
2*Nplane, 0, Nplane-1);
else
posYZ = histoFactory->create2D("Tracker Hits YZ (y,z) in mm",
sizexy/5, -sizexy/2, sizexy/2,
sizez/5, -sizez/2, sizez/2);
}
if(posXZ)
posXZ->reset();
if(posYZ)
posYZ->reset();
if(energy)
energy->reset();
if(hits)
hits->reset();
// We divide the plotter in the right nuber of zone depending
// on which histograms the user want to draw
if((histo2DDraw == "enable") && (histo1DDraw == "enable"))
pl->zone(2,2);
else if((histo1DDraw == "enable") || (histo2DDraw == "enable"))
pl->zone(1,2);
else
pl->zone(1,1);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
/*
This member is called at the end of each run
*/
void GammaRayTelAnalysisManager::EndOfRun(G4int n)
{
// This variable contains the names of the PS files
char name[15];
// We define some vectors
IVector* vxz = 0;
IVector* vyz = 0;
IVector* ve = 0;
IVector* vhit = 0;
// Temporary we set one single zone for the plotter
pl->zone(1,1);
// We now print the histograms, each one in a separate file
if(histo2DSave == "enable")
{
vxz = fVectorFactory->from2D(dynamic_cast<IHistogram2D*>(posXZ));
vyz = fVectorFactory->from2D(dynamic_cast<IHistogram2D*>(posYZ));
sprintf(name,"posxz_%d.ps", n);
pl->plot(vxz);
pl->psPrint(name);
sprintf(name,"posyz_%d.ps", n);
pl->plot(vyz);
pl->psPrint(name);
}
if(histo1DSave == "enable")
{
ve = fVectorFactory->from1D(dynamic_cast<IHistogram1D*>(energy));
vhit = fVectorFactory->from1D(dynamic_cast<IHistogram1D*>(hits));
sprintf(name,"energy_%d.ps", n);
pl->plot(ve);
pl->psPrint(name);
sprintf(name,"hits_%d.ps", n);
pl->plot(vhit);
pl->psPrint(name);
}
delete vxz;
delete vyz;
delete ve;
delete vhit;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
/* This member is called at the end of every event */
void GammaRayTelAnalysisManager::EndOfEvent(G4int flag)
{
// The histograms are updated only if there is some
// hits in the event
if(flag) Plot();
}
#endif
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelAnalysisMessenger.cc,v 1.1.4.2 2001/06/28 20:18:40 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelAnalysisMessenger.cc,v 1.5 2001/12/04 11:40:28 flongo Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// ------------------------------------------------------------
// GEANT 4 class implementation file
@@ -31,23 +31,24 @@
//
// ------------ GammaRayTelAnalysisMessenger ------
// by R.Giannitrapani, F.Longo & G.Santin (03 dic 2000)
//
// 20.11.01 G.Santin: modified according to the new GammaRayTelAnalysis.cc
// ************************************************************
#ifdef G4ANALYSIS_USE
#include "GammaRayTelAnalysisMessenger.hh"
#include "GammaRayTelAnalysisManager.hh"
#include "G4UIdirectory.hh"
#include "G4UIcmdWithAString.hh"
#include "GammaRayTelAnalysisMessenger.hh"
#include "GammaRayTelAnalysis.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
GammaRayTelAnalysisMessenger::GammaRayTelAnalysisMessenger(GammaRayTelAnalysisManager* analysisManager)
:GammaRayTelAnalysis(analysisManager)
GammaRayTelAnalysisMessenger::GammaRayTelAnalysisMessenger(GammaRayTelAnalysis* analysis)
:gammaRayTelAnalysis(analysis)
{
GammaRayTelAnalysisDir = new G4UIdirectory("/analysis/");
GammaRayTelAnalysisDir->SetGuidance("GammaRayTel analysis control.");
gammaRayTelAnalysisDir = new G4UIdirectory("/analysis/");
gammaRayTelAnalysisDir->SetGuidance("GammaRayTel analysis control.");
/*
Commands for the 1D histograms (energy deposition in the last
@@ -139,21 +140,21 @@ void GammaRayTelAnalysisMessenger::SetNewValue(G4UIcommand* command,G4String new
// 1D Histograms
if( command == Histo1DDrawCmd )
{ GammaRayTelAnalysis->SetHisto1DDraw(newValue);}
{ gammaRayTelAnalysis->SetHisto1DDraw(newValue);}
if( command == Histo1DSaveCmd )
{ GammaRayTelAnalysis->SetHisto1DSave(newValue);}
{ gammaRayTelAnalysis->SetHisto1DSave(newValue);}
// 2D Histograms
if( command == Histo2DDrawCmd )
{ GammaRayTelAnalysis->SetHisto2DDraw(newValue);}
{ gammaRayTelAnalysis->SetHisto2DDraw(newValue);}
if( command == Histo2DSaveCmd )
{ GammaRayTelAnalysis->SetHisto2DSave(newValue);}
{ gammaRayTelAnalysis->SetHisto2DSave(newValue);}
if( command == Histo2DModeCmd )
{ GammaRayTelAnalysis->SetHisto2DMode(newValue);}
{ gammaRayTelAnalysis->SetHisto2DMode(newValue);}
}
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelAnticoincidenceHit.cc,v 1.1.2.2 2001/06/28 20:18:41 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelAnticoincidenceHit.cc,v 1.2 2001/07/11 09:56:57 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class implementation file
// CERN Geneva Switzerland
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelAnticoincidenceSD.cc,v 1.1.2.2 2001/06/28 20:18:41 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelAnticoincidenceSD.cc,v 1.4 2001/11/29 11:19:18 griccard Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class implementation file
// CERN Geneva Switzerland
@@ -32,7 +32,7 @@
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
//
// ************************************************************
#include "G4RunManager.hh"
#include "GammaRayTelAnticoincidenceSD.hh"
#include "GammaRayTelAnticoincidenceHit.hh"
#include "GammaRayTelDetectorConstruction.hh"
@@ -46,10 +46,13 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
GammaRayTelAnticoincidenceSD::GammaRayTelAnticoincidenceSD(G4String name,
GammaRayTelDetectorConstruction* det)
:G4VSensitiveDetector(name),Detector(det)
GammaRayTelAnticoincidenceSD::GammaRayTelAnticoincidenceSD(G4String name)
:G4VSensitiveDetector(name)
{
G4RunManager* runManager = G4RunManager::GetRunManager();
Detector =
(GammaRayTelDetectorConstruction*)(runManager->GetUserDetectorConstruction());
NbOfACDLateralTiles = Detector->GetNbOfACDLateralTiles();
NbOfACDTopTiles = Detector->GetNbOfACDTopTiles();
@@ -105,7 +108,7 @@ G4bool GammaRayTelAnticoincidenceSD::ProcessHits(G4Step* aStep,G4TouchableHistor
G4int ACDTileNumber=acd_tile->GetCopyNo();
G4String ACDTileName = acd_tile->GetName();
G4cout << ACDTileName << " " << edep/keV << G4endl;
// G4cout << ACDTileName << " " << edep/keV << G4endl;
if (ACDTileName == "ACT" )
// The hit is on an top ACD tile (ACDType 0)
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelCalorimeterHit.cc,v 1.1.2.2 2001/06/28 20:18:41 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelCalorimeterHit.cc,v 1.2 2001/07/11 09:56:57 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class implementation file
// CERN Geneva Switzerland
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelCalorimeterSD.cc,v 1.1.2.2 2001/06/28 20:18:41 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelCalorimeterSD.cc,v 1.4 2001/11/29 11:19:18 griccard Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class implementation file
// CERN Geneva Switzerland
@@ -32,7 +32,7 @@
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
//
// ************************************************************
#include "G4RunManager.hh"
#include "GammaRayTelCalorimeterSD.hh"
#include "GammaRayTelCalorimeterHit.hh"
#include "GammaRayTelDetectorConstruction.hh"
@@ -46,17 +46,22 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
GammaRayTelCalorimeterSD::GammaRayTelCalorimeterSD(G4String name,
GammaRayTelDetectorConstruction* det)
:G4VSensitiveDetector(name),Detector(det)
GammaRayTelCalorimeterSD::GammaRayTelCalorimeterSD(G4String name):G4VSensitiveDetector(name)
{
G4RunManager* runManager = G4RunManager::GetRunManager();
Detector =
(GammaRayTelDetectorConstruction*)(runManager->GetUserDetectorConstruction());
NbOfCALBars = Detector->GetNbOfCALBars();
NbOfCALLayers = Detector->GetNbOfCALLayers();
G4cout << NbOfCALBars << " bars " << G4endl;
G4cout << NbOfCALLayers << " layers " << G4endl;
//G4cout << NbOfCALBars << " bars " << G4endl;
//G4cout << NbOfCALLayers << " layers " << G4endl;
ChitXID = new G4int[NbOfCALBars][12];
ChitYID = new G4int[NbOfCALBars][12];
NbOfCALChannels = NbOfCALBars*NbOfCALLayers;
ChitXID = new G4int[NbOfCALChannels];
ChitYID = new G4int[NbOfCALChannels];
collectionName.insert("CalorimeterCollection");
}
@@ -74,11 +79,10 @@ 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++)
for (G4int i=0;i<NbOfCALChannels;i++)
{
ChitXID[i][j] = -1;
ChitYID[i][j] = -1;
ChitXID[i] = -1;
ChitYID[i] = -1;
};
}
@@ -105,13 +109,18 @@ G4bool GammaRayTelCalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory* R
PlaneNumber=cal_plane->GetCopyNo();
G4String PlaneName = cal_plane->GetName();
if (PlaneName == "CALLayerX" )
G4int NChannel = 0;
NChannel = PlaneNumber * NbOfCALBars + CALBarNumber;
if (PlaneName == "CALLayerX" )
// The hit is on an X CsI plane
{
// This is a new hit
if (ChitXID[CALBarNumber][PlaneNumber]==-1)
if (ChitXID[NChannel]==-1)
{
GammaRayTelCalorimeterHit* CalorimeterHit = new GammaRayTelCalorimeterHit;
CalorimeterHit->SetCALType(1);
@@ -119,13 +128,13 @@ G4bool GammaRayTelCalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory* R
CalorimeterHit->SetPos(aStep->GetPreStepPoint()->GetPosition());
CalorimeterHit->SetCALPlaneNumber(PlaneNumber);
CalorimeterHit->SetCALBarNumber(CALBarNumber);
ChitXID[CALBarNumber][PlaneNumber] =
ChitXID[NChannel] =
CalorimeterCollection->insert(CalorimeterHit) -1;
}
else // This is not new
{
(*CalorimeterCollection)
[ChitXID[CALBarNumber][PlaneNumber]]->AddEnergy(edep);
[ChitXID[NChannel]]->AddEnergy(edep);
}
}
@@ -133,7 +142,7 @@ G4bool GammaRayTelCalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory* R
// The hit is on an Y CsI plane
{
// This is a new hit
if (ChitYID[CALBarNumber][PlaneNumber]==-1)
if (ChitYID[NChannel]==-1)
{
GammaRayTelCalorimeterHit* CalorimeterHit
= new GammaRayTelCalorimeterHit;
@@ -142,13 +151,13 @@ G4bool GammaRayTelCalorimeterSD::ProcessHits(G4Step* aStep,G4TouchableHistory* R
CalorimeterHit->SetPos(aStep->GetPreStepPoint()->GetPosition());
CalorimeterHit->SetCALPlaneNumber(PlaneNumber);
CalorimeterHit->SetCALBarNumber(CALBarNumber);
ChitYID[CALBarNumber][PlaneNumber] =
ChitYID[NChannel] =
CalorimeterCollection->insert(CalorimeterHit)-1;
}
else // This is not new
{
(*CalorimeterCollection)
[ChitYID[CALBarNumber][PlaneNumber]]->AddEnergy(edep);
[ChitYID[NChannel]]->AddEnergy(edep);
}
}
@@ -167,12 +176,11 @@ void GammaRayTelCalorimeterSD::EndOfEvent(G4HCofThisEvent* HCE)
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;
};
for (G4int i=0;i<NbOfCALChannels;i++)
{
ChitXID[i] = -1;
ChitYID[i] = -1;
};
}
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelDetectorConstruction.cc,v 1.5.2.2 2001/06/28 20:18:41 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelDetectorConstruction.cc,v 1.9 2001/11/29 11:19:18 griccard Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class implementation file
// CERN Geneva Switzerland
@@ -70,16 +70,14 @@ GammaRayTelDetectorConstruction::GammaRayTelDetectorConstruction()
solidACT(0),logicACT(0),physiACT(0),
solidACL1(0),logicACL1(0),physiACL1(0),
solidACL2(0),logicACL2(0),physiACL2(0),
solidConverter(0),logicConverter(0),physiConverter(0),
solidTKRDetectorX(0),logicTKRDetectorX(0),
solidTKRDetectorY(0),logicTKRDetectorY(0),
physiTKRDetectorX(0),physiTKRDetectorY(0),
solidCALDetectorX(0),logicCALDetectorX(0),physiCALDetectorX(0),
solidCALDetectorY(0),logicCALDetectorY(0),physiCALDetectorY(0),
solidTKRDetectorX(0),logicTKRDetectorX(0),physiTKRDetectorX(0),
solidTKRDetectorY(0),logicTKRDetectorY(0),physiTKRDetectorY(0),
solidCALLayerX(0),logicCALLayerX(0),physiCALLayerX(0),
solidCALLayerY(0),logicCALLayerY(0),physiCALLayerY(0),
solidPlane(0),logicPlane(0),physiPlane(0)
solidCALDetectorX(0),logicCALDetectorX(0),physiCALDetectorX(0),
solidCALDetectorY(0),logicCALDetectorY(0),physiCALDetectorY(0),
solidPlane(0),logicPlane(0),physiPlane(0),
solidConverter(0),logicConverter(0),physiConverter(0)
{
// default parameter values of the payload
@@ -132,7 +130,7 @@ void GammaRayTelDetectorConstruction::DefineMaterials()
G4double a, z, density;
G4int ncomponents, natoms;
G4double abundance, fractionmass;
G4double fractionmass;
G4double temperature, pressure;
//
@@ -151,36 +149,33 @@ void GammaRayTelDetectorConstruction::DefineMaterials()
a = 15.99*g/mole;
G4Element* O = new G4Element(name="Oxygen" ,symbol="O" , z= 8., a);
a = 26.98*g/mole;
G4Element* Alumin = new G4Element(name="Aluminum" ,symbol="Al" , z= 13., a);
a = 28.09*g/mole;
G4Element* Silicon = new G4Element(name="Silicon", symbol="Si", z=14., a);
a= 55.845*g/mole;
G4Element* Iron = new G4Element(name="Iron", symbol="Fe", z=26.,a);
a = 126.904*g/mole;
G4Element* I = new G4Element(name="Iodine" ,symbol="I" , z= 53., a);
a = 132.905*g/mole;
G4Element* Cs = new G4Element(name="Cesium" ,symbol="Cs" , z= 55., a);
//
// define simple materials
//
a = 207.19*g/mole;
G4Element* Lead = new G4Element(name="Lead", symbol="Pb", z=82., a);
density = 2.700*g/cm3;
a = 26.98*g/mole;
G4Material* Al = new G4Material(name="Aluminium", z=13., a, density);
//
// define simple materials
//
density = 2.333*g/cm3;
a = 28.09*g/mole;
G4Material* Si = new G4Material(name="Silicon",z=14., a,density);
density = 19.3*g/cm3;
a = 183.84*g/mole;
G4Material* W = new G4Material(name="Tungsten", z=74., a, density);
density = 11.35*g/cm3;
a = 207.19*g/mole;
G4Material* Pb = new G4Material(name="Lead", z=82., a, density);
density = 7.87*g/cm3;
a= 55.845*g/mole;
G4Material* Fe = new G4Material(name="Iron", z=26.,a,density);
//
// define a material from elements. case 1: chemical molecule
//
@@ -192,8 +187,8 @@ void GammaRayTelDetectorConstruction::DefineMaterials()
density = 4.53*g/cm3;
G4Material* CsI = new G4Material(name="CesiumIodide", density, ncomponents=2);
CsI->AddElement(C, natoms=5);
CsI->AddElement(H, natoms=5);
CsI->AddElement(Cs, natoms=5);
CsI->AddElement(I, natoms=5);
//
// define a material from elements. case 2: mixture by fractional mass
@@ -203,11 +198,27 @@ void GammaRayTelDetectorConstruction::DefineMaterials()
G4Material* Air = new G4Material(name="Air" , density, ncomponents=2);
Air->AddElement(N, fractionmass=0.7);
Air->AddElement(O, fractionmass=0.3);
//
// examples of vacuum
//
density = 2.700*g/cm3;
G4Material* Al = new G4Material(name="Aluminum", density, ncomponents=1);
Al->AddElement(Alumin, fractionmass=1.);
density = 2.333*g/cm3;
G4Material* Si = new G4Material(name="Silicon", density, ncomponents=1);
Si->AddElement(Silicon, fractionmass=1.);
density = 7.87*g/cm3;
G4Material* Fe = new G4Material(name="Iron", density, ncomponents=1);
Fe->AddElement(Iron, fractionmass=1.);
density = 11.35*g/cm3;
G4Material* Pb = new G4Material(name="Lead", density, ncomponents=1);
Pb->AddElement(Lead, fractionmass=1.);
//
// examples of vacuum
//
density = universe_mean_density; //from PhysicalConstants.h
pressure = 3.e-18*pascal;
temperature = 2.73*kelvin;
@@ -224,7 +235,7 @@ void GammaRayTelDetectorConstruction::DefineMaterials()
//default materials of the payload
ConverterMaterial = Pb;
ConverterMaterial = W;
defaultMaterial = vacuum;
ACDMaterial = Sci;
CALMaterial = CsI;
@@ -481,22 +492,23 @@ G4VPhysicalVolume* GammaRayTelDetectorConstruction::ConstructPayload()
physiTKR,
false,
i);
physiPlane =
new G4PVPlacement(0,G4ThreeVector(0.,0.,
-TKRSizeZ/2+
2*TKRSiliconThickness +
TKRViewsDistance+
ConverterThickness+
TKRSupportThickness/2),
TKRSupportThickness/2+
(i)*TKRLayerDistance),
"Plane",
logicPlane,
physiTKR,
false,
i);
}
@@ -676,17 +688,18 @@ G4VPhysicalVolume* GammaRayTelDetectorConstruction::ConstructPayload()
if(!trackerSD)
{
trackerSD = new GammaRayTelTrackerSD("TrackerSD",this);
trackerSD = new GammaRayTelTrackerSD("TrackerSD");
SDman->AddNewDetector( trackerSD );
}
G4String ROgeometryName = "TrackerROGeom";
G4VReadOutGeometry* trackerRO =
new GammaRayTelTrackerROGeometry(ROgeometryName, this);
new GammaRayTelTrackerROGeometry(ROgeometryName);
trackerRO->BuildROGeometry();
trackerSD->SetROgeometry(trackerRO);
if (logicTKRActiveTileX)
logicTKRActiveTileX->SetSensitiveDetector(trackerSD); // ActiveTileX
if (logicTKRActiveTileY)
@@ -700,7 +713,7 @@ G4VPhysicalVolume* GammaRayTelDetectorConstruction::ConstructPayload()
if(!calorimeterSD)
{
calorimeterSD = new GammaRayTelCalorimeterSD("CalorimeterSD",this);
calorimeterSD = new GammaRayTelCalorimeterSD("CalorimeterSD");
SDman->AddNewDetector( calorimeterSD );
}
@@ -716,7 +729,7 @@ G4VPhysicalVolume* GammaRayTelDetectorConstruction::ConstructPayload()
if(!anticoincidenceSD)
{
anticoincidenceSD = new GammaRayTelAnticoincidenceSD
("AnticoincidenceSD",this);
("AnticoincidenceSD");
SDman->AddNewDetector( anticoincidenceSD );
}
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelDetectorMessenger.cc,v 1.3.4.2 2001/06/28 20:18:41 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelDetectorMessenger.cc,v 1.4 2001/07/11 09:56:58 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
// ------------------------------------------------------------
// GEANT 4 class implementation file
@@ -0,0 +1,102 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: GammaRayTelDigi.cc,v 1.2 2001/12/13 13:44:55 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class implementation file
// CERN Geneva Switzerland
//
//
// ------------ GammaRayTelDigi ------
// by F.Longo, R.Giannitrapani & G.Santin (21 oct 2001)
//
// ************************************************************
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
#include "GammaRayTelDigi.hh"
G4Allocator<GammaRayTelDigi> GammaRayTelDigiAllocator;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
GammaRayTelDigi::GammaRayTelDigi()
{
PlaneType = 0;
PlaneNumber = 0;
StripNumber=0;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
GammaRayTelDigi::~GammaRayTelDigi()
{;}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
GammaRayTelDigi::GammaRayTelDigi(const GammaRayTelDigi& right)
{
PlaneType = right.PlaneType;
PlaneNumber = right.PlaneNumber;
StripNumber = right.StripNumber;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
const GammaRayTelDigi& GammaRayTelDigi::operator=(const GammaRayTelDigi& right)
{
PlaneType = right.PlaneType;
PlaneNumber = right.PlaneNumber;
StripNumber = right.StripNumber;
return *this;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
int GammaRayTelDigi::operator==(const GammaRayTelDigi& right) const
{
return 0;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
void GammaRayTelDigi::Draw()
{;}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
void GammaRayTelDigi::Print()
{;}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -0,0 +1,152 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: GammaRayTelDigitizer.cc,v 1.3 2001/12/04 11:40:28 flongo Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class implementation file
// CERN Geneva Switzerland
//
//
// ------------ GammaRayTelDigitizer ------
// by F.Longo, R.Giannitrapani & G.Santin (13 nov 2000)
//
// ************************************************************
#include "GammaRayTelDigitizer.hh"
#include "GammaRayTelDigi.hh"
#include "GammaRayTelDigitizerMessenger.hh"
#include "GammaRayTelTrackerHit.hh"
#include "G4EventManager.hh"
#include "G4Event.hh"
#include "G4SDManager.hh"
#include "G4DigiManager.hh"
#include "G4ios.hh"
//#include "G4CollectionNameVector.hh"
#include "g4std/vector"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
GammaRayTelDigitizer::GammaRayTelDigitizer(G4String name)
:G4VDigitizerModule(name)
{
G4String colName = "DigitsCollection";
collectionName.push_back(colName);
Energy_Threshold = 120.*keV;
//create a messenger for this class
digiMessenger = new GammaRayTelDigitizerMessenger(this);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
GammaRayTelDigitizer::~GammaRayTelDigitizer()
{
delete digiMessenger;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
void GammaRayTelDigitizer::Digitize()
{
DigitsCollection = new GammaRayTelDigitsCollection
("TrackerDigitizer","DigitsCollection"); // to create the Digi Collection
G4DigiManager* DigiMan = G4DigiManager::GetDMpointer();
G4int THCID;
// hits collections IDs
THCID = DigiMan->GetHitsCollectionID("TrackerCollection");
// Hits collection
GammaRayTelTrackerHitsCollection* THC = 0;
THC = (GammaRayTelTrackerHitsCollection*)
(DigiMan->GetHitsCollection(THCID));
if (THC)
{
G4int n_hit = THC->entries();
for (G4int i=0;i<n_hit;i++)
{
G4double ESil = (*THC)[i]->GetEdepSil();
G4int NStrip = (*THC)[i]->GetNStrip();
G4int NPlane = (*THC)[i]->GetNSilPlane();
G4int IsX = (*THC)[i]->GetPlaneType();
// digi generation only if energy deposit greater than threshold
if (ESil>Energy_Threshold)
{
GammaRayTelDigi* Digi = new GammaRayTelDigi();
Digi->SetPlaneNumber(NPlane);
Digi->SetPlaneType(IsX);
Digi->SetStripNumber(NStrip);
DigitsCollection->insert(Digi);
}
}
G4cout << "Number of tracker digits in this event = "
<< DigitsCollection->entries()
// << " " << DigitsCollection->GetName()
// << " " << DigitsCollection->GetDMname()
<< G4endl;
StoreDigiCollection(DigitsCollection);
G4int DCID = -1;
if(DCID<0)
{
// DigiMan->List();
DCID = DigiMan->GetDigiCollectionID("TrackerDigitizer/DigitsCollection");
}
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -0,0 +1,89 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
//
// $Id: GammaRayTelDigitizerMessenger.cc,v 1.1 2001/11/29 09:34:17 flongo Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class implementation file
// CERN Geneva Switzerland
//
//
// ------------ GammaRayTelDigitizerMessenger ------
// by F.Longo, G.Santin & R.Giannitrapani (27 nov 2001)
//
// ************************************************************
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#include "GammaRayTelDigitizerMessenger.hh"
#include "GammaRayTelDigitizer.hh"
#include "G4UIcmdWithADoubleAndUnit.hh"
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
GammaRayTelDigitizerMessenger::GammaRayTelDigitizerMessenger
(GammaRayTelDigitizer* GammaRayTelDigit)
:GammaRayTelAction(GammaRayTelDigit)
{
ThresholdCmd = new G4UIcmdWithADoubleAndUnit("/digitizer/Threshold",this);
ThresholdCmd->SetGuidance("Energy deposition threshold for TKR digi generation");
ThresholdCmd->SetParameterName("choice",true);
ThresholdCmd->SetDefaultValue((G4double)20.*keV);
ThresholdCmd->SetRange("Threshold >=0.");
ThresholdCmd->SetUnitCategory("Energy");
ThresholdCmd->AvailableForStates(PreInit,Idle);
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
GammaRayTelDigitizerMessenger::~GammaRayTelDigitizerMessenger()
{
delete ThresholdCmd;
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
void GammaRayTelDigitizerMessenger::SetNewValue(G4UIcommand * command,G4String newValue)
{
if( command == ThresholdCmd )
{
GammaRayTelAction->SetThreshold
(ThresholdCmd->GetNewDoubleValue(newValue));
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelEventAction.cc,v 1.5.2.2 2001/06/28 20:18:41 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelEventAction.cc,v 1.13 2001/12/04 13:23:52 flongo Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class implementation file
// CERN Geneva Switzerland
@@ -31,6 +31,10 @@
// ------------ GammaRayTelEventAction ------
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
//
// - inclusion of Digits by F.Longo & R.Giannitrapani (24 oct 2001)
//
// - Modification of analysis management by G.Santin (18 Nov 2001)
//
// ************************************************************
#include "GammaRayTelEventAction.hh"
@@ -38,10 +42,8 @@
#include "GammaRayTelAnticoincidenceHit.hh"
#include "GammaRayTelCalorimeterHit.hh"
#include "g4rw/tvordvec.h"
#ifdef G4ANALYSIS_USE
#include "GammaRayTelAnalysisManager.hh"
#include "GammaRayTelAnalysis.hh"
#endif
#include "G4Event.hh"
@@ -57,25 +59,25 @@
#include "G4UnitsTable.hh"
#include "Randomize.hh"
#include "GammaRayTelDigi.hh"
#include "GammaRayTelDigitizer.hh"
#include "G4DigiManager.hh"
// This file is a global variable in which we store energy deposition per hit
// and other relevant information
extern G4std::ofstream outFile;
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#ifdef G4ANALYSIS_USE
GammaRayTelEventAction::GammaRayTelEventAction(GammaRayTelAnalysisManager* aMgr)
:drawFlag("all"),trackerCollID(-1), calorimeterCollID(-1),
anticoincidenceCollID(-1), analysisManager(aMgr)
{
}
#else
GammaRayTelEventAction::GammaRayTelEventAction()
:drawFlag("all"), trackerCollID(-1),calorimeterCollID(-1),
anticoincidenceCollID(-1)
{
:trackerCollID(-1),calorimeterCollID(-1),
anticoincidenceCollID(-1), drawFlag("all")
{
G4DigiManager * fDM = G4DigiManager::GetDMpointer();
GammaRayTelDigitizer * myDM = new GammaRayTelDigitizer( "TrackerDigitizer" );
fDM->AddNewModule(myDM);
}
#endif
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -90,22 +92,19 @@ void GammaRayTelEventAction::BeginOfEventAction(const G4Event* evt)
G4int evtNb = evt->GetEventID();
G4cout << "Event: " << evtNb << G4endl;
G4SDManager * SDman = G4SDManager::GetSDMpointer();
if (trackerCollID==-1)
{
trackerCollID = SDman->GetCollectionID("TrackerCollection");
}
if(anticoincidenceCollID==-1)
{
anticoincidenceCollID =
SDman->GetCollectionID("AnticoincidenceCollection");
}
if(calorimeterCollID==-1)
{
calorimeterCollID =
SDman->GetCollectionID("CalorimeterCollection");
}
if (trackerCollID==-1) {
trackerCollID = SDman->GetCollectionID("TrackerCollection");
}
if(anticoincidenceCollID==-1) {
anticoincidenceCollID =
SDman->GetCollectionID("AnticoincidenceCollection");
}
if(calorimeterCollID==-1) {
calorimeterCollID =
SDman->GetCollectionID("CalorimeterCollection");
}
}
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -125,6 +124,8 @@ void GammaRayTelEventAction::EndOfEventAction(const G4Event* evt)
GammaRayTelAnticoincidenceHitsCollection* AHC = 0;
G4DigiManager * fDM = G4DigiManager::GetDMpointer();
if (HCE)
{
THC = (GammaRayTelTrackerHitsCollection*)(HCE->GetHC(trackerCollID));
@@ -142,8 +143,8 @@ void GammaRayTelEventAction::EndOfEventAction(const G4Event* evt)
G4int NStrip, NPlane, IsX;
// This is a cycle on all the tracker hits of this event
for (int i=0;i<n_hit;i++)
for (int i=0;i<n_hit;i++)
{
// Here we put the hit data in a an ASCII file for
// later analysis
@@ -158,44 +159,83 @@ void GammaRayTelEventAction::EndOfEventAction(const G4Event* evt)
(*THC)[i]->GetPos().x()/mm <<" "<<
(*THC)[i]->GetPos().y()/mm <<" "<<
(*THC)[i]->GetPos().z()/mm <<" "<<
G4endl;
G4endl;
#ifdef G4ANALYSIS_USE
// Here we fill the histograms of the Analysis manager
if(IsX)
{
if (analysisManager->GetHisto2DMode()=="position")
analysisManager->InsertPositionXZ((*CHC)[i]->GetPos().x()/mm,(*CHC)[i]->GetPos().z()/mm);
else
analysisManager->InsertPositionXZ(NStrip, NPlane);
if (NPlane == 0) analysisManager->InsertEnergy(ESil/keV);
analysisManager->InsertHits(NPlane);
}
else
if (analysisManager->GetHisto2DMode()=="position")
analysisManager->InsertPositionYZ((*CHC)[i]->GetPos().y()/mm,(*CHC)[i]->GetPos().z()/mm);
else
analysisManager->InsertPositionYZ(NStrip, NPlane);
#endif
}
// Here we fill the histograms of the Analysis manager
GammaRayTelAnalysis* analysis = GammaRayTelAnalysis::getInstance();
if(IsX)
{
if (analysis->GetHisto2DMode()=="position")
analysis->InsertPositionXZ((*THC)[i]->GetPos().x()/mm,(*THC)[i]->GetPos().z()/mm);
else
analysis->InsertPositionXZ(NStrip, NPlane);
if (NPlane == 0) analysis->InsertEnergy(ESil/keV);
analysis->InsertHits(NPlane);
}
else
{
if (analysis->GetHisto2DMode()=="position")
analysis->InsertPositionYZ((*THC)[i]->GetPos().y()/mm,(*THC)[i]->GetPos().z()/mm);
else
analysis->InsertPositionYZ(NStrip, NPlane);
if (NPlane == 0) analysis->InsertEnergy(ESil/keV);
analysis->InsertHits(NPlane);
}
#ifdef G4ANALYSIS_USE_NTUPLE
analysis->setNtuple( ESil/keV, NPlane, (*THC)[i]->GetPos().x()/mm,
(*THC)[i]->GetPos().y()/mm,
(*THC)[i]->GetPos().z()/mm);
#endif
#endif
}
// Here we call the analysis manager function for visualization
#ifdef G4ANALYSIS_USE
analysisManager->EndOfEvent(n_hit);
GammaRayTelAnalysis* analysis = GammaRayTelAnalysis::getInstance();
analysis->EndOfEvent(n_hit);
#endif
}
GammaRayTelDigitizer * myDM =
(GammaRayTelDigitizer*)fDM->FindDigitizerModule( "TrackerDigitizer" );
myDM->Digitize();
G4int myDigiCollID = fDM->GetDigiCollectionID("DigitsCollection");
// G4cout << "digi collecion" << myDigiCollID << G4endl;
if(G4VVisManager::GetConcreteInstance())
{
for(G4int i=0; i<n_trajectories; i++)
{ G4Trajectory* trj = (G4Trajectory *)((*(evt->GetTrajectoryContainer()))[i]);
if (drawFlag == "all") trj->DrawTrajectory(50);
else if ((drawFlag == "charged")&&(trj->GetCharge() != 0.))
trj->DrawTrajectory(50);
}
GammaRayTelDigitsCollection * DC = (GammaRayTelDigitsCollection*)fDM->GetDigiCollection( myDigiCollID );
if(DC) {
// G4cout << "Total Digits " << DC->entries() << G4endl;
G4int n_digi = DC->entries();
G4int NStrip, NPlane, IsX;
for (G4int i=0;i<n_digi;i++) {
// Here we put the digi data in a an ASCII file for
// later analysis
NStrip = (*DC)[i]->GetStripNumber();
NPlane = (*DC)[i]->GetPlaneNumber();
IsX = (*DC)[i]->GetPlaneType();
outFile << G4std::setw(7) << event_id << " " << NStrip <<
" " << NPlane << " " << IsX << " " << G4endl;
}
}
if(G4VVisManager::GetConcreteInstance()) {
for(G4int i=0; i<n_trajectories; i++) {
G4Trajectory* trj = (G4Trajectory *)((*(evt->GetTrajectoryContainer()))[i]);
if (drawFlag == "all") trj->DrawTrajectory(50);
else if ((drawFlag == "charged")&&(trj->GetCharge() != 0.))
trj->DrawTrajectory(50);
}
}
}
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelPhysicsList.cc,v 1.2.4.2 2001/06/28 20:18:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelPhysicsList.cc,v 1.3 2001/07/11 09:56:58 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class implementation file
// CERN Geneva Switzerland
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelPrimaryGeneratorAction.cc,v 1.3.4.2 2001/06/28 20:18:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelPrimaryGeneratorAction.cc,v 1.6 2001/11/29 11:19:18 griccard Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class implementation file
// CERN Geneva Switzerland
@@ -36,6 +36,7 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
#include "G4RunManager.hh"
#include "GammaRayTelPrimaryGeneratorAction.hh"
#include "GammaRayTelDetectorConstruction.hh"
@@ -49,11 +50,13 @@
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
GammaRayTelPrimaryGeneratorAction::GammaRayTelPrimaryGeneratorAction
(GammaRayTelDetectorConstruction* GammaRayTelDC)
:GammaRayTelDetector(GammaRayTelDC),rndmFlag("off"),
nSourceType(0),nSpectrumType(0)
GammaRayTelPrimaryGeneratorAction::GammaRayTelPrimaryGeneratorAction()
:rndmFlag("off"),nSourceType(0),nSpectrumType(0)
{
G4RunManager* runManager = G4RunManager::GetRunManager();
GammaRayTelDetector =
(GammaRayTelDetectorConstruction*)(runManager->GetUserDetectorConstruction());
G4int n_particle = 1;
particleGun = new G4ParticleGun(n_particle);
@@ -98,7 +101,8 @@ void GammaRayTelPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
dir0 = G4ThreeVector(0.,0.,-1.);
G4double theta, phi, y, f;
G4double theta0,phi0;
G4double theta0=0.;
G4double phi0=0.;
switch(nSourceType) {
case 0:
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelPrimaryGeneratorMessenger.cc,v 1.2.4.2 2001/06/28 20:18:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelPrimaryGeneratorMessenger.cc,v 1.3 2001/07/11 09:56:58 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class implementation file
// CERN Geneva Switzerland
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelRunAction.cc,v 1.3.4.2 2001/06/28 20:18:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelRunAction.cc,v 1.7 2001/12/04 11:40:28 flongo Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class implementation file
// CERN Geneva Switzerland
@@ -30,6 +30,8 @@
//
// ------------ GammaRayTelRunAction ------
// by R.Giannitrapani, F.Longo & G.Santin (13 nov 2000)
// 18.11.2001 G.Santin
// - Modified the analysis management according to the new design
//
// ************************************************************
@@ -39,24 +41,21 @@
#include "GammaRayTelRunAction.hh"
#ifdef G4ANALYSIS_USE
#include "GammaRayTelAnalysis.hh"
#endif
#include <stdlib.h>
#include "G4Run.hh"
#include "G4UImanager.hh"
#include "G4VVisManager.hh"
#include "G4ios.hh"
extern ofstream outFile;
extern G4std::ofstream outFile;
#ifdef G4ANALYSIS_USE
GammaRayTelRunAction::GammaRayTelRunAction(GammaRayTelAnalysisManager* aMgr)
:analysisManager(aMgr)
{
}
#else
GammaRayTelRunAction::GammaRayTelRunAction()
{
}
#endif
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -84,7 +83,8 @@ void GammaRayTelRunAction::BeginOfRunAction(const G4Run* aRun)
// If analysis is used reset the histograms
#ifdef G4ANALYSIS_USE
analysisManager->BeginOfRun();
GammaRayTelAnalysis* analysis = GammaRayTelAnalysis::getInstance();
analysis->BeginOfRun(aRun->GetRunID());
#endif
}
@@ -102,7 +102,8 @@ void GammaRayTelRunAction::EndOfRunAction(const G4Run* aRun)
// If analysis is used, print out the histograms
#ifdef G4ANALYSIS_USE
analysisManager->EndOfRun(aRun->GetRunID());
GammaRayTelAnalysis* analysis = GammaRayTelAnalysis::getInstance();
analysis->EndOfRun(aRun->GetRunID());
#endif
}
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelTrackerHit.cc,v 1.1.2.2 2001/06/28 20:18:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelTrackerHit.cc,v 1.2 2001/07/11 09:56:58 gunter Exp $
// GEANT4 tag $Name: geant4-04-00 $
// ------------------------------------------------------------
// GEANT 4 class implementation file
// CERN Geneva Switzerland
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: GammaRayTelTrackerROGeometry.cc,v 1.1.2.2 2001/06/28 20:18:42 gunter Exp $
// GEANT4 tag $Name: $
// $Id: GammaRayTelTrackerROGeometry.cc,v 1.5 2001/11/29 11:19:18 griccard Exp $
// GEANT4 tag $Name: geant4-04-00 $
//
//
// ------------------------------------------------------------
@@ -34,7 +34,7 @@
// by F.Longo, R.Giannitrapani & G.Santin (13 nov 2000)
//
// ************************************************************
#include "G4RunManager.hh"
#include "GammaRayTelTrackerROGeometry.hh"
#include "GammaRayTelDummySD.hh"
#include "GammaRayTelDetectorConstruction.hh"
@@ -53,14 +53,12 @@ GammaRayTelTrackerROGeometry::GammaRayTelTrackerROGeometry()
: G4VReadOutGeometry()
{
}
GammaRayTelTrackerROGeometry::GammaRayTelTrackerROGeometry(G4String aString,GammaRayTelDetectorConstruction* GammaRayTelDC)
:GammaRayTelDetector(GammaRayTelDC), G4VReadOutGeometry(aString)
{
}
GammaRayTelTrackerROGeometry::GammaRayTelTrackerROGeometry(G4String aString)
: G4VReadOutGeometry(aString)
:G4VReadOutGeometry(aString)
{
G4RunManager* runManager = G4RunManager::GetRunManager();
GammaRayTelDetector =
(GammaRayTelDetectorConstruction*)(runManager->GetUserDetectorConstruction());
}
GammaRayTelTrackerROGeometry::~GammaRayTelTrackerROGeometry()
@@ -326,8 +324,7 @@ G4VPhysicalVolume* GammaRayTelTrackerROGeometry::Build()
// as a flag only to check for sensitivity.
// (Could we make it by a simple cast of a non-NULL value ?)
GammaRayTelDummySD * dummySensi = new GammaRayTelDummySD;
GammaRayTelDummySD * dummySensi = new GammaRayTelDummySD("Orpo");
logicTKRStripX->SetSensitiveDetector(dummySensi);
logicTKRStripY->SetSensitiveDetector(dummySensi);

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