Import Geant4 10.0.0 source tree
This commit is contained in:
+115
-31
@@ -1,4 +1,4 @@
|
||||
//$Id$
|
||||
//$Id: .README 78001 2013-12-02 08:24:53Z gcosmo $
|
||||
|
||||
///\file "B4/.README"
|
||||
///\brief Example B4 README page
|
||||
@@ -12,6 +12,10 @@
|
||||
|
||||
\section B4_s1 GEOMETRY DEFINITION
|
||||
|
||||
The geometry is constructed in B4DetectorConstruction class
|
||||
(see also
|
||||
\link B4cDetectorConstruction B4c \endlink,
|
||||
\link B4dDetectorConstruction B4d \endlink variants).
|
||||
The calorimeter is a box made of a given number of layers. A layer
|
||||
consists of an absorber plate and of a detection gap. The layer is
|
||||
replicated.
|
||||
@@ -22,14 +26,18 @@
|
||||
- the number of layers, and
|
||||
- the transverse size of the calorimeter (the entrance face is a square).
|
||||
|
||||
In addition a transverse uniform magnetic field can be applied and set
|
||||
via the interactive command defined using the G4GenericMessenger class.
|
||||
In addition, a global, uniform, and transverse magnetic field can be
|
||||
applied using G4GlobalMagFieldMessenger, instantiated in
|
||||
B4DetectorConstruction::ConstructSDandField()
|
||||
(see also
|
||||
\link B4cDetectorConstruction::ConstructSDandField() B4c \endlink,
|
||||
\link B4dDetectorConstruction::ConstructSDandField() B4d \endlink variants)
|
||||
with a non zero field value, or via interactive commands.
|
||||
For example:
|
||||
|
||||
|
||||
\verbatim
|
||||
/B4/det/setMagField 0.2 tesla
|
||||
/globalField/setValue 0.2 0 0 tesla
|
||||
\endverbatim
|
||||
|
||||
|
||||
<pre>
|
||||
|<----layer 0---------->|<----layer 1---------->|<----layer 2---------->|
|
||||
@@ -66,7 +74,34 @@
|
||||
\endverbatim
|
||||
allows to activate/inactivate the processes one by one.
|
||||
|
||||
\section B4_s3 PRIMARY GENERATOR
|
||||
\section B4_s3 ACTION INITALIZATION
|
||||
|
||||
A newly introduced class, B4aActionInitialization, (see also
|
||||
\link B4bActionInitialization B4b \endlink,
|
||||
\link B4cActionInitialization B4c \endlink,
|
||||
\link B4dActionInitialization B4d \endlink variants),
|
||||
instantiates and registers to Geant4 kernel all user action classes;
|
||||
|
||||
While in sequential mode the action classes are instatiated just once,
|
||||
via invoking the method:
|
||||
B4aActionInitialization::Build()
|
||||
(see also
|
||||
\link B4bActionInitialization::Build() B4b \endlink,
|
||||
\link B4cActionInitialization::Build() B4c \endlink,
|
||||
\link B4dActionInitialization::Build() B4d \endlink variants),
|
||||
in multi-threading mode the same method is invoked for each thread worker
|
||||
and so all user action classes are defined thread-local.
|
||||
|
||||
A run action class is instantiated both thread-local
|
||||
and global that's why its instance is created also in the method
|
||||
B4aActionInitialization::BuildForMaster()
|
||||
(see also
|
||||
\link B4bActionInitialization::BuildForMaster() B4b \endlink,
|
||||
\link B4cActionInitialization::BuildForMaster() B4c \endlink,
|
||||
\link B4dActionInitialization::BuildForMaster() B4d \endlink variants),
|
||||
which is invoked only in multi-threading mode.
|
||||
|
||||
\section B4_s4 PRIMARY GENERATOR
|
||||
|
||||
The primary beam consists of a single particle which hits the
|
||||
calorimeter perpendicular to the input face. The type of the particle
|
||||
@@ -74,19 +109,17 @@
|
||||
be changed via the G4 built-in commands of the G4ParticleGun class (see
|
||||
the macros provided with this example).
|
||||
|
||||
\section B4_s4 RUNS and EVENTS
|
||||
\section B4_s5 RUNS and EVENTS
|
||||
|
||||
A run is a set of events.
|
||||
|
||||
The user can choose the frequency of printing from B4aEventAction (or event
|
||||
action classes in other options) via the interactive command defined
|
||||
using the G4GenericMessenger class, for example:
|
||||
|
||||
The user can choose the frequency of printing via the Geant4 interactive
|
||||
command, for example:
|
||||
\verbatim
|
||||
/B4/event/setPrintModulo 100
|
||||
/run/printProgress 100
|
||||
\endverbatim
|
||||
|
||||
\section B4_s5- DETECTOR RESPONSE
|
||||
\section B4_s6- DETECTOR RESPONSE
|
||||
|
||||
The energy deposit and track lengths of the charged particles are recorded on
|
||||
an event by event basis in the Absober and Gap layers.
|
||||
@@ -94,7 +127,7 @@
|
||||
In order to demonstrate several possible ways of data scoring,
|
||||
the example is provided in four variants:
|
||||
|
||||
\subsection s5a Variant a: User Actions
|
||||
\subsection s6a Variant a: User Actions
|
||||
|
||||
These 4 quantities are data members of the B4aEventAction class.
|
||||
They are collected step by step in
|
||||
@@ -105,24 +138,24 @@
|
||||
filled in H1D histograms and ntuple to accumulate statistic and compute
|
||||
dispersion.
|
||||
|
||||
\subsection s5b Variant b: User data object
|
||||
\subsection s6b Variant b: User data object
|
||||
|
||||
In order to avoid dependencies between action classes, a user object
|
||||
B4bRunData is defined with data members needed to the accounted
|
||||
information.
|
||||
B4bRunData, derived from G4Run, is defined with data members needed
|
||||
for the accounted information.
|
||||
In order to reduce the number of data members a 2-dimensions array
|
||||
is introduced for each quantity.
|
||||
Then the quantities are collected step by step in user action classes:
|
||||
B4bSteppingAction::UserSteppingAction() and
|
||||
B4bEventAction::EndOfEventAction() in a similar way as in variant a.
|
||||
|
||||
\subsection s5c Variant c: Hits and Sensitive detectors
|
||||
\subsection s6c Variant c: Hits and Sensitive detectors
|
||||
|
||||
In this option, the physics quantities are accounted using the hits
|
||||
and sensitive detectors framework defined in the Geant4 kernel.
|
||||
The physics quantities are stored in B4cCalorHit via two B4cCalorimeterSD
|
||||
objects, one associated with the Absorber volume and another one with Gap
|
||||
in B4cDetectorConstruction.
|
||||
in B4cDetectorConstruction::ConstructSDandField().
|
||||
|
||||
In contrary to the B2 example (Tracker) where a new hit is created
|
||||
with each track passing the sensitive volume (in the calorimeter), only one
|
||||
@@ -131,7 +164,7 @@
|
||||
the quantities per each layer are also available in addition to the total
|
||||
quantities.
|
||||
|
||||
\subsection s5d Variant d: Scorer
|
||||
\subsection s6d Variant d: Scorer
|
||||
|
||||
In this option, the Geant4 scorers which are defined on the top of hits
|
||||
and sensitive detectors Geant4 framework are used.
|
||||
@@ -139,30 +172,34 @@
|
||||
detector classes but rather uses the classes already defined
|
||||
in Geant4. In this example, the G4MultiFunctionalDetector with
|
||||
G4PSEnergyDeposit and G4PSTrackLength primitive scores are used (see
|
||||
B4dDetectorConstruction class).
|
||||
B4dDetectorConstruction::ConstructSDandField()).
|
||||
|
||||
Also with this approach, the quantities per each layer are available
|
||||
in addition to the total quantities.
|
||||
|
||||
\section B4_s6 HISTOGRAMS
|
||||
\section B4_s7 HISTOGRAMS
|
||||
|
||||
The analysis tools are used to accumulate statistics and compute the dispersion
|
||||
of the energy deposit and track lengths of the charged particles.
|
||||
H1D histograms are created in B4RunAction::BeginOfRunAction() for the
|
||||
H1D histograms are created in B4RunAction::B4RunAction() (see also
|
||||
\link B4bRunAction::B4bRunAction() B4b \endlink variant) for the
|
||||
following quantities:
|
||||
- Energy deposit in absorber
|
||||
- Energy deposit in gap
|
||||
- Track length in absorber
|
||||
- Track length in gap
|
||||
The same values are also saved in an ntuple.
|
||||
|
||||
The histograms and ntuple are saved in the output file in a format
|
||||
according to a technology selected in B4Analysis.hh.
|
||||
The same values are also saved in an ntuple. The histograms and ntuple are saved
|
||||
in the output file in a format according to a technology selected in B4Analysis.hh.
|
||||
|
||||
The accumulated statistic and computed dispersion is printed at the end of
|
||||
run, in B4RunAction::EndOfRunAction().
|
||||
run, in B4RunAction::EndOfRunAction() ((see also
|
||||
\link B4bRunAction::EndOfRunAction() B4b \endlink variant).
|
||||
When running in multi-threading mode, the histograms accumulated on threads are
|
||||
automatically merged in a single output file, while the ntuple is written
|
||||
in files per thread.
|
||||
|
||||
\section B4_s7 VISUALIZATION TUTORIAL
|
||||
\section B4_s8 VISUALIZATION TUTORIAL
|
||||
|
||||
Additional visualization tutorial macros are available in the visTutor
|
||||
subdirectory. They can be tried as:
|
||||
@@ -175,7 +212,49 @@ Idle > /control/execute visTutor/exN03VisX.mac
|
||||
For details, see comment lines described in the macro files.
|
||||
These macros are designed to help your understanding of the User's Guide.
|
||||
|
||||
<hr>
|
||||
\section B4_s9 HOW TO RUN
|
||||
|
||||
This example handles the program arguments in a new way.
|
||||
It can be run with the following optional arguments:
|
||||
\verbatim
|
||||
% exampleB4a [-m macro ] [-u UIsession] [-t nThreads]
|
||||
\endverbatim
|
||||
|
||||
The -t option is available only in multi-threading mode
|
||||
and it allows the user to override the Geant4 default number of
|
||||
threads. The number of threads can be also set via G4FORCENUMBEROFTHREADS
|
||||
environment variable which has the top priority.
|
||||
|
||||
- Execute exampleB4a in the 'interactive mode' with visualization
|
||||
\verbatim
|
||||
% exampleB4a
|
||||
and type in the commands from run1.mac line by line:
|
||||
Idle> /tracking/verbose 1
|
||||
Idle> /run/beamOn 1
|
||||
Idle> ...
|
||||
Idle> exit
|
||||
\endverbatim
|
||||
or
|
||||
\verbatim
|
||||
Idle> /control/execute run1.mac
|
||||
....
|
||||
Idle> exit
|
||||
\endverbatim
|
||||
|
||||
- Execute exampleB4a in the 'batch' mode from macro files
|
||||
(without visualization)
|
||||
\verbatim
|
||||
% exampleB4a -m run2.mac
|
||||
% exampleB4a -m exampleB4.in > exampleB4.out
|
||||
\endverbatim
|
||||
|
||||
- Execute exampleB4a in the 'interactive mode' with a selected UI session,
|
||||
e.g. tcsh
|
||||
\verbatim
|
||||
% exampleB4a -u tcsh
|
||||
\endverbatim
|
||||
|
||||
]<hr>
|
||||
|
||||
The following paragraphs are common to all basic examples
|
||||
|
||||
@@ -241,8 +320,13 @@ The following paragraphs are common to all basic examples
|
||||
This example handles the program arguments in a new way.
|
||||
It can be run with the following optional arguments:
|
||||
\verbatim
|
||||
% exampleB4a [-m macro ] [-u UIsession]
|
||||
% exampleB4a [-m macro ] [-u UIsession] [-t nThreads]
|
||||
\endverbatim
|
||||
|
||||
The -t option is available only in multi-threading mode
|
||||
and it allows the user to override the Geant4 default number of
|
||||
threads. The number of threads can be also set via G4FORCENUMBEROFTHREADS
|
||||
environment variable which has the top priority.
|
||||
|
||||
- Execute exampleB4a in the 'interactive mode' with visualization
|
||||
\verbatim
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# $Id: CMakeLists.txt 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup the project
|
||||
#
|
||||
|
||||
@@ -23,19 +23,22 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: exampleB4a.cc 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file exampleB4a.cc
|
||||
/// \brief Main program of the B4a example
|
||||
|
||||
#include "B4DetectorConstruction.hh"
|
||||
#include "B4PrimaryGeneratorAction.hh"
|
||||
#include "B4RunAction.hh"
|
||||
#include "B4aEventAction.hh"
|
||||
#include "B4aSteppingAction.hh"
|
||||
#include "B4aActionInitialization.hh"
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
#include "G4MTRunManager.hh"
|
||||
#else
|
||||
#include "G4RunManager.hh"
|
||||
#endif
|
||||
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4UIcommand.hh"
|
||||
#include "FTFP_BERT.hh"
|
||||
|
||||
#include "Randomize.hh"
|
||||
@@ -53,7 +56,9 @@
|
||||
namespace {
|
||||
void PrintUsage() {
|
||||
G4cerr << " Usage: " << G4endl;
|
||||
G4cerr << " exampleB4a [-m macro ] [-u UIsession]" << G4endl;
|
||||
G4cerr << " exampleB4a [-m macro ] [-u UIsession] [-t nThreads]" << G4endl;
|
||||
G4cerr << " note: -t option is available only for multi-threaded mode."
|
||||
<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,16 +68,24 @@ int main(int argc,char** argv)
|
||||
{
|
||||
// Evaluate arguments
|
||||
//
|
||||
if ( argc > 5 ) {
|
||||
if ( argc > 7 ) {
|
||||
PrintUsage();
|
||||
return 1;
|
||||
}
|
||||
|
||||
G4String macro;
|
||||
G4String session;
|
||||
#ifdef G4MULTITHREADED
|
||||
G4int nThreads = 0;
|
||||
#endif
|
||||
for ( G4int i=1; i<argc; i=i+2 ) {
|
||||
if ( G4String(argv[i]) == "-m" ) macro = argv[i+1];
|
||||
else if ( G4String(argv[i]) == "-u" ) session = argv[i+1];
|
||||
#ifdef G4MULTITHREADED
|
||||
else if ( G4String(argv[i]) == "-t" ) {
|
||||
nThreads = G4UIcommand::ConvertToInt(argv[i+1]);
|
||||
}
|
||||
#endif
|
||||
else {
|
||||
PrintUsage();
|
||||
return 1;
|
||||
@@ -81,11 +94,18 @@ int main(int argc,char** argv)
|
||||
|
||||
// Choose the Random engine
|
||||
//
|
||||
CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine);
|
||||
G4Random::setTheEngine(new CLHEP::RanecuEngine);
|
||||
|
||||
// Construct the default run manager
|
||||
//
|
||||
#ifdef G4MULTITHREADED
|
||||
G4MTRunManager * runManager = new G4MTRunManager;
|
||||
if ( nThreads > 0 ) {
|
||||
runManager->SetNumberOfThreads(nThreads);
|
||||
}
|
||||
#else
|
||||
G4RunManager * runManager = new G4RunManager;
|
||||
#endif
|
||||
|
||||
// Set mandatory initialization classes
|
||||
//
|
||||
@@ -95,19 +115,10 @@ int main(int argc,char** argv)
|
||||
G4VModularPhysicsList* physicsList = new FTFP_BERT;
|
||||
runManager->SetUserInitialization(physicsList);
|
||||
|
||||
// Set user action classes
|
||||
//
|
||||
runManager->SetUserAction(new B4PrimaryGeneratorAction);
|
||||
//
|
||||
runManager->SetUserAction(new B4RunAction());
|
||||
//
|
||||
B4aEventAction* eventAction = new B4aEventAction();
|
||||
runManager->SetUserAction(eventAction);
|
||||
//
|
||||
B4aSteppingAction* steppingAction
|
||||
= new B4aSteppingAction(detConstruction, eventAction);
|
||||
runManager->SetUserAction(steppingAction);
|
||||
|
||||
B4aActionInitialization* actionInitialization
|
||||
= new B4aActionInitialization(detConstruction);
|
||||
runManager->SetUserInitialization(actionInitialization);
|
||||
|
||||
// Initialize G4 kernel
|
||||
//
|
||||
runManager->Initialize();
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
############################################
|
||||
|
||||
*************************************************************
|
||||
Geant4 version Name: geant4-09-06-ref-00 (30-November-2012)
|
||||
Geant4 version Name: geant4-10-00-ref-00 (6-December-2013)
|
||||
Copyright : Geant4 Collaboration
|
||||
Reference : NIM A 506 (2003), 250-303
|
||||
WWW : http://cern.ch/geant4
|
||||
@@ -12,10 +12,13 @@
|
||||
|
||||
<<< Geant4 Physics List simulation engine: FTFP_BERT 2.0
|
||||
|
||||
Using Root
|
||||
|
||||
***** Table : Nb of materials = 3 *****
|
||||
|
||||
Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.261 cm Imean: 823.000 eV
|
||||
Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.247 cm
|
||||
Imean: 823.000 eV
|
||||
|
||||
---> Element: Pb (Pb) Z = 82.0 N = 207.2 A = 207.22 g/mole
|
||||
---> Isotope: Pb204 Z = 82 N = 204 A = 203.97 g/mole abundance: 1.40 %
|
||||
---> Isotope: Pb206 Z = 82 N = 206 A = 205.97 g/mole abundance: 24.10 %
|
||||
@@ -24,7 +27,9 @@
|
||||
ElmMassFraction: 100.00 % ElmAbundance 100.00 %
|
||||
|
||||
|
||||
Material: liquidArgon density: 1.390 g/cm3 RadL: 14.065 cm Nucl.Int.Length: 86.006 cm Imean: 188.000 eV
|
||||
Material: liquidArgon density: 1.390 g/cm3 RadL: 14.065 cm Nucl.Int.Length: 86.078 cm
|
||||
Imean: 188.000 eV
|
||||
|
||||
---> Element: liquidArgon ( ) Z = 18.0 N = 40.0 A = 39.95 g/mole
|
||||
---> Isotope: 36 Z = 18 N = 36 A = 35.97 g/mole abundance: 0.34 %
|
||||
---> Isotope: 38 Z = 18 N = 38 A = 37.96 g/mole abundance: 0.06 %
|
||||
@@ -32,7 +37,9 @@
|
||||
ElmMassFraction: 100.00 % ElmAbundance 100.00 %
|
||||
|
||||
|
||||
Material: Galactic density: 0.000 kg/m3 RadL: 204727512.315 pc Nucl.Int.Length: 114561548.020 pc Imean: 19.200 eV temperature: 2.73 K pressure: 0.00 atm
|
||||
Material: Galactic density: 0.000 kg/m3 RadL: 204727512.315 pc Nucl.Int.Length: 113804112.837 pc
|
||||
Imean: 19.200 eV temperature: 2.73 K pressure: 0.00 atm
|
||||
|
||||
---> Element: Galactic ( ) Z = 1.0 N = 1.0 A = 1.01 g/mole
|
||||
---> Isotope: 1 Z = 1 N = 1 A = 1.01 g/mole abundance: 99.99 %
|
||||
---> Isotope: 2 Z = 1 N = 2 A = 2.01 g/mole abundance: 0.01 %
|
||||
@@ -58,12 +65,10 @@ Current available graphics systems are:
|
||||
DAWNFILE (DAWNFILE)
|
||||
G4HepRep (HepRepXML)
|
||||
G4HepRepFile (HepRepFile)
|
||||
OpenGLImmediateQt (OGLI, OGLIQt)
|
||||
OpenGLImmediateX (OGLIX)
|
||||
OpenGLImmediateXm (OGLIXm, OGLI_FALLBACK, OGLIQt_FALLBACK)
|
||||
OpenGLStoredQt (OGL, OGLS, OGLSQt)
|
||||
OpenGLImmediateXm (OGLI, OGLIXm)
|
||||
OpenGLStoredX (OGLSX)
|
||||
OpenGLStoredXm (OGLSXm, OGL_FALLBACK, OGLS_FALLBACK, OGLSQt_FALLBACK)
|
||||
OpenGLStoredXm (OGL, OGLS, OGLSXm)
|
||||
RayTracer (RayTracer)
|
||||
RayTracerX (RayTracerX)
|
||||
VRML1FILE (VRML1FILE)
|
||||
@@ -116,7 +121,7 @@ conv: for gamma SubType= 14
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e- SubType= 2
|
||||
@@ -143,7 +148,7 @@ CoulombScat: for e- SubType= 1
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e+ SubType= 2
|
||||
@@ -193,13 +198,14 @@ hBrems: for proton SubType= 3
|
||||
hPairProd: for proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for GenericIon SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -213,7 +219,7 @@ ionIoni: for GenericIon SubType= 2
|
||||
msc: for alpha SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for alpha SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -245,6 +251,7 @@ hBrems: for anti_proton SubType= 3
|
||||
hPairProd: for anti_proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -270,6 +277,7 @@ hBrems: for kaon+ SubType= 3
|
||||
hPairProd: for kaon+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -295,6 +303,7 @@ hBrems: for kaon- SubType= 3
|
||||
hPairProd: for kaon- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -321,6 +330,7 @@ muBrems: for mu+ SubType= 3
|
||||
muPairProd: for mu+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -353,6 +363,7 @@ muBrems: for mu- SubType= 3
|
||||
muPairProd: for mu- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -384,6 +395,7 @@ hBrems: for pi+ SubType= 3
|
||||
hPairProd: for pi+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -409,215 +421,221 @@ hBrems: for pi- SubType= 3
|
||||
hPairProd: for pi- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
============================================================================================
|
||||
HADRONIC PROCESSES SUMMARY (verbose level 1)
|
||||
|
||||
Hadronic Processes for <GenericIon>
|
||||
-----------------------------------
|
||||
ionInelastic Models: Binary Light Ion Cascade: Emin(GeV)= 0 Emax(GeV)= 4
|
||||
FTFP: Emin(GeV)= 2 Emax(GeV)= 100000
|
||||
====================================================================
|
||||
HADRONIC PROCESSES SUMMARY (verbose level 1)
|
||||
|
||||
ionInelastic Crs sctns: Glauber-Gribov nucleus nucleus: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for GenericIon
|
||||
|
||||
Process: ionInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <anti_neutron>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for anti_neutron
|
||||
|
||||
hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
AntiNeutronInelastic Models: FTFP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: anti_neutronInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
AntiNeutronInelastic Crs sctns: AntiAGlauber: Emin(GeV)= 0 Emax(GeV)= 1.79769e+305
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for anti_proton
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <anti_proton>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 0.1
|
||||
AntiAElastic: Emin(GeV)= 0.1 Emax(GeV)= 100000
|
||||
Process: anti_protonInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
hadElastic Crs sctns: AntiAGlauber: Emin(GeV)= 0 Emax(GeV)= 1.79769e+305
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
AntiProtonInelastic Models: FTFP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for e+
|
||||
|
||||
AntiProtonInelastic Crs sctns: AntiAGlauber: Emin(GeV)= 0 Emax(GeV)= 1.79769e+305
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: positronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
hFritiofCaptureAtRest
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for e-
|
||||
|
||||
Hadronic Processes for <e+>
|
||||
-----------------------------------
|
||||
PositronNuclear Models: G4ElectroVDNuclearModel: Emin(GeV)= 0 Emax(GeV)= 1e+06
|
||||
Process: electronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
PositronNuclear Crs sctns: ElectroNuclearXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for gamma
|
||||
|
||||
Process: photonNuclear
|
||||
Model: BertiniCascade: 0 eV ---> 3.5 GeV
|
||||
Model: TheoFSGenerator: 3 GeV ---> 100 TeV
|
||||
Cr_sctns: PhotoNuclearXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <e->
|
||||
-----------------------------------
|
||||
ElectroNuclear Models: G4ElectroVDNuclearModel: Emin(GeV)= 0 Emax(GeV)= 1e+06
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for kaon+
|
||||
|
||||
ElectroNuclear Crs sctns: ElectroNuclearXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: kaon+Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: ChipsKaonPlusInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <gamma>
|
||||
-----------------------------------
|
||||
PhotonInelastic Models: BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 3.5
|
||||
TheoFSGenerator: Emin(GeV)= 3 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for kaon-
|
||||
|
||||
PhotonInelastic Crs sctns: PhotoNuclearXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: kaon-Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: ChipsKaonMinusInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <kaon+>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hBertiniCaptureAtRest
|
||||
|
||||
hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for lambda
|
||||
|
||||
KaonPlusInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
KaonPlusInelastic Crs sctns: ChipsKaonPlusInelasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: lambdaInelastic
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Cr_sctns: ChipsHyperonInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for mu-
|
||||
|
||||
Hadronic Processes for <kaon->
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: muMinusCaptureAtRest
|
||||
|
||||
hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for neutron
|
||||
|
||||
KaonMinusInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: ChipsNeutronElasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
KaonMinusInelastic Crs sctns: ChipsKaonMinusInelasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: neutronInelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
hBertiniCaptureAtRest
|
||||
Process: nCapture
|
||||
Model: nRadCapture: 0 eV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaCaptureXS: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <lambda>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for pi+
|
||||
|
||||
hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 1.0001 GeV
|
||||
Model: hElasticGlauber: 1 GeV ---> 100 TeV
|
||||
Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
LambdaInelastic Models: BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 6
|
||||
FTFP: Emin(GeV)= 2 Emax(GeV)= 100000
|
||||
|
||||
LambdaInelastic Crs sctns: ChipsHyperonInelasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
|
||||
Hadronic Processes for <mu->
|
||||
muMinusCaptureAtRest
|
||||
|
||||
Hadronic Processes for <neutron>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticCHIPS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
hadElastic Crs sctns: ChipsNeutronElasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
NeutronInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
|
||||
NeutronInelastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
nCapture Models: G4LCapture: Emin(GeV)= 0 Emax(GeV)= 20000
|
||||
|
||||
nCapture Crs sctns: GheishaCaptureXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
nFission Models: G4LFission: Emin(GeV)= 0 Emax(GeV)= 20000
|
||||
|
||||
nFission Crs sctns: GheishaFissionXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
|
||||
Hadronic Processes for <pi+>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 1
|
||||
hElasticGlauber: Emin(GeV)= 1 Emax(GeV)= 100000
|
||||
|
||||
hadElastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
PionPlusInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
|
||||
PionPlusInelastic Crs sctns: G4CrossSectionPairGG: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: pi+Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: G4CrossSectionPairGG: 0 eV ---> 100 TeV
|
||||
G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections
|
||||
below 91 GeV, Glauber-Gribov above
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for pi-
|
||||
|
||||
Hadronic Processes for <pi->
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 1
|
||||
hElasticGlauber: Emin(GeV)= 1 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 1.0001 GeV
|
||||
Model: hElasticGlauber: 1 GeV ---> 100 TeV
|
||||
Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
hadElastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
PionMinusInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
|
||||
PionMinusInelastic Crs sctns: G4CrossSectionPairGG: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: pi-Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: G4CrossSectionPairGG: 0 eV ---> 100 TeV
|
||||
G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections
|
||||
below 91 GeV, Glauber-Gribov above
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
hBertiniCaptureAtRest
|
||||
Process: hBertiniCaptureAtRest
|
||||
|
||||
Hadronic Processes for <proton>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticCHIPS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for proton
|
||||
|
||||
hadElastic Crs sctns: ChipsProtonElasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: ChipsProtonElasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
ProtonInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
Process: protonInelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
ProtonInelastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
============================================================================================
|
||||
### Run 0 start.
|
||||
Using Root analysis manager
|
||||
|
||||
---> Begin of event: 0
|
||||
================================================================
|
||||
### Run 0 starts.
|
||||
... open Root analysis file : B4.root - done
|
||||
--> Event 0 starts.
|
||||
---> End of event: 0
|
||||
Absorber: total energy: 288.831 MeV total track length: 20.4665 cm
|
||||
Gap: total energy: 8.19232 MeV total track length: 3.81315 cm
|
||||
Absorber: total energy: 283.263 MeV total track length: 19.743 cm
|
||||
Gap: total energy: 10.6009 MeV total track length: 5.29096 cm
|
||||
|
||||
----> print histograms statistic
|
||||
----> print histograms statistic for the entire run
|
||||
|
||||
EAbs : mean = 288.831 MeV rms = 0 eV
|
||||
EGap : mean = 8.19232 MeV rms = 0 eV
|
||||
LAbs : mean = 20.4665 cm rms = 0 fm
|
||||
LGap : mean = 3.81315 cm rms = 0 fm
|
||||
EAbs : mean = 283.263 MeV rms = 0 eV
|
||||
EGap : mean = 10.6009 MeV rms = 0 eV
|
||||
LAbs : mean = 19.743 cm rms = 0 fm
|
||||
LGap : mean = 5.29096 cm rms = 0 fm
|
||||
... write Root file : B4.root - done
|
||||
Transportation, msc, hIoni, ionIoni
|
||||
hBrems, hPairProd, eIoni, eBrem
|
||||
annihil, CoulombScat, phot, compt
|
||||
conv, muIoni, muBrems, muPairProd
|
||||
PhotonInelastic, ElectroNuclear, PositronNuclear, Decay
|
||||
hadElastic, NeutronInelastic, nCapture, nFission
|
||||
ProtonInelastic, PionPlusInelastic, PionMinusInelastic, KaonPlusInelastic
|
||||
KaonMinusInelastic, KaonZeroLInelastic, KaonZeroSInelastic, LambdaInelastic
|
||||
AntiLambdaInelastic,SigmaMinusInelastic,AntiSigmaMinusInelastic, SigmaPlusInelastic
|
||||
AntiSigmaPlusInelastic, XiMinusInelastic,AntiXiMinusInelastic, XiZeroInelastic
|
||||
AntiXiZeroInelastic,OmegaMinusInelastic,AntiOmegaMinusInelastic,AntiProtonInelastic
|
||||
AntiNeutronInelastic,AntiDeuteronInelastic,AntiTritonInelasticProcess,AntiHe3InelasticProcess
|
||||
AntiAlphaInelasticProcess,hFritiofCaptureAtRest,hBertiniCaptureAtRest,muMinusCaptureAtRest
|
||||
dInelastic, tInelastic, He3Inelastic, alphaInelastic
|
||||
ionInelastic, nKiller
|
||||
photonNuclear, electronNuclear, positronNuclear, Decay
|
||||
hadElastic, neutronInelastic, nCapture, protonInelastic
|
||||
pi+Inelastic, pi-Inelastic, kaon+Inelastic, kaon-Inelastic
|
||||
kaon0LInelastic, kaon0SInelastic, lambdaInelastic,anti-lambdaInelastic
|
||||
sigma-Inelastic,anti_sigma-Inelastic, sigma+Inelastic,anti_sigma+Inelastic
|
||||
xi-Inelastic, anti_xi-Inelastic, xi0Inelastic, anti_xi0Inelastic
|
||||
omega-Inelastic,anti_omega-Inelastic,anti_protonInelastic,anti_neutronInelastic
|
||||
anti_deuteronInelastic,anti_tritonInelastic, anti_He3Inelastic,anti_alphaInelastic
|
||||
hFritiofCaptureAtRest,hBertiniCaptureAtRest,muMinusCaptureAtRest, dInelastic
|
||||
tInelastic, He3Inelastic, alphaInelastic, ionInelastic
|
||||
nKiller
|
||||
|
||||
phot: for gamma SubType= 12
|
||||
LambdaPrime table from 200 keV to 10 TeV in 54 bins
|
||||
@@ -639,7 +657,7 @@ conv: for gamma SubType= 14
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e- SubType= 2
|
||||
@@ -666,7 +684,7 @@ CoulombScat: for e- SubType= 1
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e+ SubType= 2
|
||||
@@ -716,13 +734,14 @@ hBrems: for proton SubType= 3
|
||||
hPairProd: for proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for GenericIon SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -736,7 +755,7 @@ ionIoni: for GenericIon SubType= 2
|
||||
msc: for alpha SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for alpha SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -768,6 +787,7 @@ hBrems: for anti_proton SubType= 3
|
||||
hPairProd: for anti_proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -793,6 +813,7 @@ hBrems: for kaon+ SubType= 3
|
||||
hPairProd: for kaon+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -818,6 +839,7 @@ hBrems: for kaon- SubType= 3
|
||||
hPairProd: for kaon- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -844,6 +866,7 @@ muBrems: for mu+ SubType= 3
|
||||
muPairProd: for mu+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -876,6 +899,7 @@ muBrems: for mu- SubType= 3
|
||||
muPairProd: for mu- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -907,6 +931,7 @@ hBrems: for pi+ SubType= 3
|
||||
hPairProd: for pi+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -932,22 +957,23 @@ hBrems: for pi- SubType= 3
|
||||
hPairProd: for pi- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
### Run 1 start.
|
||||
Using Root analysis manager
|
||||
|
||||
---> Begin of event: 0
|
||||
### Run 1 starts.
|
||||
... open Root analysis file : B4.root - done
|
||||
--> Event 0 starts.
|
||||
---> End of event: 0
|
||||
Absorber: total energy: 282.08 MeV total track length: 20.1981 cm
|
||||
Gap: total energy: 16.6294 MeV total track length: 8.51564 cm
|
||||
Absorber: total energy: 282.146 MeV total track length: 20.3465 cm
|
||||
Gap: total energy: 18.8759 MeV total track length: 9.43449 cm
|
||||
|
||||
----> print histograms statistic
|
||||
----> print histograms statistic for the entire run
|
||||
|
||||
EAbs : mean = 282.08 MeV rms = 0 eV
|
||||
EGap : mean = 16.6294 MeV rms = 0 eV
|
||||
LAbs : mean = 20.1981 cm rms = 0 fm
|
||||
LGap : mean = 8.51564 cm rms = 0 fm
|
||||
EAbs : mean = 282.146 MeV rms = 0 eV
|
||||
EGap : mean = 18.8759 MeV rms = 0 eV
|
||||
LAbs : mean = 20.3465 cm rms = 0 fm
|
||||
LGap : mean = 9.43449 cm rms = 0 fm
|
||||
... write Root file : B4.root - done
|
||||
|
||||
phot: for gamma SubType= 12
|
||||
LambdaPrime table from 200 keV to 10 TeV in 54 bins
|
||||
@@ -969,7 +995,7 @@ conv: for gamma SubType= 14
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e- SubType= 2
|
||||
@@ -996,7 +1022,7 @@ CoulombScat: for e- SubType= 1
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e+ SubType= 2
|
||||
@@ -1046,13 +1072,14 @@ hBrems: for proton SubType= 3
|
||||
hPairProd: for proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for GenericIon SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -1066,7 +1093,7 @@ ionIoni: for GenericIon SubType= 2
|
||||
msc: for alpha SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for alpha SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -1098,6 +1125,7 @@ hBrems: for anti_proton SubType= 3
|
||||
hPairProd: for anti_proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1123,6 +1151,7 @@ hBrems: for kaon+ SubType= 3
|
||||
hPairProd: for kaon+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1148,6 +1177,7 @@ hBrems: for kaon- SubType= 3
|
||||
hPairProd: for kaon- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1174,6 +1204,7 @@ muBrems: for mu+ SubType= 3
|
||||
muPairProd: for mu+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1206,6 +1237,7 @@ muBrems: for mu- SubType= 3
|
||||
muPairProd: for mu- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1237,6 +1269,7 @@ hBrems: for pi+ SubType= 3
|
||||
hPairProd: for pi+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1262,21 +1295,22 @@ hBrems: for pi- SubType= 3
|
||||
hPairProd: for pi- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
### Run 2 start.
|
||||
Using Root analysis manager
|
||||
|
||||
---> Begin of event: 0
|
||||
### Run 2 starts.
|
||||
... open Root analysis file : B4.root - done
|
||||
--> Event 0 starts.
|
||||
---> End of event: 0
|
||||
Absorber: total energy: 462.772 MeV total track length: 33.1144 cm
|
||||
Gap: total energy: 21.7635 MeV total track length: 11.0673 cm
|
||||
Absorber: total energy: 468.273 MeV total track length: 33.5299 cm
|
||||
Gap: total energy: 16.8004 MeV total track length: 8.15542 cm
|
||||
|
||||
----> print histograms statistic
|
||||
----> print histograms statistic for the entire run
|
||||
|
||||
EAbs : mean = 462.772 MeV rms = 0 eV
|
||||
EGap : mean = 21.7635 MeV rms = 0 eV
|
||||
LAbs : mean = 33.1144 cm rms = 0 fm
|
||||
LGap : mean = 11.0673 cm rms = 0 fm
|
||||
EAbs : mean = 468.273 MeV rms = 0 eV
|
||||
EGap : mean = 16.8004 MeV rms = 0 eV
|
||||
LAbs : mean = 33.5299 cm rms = 0 fm
|
||||
LGap : mean = 8.15542 cm rms = 0 fm
|
||||
... write Root file : B4.root - done
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
/gui/addMenu run Run
|
||||
/gui/addButton run "beamOn 1" "/run/beamOn 1"
|
||||
/gui/addButton run run1 "/control/execute run1.mac"
|
||||
/gui/addButton run run2 "/control/execute run2.mac"
|
||||
#
|
||||
# Gun menu :
|
||||
/gui/addMenu gun Gun
|
||||
@@ -38,14 +37,14 @@
|
||||
# Viewer menu :
|
||||
/gui/addMenu viewer Viewer
|
||||
/gui/addButton viewer "Set style surface" "/vis/viewer/set/style surface"
|
||||
/gui/addButton viewer "Set style wireframe" "/vis/viewer/set/style wire"
|
||||
/gui/addButton viewer "Set style wireframe" "/vis/viewer/set/style wireframe"
|
||||
/gui/addButton viewer "Refresh viewer" "/vis/viewer/refresh"
|
||||
/gui/addButton viewer "Update viewer (interaction or end-of-file)" "/vis/viewer/update"
|
||||
/gui/addButton viewer "Flush viewer (= refresh + update)" "/vis/viewer/flush"
|
||||
/gui/addButton viewer "Update scene" "/vis/scene/notifyHandlers"
|
||||
#
|
||||
# To limit the output flow in the "dump" widget :
|
||||
/B4/event/setPrintModulo 100
|
||||
/run/printProgress 100
|
||||
#
|
||||
# User defined icon :
|
||||
/gui/addIcon "Run beam on" user_icon "/run/beamOn 1" run.png
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4Analysis.hh 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4Analysis.hh
|
||||
/// \brief Selection of the analysis technology
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4DetectorConstruction.hh 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file B4DetectorConstruction.hh
|
||||
/// \brief Definition of the B4DetectorConstruction class
|
||||
@@ -34,10 +34,8 @@
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4Box;
|
||||
class G4VPhysicalVolume;
|
||||
class G4UniformMagField;
|
||||
class G4GenericMessenger;
|
||||
class G4GlobalMagFieldMessenger;
|
||||
|
||||
/// Detector construction class to define materials and geometry.
|
||||
/// The calorimeter is a box made of a given number of layers. A layer consists
|
||||
@@ -50,11 +48,8 @@ class G4GenericMessenger;
|
||||
/// - the number of layers,
|
||||
/// - the transverse size of the calorimeter (the input face is a square).
|
||||
///
|
||||
/// In addition a transverse uniform magnetic field is defined in
|
||||
/// SetMagField() method which can be activated
|
||||
/// via a command defined using G4GenericMessenger class:
|
||||
/// - /B4/det/setMagField value unit
|
||||
|
||||
/// In addition a transverse uniform magnetic field is defined
|
||||
/// via G4GlobalMagFieldMessenger class.
|
||||
|
||||
class B4DetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
@@ -64,11 +59,8 @@ class B4DetectorConstruction : public G4VUserDetectorConstruction
|
||||
|
||||
public:
|
||||
virtual G4VPhysicalVolume* Construct();
|
||||
virtual void ConstructSDandField();
|
||||
|
||||
// set methods
|
||||
//
|
||||
void SetMagField(G4double fieldValue);
|
||||
|
||||
// get methods
|
||||
//
|
||||
const G4VPhysicalVolume* GetAbsorberPV() const;
|
||||
@@ -82,11 +74,11 @@ class B4DetectorConstruction : public G4VUserDetectorConstruction
|
||||
|
||||
// data members
|
||||
//
|
||||
G4GenericMessenger* fMessenger; // messenger
|
||||
G4UniformMagField* fMagField; // magnetic field
|
||||
|
||||
G4VPhysicalVolume* fAbsorberPV; // the absorber physical volume
|
||||
G4VPhysicalVolume* fGapPV; // the gap physical volume
|
||||
static G4ThreadLocal G4GlobalMagFieldMessenger* fMagFieldMessenger;
|
||||
// magnetic field messenger
|
||||
|
||||
G4VPhysicalVolume* fAbsorberPV; // the absorber physical volume
|
||||
G4VPhysicalVolume* fGapPV; // the gap physical volume
|
||||
|
||||
G4bool fCheckOverlaps; // option to activate checking of volumes overlaps
|
||||
};
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4PrimaryGeneratorAction.hh 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4PrimaryGeneratorAction.hh
|
||||
/// \brief Definition of the B4PrimaryGeneratorAction class
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4RunAction.hh 74265 2013-10-02 14:41:20Z gcosmo $
|
||||
//
|
||||
/// \file B4RunAction.hh
|
||||
/// \brief Definition of the B4RunAction class
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: B4aActionInitialization.hh 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4aActionInitialization.hh
|
||||
/// \brief Definition of the B4aActionInitialization class
|
||||
|
||||
#ifndef B4aActionInitialization_h
|
||||
#define B4aActionInitialization_h 1
|
||||
|
||||
#include "G4VUserActionInitialization.hh"
|
||||
|
||||
class B4DetectorConstruction;
|
||||
|
||||
/// Action initialization class.
|
||||
///
|
||||
|
||||
class B4aActionInitialization : public G4VUserActionInitialization
|
||||
{
|
||||
public:
|
||||
B4aActionInitialization(B4DetectorConstruction*);
|
||||
virtual ~B4aActionInitialization();
|
||||
|
||||
virtual void BuildForMaster() const;
|
||||
virtual void Build() const;
|
||||
|
||||
private:
|
||||
B4DetectorConstruction* fDetConstruction;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4aEventAction.hh 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file B4aEventAction.hh
|
||||
/// \brief Definition of the B4aEventAction class
|
||||
@@ -34,10 +34,6 @@
|
||||
#include "G4UserEventAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class B4RunAction;
|
||||
|
||||
class G4GenericMessenger;
|
||||
|
||||
/// Event action class
|
||||
///
|
||||
/// It defines data members to hold the energy deposit and track lengths
|
||||
@@ -45,11 +41,6 @@ class G4GenericMessenger;
|
||||
/// - fEnergyAbs, fEnergyGap, fTrackLAbs, fTrackLGap
|
||||
/// which are collected step by step via the functions
|
||||
/// - AddAbs(), AddGap()
|
||||
///
|
||||
/// The data member fPrintModulo defines the frequency of printing
|
||||
/// the accumulated quantities. Its value can be changed via a command
|
||||
/// defined using G4GenericMessenger class:
|
||||
/// - /B4/event/setPrintModulo value
|
||||
|
||||
class B4aEventAction : public G4UserEventAction
|
||||
{
|
||||
@@ -62,19 +53,12 @@ class B4aEventAction : public G4UserEventAction
|
||||
|
||||
void AddAbs(G4double de, G4double dl);
|
||||
void AddGap(G4double de, G4double dl);
|
||||
|
||||
void SetPrintModulo(G4int value);
|
||||
|
||||
private:
|
||||
G4GenericMessenger* fMessenger;
|
||||
B4RunAction* fRunAction;
|
||||
|
||||
G4double fEnergyAbs;
|
||||
G4double fEnergyGap;
|
||||
G4double fTrackLAbs;
|
||||
G4double fTrackLGap;
|
||||
|
||||
G4int fPrintModulo;
|
||||
};
|
||||
|
||||
// inline functions
|
||||
@@ -88,10 +72,6 @@ inline void B4aEventAction::AddGap(G4double de, G4double dl) {
|
||||
fEnergyGap += de;
|
||||
fTrackLGap += dl;
|
||||
}
|
||||
|
||||
inline void B4aEventAction::SetPrintModulo(G4int value) {
|
||||
fPrintModulo = value;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4aSteppingAction.hh 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4aSteppingAction.hh
|
||||
/// \brief Definition of the B4aSteppingAction class
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Macro file for the initialization phase of "exampleN03.cc"
|
||||
# Macro file for the initialization phase of example B4
|
||||
# when running in interactive mode without visualization
|
||||
#
|
||||
# Set some default verbose
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Macro file for the initialization phase of "exampleN03.cc"
|
||||
# Macro file for the initialization phase of example B4
|
||||
# when running in interactive mode with visualization
|
||||
#
|
||||
# Sets some default verbose
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
# 20 events
|
||||
#
|
||||
/tracking/verbose 0
|
||||
/B4/event/setPrintModulo 5
|
||||
/run/printProgress 5
|
||||
/run/beamOn 20
|
||||
#
|
||||
# Magnetic field
|
||||
#
|
||||
/B4/det/setMagField 0.2 tesla
|
||||
/globalField/setValue 0.2 0 0 tesla
|
||||
/run/beamOn 3
|
||||
#
|
||||
# Activate/inactivate physics processes
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
# electron 50 MeV in direction (0.,0.,1.)
|
||||
# 1000 events
|
||||
#
|
||||
/B4/event/setPrintModulo 100
|
||||
/run/printProgress 100
|
||||
/run/beamOn 1000
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4DetectorConstruction.cc 77601 2013-11-26 17:08:44Z gcosmo $
|
||||
//
|
||||
/// \file B4DetectorConstruction.cc
|
||||
/// \brief Implementation of the B4DetectorConstruction class
|
||||
@@ -37,7 +37,8 @@
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
#include "G4PVReplica.hh"
|
||||
#include "G4UniformMagField.hh"
|
||||
#include "G4GlobalMagFieldMessenger.hh"
|
||||
#include "G4AutoDelete.hh"
|
||||
|
||||
#include "G4GeometryManager.hh"
|
||||
#include "G4PhysicalVolumeStore.hh"
|
||||
@@ -47,43 +48,28 @@
|
||||
#include "G4VisAttributes.hh"
|
||||
#include "G4Colour.hh"
|
||||
|
||||
#include "G4FieldManager.hh"
|
||||
#include "G4TransportationManager.hh"
|
||||
#include "G4GenericMessenger.hh"
|
||||
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
#include <stdio.h>
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4ThreadLocal
|
||||
G4GlobalMagFieldMessenger* B4DetectorConstruction::fMagFieldMessenger = 0;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4DetectorConstruction::B4DetectorConstruction()
|
||||
: G4VUserDetectorConstruction(),
|
||||
fMessenger(0),
|
||||
fMagField(0),
|
||||
fAbsorberPV(0),
|
||||
fGapPV(0),
|
||||
fCheckOverlaps(true)
|
||||
{
|
||||
// Define /B4/det commands using generic messenger class
|
||||
fMessenger
|
||||
= new G4GenericMessenger(this, "/B4/det/", "Detector construction control");
|
||||
|
||||
// Define /B4/det/setMagField command
|
||||
G4GenericMessenger::Command& setMagFieldCmd
|
||||
= fMessenger->DeclareMethod("setMagField",
|
||||
&B4DetectorConstruction::SetMagField,
|
||||
"Define magnetic field value (in X direction");
|
||||
setMagFieldCmd.SetUnitCategory("Magnetic flux density");
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4DetectorConstruction::~B4DetectorConstruction()
|
||||
{
|
||||
delete fMagField;
|
||||
delete fMessenger;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -103,8 +89,7 @@ void B4DetectorConstruction::DefineMaterials()
|
||||
{
|
||||
// Lead material defined using NIST Manager
|
||||
G4NistManager* nistManager = G4NistManager::Instance();
|
||||
G4bool fromIsotopes = false;
|
||||
nistManager->FindOrBuildMaterial("G4_Pb", fromIsotopes);
|
||||
nistManager->FindOrBuildMaterial("G4_Pb");
|
||||
|
||||
// Liquid argon material
|
||||
G4double a; // mass of a mole;
|
||||
@@ -142,9 +127,10 @@ G4VPhysicalVolume* B4DetectorConstruction::DefineVolumes()
|
||||
G4Material* gapMaterial = G4Material::GetMaterial("liquidArgon");
|
||||
|
||||
if ( ! defaultMaterial || ! absorberMaterial || ! gapMaterial ) {
|
||||
G4cerr << "Cannot retrieve materials already defined. " << G4endl;
|
||||
G4cerr << "Exiting application " << G4endl;
|
||||
exit(1);
|
||||
G4ExceptionDescription msg;
|
||||
msg << "Cannot retrieve materials already defined.";
|
||||
G4Exception("B4DetectorConstruction::DefineVolumes()",
|
||||
"MyCode0001", FatalException, msg);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -290,25 +276,17 @@ G4VPhysicalVolume* B4DetectorConstruction::DefineVolumes()
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4DetectorConstruction::SetMagField(G4double fieldValue)
|
||||
{
|
||||
// Apply a global uniform magnetic field along X axis
|
||||
G4FieldManager* fieldManager
|
||||
= G4TransportationManager::GetTransportationManager()->GetFieldManager();
|
||||
|
||||
// Delete the existing magnetic field
|
||||
if ( fMagField ) delete fMagField;
|
||||
|
||||
if ( fieldValue != 0. ) {
|
||||
// create a new one if not null
|
||||
fMagField
|
||||
= new G4UniformMagField(G4ThreeVector(fieldValue, 0., 0.));
|
||||
|
||||
fieldManager->SetDetectorField(fMagField);
|
||||
fieldManager->CreateChordFinder(fMagField);
|
||||
}
|
||||
else {
|
||||
fMagField = 0;
|
||||
fieldManager->SetDetectorField(fMagField);
|
||||
}
|
||||
void B4DetectorConstruction::ConstructSDandField()
|
||||
{
|
||||
// Create global magnetic field messenger.
|
||||
// Uniform magnetic field is then created automatically if
|
||||
// the field value is not zero.
|
||||
G4ThreeVector fieldValue = G4ThreeVector();
|
||||
fMagFieldMessenger = new G4GlobalMagFieldMessenger(fieldValue);
|
||||
fMagFieldMessenger->SetVerboseLevel(1);
|
||||
|
||||
// Register the field messenger for deleting
|
||||
G4AutoDelete::Register(fMagFieldMessenger);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4PrimaryGeneratorAction.cc 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file B4PrimaryGeneratorAction.cc
|
||||
/// \brief Implementation of the B4PrimaryGeneratorAction class
|
||||
@@ -85,9 +85,12 @@ void B4PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
|
||||
worldZHalfLength = worldBox->GetZHalfLength();
|
||||
}
|
||||
else {
|
||||
G4cerr << "World volume of box not found." << G4endl;
|
||||
G4cerr << "Perhaps you have changed geometry." << G4endl;
|
||||
G4cerr << "The gun will be place in the center." << G4endl;
|
||||
G4ExceptionDescription msg;
|
||||
msg << "World volume of box not found." << G4endl;
|
||||
msg << "Perhaps you have changed geometry." << G4endl;
|
||||
msg << "The gun will be place in the center.";
|
||||
G4Exception("B4PrimaryGeneratorAction::GeneratePrimaries()",
|
||||
"MyCode0002", JustWarning, msg);
|
||||
}
|
||||
|
||||
// Set gun position
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4RunAction.cc 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file B4RunAction.cc
|
||||
/// \brief Implementation of the B4RunAction class
|
||||
@@ -41,50 +41,30 @@
|
||||
B4RunAction::B4RunAction()
|
||||
: G4UserRunAction()
|
||||
{
|
||||
}
|
||||
// set printing event number per each event
|
||||
G4RunManager::GetRunManager()->SetPrintProgress(1);
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4RunAction::~B4RunAction()
|
||||
{
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4RunAction::BeginOfRunAction(const G4Run* run)
|
||||
{
|
||||
G4cout << "### Run " << run->GetRunID() << " start." << G4endl;
|
||||
|
||||
//inform the runManager to save random number seed
|
||||
//G4RunManager::GetRunManager()->SetRandomNumberStore(true);
|
||||
|
||||
// Book histograms, ntuple
|
||||
//
|
||||
|
||||
// Create analysis manager
|
||||
// The choice of analysis technology is done via selectin of a namespace
|
||||
// in B4Analysis.hh
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
G4cout << "Using " << analysisManager->GetType()
|
||||
<< " analysis manager" << G4endl;
|
||||
G4cout << "Using " << analysisManager->GetType() << G4endl;
|
||||
|
||||
// Create directories
|
||||
//analysisManager->SetHistoDirectoryName("histograms");
|
||||
//analysisManager->SetNtupleDirectoryName("ntuple");
|
||||
|
||||
// Open an output file
|
||||
//
|
||||
G4String fileName = "B4";
|
||||
analysisManager->OpenFile(fileName);
|
||||
analysisManager->SetVerboseLevel(1);
|
||||
analysisManager->SetFirstHistoId(1);
|
||||
|
||||
// Creating histograms
|
||||
// Book histograms, ntuple
|
||||
//
|
||||
|
||||
// Creating histograms
|
||||
analysisManager->CreateH1("1","Edep in absorber", 100, 0., 800*MeV);
|
||||
analysisManager->CreateH1("2","Edep in gap", 100, 0., 100*MeV);
|
||||
analysisManager->CreateH1("3","trackL in absorber", 100, 0., 1*m);
|
||||
analysisManager->CreateH1("4","trackL in gap", 100, 0., 50*cm);
|
||||
|
||||
|
||||
// Creating ntuple
|
||||
//
|
||||
analysisManager->CreateNtuple("B4", "Edep and TrackL");
|
||||
@@ -97,43 +77,69 @@ void B4RunAction::BeginOfRunAction(const G4Run* run)
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4RunAction::EndOfRunAction(const G4Run* aRun)
|
||||
B4RunAction::~B4RunAction()
|
||||
{
|
||||
G4int nofEvents = aRun->GetNumberOfEvent();
|
||||
if ( nofEvents == 0 ) return;
|
||||
|
||||
// print histogram statistics
|
||||
//
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
if ( analysisManager->GetH1(1) ) {
|
||||
G4cout << "\n ----> print histograms statistic \n" << G4endl;
|
||||
|
||||
G4cout
|
||||
<< " EAbs : mean = " << G4BestUnit(analysisManager->GetH1(1)->mean(), "Energy")
|
||||
<< " rms = " << G4BestUnit(analysisManager->GetH1(1)->rms(), "Energy")
|
||||
<< G4endl;
|
||||
G4cout
|
||||
<< " EGap : mean = " << G4BestUnit(analysisManager->GetH1(2)->mean(), "Energy")
|
||||
<< " rms = " << G4BestUnit(analysisManager->GetH1(2)->rms(), "Energy")
|
||||
<< G4endl;
|
||||
G4cout
|
||||
<< " LAbs : mean = " << G4BestUnit(analysisManager->GetH1(3)->mean(), "Length")
|
||||
<< " rms = " << G4BestUnit(analysisManager->GetH1(3)->rms(), "Length")
|
||||
<< G4endl;
|
||||
G4cout
|
||||
<< " LGap : mean = " << G4BestUnit(analysisManager->GetH1(4)->mean(), "Length")
|
||||
<< " rms = " << G4BestUnit(analysisManager->GetH1(4)->rms(), "Length")
|
||||
<< G4endl;
|
||||
}
|
||||
|
||||
// save histograms
|
||||
//
|
||||
analysisManager->Write();
|
||||
analysisManager->CloseFile();
|
||||
|
||||
// complete cleanup
|
||||
//
|
||||
delete G4AnalysisManager::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4RunAction::BeginOfRunAction(const G4Run* /*run*/)
|
||||
{
|
||||
//inform the runManager to save random number seed
|
||||
//G4RunManager::GetRunManager()->SetRandomNumberStore(true);
|
||||
|
||||
// Get analysis manager
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
|
||||
// Open an output file
|
||||
//
|
||||
G4String fileName = "B4";
|
||||
analysisManager->OpenFile(fileName);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4RunAction::EndOfRunAction(const G4Run* /*run*/)
|
||||
{
|
||||
// print histogram statistics
|
||||
//
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
if ( analysisManager->GetH1(1) ) {
|
||||
G4cout << "\n ----> print histograms statistic ";
|
||||
if(isMaster) {
|
||||
G4cout << "for the entire run \n" << G4endl;
|
||||
}
|
||||
else {
|
||||
G4cout << "for the local thread \n" << G4endl;
|
||||
}
|
||||
|
||||
G4cout << " EAbs : mean = "
|
||||
<< G4BestUnit(analysisManager->GetH1(1)->mean(), "Energy")
|
||||
<< " rms = "
|
||||
<< G4BestUnit(analysisManager->GetH1(1)->rms(), "Energy") << G4endl;
|
||||
|
||||
G4cout << " EGap : mean = "
|
||||
<< G4BestUnit(analysisManager->GetH1(2)->mean(), "Energy")
|
||||
<< " rms = "
|
||||
<< G4BestUnit(analysisManager->GetH1(2)->rms(), "Energy") << G4endl;
|
||||
|
||||
G4cout << " LAbs : mean = "
|
||||
<< G4BestUnit(analysisManager->GetH1(3)->mean(), "Length")
|
||||
<< " rms = "
|
||||
<< G4BestUnit(analysisManager->GetH1(3)->rms(), "Length") << G4endl;
|
||||
|
||||
G4cout << " LGap : mean = "
|
||||
<< G4BestUnit(analysisManager->GetH1(4)->mean(), "Length")
|
||||
<< " rms = "
|
||||
<< G4BestUnit(analysisManager->GetH1(4)->rms(), "Length") << G4endl;
|
||||
}
|
||||
|
||||
// save histograms & ntuple
|
||||
//
|
||||
analysisManager->Write();
|
||||
analysisManager->CloseFile();
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: B4aActionInitialization.cc 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4aActionInitialization.cc
|
||||
/// \brief Implementation of the B4aActionInitialization class
|
||||
|
||||
#include "B4aActionInitialization.hh"
|
||||
#include "B4PrimaryGeneratorAction.hh"
|
||||
#include "B4RunAction.hh"
|
||||
#include "B4aEventAction.hh"
|
||||
#include "B4aSteppingAction.hh"
|
||||
#include "B4DetectorConstruction.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4aActionInitialization::B4aActionInitialization
|
||||
(B4DetectorConstruction* detConstruction)
|
||||
: G4VUserActionInitialization(),
|
||||
fDetConstruction(detConstruction)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4aActionInitialization::~B4aActionInitialization()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4aActionInitialization::BuildForMaster() const
|
||||
{
|
||||
SetUserAction(new B4RunAction);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4aActionInitialization::Build() const
|
||||
{
|
||||
SetUserAction(new B4PrimaryGeneratorAction);
|
||||
SetUserAction(new B4RunAction);
|
||||
B4aEventAction* eventAction = new B4aEventAction;
|
||||
SetUserAction(eventAction);
|
||||
SetUserAction(new B4aSteppingAction(fDetConstruction,eventAction));
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4aEventAction.cc 75604 2013-11-04 13:17:26Z gcosmo $
|
||||
//
|
||||
/// \file B4aEventAction.cc
|
||||
/// \brief Implementation of the B4aEventAction class
|
||||
@@ -34,7 +34,6 @@
|
||||
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4Event.hh"
|
||||
#include "G4GenericMessenger.hh"
|
||||
#include "G4UnitsTable.hh"
|
||||
|
||||
#include "Randomize.hh"
|
||||
@@ -44,42 +43,21 @@
|
||||
|
||||
B4aEventAction::B4aEventAction()
|
||||
: G4UserEventAction(),
|
||||
fMessenger(0),
|
||||
fEnergyAbs(0.),
|
||||
fEnergyGap(0.),
|
||||
fTrackLAbs(0.),
|
||||
fTrackLGap(0.),
|
||||
fPrintModulo(1)
|
||||
{
|
||||
// Define /B4/event commands using generic messenger class
|
||||
fMessenger = new G4GenericMessenger(this, "/B4/event/", "Event control");
|
||||
|
||||
// Define /B4/event/setPrintModulo command
|
||||
G4GenericMessenger::Command& setPrintModulo
|
||||
= fMessenger->DeclareProperty("setPrintModulo",
|
||||
fPrintModulo,
|
||||
"Print events modulo n");
|
||||
setPrintModulo.SetRange("value>0");
|
||||
}
|
||||
fTrackLGap(0.)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4aEventAction::~B4aEventAction()
|
||||
{
|
||||
delete fMessenger;
|
||||
}
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4aEventAction::BeginOfEventAction(const G4Event* evt)
|
||||
void B4aEventAction::BeginOfEventAction(const G4Event* /*event*/)
|
||||
{
|
||||
|
||||
G4int eventID = evt->GetEventID();
|
||||
if ( eventID % fPrintModulo == 0 ) {
|
||||
G4cout << "\n---> Begin of event: " << eventID << G4endl;
|
||||
//CLHEP::HepRandom::showEngineStatus();
|
||||
}
|
||||
|
||||
// initialisation per event
|
||||
fEnergyAbs = 0.;
|
||||
fEnergyGap = 0.;
|
||||
@@ -89,7 +67,7 @@ void B4aEventAction::BeginOfEventAction(const G4Event* evt)
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4aEventAction::EndOfEventAction(const G4Event* evt)
|
||||
void B4aEventAction::EndOfEventAction(const G4Event* event)
|
||||
{
|
||||
// Accumulate statistics
|
||||
//
|
||||
@@ -112,8 +90,9 @@ void B4aEventAction::EndOfEventAction(const G4Event* evt)
|
||||
|
||||
// Print per event (modulo n)
|
||||
//
|
||||
G4int eventID = evt->GetEventID();
|
||||
if ( eventID % fPrintModulo == 0) {
|
||||
G4int eventID = event->GetEventID();
|
||||
G4int printModulo = G4RunManager::GetRunManager()->GetPrintProgress();
|
||||
if ( ( printModulo > 0 ) && ( eventID % printModulo == 0 ) ) {
|
||||
G4cout << "---> End of event: " << eventID << G4endl;
|
||||
|
||||
G4cout
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4aSteppingAction.cc 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4aSteppingAction.cc
|
||||
/// \brief Implementation of the B4aSteppingAction class
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# $Id: CMakeLists.txt 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup the project
|
||||
#
|
||||
|
||||
@@ -23,20 +23,22 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: exampleB4b.cc 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file exampleB4b.cc
|
||||
/// \brief Main program of the B4b example
|
||||
|
||||
#include "B4DetectorConstruction.hh"
|
||||
#include "B4PrimaryGeneratorAction.hh"
|
||||
#include "B4RunAction.hh"
|
||||
#include "B4bEventAction.hh"
|
||||
#include "B4bSteppingAction.hh"
|
||||
#include "B4bRunData.hh"
|
||||
#include "B4bActionInitialization.hh"
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
#include "G4MTRunManager.hh"
|
||||
#else
|
||||
#include "G4RunManager.hh"
|
||||
#endif
|
||||
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4UIcommand.hh"
|
||||
#include "FTFP_BERT.hh"
|
||||
|
||||
#include "Randomize.hh"
|
||||
@@ -54,7 +56,9 @@
|
||||
namespace {
|
||||
void PrintUsage() {
|
||||
G4cerr << " Usage: " << G4endl;
|
||||
G4cerr << " exampleB4b [-m macro ] [-u UIsession]" << G4endl;
|
||||
G4cerr << " exampleB4a [-m macro ] [-u UIsession] [-t nThreads]" << G4endl;
|
||||
G4cerr << " note: -t option is available only for multi-threaded mode."
|
||||
<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -64,16 +68,24 @@ int main(int argc,char** argv)
|
||||
{
|
||||
// Evaluate arguments
|
||||
//
|
||||
if ( argc > 5 ) {
|
||||
if ( argc > 7 ) {
|
||||
PrintUsage();
|
||||
return 1;
|
||||
}
|
||||
|
||||
G4String macro;
|
||||
G4String session;
|
||||
#ifdef G4MULTITHREADED
|
||||
G4int nThreads = 0;
|
||||
#endif
|
||||
for ( G4int i=1; i<argc; i=i+2 ) {
|
||||
if ( G4String(argv[i]) == "-m" ) macro = argv[i+1];
|
||||
else if ( G4String(argv[i]) == "-u" ) session = argv[i+1];
|
||||
#ifdef G4MULTITHREADED
|
||||
else if ( G4String(argv[i]) == "-t" ) {
|
||||
nThreads = G4UIcommand::ConvertToInt(argv[i+1]);
|
||||
}
|
||||
#endif
|
||||
else {
|
||||
PrintUsage();
|
||||
return 1;
|
||||
@@ -82,11 +94,18 @@ int main(int argc,char** argv)
|
||||
|
||||
// Choose the Random engine
|
||||
//
|
||||
CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine);
|
||||
G4Random::setTheEngine(new CLHEP::RanecuEngine);
|
||||
|
||||
// Construct the default run manager
|
||||
//
|
||||
#ifdef G4MULTITHREADED
|
||||
G4MTRunManager * runManager = new G4MTRunManager;
|
||||
if ( nThreads > 0 ) {
|
||||
runManager->SetNumberOfThreads(nThreads);
|
||||
}
|
||||
#else
|
||||
G4RunManager * runManager = new G4RunManager;
|
||||
#endif
|
||||
|
||||
// Set mandatory initialization classes
|
||||
//
|
||||
@@ -96,21 +115,10 @@ int main(int argc,char** argv)
|
||||
G4VModularPhysicsList* physicsList = new FTFP_BERT;
|
||||
runManager->SetUserInitialization(physicsList);
|
||||
|
||||
// Set user action classes
|
||||
//
|
||||
runManager->SetUserAction(new B4PrimaryGeneratorAction());
|
||||
//
|
||||
runManager->SetUserAction(new B4RunAction());
|
||||
//
|
||||
runManager->SetUserAction(new B4bEventAction());
|
||||
//
|
||||
B4bSteppingAction* steppingAction
|
||||
= new B4bSteppingAction(detConstruction);
|
||||
runManager->SetUserAction(steppingAction);
|
||||
|
||||
// Run data clas
|
||||
new B4bRunData();
|
||||
|
||||
B4bActionInitialization* actionInitialization
|
||||
= new B4bActionInitialization(detConstruction);
|
||||
runManager->SetUserInitialization(actionInitialization);
|
||||
|
||||
// Initialize G4 kernel
|
||||
//
|
||||
runManager->Initialize();
|
||||
@@ -152,7 +160,6 @@ int main(int argc,char** argv)
|
||||
// owned and deleted by the run manager, so they should not be deleted
|
||||
// in the main() program !
|
||||
|
||||
delete B4bRunData::GetInstance();
|
||||
#ifdef G4VIS_USE
|
||||
delete visManager;
|
||||
#endif
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
############################################
|
||||
|
||||
*************************************************************
|
||||
Geant4 version Name: geant4-09-06-ref-00 (30-November-2012)
|
||||
Geant4 version Name: geant4-10-00-ref-00 (6-December-2013)
|
||||
Copyright : Geant4 Collaboration
|
||||
Reference : NIM A 506 (2003), 250-303
|
||||
WWW : http://cern.ch/geant4
|
||||
@@ -12,10 +12,13 @@
|
||||
|
||||
<<< Geant4 Physics List simulation engine: FTFP_BERT 2.0
|
||||
|
||||
Using Root
|
||||
|
||||
***** Table : Nb of materials = 3 *****
|
||||
|
||||
Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.261 cm Imean: 823.000 eV
|
||||
Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.247 cm
|
||||
Imean: 823.000 eV
|
||||
|
||||
---> Element: Pb (Pb) Z = 82.0 N = 207.2 A = 207.22 g/mole
|
||||
---> Isotope: Pb204 Z = 82 N = 204 A = 203.97 g/mole abundance: 1.40 %
|
||||
---> Isotope: Pb206 Z = 82 N = 206 A = 205.97 g/mole abundance: 24.10 %
|
||||
@@ -24,7 +27,9 @@
|
||||
ElmMassFraction: 100.00 % ElmAbundance 100.00 %
|
||||
|
||||
|
||||
Material: liquidArgon density: 1.390 g/cm3 RadL: 14.065 cm Nucl.Int.Length: 86.006 cm Imean: 188.000 eV
|
||||
Material: liquidArgon density: 1.390 g/cm3 RadL: 14.065 cm Nucl.Int.Length: 86.078 cm
|
||||
Imean: 188.000 eV
|
||||
|
||||
---> Element: liquidArgon ( ) Z = 18.0 N = 40.0 A = 39.95 g/mole
|
||||
---> Isotope: 36 Z = 18 N = 36 A = 35.97 g/mole abundance: 0.34 %
|
||||
---> Isotope: 38 Z = 18 N = 38 A = 37.96 g/mole abundance: 0.06 %
|
||||
@@ -32,7 +37,9 @@
|
||||
ElmMassFraction: 100.00 % ElmAbundance 100.00 %
|
||||
|
||||
|
||||
Material: Galactic density: 0.000 kg/m3 RadL: 204727512.315 pc Nucl.Int.Length: 114561548.020 pc Imean: 19.200 eV temperature: 2.73 K pressure: 0.00 atm
|
||||
Material: Galactic density: 0.000 kg/m3 RadL: 204727512.315 pc Nucl.Int.Length: 113804112.837 pc
|
||||
Imean: 19.200 eV temperature: 2.73 K pressure: 0.00 atm
|
||||
|
||||
---> Element: Galactic ( ) Z = 1.0 N = 1.0 A = 1.01 g/mole
|
||||
---> Isotope: 1 Z = 1 N = 1 A = 1.01 g/mole abundance: 99.99 %
|
||||
---> Isotope: 2 Z = 1 N = 2 A = 2.01 g/mole abundance: 0.01 %
|
||||
@@ -58,12 +65,10 @@ Current available graphics systems are:
|
||||
DAWNFILE (DAWNFILE)
|
||||
G4HepRep (HepRepXML)
|
||||
G4HepRepFile (HepRepFile)
|
||||
OpenGLImmediateQt (OGLI, OGLIQt)
|
||||
OpenGLImmediateX (OGLIX)
|
||||
OpenGLImmediateXm (OGLIXm, OGLI_FALLBACK, OGLIQt_FALLBACK)
|
||||
OpenGLStoredQt (OGL, OGLS, OGLSQt)
|
||||
OpenGLImmediateXm (OGLI, OGLIXm)
|
||||
OpenGLStoredX (OGLSX)
|
||||
OpenGLStoredXm (OGLSXm, OGL_FALLBACK, OGLS_FALLBACK, OGLSQt_FALLBACK)
|
||||
OpenGLStoredXm (OGL, OGLS, OGLSXm)
|
||||
RayTracer (RayTracer)
|
||||
RayTracerX (RayTracerX)
|
||||
VRML1FILE (VRML1FILE)
|
||||
@@ -116,7 +121,7 @@ conv: for gamma SubType= 14
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e- SubType= 2
|
||||
@@ -143,7 +148,7 @@ CoulombScat: for e- SubType= 1
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e+ SubType= 2
|
||||
@@ -193,13 +198,14 @@ hBrems: for proton SubType= 3
|
||||
hPairProd: for proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for GenericIon SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -213,7 +219,7 @@ ionIoni: for GenericIon SubType= 2
|
||||
msc: for alpha SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for alpha SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -245,6 +251,7 @@ hBrems: for anti_proton SubType= 3
|
||||
hPairProd: for anti_proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -270,6 +277,7 @@ hBrems: for kaon+ SubType= 3
|
||||
hPairProd: for kaon+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -295,6 +303,7 @@ hBrems: for kaon- SubType= 3
|
||||
hPairProd: for kaon- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -321,6 +330,7 @@ muBrems: for mu+ SubType= 3
|
||||
muPairProd: for mu+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -353,6 +363,7 @@ muBrems: for mu- SubType= 3
|
||||
muPairProd: for mu- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -384,6 +395,7 @@ hBrems: for pi+ SubType= 3
|
||||
hPairProd: for pi+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -409,215 +421,222 @@ hBrems: for pi- SubType= 3
|
||||
hPairProd: for pi- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
============================================================================================
|
||||
HADRONIC PROCESSES SUMMARY (verbose level 1)
|
||||
|
||||
Hadronic Processes for <GenericIon>
|
||||
-----------------------------------
|
||||
ionInelastic Models: Binary Light Ion Cascade: Emin(GeV)= 0 Emax(GeV)= 4
|
||||
FTFP: Emin(GeV)= 2 Emax(GeV)= 100000
|
||||
====================================================================
|
||||
HADRONIC PROCESSES SUMMARY (verbose level 1)
|
||||
|
||||
ionInelastic Crs sctns: Glauber-Gribov nucleus nucleus: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for GenericIon
|
||||
|
||||
Process: ionInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <anti_neutron>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for anti_neutron
|
||||
|
||||
hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
AntiNeutronInelastic Models: FTFP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: anti_neutronInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
AntiNeutronInelastic Crs sctns: AntiAGlauber: Emin(GeV)= 0 Emax(GeV)= 1.79769e+305
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for anti_proton
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <anti_proton>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 0.1
|
||||
AntiAElastic: Emin(GeV)= 0.1 Emax(GeV)= 100000
|
||||
Process: anti_protonInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
hadElastic Crs sctns: AntiAGlauber: Emin(GeV)= 0 Emax(GeV)= 1.79769e+305
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
AntiProtonInelastic Models: FTFP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for e+
|
||||
|
||||
AntiProtonInelastic Crs sctns: AntiAGlauber: Emin(GeV)= 0 Emax(GeV)= 1.79769e+305
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: positronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
hFritiofCaptureAtRest
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for e-
|
||||
|
||||
Hadronic Processes for <e+>
|
||||
-----------------------------------
|
||||
PositronNuclear Models: G4ElectroVDNuclearModel: Emin(GeV)= 0 Emax(GeV)= 1e+06
|
||||
Process: electronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
PositronNuclear Crs sctns: ElectroNuclearXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for gamma
|
||||
|
||||
Process: photonNuclear
|
||||
Model: BertiniCascade: 0 eV ---> 3.5 GeV
|
||||
Model: TheoFSGenerator: 3 GeV ---> 100 TeV
|
||||
Cr_sctns: PhotoNuclearXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <e->
|
||||
-----------------------------------
|
||||
ElectroNuclear Models: G4ElectroVDNuclearModel: Emin(GeV)= 0 Emax(GeV)= 1e+06
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for kaon+
|
||||
|
||||
ElectroNuclear Crs sctns: ElectroNuclearXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: kaon+Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: ChipsKaonPlusInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <gamma>
|
||||
-----------------------------------
|
||||
PhotonInelastic Models: BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 3.5
|
||||
TheoFSGenerator: Emin(GeV)= 3 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for kaon-
|
||||
|
||||
PhotonInelastic Crs sctns: PhotoNuclearXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: kaon-Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: ChipsKaonMinusInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <kaon+>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hBertiniCaptureAtRest
|
||||
|
||||
hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for lambda
|
||||
|
||||
KaonPlusInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
KaonPlusInelastic Crs sctns: ChipsKaonPlusInelasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: lambdaInelastic
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Cr_sctns: ChipsHyperonInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for mu-
|
||||
|
||||
Hadronic Processes for <kaon->
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: muMinusCaptureAtRest
|
||||
|
||||
hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for neutron
|
||||
|
||||
KaonMinusInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: ChipsNeutronElasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
KaonMinusInelastic Crs sctns: ChipsKaonMinusInelasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: neutronInelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
hBertiniCaptureAtRest
|
||||
Process: nCapture
|
||||
Model: nRadCapture: 0 eV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaCaptureXS: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <lambda>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for pi+
|
||||
|
||||
hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 1.0001 GeV
|
||||
Model: hElasticGlauber: 1 GeV ---> 100 TeV
|
||||
Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
LambdaInelastic Models: BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 6
|
||||
FTFP: Emin(GeV)= 2 Emax(GeV)= 100000
|
||||
|
||||
LambdaInelastic Crs sctns: ChipsHyperonInelasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
|
||||
Hadronic Processes for <mu->
|
||||
muMinusCaptureAtRest
|
||||
|
||||
Hadronic Processes for <neutron>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticCHIPS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
hadElastic Crs sctns: ChipsNeutronElasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
NeutronInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
|
||||
NeutronInelastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
nCapture Models: G4LCapture: Emin(GeV)= 0 Emax(GeV)= 20000
|
||||
|
||||
nCapture Crs sctns: GheishaCaptureXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
nFission Models: G4LFission: Emin(GeV)= 0 Emax(GeV)= 20000
|
||||
|
||||
nFission Crs sctns: GheishaFissionXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
|
||||
Hadronic Processes for <pi+>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 1
|
||||
hElasticGlauber: Emin(GeV)= 1 Emax(GeV)= 100000
|
||||
|
||||
hadElastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
PionPlusInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
|
||||
PionPlusInelastic Crs sctns: G4CrossSectionPairGG: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: pi+Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: G4CrossSectionPairGG: 0 eV ---> 100 TeV
|
||||
G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections
|
||||
below 91 GeV, Glauber-Gribov above
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for pi-
|
||||
|
||||
Hadronic Processes for <pi->
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 1
|
||||
hElasticGlauber: Emin(GeV)= 1 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 1.0001 GeV
|
||||
Model: hElasticGlauber: 1 GeV ---> 100 TeV
|
||||
Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
hadElastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
PionMinusInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
|
||||
PionMinusInelastic Crs sctns: G4CrossSectionPairGG: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: pi-Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: G4CrossSectionPairGG: 0 eV ---> 100 TeV
|
||||
G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections
|
||||
below 91 GeV, Glauber-Gribov above
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
hBertiniCaptureAtRest
|
||||
Process: hBertiniCaptureAtRest
|
||||
|
||||
Hadronic Processes for <proton>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticCHIPS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for proton
|
||||
|
||||
hadElastic Crs sctns: ChipsProtonElasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: ChipsProtonElasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
ProtonInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
Process: protonInelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
ProtonInelastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
============================================================================================
|
||||
================================================================
|
||||
### Run 0 starts.
|
||||
### Run 0 start.
|
||||
Using Root analysis manager
|
||||
|
||||
---> Begin of event: 0
|
||||
... open Root analysis file : B4.root - done
|
||||
--> Event 0 starts.
|
||||
---> End of event: 0
|
||||
Absorber: total energy: 288.831 MeV total track length: 20.4665 cm
|
||||
Gap: total energy: 8.19232 MeV total track length: 3.81315 cm
|
||||
Absorber: total energy: 283.263 MeV total track length: 19.743 cm
|
||||
Gap: total energy: 10.6009 MeV total track length: 5.29096 cm
|
||||
|
||||
----> print histograms statistic
|
||||
----> print histograms statistic for the entire run
|
||||
|
||||
EAbs : mean = 288.831 MeV rms = 0 eV
|
||||
EGap : mean = 8.19232 MeV rms = 0 eV
|
||||
LAbs : mean = 20.4665 cm rms = 0 fm
|
||||
LGap : mean = 3.81315 cm rms = 0 fm
|
||||
EAbs : mean = 283.263 MeV rms = 0 eV
|
||||
EGap : mean = 10.6009 MeV rms = 0 eV
|
||||
LAbs : mean = 19.743 cm rms = 0 fm
|
||||
LGap : mean = 5.29096 cm rms = 0 fm
|
||||
... write Root file : B4.root - done
|
||||
Transportation, msc, hIoni, ionIoni
|
||||
hBrems, hPairProd, eIoni, eBrem
|
||||
annihil, CoulombScat, phot, compt
|
||||
conv, muIoni, muBrems, muPairProd
|
||||
PhotonInelastic, ElectroNuclear, PositronNuclear, Decay
|
||||
hadElastic, NeutronInelastic, nCapture, nFission
|
||||
ProtonInelastic, PionPlusInelastic, PionMinusInelastic, KaonPlusInelastic
|
||||
KaonMinusInelastic, KaonZeroLInelastic, KaonZeroSInelastic, LambdaInelastic
|
||||
AntiLambdaInelastic,SigmaMinusInelastic,AntiSigmaMinusInelastic, SigmaPlusInelastic
|
||||
AntiSigmaPlusInelastic, XiMinusInelastic,AntiXiMinusInelastic, XiZeroInelastic
|
||||
AntiXiZeroInelastic,OmegaMinusInelastic,AntiOmegaMinusInelastic,AntiProtonInelastic
|
||||
AntiNeutronInelastic,AntiDeuteronInelastic,AntiTritonInelasticProcess,AntiHe3InelasticProcess
|
||||
AntiAlphaInelasticProcess,hFritiofCaptureAtRest,hBertiniCaptureAtRest,muMinusCaptureAtRest
|
||||
dInelastic, tInelastic, He3Inelastic, alphaInelastic
|
||||
ionInelastic, nKiller
|
||||
photonNuclear, electronNuclear, positronNuclear, Decay
|
||||
hadElastic, neutronInelastic, nCapture, protonInelastic
|
||||
pi+Inelastic, pi-Inelastic, kaon+Inelastic, kaon-Inelastic
|
||||
kaon0LInelastic, kaon0SInelastic, lambdaInelastic,anti-lambdaInelastic
|
||||
sigma-Inelastic,anti_sigma-Inelastic, sigma+Inelastic,anti_sigma+Inelastic
|
||||
xi-Inelastic, anti_xi-Inelastic, xi0Inelastic, anti_xi0Inelastic
|
||||
omega-Inelastic,anti_omega-Inelastic,anti_protonInelastic,anti_neutronInelastic
|
||||
anti_deuteronInelastic,anti_tritonInelastic, anti_He3Inelastic,anti_alphaInelastic
|
||||
hFritiofCaptureAtRest,hBertiniCaptureAtRest,muMinusCaptureAtRest, dInelastic
|
||||
tInelastic, He3Inelastic, alphaInelastic, ionInelastic
|
||||
nKiller
|
||||
|
||||
phot: for gamma SubType= 12
|
||||
LambdaPrime table from 200 keV to 10 TeV in 54 bins
|
||||
@@ -639,7 +658,7 @@ conv: for gamma SubType= 14
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e- SubType= 2
|
||||
@@ -666,7 +685,7 @@ CoulombScat: for e- SubType= 1
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e+ SubType= 2
|
||||
@@ -716,13 +735,14 @@ hBrems: for proton SubType= 3
|
||||
hPairProd: for proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for GenericIon SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -736,7 +756,7 @@ ionIoni: for GenericIon SubType= 2
|
||||
msc: for alpha SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for alpha SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -768,6 +788,7 @@ hBrems: for anti_proton SubType= 3
|
||||
hPairProd: for anti_proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -793,6 +814,7 @@ hBrems: for kaon+ SubType= 3
|
||||
hPairProd: for kaon+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -818,6 +840,7 @@ hBrems: for kaon- SubType= 3
|
||||
hPairProd: for kaon- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -844,6 +867,7 @@ muBrems: for mu+ SubType= 3
|
||||
muPairProd: for mu+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -876,6 +900,7 @@ muBrems: for mu- SubType= 3
|
||||
muPairProd: for mu- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -907,6 +932,7 @@ hBrems: for pi+ SubType= 3
|
||||
hPairProd: for pi+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -932,22 +958,24 @@ hBrems: for pi- SubType= 3
|
||||
hPairProd: for pi- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
### Run 1 starts.
|
||||
### Run 1 start.
|
||||
Using Root analysis manager
|
||||
|
||||
---> Begin of event: 0
|
||||
... open Root analysis file : B4.root - done
|
||||
--> Event 0 starts.
|
||||
---> End of event: 0
|
||||
Absorber: total energy: 282.08 MeV total track length: 20.1981 cm
|
||||
Gap: total energy: 16.6294 MeV total track length: 8.51564 cm
|
||||
Absorber: total energy: 282.146 MeV total track length: 20.3465 cm
|
||||
Gap: total energy: 18.8759 MeV total track length: 9.43449 cm
|
||||
|
||||
----> print histograms statistic
|
||||
----> print histograms statistic for the entire run
|
||||
|
||||
EAbs : mean = 282.08 MeV rms = 0 eV
|
||||
EGap : mean = 16.6294 MeV rms = 0 eV
|
||||
LAbs : mean = 20.1981 cm rms = 0 fm
|
||||
LGap : mean = 8.51564 cm rms = 0 fm
|
||||
EAbs : mean = 282.146 MeV rms = 0 eV
|
||||
EGap : mean = 18.8759 MeV rms = 0 eV
|
||||
LAbs : mean = 20.3465 cm rms = 0 fm
|
||||
LGap : mean = 9.43449 cm rms = 0 fm
|
||||
... write Root file : B4.root - done
|
||||
|
||||
phot: for gamma SubType= 12
|
||||
LambdaPrime table from 200 keV to 10 TeV in 54 bins
|
||||
@@ -969,7 +997,7 @@ conv: for gamma SubType= 14
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e- SubType= 2
|
||||
@@ -996,7 +1024,7 @@ CoulombScat: for e- SubType= 1
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e+ SubType= 2
|
||||
@@ -1046,13 +1074,14 @@ hBrems: for proton SubType= 3
|
||||
hPairProd: for proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for GenericIon SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -1066,7 +1095,7 @@ ionIoni: for GenericIon SubType= 2
|
||||
msc: for alpha SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for alpha SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -1098,6 +1127,7 @@ hBrems: for anti_proton SubType= 3
|
||||
hPairProd: for anti_proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1123,6 +1153,7 @@ hBrems: for kaon+ SubType= 3
|
||||
hPairProd: for kaon+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1148,6 +1179,7 @@ hBrems: for kaon- SubType= 3
|
||||
hPairProd: for kaon- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1174,6 +1206,7 @@ muBrems: for mu+ SubType= 3
|
||||
muPairProd: for mu+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1206,6 +1239,7 @@ muBrems: for mu- SubType= 3
|
||||
muPairProd: for mu- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1237,6 +1271,7 @@ hBrems: for pi+ SubType= 3
|
||||
hPairProd: for pi+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1262,21 +1297,23 @@ hBrems: for pi- SubType= 3
|
||||
hPairProd: for pi- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
### Run 2 starts.
|
||||
### Run 2 start.
|
||||
Using Root analysis manager
|
||||
|
||||
---> Begin of event: 0
|
||||
... open Root analysis file : B4.root - done
|
||||
--> Event 0 starts.
|
||||
---> End of event: 0
|
||||
Absorber: total energy: 462.772 MeV total track length: 33.1144 cm
|
||||
Gap: total energy: 21.7635 MeV total track length: 11.0673 cm
|
||||
Absorber: total energy: 468.273 MeV total track length: 33.5299 cm
|
||||
Gap: total energy: 16.8004 MeV total track length: 8.15542 cm
|
||||
|
||||
----> print histograms statistic
|
||||
----> print histograms statistic for the entire run
|
||||
|
||||
EAbs : mean = 462.772 MeV rms = 0 eV
|
||||
EGap : mean = 21.7635 MeV rms = 0 eV
|
||||
LAbs : mean = 33.1144 cm rms = 0 fm
|
||||
LGap : mean = 11.0673 cm rms = 0 fm
|
||||
EAbs : mean = 468.273 MeV rms = 0 eV
|
||||
EGap : mean = 16.8004 MeV rms = 0 eV
|
||||
LAbs : mean = 33.5299 cm rms = 0 fm
|
||||
LGap : mean = 8.15542 cm rms = 0 fm
|
||||
... write Root file : B4.root - done
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
/gui/addMenu run Run
|
||||
/gui/addButton run "beamOn 1" "/run/beamOn 1"
|
||||
/gui/addButton run run1 "/control/execute run1.mac"
|
||||
/gui/addButton run run2 "/control/execute run2.mac"
|
||||
#
|
||||
# Gun menu :
|
||||
/gui/addMenu gun Gun
|
||||
@@ -38,14 +37,14 @@
|
||||
# Viewer menu :
|
||||
/gui/addMenu viewer Viewer
|
||||
/gui/addButton viewer "Set style surface" "/vis/viewer/set/style surface"
|
||||
/gui/addButton viewer "Set style wireframe" "/vis/viewer/set/style wire"
|
||||
/gui/addButton viewer "Set style wireframe" "/vis/viewer/set/style wireframe"
|
||||
/gui/addButton viewer "Refresh viewer" "/vis/viewer/refresh"
|
||||
/gui/addButton viewer "Update viewer (interaction or end-of-file)" "/vis/viewer/update"
|
||||
/gui/addButton viewer "Flush viewer (= refresh + update)" "/vis/viewer/flush"
|
||||
/gui/addButton viewer "Update scene" "/vis/scene/notifyHandlers"
|
||||
#
|
||||
# To limit the output flow in the "dump" widget :
|
||||
/B4/event/setPrintModulo 100
|
||||
/run/printProgress 100
|
||||
#
|
||||
# User defined icon :
|
||||
/gui/addIcon "Run beam on" user_icon "/run/beamOn 1" run.png
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4Analysis.hh 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4Analysis.hh
|
||||
/// \brief Selection of the analysis technology
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4DetectorConstruction.hh 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file B4DetectorConstruction.hh
|
||||
/// \brief Definition of the B4DetectorConstruction class
|
||||
@@ -34,10 +34,8 @@
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4Box;
|
||||
class G4VPhysicalVolume;
|
||||
class G4UniformMagField;
|
||||
class G4GenericMessenger;
|
||||
class G4GlobalMagFieldMessenger;
|
||||
|
||||
/// Detector construction class to define materials and geometry.
|
||||
/// The calorimeter is a box made of a given number of layers. A layer consists
|
||||
@@ -50,10 +48,8 @@ class G4GenericMessenger;
|
||||
/// - the number of layers,
|
||||
/// - the transverse size of the calorimeter (the input face is a square).
|
||||
///
|
||||
/// In addition a transverse uniform magnetic field is defined in
|
||||
/// SetMagField() method which can be activated
|
||||
/// via a command defined using G4GenericMessenger class:
|
||||
/// - /B4/det/setMagField value unit
|
||||
/// In addition a transverse uniform magnetic field is defined
|
||||
/// via G4GlobalMagFieldMessenger class.
|
||||
|
||||
class B4DetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
@@ -63,11 +59,8 @@ class B4DetectorConstruction : public G4VUserDetectorConstruction
|
||||
|
||||
public:
|
||||
virtual G4VPhysicalVolume* Construct();
|
||||
virtual void ConstructSDandField();
|
||||
|
||||
// set methods
|
||||
//
|
||||
void SetMagField(G4double fieldValue);
|
||||
|
||||
// get methods
|
||||
//
|
||||
const G4VPhysicalVolume* GetAbsorberPV() const;
|
||||
@@ -81,11 +74,11 @@ class B4DetectorConstruction : public G4VUserDetectorConstruction
|
||||
|
||||
// data members
|
||||
//
|
||||
G4GenericMessenger* fMessenger; // messenger
|
||||
G4UniformMagField* fMagField; // magnetic field
|
||||
|
||||
G4VPhysicalVolume* fAbsorberPV; // the absorber physical volume
|
||||
G4VPhysicalVolume* fGapPV; // the gap physical volume
|
||||
static G4ThreadLocal G4GlobalMagFieldMessenger* fMagFieldMessenger;
|
||||
// magnetic field messenger
|
||||
|
||||
G4VPhysicalVolume* fAbsorberPV; // the absorber physical volume
|
||||
G4VPhysicalVolume* fGapPV; // the gap physical volume
|
||||
|
||||
G4bool fCheckOverlaps; // option to activate checking of volumes overlaps
|
||||
};
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4PrimaryGeneratorAction.hh 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4PrimaryGeneratorAction.hh
|
||||
/// \brief Definition of the B4PrimaryGeneratorAction class
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: B4bActionInitialization.hh 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4bActionInitialization.hh
|
||||
/// \brief Definition of the B4bActionInitialization class
|
||||
|
||||
#ifndef B4bActionInitialization_h
|
||||
#define B4bActionInitialization_h 1
|
||||
|
||||
#include "G4VUserActionInitialization.hh"
|
||||
|
||||
class B4DetectorConstruction;
|
||||
|
||||
/// Action initialization class.
|
||||
///
|
||||
|
||||
class B4bActionInitialization : public G4VUserActionInitialization
|
||||
{
|
||||
public:
|
||||
B4bActionInitialization(B4DetectorConstruction*);
|
||||
virtual ~B4bActionInitialization();
|
||||
|
||||
virtual void BuildForMaster() const;
|
||||
virtual void Build() const;
|
||||
|
||||
private:
|
||||
B4DetectorConstruction* fDetConstruction;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4bEventAction.hh 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file B4bEventAction.hh
|
||||
/// \brief Definition of the B4bEventAction class
|
||||
@@ -34,18 +34,11 @@
|
||||
#include "G4UserEventAction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4GenericMessenger;
|
||||
|
||||
/// Event action class
|
||||
///
|
||||
/// In EndOfEventAction(), it prints the accumulated quantities of the energy
|
||||
/// deposit and track lengths of charged particles in Absober and Gap layers
|
||||
/// stored in B4bRunData object.
|
||||
///
|
||||
/// The data member fPrintModulo defines the frequency of printing.
|
||||
/// the accumulated quantities. Its value can be changed via a command
|
||||
/// defined using G4GenericMessenger class:
|
||||
/// - /B4/event/setPrintModulo value
|
||||
|
||||
class B4bEventAction : public G4UserEventAction
|
||||
{
|
||||
@@ -55,25 +48,12 @@ class B4bEventAction : public G4UserEventAction
|
||||
|
||||
virtual void BeginOfEventAction(const G4Event* event);
|
||||
virtual void EndOfEventAction(const G4Event* event);
|
||||
|
||||
void SetPrintModulo(G4int value);
|
||||
|
||||
private:
|
||||
// methods
|
||||
void PrintEventStatistics(G4double absoEdep, G4double absoTrackLength,
|
||||
G4double gapEdep, G4double gapTrackLength) const;
|
||||
|
||||
// data members
|
||||
G4GenericMessenger* fMessenger;
|
||||
|
||||
G4int fPrintModulo;
|
||||
};
|
||||
|
||||
// inline functions
|
||||
|
||||
inline void B4bEventAction::SetPrintModulo(G4int value) {
|
||||
fPrintModulo = value;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
|
||||
+10
-8
@@ -23,13 +23,13 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4bRunAction.hh 66536 2012-12-19 14:32:36Z ihrivnac $
|
||||
//
|
||||
/// \file B4RunAction.hh
|
||||
/// \brief Definition of the B4RunAction class
|
||||
/// \file B4bRunAction.hh
|
||||
/// \brief Definition of the B4bRunAction class
|
||||
|
||||
#ifndef B4RunAction_h
|
||||
#define B4RunAction_h 1
|
||||
#ifndef B4bRunAction_h
|
||||
#define B4bRunAction_h 1
|
||||
|
||||
#include "G4UserRunAction.hh"
|
||||
#include "globals.hh"
|
||||
@@ -54,11 +54,13 @@ class G4Run;
|
||||
/// dispersion is printed.
|
||||
///
|
||||
|
||||
class B4RunAction : public G4UserRunAction
|
||||
class B4bRunAction : public G4UserRunAction
|
||||
{
|
||||
public:
|
||||
B4RunAction();
|
||||
virtual ~B4RunAction();
|
||||
B4bRunAction();
|
||||
virtual ~B4bRunAction();
|
||||
|
||||
virtual G4Run* GenerateRun();
|
||||
|
||||
virtual void BeginOfRunAction(const G4Run*);
|
||||
virtual void EndOfRunAction(const G4Run*);
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4bRunData.hh 69223 2013-04-23 12:36:10Z gcosmo $
|
||||
//
|
||||
/// \file B4bRunData.hh
|
||||
/// \brief Definition of the B4bRunData class
|
||||
@@ -31,6 +31,7 @@
|
||||
#ifndef B4bRunData_h
|
||||
#define B4bRunData_h 1
|
||||
|
||||
#include "G4Run.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -41,8 +42,6 @@ enum {
|
||||
kDim = 2
|
||||
};
|
||||
|
||||
class B4bRunData;
|
||||
|
||||
/// Run data class
|
||||
///
|
||||
/// It defines data members to hold the energy deposit and track lengths
|
||||
@@ -56,14 +55,12 @@ class B4bRunData;
|
||||
/// the accumulated values are filled in histograms and entuple
|
||||
/// event by event in B4EventAction.
|
||||
|
||||
class B4bRunData
|
||||
class B4bRunData : public G4Run
|
||||
{
|
||||
public:
|
||||
B4bRunData();
|
||||
virtual ~B4bRunData();
|
||||
|
||||
static B4bRunData* GetInstance() { return fgInstance; }
|
||||
|
||||
void Add(G4int id, G4double de, G4double dl);
|
||||
void FillPerEvent();
|
||||
|
||||
@@ -75,8 +72,6 @@ public:
|
||||
G4double GetTrackLength(G4int id) const;
|
||||
|
||||
private:
|
||||
static B4bRunData* fgInstance;
|
||||
|
||||
G4String fVolumeNames[kDim];
|
||||
G4double fEdep[kDim];
|
||||
G4double fTrackLength[kDim];
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4bSteppingAction.hh 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4bSteppingAction.hh
|
||||
/// \brief Definition of the B4bSteppingAction class
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Macro file for the initialization phase of "exampleN03.cc"
|
||||
# Macro file for the initialization phase of example B4
|
||||
# when running in interactive mode without visualization
|
||||
#
|
||||
# Set some default verbose
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Macro file for the initialization phase of "exampleN03.cc"
|
||||
# Macro file for the initialization phase of example B4
|
||||
# when running in interactive mode with visualization
|
||||
#
|
||||
# Sets some default verbose
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
# 20 events
|
||||
#
|
||||
/tracking/verbose 0
|
||||
/B4/event/setPrintModulo 5
|
||||
/run/printProgress 5
|
||||
/run/beamOn 20
|
||||
#
|
||||
# Magnetic field
|
||||
#
|
||||
/B4/det/setMagField 0.2 tesla
|
||||
/globalField/setValue 0.2 0 0 tesla
|
||||
/run/beamOn 3
|
||||
#
|
||||
# Activate/inactivate physics processes
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
# electron 50 MeV in direction (0.,0.,1.)
|
||||
# 1000 events
|
||||
#
|
||||
/B4/event/setPrintModulo 100
|
||||
/run/printProgress 100
|
||||
/run/beamOn 1000
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4DetectorConstruction.cc 77601 2013-11-26 17:08:44Z gcosmo $
|
||||
//
|
||||
/// \file B4DetectorConstruction.cc
|
||||
/// \brief Implementation of the B4DetectorConstruction class
|
||||
@@ -37,7 +37,8 @@
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
#include "G4PVReplica.hh"
|
||||
#include "G4UniformMagField.hh"
|
||||
#include "G4GlobalMagFieldMessenger.hh"
|
||||
#include "G4AutoDelete.hh"
|
||||
|
||||
#include "G4GeometryManager.hh"
|
||||
#include "G4PhysicalVolumeStore.hh"
|
||||
@@ -47,43 +48,28 @@
|
||||
#include "G4VisAttributes.hh"
|
||||
#include "G4Colour.hh"
|
||||
|
||||
#include "G4FieldManager.hh"
|
||||
#include "G4TransportationManager.hh"
|
||||
#include "G4GenericMessenger.hh"
|
||||
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
#include <stdio.h>
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4ThreadLocal
|
||||
G4GlobalMagFieldMessenger* B4DetectorConstruction::fMagFieldMessenger = 0;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4DetectorConstruction::B4DetectorConstruction()
|
||||
: G4VUserDetectorConstruction(),
|
||||
fMessenger(0),
|
||||
fMagField(0),
|
||||
fAbsorberPV(0),
|
||||
fGapPV(0),
|
||||
fCheckOverlaps(true)
|
||||
{
|
||||
// Define /B4/det commands using generic messenger class
|
||||
fMessenger
|
||||
= new G4GenericMessenger(this, "/B4/det/", "Detector construction control");
|
||||
|
||||
// Define /B4/det/setMagField command
|
||||
G4GenericMessenger::Command& setMagFieldCmd
|
||||
= fMessenger->DeclareMethod("setMagField",
|
||||
&B4DetectorConstruction::SetMagField,
|
||||
"Define magnetic field value (in X direction");
|
||||
setMagFieldCmd.SetUnitCategory("Magnetic flux density");
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4DetectorConstruction::~B4DetectorConstruction()
|
||||
{
|
||||
delete fMagField;
|
||||
delete fMessenger;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -103,8 +89,7 @@ void B4DetectorConstruction::DefineMaterials()
|
||||
{
|
||||
// Lead material defined using NIST Manager
|
||||
G4NistManager* nistManager = G4NistManager::Instance();
|
||||
G4bool fromIsotopes = false;
|
||||
nistManager->FindOrBuildMaterial("G4_Pb", fromIsotopes);
|
||||
nistManager->FindOrBuildMaterial("G4_Pb");
|
||||
|
||||
// Liquid argon material
|
||||
G4double a; // mass of a mole;
|
||||
@@ -142,9 +127,10 @@ G4VPhysicalVolume* B4DetectorConstruction::DefineVolumes()
|
||||
G4Material* gapMaterial = G4Material::GetMaterial("liquidArgon");
|
||||
|
||||
if ( ! defaultMaterial || ! absorberMaterial || ! gapMaterial ) {
|
||||
G4cerr << "Cannot retrieve materials already defined. " << G4endl;
|
||||
G4cerr << "Exiting application " << G4endl;
|
||||
exit(1);
|
||||
G4ExceptionDescription msg;
|
||||
msg << "Cannot retrieve materials already defined.";
|
||||
G4Exception("B4DetectorConstruction::DefineVolumes()",
|
||||
"MyCode0001", FatalException, msg);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -290,25 +276,17 @@ G4VPhysicalVolume* B4DetectorConstruction::DefineVolumes()
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4DetectorConstruction::SetMagField(G4double fieldValue)
|
||||
{
|
||||
// Apply a global uniform magnetic field along X axis
|
||||
G4FieldManager* fieldManager
|
||||
= G4TransportationManager::GetTransportationManager()->GetFieldManager();
|
||||
|
||||
// Delete the existing magnetic field
|
||||
if ( fMagField ) delete fMagField;
|
||||
|
||||
if ( fieldValue != 0. ) {
|
||||
// create a new one if not null
|
||||
fMagField
|
||||
= new G4UniformMagField(G4ThreeVector(fieldValue, 0., 0.));
|
||||
|
||||
fieldManager->SetDetectorField(fMagField);
|
||||
fieldManager->CreateChordFinder(fMagField);
|
||||
}
|
||||
else {
|
||||
fMagField = 0;
|
||||
fieldManager->SetDetectorField(fMagField);
|
||||
}
|
||||
void B4DetectorConstruction::ConstructSDandField()
|
||||
{
|
||||
// Create global magnetic field messenger.
|
||||
// Uniform magnetic field is then created automatically if
|
||||
// the field value is not zero.
|
||||
G4ThreeVector fieldValue = G4ThreeVector();
|
||||
fMagFieldMessenger = new G4GlobalMagFieldMessenger(fieldValue);
|
||||
fMagFieldMessenger->SetVerboseLevel(1);
|
||||
|
||||
// Register the field messenger for deleting
|
||||
G4AutoDelete::Register(fMagFieldMessenger);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4PrimaryGeneratorAction.cc 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file B4PrimaryGeneratorAction.cc
|
||||
/// \brief Implementation of the B4PrimaryGeneratorAction class
|
||||
@@ -85,9 +85,12 @@ void B4PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
|
||||
worldZHalfLength = worldBox->GetZHalfLength();
|
||||
}
|
||||
else {
|
||||
G4cerr << "World volume of box not found." << G4endl;
|
||||
G4cerr << "Perhaps you have changed geometry." << G4endl;
|
||||
G4cerr << "The gun will be place in the center." << G4endl;
|
||||
G4ExceptionDescription msg;
|
||||
msg << "World volume of box not found." << G4endl;
|
||||
msg << "Perhaps you have changed geometry." << G4endl;
|
||||
msg << "The gun will be place in the center.";
|
||||
G4Exception("B4PrimaryGeneratorAction::GeneratePrimaries()",
|
||||
"MyCode0002", JustWarning, msg);
|
||||
}
|
||||
|
||||
// Set gun position
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: B4bActionInitialization.cc 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4bActionInitialization.cc
|
||||
/// \brief Implementation of the B4bActionInitialization class
|
||||
|
||||
#include "B4bActionInitialization.hh"
|
||||
#include "B4PrimaryGeneratorAction.hh"
|
||||
#include "B4bRunAction.hh"
|
||||
#include "B4bEventAction.hh"
|
||||
#include "B4bSteppingAction.hh"
|
||||
#include "G4MTRunManager.hh"
|
||||
#include "B4DetectorConstruction.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4bActionInitialization::B4bActionInitialization
|
||||
(B4DetectorConstruction* detConstruction)
|
||||
: G4VUserActionInitialization(),
|
||||
fDetConstruction(detConstruction)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4bActionInitialization::~B4bActionInitialization()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4bActionInitialization::BuildForMaster() const
|
||||
{
|
||||
SetUserAction(new B4bRunAction);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4bActionInitialization::Build() const
|
||||
{
|
||||
SetUserAction(new B4PrimaryGeneratorAction);
|
||||
SetUserAction(new B4bRunAction);
|
||||
SetUserAction(new B4bEventAction);
|
||||
SetUserAction(new B4bSteppingAction(fDetConstruction));
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4bEventAction.cc 75604 2013-11-04 13:17:26Z gcosmo $
|
||||
//
|
||||
/// \file B4bEventAction.cc
|
||||
/// \brief Implementation of the B4bEventAction class
|
||||
@@ -33,7 +33,6 @@
|
||||
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4Event.hh"
|
||||
#include "G4GenericMessenger.hh"
|
||||
#include "G4UnitsTable.hh"
|
||||
|
||||
#include "Randomize.hh"
|
||||
@@ -42,27 +41,13 @@
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4bEventAction::B4bEventAction()
|
||||
: G4UserEventAction(),
|
||||
fMessenger(0),
|
||||
fPrintModulo(1)
|
||||
{
|
||||
// Define /B4/event commands using generic messenger class
|
||||
fMessenger = new G4GenericMessenger(this, "/B4/event/", "Event control");
|
||||
|
||||
// Define /B4/event/setPrintModulo command
|
||||
G4GenericMessenger::Command& setPrintModulo
|
||||
= fMessenger->DeclareProperty("setPrintModulo",
|
||||
fPrintModulo,
|
||||
"Print events modulo n");
|
||||
setPrintModulo.SetRange("value>0");
|
||||
}
|
||||
: G4UserEventAction()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4bEventAction::~B4bEventAction()
|
||||
{
|
||||
delete fMessenger;
|
||||
}
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -86,37 +71,35 @@ void B4bEventAction::PrintEventStatistics(
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4bEventAction::BeginOfEventAction(const G4Event* evt)
|
||||
void B4bEventAction::BeginOfEventAction(const G4Event* /*event*/)
|
||||
{
|
||||
|
||||
G4int eventID = evt->GetEventID();
|
||||
if ( eventID % fPrintModulo == 0 ) {
|
||||
G4cout << "\n---> Begin of event: " << eventID << G4endl;
|
||||
//CLHEP::HepRandom::showEngineStatus();
|
||||
}
|
||||
|
||||
B4bRunData::GetInstance()->Reset();
|
||||
B4bRunData* runData
|
||||
= static_cast<B4bRunData*>(
|
||||
G4RunManager::GetRunManager()->GetNonConstCurrentRun());
|
||||
runData->Reset();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4bEventAction::EndOfEventAction(const G4Event* event)
|
||||
{
|
||||
//accumulates statistic
|
||||
//
|
||||
B4bRunData::GetInstance()->FillPerEvent();
|
||||
|
||||
B4bRunData* runData
|
||||
= static_cast<B4bRunData*>(
|
||||
G4RunManager::GetRunManager()->GetNonConstCurrentRun());
|
||||
runData->FillPerEvent();
|
||||
|
||||
//print per event (modulo n)
|
||||
//
|
||||
G4int eventID = event->GetEventID();
|
||||
if ( eventID % fPrintModulo == 0) {
|
||||
G4int printModulo = G4RunManager::GetRunManager()->GetPrintProgress();
|
||||
if ( ( printModulo > 0 ) && ( eventID % printModulo == 0 ) ) {
|
||||
G4cout << "---> End of event: " << eventID << G4endl;
|
||||
|
||||
PrintEventStatistics(
|
||||
B4bRunData::GetInstance()->GetEdep(kAbs),
|
||||
B4bRunData::GetInstance()->GetTrackLength(kAbs),
|
||||
B4bRunData::GetInstance()->GetEdep(kGap),
|
||||
B4bRunData::GetInstance()->GetTrackLength(kGap));
|
||||
runData->GetEdep(kAbs),
|
||||
runData->GetTrackLength(kAbs),
|
||||
runData->GetEdep(kGap),
|
||||
runData->GetTrackLength(kGap));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+84
-68
@@ -23,12 +23,13 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4bRunAction.cc 68835 2013-04-06 07:12:41Z asaim $
|
||||
//
|
||||
/// \file B4RunAction.cc
|
||||
/// \brief Implementation of the B4RunAction class
|
||||
/// \file B4bRunAction.cc
|
||||
/// \brief Implementation of the B4bRunAction class
|
||||
|
||||
#include "B4RunAction.hh"
|
||||
#include "B4bRunAction.hh"
|
||||
#include "B4bRunData.hh"
|
||||
#include "B4Analysis.hh"
|
||||
|
||||
#include "G4Run.hh"
|
||||
@@ -38,53 +39,33 @@
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4RunAction::B4RunAction()
|
||||
B4bRunAction::B4bRunAction()
|
||||
: G4UserRunAction()
|
||||
{
|
||||
}
|
||||
// set printing event number per each event
|
||||
G4RunManager::GetRunManager()->SetPrintProgress(1);
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4RunAction::~B4RunAction()
|
||||
{
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4RunAction::BeginOfRunAction(const G4Run* run)
|
||||
{
|
||||
G4cout << "### Run " << run->GetRunID() << " start." << G4endl;
|
||||
|
||||
//inform the runManager to save random number seed
|
||||
//G4RunManager::GetRunManager()->SetRandomNumberStore(true);
|
||||
|
||||
// Book histograms, ntuple
|
||||
//
|
||||
|
||||
// Create analysis manager
|
||||
// The choice of analysis technology is done via selectin of a namespace
|
||||
// in B4Analysis.hh
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
G4cout << "Using " << analysisManager->GetType()
|
||||
<< " analysis manager" << G4endl;
|
||||
G4cout << "Using " << analysisManager->GetType() << G4endl;
|
||||
|
||||
// Create directories
|
||||
//analysisManager->SetHistoDirectoryName("histograms");
|
||||
//analysisManager->SetNtupleDirectoryName("ntuple");
|
||||
|
||||
// Open an output file
|
||||
//
|
||||
G4String fileName = "B4";
|
||||
analysisManager->OpenFile(fileName);
|
||||
analysisManager->SetVerboseLevel(1);
|
||||
analysisManager->SetFirstHistoId(1);
|
||||
|
||||
// Creating histograms
|
||||
// Book histograms, ntuple
|
||||
//
|
||||
|
||||
// Creating histograms
|
||||
analysisManager->CreateH1("1","Edep in absorber", 100, 0., 800*MeV);
|
||||
analysisManager->CreateH1("2","Edep in gap", 100, 0., 100*MeV);
|
||||
analysisManager->CreateH1("3","trackL in absorber", 100, 0., 1*m);
|
||||
analysisManager->CreateH1("4","trackL in gap", 100, 0., 50*cm);
|
||||
|
||||
|
||||
// Creating ntuple
|
||||
//
|
||||
analysisManager->CreateNtuple("B4", "Edep and TrackL");
|
||||
@@ -97,43 +78,78 @@ void B4RunAction::BeginOfRunAction(const G4Run* run)
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4RunAction::EndOfRunAction(const G4Run* aRun)
|
||||
B4bRunAction::~B4bRunAction()
|
||||
{
|
||||
G4int nofEvents = aRun->GetNumberOfEvent();
|
||||
if ( nofEvents == 0 ) return;
|
||||
|
||||
// print histogram statistics
|
||||
//
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
if ( analysisManager->GetH1(1) ) {
|
||||
G4cout << "\n ----> print histograms statistic \n" << G4endl;
|
||||
|
||||
G4cout
|
||||
<< " EAbs : mean = " << G4BestUnit(analysisManager->GetH1(1)->mean(), "Energy")
|
||||
<< " rms = " << G4BestUnit(analysisManager->GetH1(1)->rms(), "Energy")
|
||||
<< G4endl;
|
||||
G4cout
|
||||
<< " EGap : mean = " << G4BestUnit(analysisManager->GetH1(2)->mean(), "Energy")
|
||||
<< " rms = " << G4BestUnit(analysisManager->GetH1(2)->rms(), "Energy")
|
||||
<< G4endl;
|
||||
G4cout
|
||||
<< " LAbs : mean = " << G4BestUnit(analysisManager->GetH1(3)->mean(), "Length")
|
||||
<< " rms = " << G4BestUnit(analysisManager->GetH1(3)->rms(), "Length")
|
||||
<< G4endl;
|
||||
G4cout
|
||||
<< " LGap : mean = " << G4BestUnit(analysisManager->GetH1(4)->mean(), "Length")
|
||||
<< " rms = " << G4BestUnit(analysisManager->GetH1(4)->rms(), "Length")
|
||||
<< G4endl;
|
||||
}
|
||||
|
||||
// save histograms
|
||||
//
|
||||
analysisManager->Write();
|
||||
analysisManager->CloseFile();
|
||||
|
||||
// complete cleanup
|
||||
//
|
||||
delete G4AnalysisManager::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4Run* B4bRunAction::GenerateRun()
|
||||
{
|
||||
return (new B4bRunData);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4bRunAction::BeginOfRunAction(const G4Run* run)
|
||||
{
|
||||
G4cout << "### Run " << run->GetRunID() << " start." << G4endl;
|
||||
|
||||
//inform the runManager to save random number seed
|
||||
//G4RunManager::GetRunManager()->SetRandomNumberStore(true);
|
||||
|
||||
// Get analysis manager
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
|
||||
// Open an output file
|
||||
//
|
||||
G4String fileName = "B4";
|
||||
analysisManager->OpenFile(fileName);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4bRunAction::EndOfRunAction(const G4Run* /*aRun*/)
|
||||
{
|
||||
// print histogram statistics
|
||||
//
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
if ( analysisManager->GetH1(1) ) {
|
||||
G4cout << "\n ----> print histograms statistic ";
|
||||
if(isMaster) {
|
||||
G4cout << "for the entire run \n" << G4endl;
|
||||
}
|
||||
else {
|
||||
G4cout << "for the local thread \n" << G4endl;
|
||||
}
|
||||
|
||||
G4cout << " EAbs : mean = "
|
||||
<< G4BestUnit(analysisManager->GetH1(1)->mean(), "Energy")
|
||||
<< " rms = "
|
||||
<< G4BestUnit(analysisManager->GetH1(1)->rms(), "Energy") << G4endl;
|
||||
|
||||
G4cout << " EGap : mean = "
|
||||
<< G4BestUnit(analysisManager->GetH1(2)->mean(), "Energy")
|
||||
<< " rms = "
|
||||
<< G4BestUnit(analysisManager->GetH1(2)->rms(), "Energy") << G4endl;
|
||||
|
||||
G4cout << " LAbs : mean = "
|
||||
<< G4BestUnit(analysisManager->GetH1(3)->mean(), "Length")
|
||||
<< " rms = "
|
||||
<< G4BestUnit(analysisManager->GetH1(3)->rms(), "Length") << G4endl;
|
||||
|
||||
G4cout << " LGap : mean = "
|
||||
<< G4BestUnit(analysisManager->GetH1(4)->mean(), "Length")
|
||||
<< " rms = "
|
||||
<< G4BestUnit(analysisManager->GetH1(4)->rms(), "Length") << G4endl;
|
||||
}
|
||||
|
||||
// save histograms & ntuple
|
||||
//
|
||||
analysisManager->Write();
|
||||
analysisManager->CloseFile();
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4bRunData.cc 69223 2013-04-23 12:36:10Z gcosmo $
|
||||
//
|
||||
/// \file B4bRunData.cc
|
||||
/// \brief Implementation of the B4bRunData class
|
||||
@@ -31,25 +31,13 @@
|
||||
#include "B4bRunData.hh"
|
||||
#include "B4Analysis.hh"
|
||||
|
||||
#include "G4Run.hh"
|
||||
#include "G4RunManager.hh"
|
||||
#include "G4UnitsTable.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4bRunData* B4bRunData::fgInstance = 0;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4bRunData::B4bRunData()
|
||||
B4bRunData::B4bRunData() : G4Run()
|
||||
{
|
||||
if ( fgInstance ) {
|
||||
G4cerr << "Cannot create the run data object twice" << G4endl;
|
||||
exit(1);
|
||||
}
|
||||
|
||||
fgInstance = this;
|
||||
|
||||
fVolumeNames[0] = "Absorber";
|
||||
fVolumeNames[1] = "Gap";
|
||||
|
||||
@@ -62,9 +50,7 @@ B4bRunData::B4bRunData()
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4bRunData::~B4bRunData()
|
||||
{
|
||||
fgInstance = 0;
|
||||
}
|
||||
{;}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4bSteppingAction.cc 69223 2013-04-23 12:36:10Z gcosmo $
|
||||
//
|
||||
/// \file B4bSteppingAction.cc
|
||||
/// \brief Implementation of the B4bSteppingAction class
|
||||
@@ -69,12 +69,15 @@ void B4bSteppingAction::UserSteppingAction(const G4Step* step)
|
||||
stepLength = step->GetStepLength();
|
||||
}
|
||||
|
||||
B4bRunData* runData = static_cast<B4bRunData*>
|
||||
(G4RunManager::GetRunManager()->GetNonConstCurrentRun());
|
||||
|
||||
if ( volume == fDetConstruction->GetAbsorberPV() ) {
|
||||
B4bRunData::GetInstance()->Add(kAbs, edep, stepLength);
|
||||
runData->Add(kAbs, edep, stepLength);
|
||||
}
|
||||
|
||||
if ( volume == fDetConstruction->GetGapPV() ) {
|
||||
B4bRunData::GetInstance()->Add(kGap, edep, stepLength);
|
||||
runData->Add(kGap, edep, stepLength);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# $Id: CMakeLists.txt 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup the project
|
||||
#
|
||||
|
||||
@@ -23,18 +23,22 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: exampleB4c.cc 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file exampleB4c.cc
|
||||
/// \brief Main program of the B4c example
|
||||
|
||||
#include "B4cDetectorConstruction.hh"
|
||||
#include "B4PrimaryGeneratorAction.hh"
|
||||
#include "B4RunAction.hh"
|
||||
#include "B4cEventAction.hh"
|
||||
#include "B4cActionInitialization.hh"
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
#include "G4MTRunManager.hh"
|
||||
#else
|
||||
#include "G4RunManager.hh"
|
||||
#endif
|
||||
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4UIcommand.hh"
|
||||
#include "FTFP_BERT.hh"
|
||||
|
||||
#include "Randomize.hh"
|
||||
@@ -52,7 +56,9 @@
|
||||
namespace {
|
||||
void PrintUsage() {
|
||||
G4cerr << " Usage: " << G4endl;
|
||||
G4cerr << " exampleB4c [-m macro ] [-u UIsession]" << G4endl;
|
||||
G4cerr << " exampleB4c [-m macro ] [-u UIsession] [-t nThreads]" << G4endl;
|
||||
G4cerr << " note: -t option is available only for multi-threaded mode."
|
||||
<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,16 +68,24 @@ int main(int argc,char** argv)
|
||||
{
|
||||
// Evaluate arguments
|
||||
//
|
||||
if ( argc > 5 ) {
|
||||
if ( argc > 7 ) {
|
||||
PrintUsage();
|
||||
return 1;
|
||||
}
|
||||
|
||||
G4String macro;
|
||||
G4String session;
|
||||
#ifdef G4MULTITHREADED
|
||||
G4int nThreads = 0;
|
||||
#endif
|
||||
for ( G4int i=1; i<argc; i=i+2 ) {
|
||||
if ( G4String(argv[i]) == "-m" ) macro = argv[i+1];
|
||||
else if ( G4String(argv[i]) == "-u" ) session = argv[i+1];
|
||||
#ifdef G4MULTITHREADED
|
||||
else if ( G4String(argv[i]) == "-t" ) {
|
||||
nThreads = G4UIcommand::ConvertToInt(argv[i+1]);
|
||||
}
|
||||
#endif
|
||||
else {
|
||||
PrintUsage();
|
||||
return 1;
|
||||
@@ -80,11 +94,18 @@ int main(int argc,char** argv)
|
||||
|
||||
// Choose the Random engine
|
||||
//
|
||||
CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine);
|
||||
G4Random::setTheEngine(new CLHEP::RanecuEngine);
|
||||
|
||||
// Construct the default run manager
|
||||
//
|
||||
#ifdef G4MULTITHREADED
|
||||
G4MTRunManager * runManager = new G4MTRunManager;
|
||||
if ( nThreads > 0 ) {
|
||||
runManager->SetNumberOfThreads(nThreads);
|
||||
}
|
||||
#else
|
||||
G4RunManager * runManager = new G4RunManager;
|
||||
#endif
|
||||
|
||||
// Set mandatory initialization classes
|
||||
//
|
||||
@@ -94,14 +115,10 @@ int main(int argc,char** argv)
|
||||
G4VModularPhysicsList* physicsList = new FTFP_BERT;
|
||||
runManager->SetUserInitialization(physicsList);
|
||||
|
||||
// Set user action classes
|
||||
//
|
||||
runManager->SetUserAction(new B4PrimaryGeneratorAction());
|
||||
//
|
||||
runManager->SetUserAction(new B4RunAction());
|
||||
//
|
||||
runManager->SetUserAction(new B4cEventAction());
|
||||
|
||||
B4cActionInitialization* actionInitialization
|
||||
= new B4cActionInitialization();
|
||||
runManager->SetUserInitialization(actionInitialization);
|
||||
|
||||
// Initialize G4 kernel
|
||||
//
|
||||
runManager->Initialize();
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
############################################
|
||||
|
||||
*************************************************************
|
||||
Geant4 version Name: geant4-09-06-ref-00 (30-November-2012)
|
||||
Geant4 version Name: geant4-10-00-ref-00 (6-December-2013)
|
||||
Copyright : Geant4 Collaboration
|
||||
Reference : NIM A 506 (2003), 250-303
|
||||
WWW : http://cern.ch/geant4
|
||||
@@ -12,10 +12,13 @@
|
||||
|
||||
<<< Geant4 Physics List simulation engine: FTFP_BERT 2.0
|
||||
|
||||
Using Root
|
||||
|
||||
***** Table : Nb of materials = 3 *****
|
||||
|
||||
Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.261 cm Imean: 823.000 eV
|
||||
Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.247 cm
|
||||
Imean: 823.000 eV
|
||||
|
||||
---> Element: Pb (Pb) Z = 82.0 N = 207.2 A = 207.22 g/mole
|
||||
---> Isotope: Pb204 Z = 82 N = 204 A = 203.97 g/mole abundance: 1.40 %
|
||||
---> Isotope: Pb206 Z = 82 N = 206 A = 205.97 g/mole abundance: 24.10 %
|
||||
@@ -24,7 +27,9 @@
|
||||
ElmMassFraction: 100.00 % ElmAbundance 100.00 %
|
||||
|
||||
|
||||
Material: liquidArgon density: 1.390 g/cm3 RadL: 14.065 cm Nucl.Int.Length: 86.006 cm Imean: 188.000 eV
|
||||
Material: liquidArgon density: 1.390 g/cm3 RadL: 14.065 cm Nucl.Int.Length: 86.078 cm
|
||||
Imean: 188.000 eV
|
||||
|
||||
---> Element: liquidArgon ( ) Z = 18.0 N = 40.0 A = 39.95 g/mole
|
||||
---> Isotope: 36 Z = 18 N = 36 A = 35.97 g/mole abundance: 0.34 %
|
||||
---> Isotope: 38 Z = 18 N = 38 A = 37.96 g/mole abundance: 0.06 %
|
||||
@@ -32,7 +37,9 @@
|
||||
ElmMassFraction: 100.00 % ElmAbundance 100.00 %
|
||||
|
||||
|
||||
Material: Galactic density: 0.000 kg/m3 RadL: 204727512.315 pc Nucl.Int.Length: 114561548.020 pc Imean: 19.200 eV temperature: 2.73 K pressure: 0.00 atm
|
||||
Material: Galactic density: 0.000 kg/m3 RadL: 204727512.315 pc Nucl.Int.Length: 113804112.837 pc
|
||||
Imean: 19.200 eV temperature: 2.73 K pressure: 0.00 atm
|
||||
|
||||
---> Element: Galactic ( ) Z = 1.0 N = 1.0 A = 1.01 g/mole
|
||||
---> Isotope: 1 Z = 1 N = 1 A = 1.01 g/mole abundance: 99.99 %
|
||||
---> Isotope: 2 Z = 1 N = 2 A = 2.01 g/mole abundance: 0.01 %
|
||||
@@ -58,12 +65,10 @@ Current available graphics systems are:
|
||||
DAWNFILE (DAWNFILE)
|
||||
G4HepRep (HepRepXML)
|
||||
G4HepRepFile (HepRepFile)
|
||||
OpenGLImmediateQt (OGLI, OGLIQt)
|
||||
OpenGLImmediateX (OGLIX)
|
||||
OpenGLImmediateXm (OGLIXm, OGLI_FALLBACK, OGLIQt_FALLBACK)
|
||||
OpenGLStoredQt (OGL, OGLS, OGLSQt)
|
||||
OpenGLImmediateXm (OGLI, OGLIXm)
|
||||
OpenGLStoredX (OGLSX)
|
||||
OpenGLStoredXm (OGLSXm, OGL_FALLBACK, OGLS_FALLBACK, OGLSQt_FALLBACK)
|
||||
OpenGLStoredXm (OGL, OGLS, OGLSXm)
|
||||
RayTracer (RayTracer)
|
||||
RayTracerX (RayTracerX)
|
||||
VRML1FILE (VRML1FILE)
|
||||
@@ -116,7 +121,7 @@ conv: for gamma SubType= 14
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e- SubType= 2
|
||||
@@ -143,7 +148,7 @@ CoulombScat: for e- SubType= 1
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e+ SubType= 2
|
||||
@@ -193,13 +198,14 @@ hBrems: for proton SubType= 3
|
||||
hPairProd: for proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for GenericIon SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -213,7 +219,7 @@ ionIoni: for GenericIon SubType= 2
|
||||
msc: for alpha SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for alpha SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -245,6 +251,7 @@ hBrems: for anti_proton SubType= 3
|
||||
hPairProd: for anti_proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -270,6 +277,7 @@ hBrems: for kaon+ SubType= 3
|
||||
hPairProd: for kaon+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -295,6 +303,7 @@ hBrems: for kaon- SubType= 3
|
||||
hPairProd: for kaon- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -321,6 +330,7 @@ muBrems: for mu+ SubType= 3
|
||||
muPairProd: for mu+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -353,6 +363,7 @@ muBrems: for mu- SubType= 3
|
||||
muPairProd: for mu- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -384,6 +395,7 @@ hBrems: for pi+ SubType= 3
|
||||
hPairProd: for pi+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -409,215 +421,221 @@ hBrems: for pi- SubType= 3
|
||||
hPairProd: for pi- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
============================================================================================
|
||||
HADRONIC PROCESSES SUMMARY (verbose level 1)
|
||||
|
||||
Hadronic Processes for <GenericIon>
|
||||
-----------------------------------
|
||||
ionInelastic Models: Binary Light Ion Cascade: Emin(GeV)= 0 Emax(GeV)= 4
|
||||
FTFP: Emin(GeV)= 2 Emax(GeV)= 100000
|
||||
====================================================================
|
||||
HADRONIC PROCESSES SUMMARY (verbose level 1)
|
||||
|
||||
ionInelastic Crs sctns: Glauber-Gribov nucleus nucleus: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for GenericIon
|
||||
|
||||
Process: ionInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <anti_neutron>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for anti_neutron
|
||||
|
||||
hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
AntiNeutronInelastic Models: FTFP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: anti_neutronInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
AntiNeutronInelastic Crs sctns: AntiAGlauber: Emin(GeV)= 0 Emax(GeV)= 1.79769e+305
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for anti_proton
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <anti_proton>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 0.1
|
||||
AntiAElastic: Emin(GeV)= 0.1 Emax(GeV)= 100000
|
||||
Process: anti_protonInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
hadElastic Crs sctns: AntiAGlauber: Emin(GeV)= 0 Emax(GeV)= 1.79769e+305
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
AntiProtonInelastic Models: FTFP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for e+
|
||||
|
||||
AntiProtonInelastic Crs sctns: AntiAGlauber: Emin(GeV)= 0 Emax(GeV)= 1.79769e+305
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: positronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
hFritiofCaptureAtRest
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for e-
|
||||
|
||||
Hadronic Processes for <e+>
|
||||
-----------------------------------
|
||||
PositronNuclear Models: G4ElectroVDNuclearModel: Emin(GeV)= 0 Emax(GeV)= 1e+06
|
||||
Process: electronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
PositronNuclear Crs sctns: ElectroNuclearXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for gamma
|
||||
|
||||
Process: photonNuclear
|
||||
Model: BertiniCascade: 0 eV ---> 3.5 GeV
|
||||
Model: TheoFSGenerator: 3 GeV ---> 100 TeV
|
||||
Cr_sctns: PhotoNuclearXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <e->
|
||||
-----------------------------------
|
||||
ElectroNuclear Models: G4ElectroVDNuclearModel: Emin(GeV)= 0 Emax(GeV)= 1e+06
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for kaon+
|
||||
|
||||
ElectroNuclear Crs sctns: ElectroNuclearXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: kaon+Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: ChipsKaonPlusInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <gamma>
|
||||
-----------------------------------
|
||||
PhotonInelastic Models: BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 3.5
|
||||
TheoFSGenerator: Emin(GeV)= 3 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for kaon-
|
||||
|
||||
PhotonInelastic Crs sctns: PhotoNuclearXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: kaon-Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: ChipsKaonMinusInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <kaon+>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hBertiniCaptureAtRest
|
||||
|
||||
hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for lambda
|
||||
|
||||
KaonPlusInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
KaonPlusInelastic Crs sctns: ChipsKaonPlusInelasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: lambdaInelastic
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Cr_sctns: ChipsHyperonInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for mu-
|
||||
|
||||
Hadronic Processes for <kaon->
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: muMinusCaptureAtRest
|
||||
|
||||
hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for neutron
|
||||
|
||||
KaonMinusInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: ChipsNeutronElasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
KaonMinusInelastic Crs sctns: ChipsKaonMinusInelasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: neutronInelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
hBertiniCaptureAtRest
|
||||
Process: nCapture
|
||||
Model: nRadCapture: 0 eV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaCaptureXS: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <lambda>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for pi+
|
||||
|
||||
hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 1.0001 GeV
|
||||
Model: hElasticGlauber: 1 GeV ---> 100 TeV
|
||||
Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
LambdaInelastic Models: BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 6
|
||||
FTFP: Emin(GeV)= 2 Emax(GeV)= 100000
|
||||
|
||||
LambdaInelastic Crs sctns: ChipsHyperonInelasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
|
||||
Hadronic Processes for <mu->
|
||||
muMinusCaptureAtRest
|
||||
|
||||
Hadronic Processes for <neutron>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticCHIPS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
hadElastic Crs sctns: ChipsNeutronElasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
NeutronInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
|
||||
NeutronInelastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
nCapture Models: G4LCapture: Emin(GeV)= 0 Emax(GeV)= 20000
|
||||
|
||||
nCapture Crs sctns: GheishaCaptureXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
nFission Models: G4LFission: Emin(GeV)= 0 Emax(GeV)= 20000
|
||||
|
||||
nFission Crs sctns: GheishaFissionXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
|
||||
Hadronic Processes for <pi+>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 1
|
||||
hElasticGlauber: Emin(GeV)= 1 Emax(GeV)= 100000
|
||||
|
||||
hadElastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
PionPlusInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
|
||||
PionPlusInelastic Crs sctns: G4CrossSectionPairGG: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: pi+Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: G4CrossSectionPairGG: 0 eV ---> 100 TeV
|
||||
G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections
|
||||
below 91 GeV, Glauber-Gribov above
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for pi-
|
||||
|
||||
Hadronic Processes for <pi->
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 1
|
||||
hElasticGlauber: Emin(GeV)= 1 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 1.0001 GeV
|
||||
Model: hElasticGlauber: 1 GeV ---> 100 TeV
|
||||
Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
hadElastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
PionMinusInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
|
||||
PionMinusInelastic Crs sctns: G4CrossSectionPairGG: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: pi-Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: G4CrossSectionPairGG: 0 eV ---> 100 TeV
|
||||
G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections
|
||||
below 91 GeV, Glauber-Gribov above
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
hBertiniCaptureAtRest
|
||||
Process: hBertiniCaptureAtRest
|
||||
|
||||
Hadronic Processes for <proton>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticCHIPS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for proton
|
||||
|
||||
hadElastic Crs sctns: ChipsProtonElasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: ChipsProtonElasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
ProtonInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
Process: protonInelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
ProtonInelastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
============================================================================================
|
||||
### Run 0 start.
|
||||
Using Root analysis manager
|
||||
|
||||
---> Begin of event: 0
|
||||
================================================================
|
||||
### Run 0 starts.
|
||||
... open Root analysis file : B4.root - done
|
||||
--> Event 0 starts.
|
||||
---> End of event: 0
|
||||
Absorber: total energy: 288.831 MeV total track length: 20.4665 cm
|
||||
Gap: total energy: 8.19232 MeV total track length: 3.81315 cm
|
||||
Absorber: total energy: 283.263 MeV total track length: 19.743 cm
|
||||
Gap: total energy: 10.6009 MeV total track length: 5.29096 cm
|
||||
|
||||
----> print histograms statistic
|
||||
----> print histograms statistic for the entire run
|
||||
|
||||
EAbs : mean = 288.831 MeV rms = 0 eV
|
||||
EGap : mean = 8.19232 MeV rms = 0 eV
|
||||
LAbs : mean = 20.4665 cm rms = 0 fm
|
||||
LGap : mean = 3.81315 cm rms = 0 fm
|
||||
EAbs : mean = 283.263 MeV rms = 0 eV
|
||||
EGap : mean = 10.6009 MeV rms = 0 eV
|
||||
LAbs : mean = 19.743 cm rms = 0 fm
|
||||
LGap : mean = 5.29096 cm rms = 0 fm
|
||||
... write Root file : B4.root - done
|
||||
Transportation, msc, hIoni, ionIoni
|
||||
hBrems, hPairProd, eIoni, eBrem
|
||||
annihil, CoulombScat, phot, compt
|
||||
conv, muIoni, muBrems, muPairProd
|
||||
PhotonInelastic, ElectroNuclear, PositronNuclear, Decay
|
||||
hadElastic, NeutronInelastic, nCapture, nFission
|
||||
ProtonInelastic, PionPlusInelastic, PionMinusInelastic, KaonPlusInelastic
|
||||
KaonMinusInelastic, KaonZeroLInelastic, KaonZeroSInelastic, LambdaInelastic
|
||||
AntiLambdaInelastic,SigmaMinusInelastic,AntiSigmaMinusInelastic, SigmaPlusInelastic
|
||||
AntiSigmaPlusInelastic, XiMinusInelastic,AntiXiMinusInelastic, XiZeroInelastic
|
||||
AntiXiZeroInelastic,OmegaMinusInelastic,AntiOmegaMinusInelastic,AntiProtonInelastic
|
||||
AntiNeutronInelastic,AntiDeuteronInelastic,AntiTritonInelasticProcess,AntiHe3InelasticProcess
|
||||
AntiAlphaInelasticProcess,hFritiofCaptureAtRest,hBertiniCaptureAtRest,muMinusCaptureAtRest
|
||||
dInelastic, tInelastic, He3Inelastic, alphaInelastic
|
||||
ionInelastic, nKiller
|
||||
photonNuclear, electronNuclear, positronNuclear, Decay
|
||||
hadElastic, neutronInelastic, nCapture, protonInelastic
|
||||
pi+Inelastic, pi-Inelastic, kaon+Inelastic, kaon-Inelastic
|
||||
kaon0LInelastic, kaon0SInelastic, lambdaInelastic,anti-lambdaInelastic
|
||||
sigma-Inelastic,anti_sigma-Inelastic, sigma+Inelastic,anti_sigma+Inelastic
|
||||
xi-Inelastic, anti_xi-Inelastic, xi0Inelastic, anti_xi0Inelastic
|
||||
omega-Inelastic,anti_omega-Inelastic,anti_protonInelastic,anti_neutronInelastic
|
||||
anti_deuteronInelastic,anti_tritonInelastic, anti_He3Inelastic,anti_alphaInelastic
|
||||
hFritiofCaptureAtRest,hBertiniCaptureAtRest,muMinusCaptureAtRest, dInelastic
|
||||
tInelastic, He3Inelastic, alphaInelastic, ionInelastic
|
||||
nKiller
|
||||
|
||||
phot: for gamma SubType= 12
|
||||
LambdaPrime table from 200 keV to 10 TeV in 54 bins
|
||||
@@ -639,7 +657,7 @@ conv: for gamma SubType= 14
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e- SubType= 2
|
||||
@@ -666,7 +684,7 @@ CoulombScat: for e- SubType= 1
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e+ SubType= 2
|
||||
@@ -716,13 +734,14 @@ hBrems: for proton SubType= 3
|
||||
hPairProd: for proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for GenericIon SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -736,7 +755,7 @@ ionIoni: for GenericIon SubType= 2
|
||||
msc: for alpha SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for alpha SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -768,6 +787,7 @@ hBrems: for anti_proton SubType= 3
|
||||
hPairProd: for anti_proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -793,6 +813,7 @@ hBrems: for kaon+ SubType= 3
|
||||
hPairProd: for kaon+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -818,6 +839,7 @@ hBrems: for kaon- SubType= 3
|
||||
hPairProd: for kaon- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -844,6 +866,7 @@ muBrems: for mu+ SubType= 3
|
||||
muPairProd: for mu+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -876,6 +899,7 @@ muBrems: for mu- SubType= 3
|
||||
muPairProd: for mu- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -907,6 +931,7 @@ hBrems: for pi+ SubType= 3
|
||||
hPairProd: for pi+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -932,22 +957,23 @@ hBrems: for pi- SubType= 3
|
||||
hPairProd: for pi- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
### Run 1 start.
|
||||
Using Root analysis manager
|
||||
|
||||
---> Begin of event: 0
|
||||
### Run 1 starts.
|
||||
... open Root analysis file : B4.root - done
|
||||
--> Event 0 starts.
|
||||
---> End of event: 0
|
||||
Absorber: total energy: 282.08 MeV total track length: 20.1981 cm
|
||||
Gap: total energy: 16.6294 MeV total track length: 8.51564 cm
|
||||
Absorber: total energy: 282.146 MeV total track length: 20.3465 cm
|
||||
Gap: total energy: 18.8759 MeV total track length: 9.43449 cm
|
||||
|
||||
----> print histograms statistic
|
||||
----> print histograms statistic for the entire run
|
||||
|
||||
EAbs : mean = 282.08 MeV rms = 0 eV
|
||||
EGap : mean = 16.6294 MeV rms = 0 eV
|
||||
LAbs : mean = 20.1981 cm rms = 0 fm
|
||||
LGap : mean = 8.51564 cm rms = 0 fm
|
||||
EAbs : mean = 282.146 MeV rms = 0 eV
|
||||
EGap : mean = 18.8759 MeV rms = 0 eV
|
||||
LAbs : mean = 20.3465 cm rms = 0 fm
|
||||
LGap : mean = 9.43449 cm rms = 0 fm
|
||||
... write Root file : B4.root - done
|
||||
|
||||
phot: for gamma SubType= 12
|
||||
LambdaPrime table from 200 keV to 10 TeV in 54 bins
|
||||
@@ -969,7 +995,7 @@ conv: for gamma SubType= 14
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e- SubType= 2
|
||||
@@ -996,7 +1022,7 @@ CoulombScat: for e- SubType= 1
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e+ SubType= 2
|
||||
@@ -1046,13 +1072,14 @@ hBrems: for proton SubType= 3
|
||||
hPairProd: for proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for GenericIon SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -1066,7 +1093,7 @@ ionIoni: for GenericIon SubType= 2
|
||||
msc: for alpha SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for alpha SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -1098,6 +1125,7 @@ hBrems: for anti_proton SubType= 3
|
||||
hPairProd: for anti_proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1123,6 +1151,7 @@ hBrems: for kaon+ SubType= 3
|
||||
hPairProd: for kaon+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1148,6 +1177,7 @@ hBrems: for kaon- SubType= 3
|
||||
hPairProd: for kaon- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1174,6 +1204,7 @@ muBrems: for mu+ SubType= 3
|
||||
muPairProd: for mu+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1206,6 +1237,7 @@ muBrems: for mu- SubType= 3
|
||||
muPairProd: for mu- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1237,6 +1269,7 @@ hBrems: for pi+ SubType= 3
|
||||
hPairProd: for pi+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1262,21 +1295,22 @@ hBrems: for pi- SubType= 3
|
||||
hPairProd: for pi- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
### Run 2 start.
|
||||
Using Root analysis manager
|
||||
|
||||
---> Begin of event: 0
|
||||
### Run 2 starts.
|
||||
... open Root analysis file : B4.root - done
|
||||
--> Event 0 starts.
|
||||
---> End of event: 0
|
||||
Absorber: total energy: 462.772 MeV total track length: 33.1144 cm
|
||||
Gap: total energy: 21.7635 MeV total track length: 11.0673 cm
|
||||
Absorber: total energy: 468.273 MeV total track length: 33.5299 cm
|
||||
Gap: total energy: 16.8004 MeV total track length: 8.15542 cm
|
||||
|
||||
----> print histograms statistic
|
||||
----> print histograms statistic for the entire run
|
||||
|
||||
EAbs : mean = 462.772 MeV rms = 0 eV
|
||||
EGap : mean = 21.7635 MeV rms = 0 eV
|
||||
LAbs : mean = 33.1144 cm rms = 0 fm
|
||||
LGap : mean = 11.0673 cm rms = 0 fm
|
||||
EAbs : mean = 468.273 MeV rms = 0 eV
|
||||
EGap : mean = 16.8004 MeV rms = 0 eV
|
||||
LAbs : mean = 33.5299 cm rms = 0 fm
|
||||
LGap : mean = 8.15542 cm rms = 0 fm
|
||||
... write Root file : B4.root - done
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
/gui/addMenu run Run
|
||||
/gui/addButton run "beamOn 1" "/run/beamOn 1"
|
||||
/gui/addButton run run1 "/control/execute run1.mac"
|
||||
/gui/addButton run run2 "/control/execute run2.mac"
|
||||
#
|
||||
# Gun menu :
|
||||
/gui/addMenu gun Gun
|
||||
@@ -38,14 +37,14 @@
|
||||
# Viewer menu :
|
||||
/gui/addMenu viewer Viewer
|
||||
/gui/addButton viewer "Set style surface" "/vis/viewer/set/style surface"
|
||||
/gui/addButton viewer "Set style wireframe" "/vis/viewer/set/style wire"
|
||||
/gui/addButton viewer "Set style wireframe" "/vis/viewer/set/style wireframe"
|
||||
/gui/addButton viewer "Refresh viewer" "/vis/viewer/refresh"
|
||||
/gui/addButton viewer "Update viewer (interaction or end-of-file)" "/vis/viewer/update"
|
||||
/gui/addButton viewer "Flush viewer (= refresh + update)" "/vis/viewer/flush"
|
||||
/gui/addButton viewer "Update scene" "/vis/scene/notifyHandlers"
|
||||
#
|
||||
# To limit the output flow in the "dump" widget :
|
||||
/B4/event/setPrintModulo 100
|
||||
/run/printProgress 100
|
||||
#
|
||||
# User defined icon :
|
||||
/gui/addIcon "Run beam on" user_icon "/run/beamOn 1" run.png
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4Analysis.hh 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4Analysis.hh
|
||||
/// \brief Selection of the analysis technology
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4PrimaryGeneratorAction.hh 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4PrimaryGeneratorAction.hh
|
||||
/// \brief Definition of the B4PrimaryGeneratorAction class
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4RunAction.hh 74265 2013-10-02 14:41:20Z gcosmo $
|
||||
//
|
||||
/// \file B4RunAction.hh
|
||||
/// \brief Definition of the B4RunAction class
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: B4cActionInitialization.hh 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4cActionInitialization.hh
|
||||
/// \brief Definition of the B4cActionInitialization class
|
||||
|
||||
#ifndef B4cActionInitialization_h
|
||||
#define B4cActionInitialization_h 1
|
||||
|
||||
#include "G4VUserActionInitialization.hh"
|
||||
|
||||
/// Action initialization class.
|
||||
///
|
||||
|
||||
class B4cActionInitialization : public G4VUserActionInitialization
|
||||
{
|
||||
public:
|
||||
B4cActionInitialization();
|
||||
virtual ~B4cActionInitialization();
|
||||
|
||||
virtual void BuildForMaster() const;
|
||||
virtual void Build() const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4cCalorHit.hh 69223 2013-04-23 12:36:10Z gcosmo $
|
||||
//
|
||||
/// \file B4cCalorHit.hh
|
||||
/// \brief Definition of the B4cCalorHit class
|
||||
@@ -35,6 +35,7 @@
|
||||
#include "G4THitsCollection.hh"
|
||||
#include "G4Allocator.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "tls.hh"
|
||||
|
||||
/// Calorimeter hit class
|
||||
///
|
||||
@@ -76,20 +77,24 @@ class B4cCalorHit : public G4VHit
|
||||
|
||||
typedef G4THitsCollection<B4cCalorHit> B4cCalorHitsCollection;
|
||||
|
||||
extern G4Allocator<B4cCalorHit> B4cCalorHitAllocator;
|
||||
extern G4ThreadLocal G4Allocator<B4cCalorHit>* B4cCalorHitAllocator;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
inline void* B4cCalorHit::operator new(size_t)
|
||||
{
|
||||
if(!B4cCalorHitAllocator)
|
||||
B4cCalorHitAllocator = new G4Allocator<B4cCalorHit>;
|
||||
void *hit;
|
||||
hit = (void *) B4cCalorHitAllocator.MallocSingle();
|
||||
hit = (void *) B4cCalorHitAllocator->MallocSingle();
|
||||
return hit;
|
||||
}
|
||||
|
||||
inline void B4cCalorHit::operator delete(void *hit)
|
||||
{
|
||||
B4cCalorHitAllocator.FreeSingle((B4cCalorHit*) hit);
|
||||
if(!B4cCalorHitAllocator)
|
||||
B4cCalorHitAllocator = new G4Allocator<B4cCalorHit>;
|
||||
B4cCalorHitAllocator->FreeSingle((B4cCalorHit*) hit);
|
||||
}
|
||||
|
||||
inline void B4cCalorHit::Add(G4double de, G4double dl) {
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4cCalorimeterSD.hh 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4cCalorimeterSD.hh
|
||||
/// \brief Definition of the B4cCalorimeterSD class
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4cDetectorConstruction.hh 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file B4cDetectorConstruction.hh
|
||||
/// \brief Definition of the B4cDetectorConstruction class
|
||||
@@ -34,10 +34,8 @@
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4Box;
|
||||
class G4VPhysicalVolume;
|
||||
class G4UniformMagField;
|
||||
class G4GenericMessenger;
|
||||
class G4GlobalMagFieldMessenger;
|
||||
|
||||
/// Detector construction class to define materials and geometry.
|
||||
/// The calorimeter is a box made of a given number of layers. A layer consists
|
||||
@@ -50,13 +48,10 @@ class G4GenericMessenger;
|
||||
/// - the number of layers,
|
||||
/// - the transverse size of the calorimeter (the input face is a square).
|
||||
///
|
||||
/// In DefineVolumes(), sensitive detectors of B4cCalorimeterSD type
|
||||
/// In ConstructSDandField() sensitive detectors of B4cCalorimeterSD type
|
||||
/// are created and associated with the Absorber and Gap volumes.
|
||||
///
|
||||
/// In addition a transverse uniform magnetic field is defined in
|
||||
/// SetMagField() method which can be activated
|
||||
/// via a command defined using G4GenericMessenger class:
|
||||
/// - /B4/det/setMagField value unit
|
||||
/// In addition a transverse uniform magnetic field is defined
|
||||
/// via G4GlobalMagFieldMessenger class.
|
||||
|
||||
class B4cDetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
@@ -66,10 +61,7 @@ class B4cDetectorConstruction : public G4VUserDetectorConstruction
|
||||
|
||||
public:
|
||||
virtual G4VPhysicalVolume* Construct();
|
||||
|
||||
// set methods
|
||||
//
|
||||
void SetMagField(G4double fieldValue);
|
||||
virtual void ConstructSDandField();
|
||||
|
||||
private:
|
||||
// methods
|
||||
@@ -79,10 +71,11 @@ class B4cDetectorConstruction : public G4VUserDetectorConstruction
|
||||
|
||||
// data members
|
||||
//
|
||||
G4GenericMessenger* fMessenger; // messenger
|
||||
G4UniformMagField* fMagField; // magnetic field
|
||||
static G4ThreadLocal G4GlobalMagFieldMessenger* fMagFieldMessenger;
|
||||
// magnetic field messenger
|
||||
|
||||
G4bool fCheckOverlaps; // option to activate checking of volumes overlaps
|
||||
G4int fNofLayers; // number of layers
|
||||
};
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4cEventAction.hh 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file B4cEventAction.hh
|
||||
/// \brief Definition of the B4cEventAction class
|
||||
@@ -37,18 +37,11 @@
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
class G4GenericMessenger;
|
||||
|
||||
/// Event action class
|
||||
///
|
||||
/// In EndOfEventAction(), it prints the accumulated quantities of the energy
|
||||
/// deposit and track lengths of charged particles in Absober and Gap layers
|
||||
/// stored in the hits collections.
|
||||
///
|
||||
/// The data member fPrintModulo defines the frequency of printing
|
||||
/// the accumulated quantities. Its value can be changed via a command
|
||||
/// defined using G4GenericMessenger class:
|
||||
/// - /B4/event/setPrintModulo value
|
||||
|
||||
class B4cEventAction : public G4UserEventAction
|
||||
{
|
||||
@@ -58,27 +51,18 @@ public:
|
||||
|
||||
virtual void BeginOfEventAction(const G4Event* event);
|
||||
virtual void EndOfEventAction(const G4Event* event);
|
||||
|
||||
// set methods
|
||||
void SetPrintModulo(G4int value);
|
||||
|
||||
private:
|
||||
// methods
|
||||
B4cCalorHitsCollection* GetHitsCollection(const G4String& hcName,
|
||||
B4cCalorHitsCollection* GetHitsCollection(G4int hcID,
|
||||
const G4Event* event) const;
|
||||
void PrintEventStatistics(G4double absoEdep, G4double absoTrackLength,
|
||||
G4double gapEdep, G4double gapTrackLength) const;
|
||||
|
||||
// data members
|
||||
G4GenericMessenger* fMessenger;
|
||||
G4int fPrintModulo;
|
||||
G4int fAbsHCID;
|
||||
G4int fGapHCID;
|
||||
};
|
||||
|
||||
// inline functions
|
||||
|
||||
inline void B4cEventAction::SetPrintModulo(G4int value) {
|
||||
fPrintModulo = value;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Macro file for the initialization phase of "exampleN03.cc"
|
||||
# Macro file for the initialization phase of example B4
|
||||
# when running in interactive mode without visualization
|
||||
#
|
||||
# Set some default verbose
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Macro file for the initialization phase of "exampleN03.cc"
|
||||
# Macro file for the initialization phase of example B4
|
||||
# when running in interactive mode with visualization
|
||||
#
|
||||
# Sets some default verbose
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
# 20 events
|
||||
#
|
||||
/tracking/verbose 0
|
||||
/B4/event/setPrintModulo 5
|
||||
/run/printProgress 5
|
||||
/run/beamOn 20
|
||||
#
|
||||
# Magnetic field
|
||||
#
|
||||
/B4/det/setMagField 0.2 tesla
|
||||
/globalField/setValue 0.2 0 0 tesla
|
||||
/run/beamOn 3
|
||||
#
|
||||
# Activate/inactivate physics processes
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
# electron 50 MeV in direction (0.,0.,1.)
|
||||
# 1000 events
|
||||
#
|
||||
/B4/event/setPrintModulo 100
|
||||
/run/printProgress 100
|
||||
/run/beamOn 1000
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4PrimaryGeneratorAction.cc 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file B4PrimaryGeneratorAction.cc
|
||||
/// \brief Implementation of the B4PrimaryGeneratorAction class
|
||||
@@ -85,9 +85,12 @@ void B4PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
|
||||
worldZHalfLength = worldBox->GetZHalfLength();
|
||||
}
|
||||
else {
|
||||
G4cerr << "World volume of box not found." << G4endl;
|
||||
G4cerr << "Perhaps you have changed geometry." << G4endl;
|
||||
G4cerr << "The gun will be place in the center." << G4endl;
|
||||
G4ExceptionDescription msg;
|
||||
msg << "World volume of box not found." << G4endl;
|
||||
msg << "Perhaps you have changed geometry." << G4endl;
|
||||
msg << "The gun will be place in the center.";
|
||||
G4Exception("B4PrimaryGeneratorAction::GeneratePrimaries()",
|
||||
"MyCode0002", JustWarning, msg);
|
||||
}
|
||||
|
||||
// Set gun position
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4RunAction.cc 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file B4RunAction.cc
|
||||
/// \brief Implementation of the B4RunAction class
|
||||
@@ -41,50 +41,30 @@
|
||||
B4RunAction::B4RunAction()
|
||||
: G4UserRunAction()
|
||||
{
|
||||
}
|
||||
// set printing event number per each event
|
||||
G4RunManager::GetRunManager()->SetPrintProgress(1);
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4RunAction::~B4RunAction()
|
||||
{
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4RunAction::BeginOfRunAction(const G4Run* run)
|
||||
{
|
||||
G4cout << "### Run " << run->GetRunID() << " start." << G4endl;
|
||||
|
||||
//inform the runManager to save random number seed
|
||||
//G4RunManager::GetRunManager()->SetRandomNumberStore(true);
|
||||
|
||||
// Book histograms, ntuple
|
||||
//
|
||||
|
||||
// Create analysis manager
|
||||
// The choice of analysis technology is done via selectin of a namespace
|
||||
// in B4Analysis.hh
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
G4cout << "Using " << analysisManager->GetType()
|
||||
<< " analysis manager" << G4endl;
|
||||
G4cout << "Using " << analysisManager->GetType() << G4endl;
|
||||
|
||||
// Create directories
|
||||
//analysisManager->SetHistoDirectoryName("histograms");
|
||||
//analysisManager->SetNtupleDirectoryName("ntuple");
|
||||
|
||||
// Open an output file
|
||||
//
|
||||
G4String fileName = "B4";
|
||||
analysisManager->OpenFile(fileName);
|
||||
analysisManager->SetVerboseLevel(1);
|
||||
analysisManager->SetFirstHistoId(1);
|
||||
|
||||
// Creating histograms
|
||||
// Book histograms, ntuple
|
||||
//
|
||||
|
||||
// Creating histograms
|
||||
analysisManager->CreateH1("1","Edep in absorber", 100, 0., 800*MeV);
|
||||
analysisManager->CreateH1("2","Edep in gap", 100, 0., 100*MeV);
|
||||
analysisManager->CreateH1("3","trackL in absorber", 100, 0., 1*m);
|
||||
analysisManager->CreateH1("4","trackL in gap", 100, 0., 50*cm);
|
||||
|
||||
|
||||
// Creating ntuple
|
||||
//
|
||||
analysisManager->CreateNtuple("B4", "Edep and TrackL");
|
||||
@@ -97,43 +77,69 @@ void B4RunAction::BeginOfRunAction(const G4Run* run)
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4RunAction::EndOfRunAction(const G4Run* aRun)
|
||||
B4RunAction::~B4RunAction()
|
||||
{
|
||||
G4int nofEvents = aRun->GetNumberOfEvent();
|
||||
if ( nofEvents == 0 ) return;
|
||||
|
||||
// print histogram statistics
|
||||
//
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
if ( analysisManager->GetH1(1) ) {
|
||||
G4cout << "\n ----> print histograms statistic \n" << G4endl;
|
||||
|
||||
G4cout
|
||||
<< " EAbs : mean = " << G4BestUnit(analysisManager->GetH1(1)->mean(), "Energy")
|
||||
<< " rms = " << G4BestUnit(analysisManager->GetH1(1)->rms(), "Energy")
|
||||
<< G4endl;
|
||||
G4cout
|
||||
<< " EGap : mean = " << G4BestUnit(analysisManager->GetH1(2)->mean(), "Energy")
|
||||
<< " rms = " << G4BestUnit(analysisManager->GetH1(2)->rms(), "Energy")
|
||||
<< G4endl;
|
||||
G4cout
|
||||
<< " LAbs : mean = " << G4BestUnit(analysisManager->GetH1(3)->mean(), "Length")
|
||||
<< " rms = " << G4BestUnit(analysisManager->GetH1(3)->rms(), "Length")
|
||||
<< G4endl;
|
||||
G4cout
|
||||
<< " LGap : mean = " << G4BestUnit(analysisManager->GetH1(4)->mean(), "Length")
|
||||
<< " rms = " << G4BestUnit(analysisManager->GetH1(4)->rms(), "Length")
|
||||
<< G4endl;
|
||||
}
|
||||
|
||||
// save histograms
|
||||
//
|
||||
analysisManager->Write();
|
||||
analysisManager->CloseFile();
|
||||
|
||||
// complete cleanup
|
||||
//
|
||||
delete G4AnalysisManager::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4RunAction::BeginOfRunAction(const G4Run* /*run*/)
|
||||
{
|
||||
//inform the runManager to save random number seed
|
||||
//G4RunManager::GetRunManager()->SetRandomNumberStore(true);
|
||||
|
||||
// Get analysis manager
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
|
||||
// Open an output file
|
||||
//
|
||||
G4String fileName = "B4";
|
||||
analysisManager->OpenFile(fileName);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4RunAction::EndOfRunAction(const G4Run* /*run*/)
|
||||
{
|
||||
// print histogram statistics
|
||||
//
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
if ( analysisManager->GetH1(1) ) {
|
||||
G4cout << "\n ----> print histograms statistic ";
|
||||
if(isMaster) {
|
||||
G4cout << "for the entire run \n" << G4endl;
|
||||
}
|
||||
else {
|
||||
G4cout << "for the local thread \n" << G4endl;
|
||||
}
|
||||
|
||||
G4cout << " EAbs : mean = "
|
||||
<< G4BestUnit(analysisManager->GetH1(1)->mean(), "Energy")
|
||||
<< " rms = "
|
||||
<< G4BestUnit(analysisManager->GetH1(1)->rms(), "Energy") << G4endl;
|
||||
|
||||
G4cout << " EGap : mean = "
|
||||
<< G4BestUnit(analysisManager->GetH1(2)->mean(), "Energy")
|
||||
<< " rms = "
|
||||
<< G4BestUnit(analysisManager->GetH1(2)->rms(), "Energy") << G4endl;
|
||||
|
||||
G4cout << " LAbs : mean = "
|
||||
<< G4BestUnit(analysisManager->GetH1(3)->mean(), "Length")
|
||||
<< " rms = "
|
||||
<< G4BestUnit(analysisManager->GetH1(3)->rms(), "Length") << G4endl;
|
||||
|
||||
G4cout << " LGap : mean = "
|
||||
<< G4BestUnit(analysisManager->GetH1(4)->mean(), "Length")
|
||||
<< " rms = "
|
||||
<< G4BestUnit(analysisManager->GetH1(4)->rms(), "Length") << G4endl;
|
||||
}
|
||||
|
||||
// save histograms & ntuple
|
||||
//
|
||||
analysisManager->Write();
|
||||
analysisManager->CloseFile();
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: B4cActionInitialization.cc 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4cActionInitialization.cc
|
||||
/// \brief Implementation of the B4cActionInitialization class
|
||||
|
||||
#include "B4cActionInitialization.hh"
|
||||
#include "B4PrimaryGeneratorAction.hh"
|
||||
#include "B4RunAction.hh"
|
||||
#include "B4cEventAction.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4cActionInitialization::B4cActionInitialization()
|
||||
: G4VUserActionInitialization()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4cActionInitialization::~B4cActionInitialization()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4cActionInitialization::BuildForMaster() const
|
||||
{
|
||||
SetUserAction(new B4RunAction);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4cActionInitialization::Build() const
|
||||
{
|
||||
SetUserAction(new B4PrimaryGeneratorAction);
|
||||
SetUserAction(new B4RunAction);
|
||||
SetUserAction(new B4cEventAction);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4cCalorHit.cc 69586 2013-05-08 14:20:11Z gcosmo $
|
||||
//
|
||||
/// \file B4cCalorHit.cc
|
||||
/// \brief Implementation of the B4cCalorHit class
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
#include <iomanip>
|
||||
|
||||
G4Allocator<B4cCalorHit> B4cCalorHitAllocator;
|
||||
G4ThreadLocal G4Allocator<B4cCalorHit>* B4cCalorHitAllocator = 0;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4cCalorimeterSD.cc 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file B4cCalorimeterSD.cc
|
||||
/// \brief Implementation of the B4cCalorimeterSD class
|
||||
@@ -99,8 +99,10 @@ G4bool B4cCalorimeterSD::ProcessHits(G4Step* step,
|
||||
// Get hit accounting data for this cell
|
||||
B4cCalorHit* hit = (*fHitsCollection)[layerNumber];
|
||||
if ( ! hit ) {
|
||||
G4cerr << "Cannot access hit " << layerNumber << G4endl;
|
||||
exit(1);
|
||||
G4ExceptionDescription msg;
|
||||
msg << "Cannot access hit " << layerNumber;
|
||||
G4Exception("B4cCalorimeterSD::ProcessHits()",
|
||||
"MyCode0004", FatalException, msg);
|
||||
}
|
||||
|
||||
// Get hit for total accounting
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4cDetectorConstruction.cc 77601 2013-11-26 17:08:44Z gcosmo $
|
||||
//
|
||||
/// \file B4cDetectorConstruction.cc
|
||||
/// \brief Implementation of the B4cDetectorConstruction class
|
||||
@@ -37,49 +37,36 @@
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
#include "G4PVReplica.hh"
|
||||
#include "G4UniformMagField.hh"
|
||||
#include "G4GlobalMagFieldMessenger.hh"
|
||||
#include "G4AutoDelete.hh"
|
||||
|
||||
#include "G4SDManager.hh"
|
||||
|
||||
#include "G4VisAttributes.hh"
|
||||
#include "G4Colour.hh"
|
||||
|
||||
#include "G4FieldManager.hh"
|
||||
#include "G4TransportationManager.hh"
|
||||
#include "G4GenericMessenger.hh"
|
||||
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
#include <stdio.h>
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4ThreadLocal
|
||||
G4GlobalMagFieldMessenger* B4cDetectorConstruction::fMagFieldMessenger = 0;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4cDetectorConstruction::B4cDetectorConstruction()
|
||||
: G4VUserDetectorConstruction(),
|
||||
fMessenger(0),
|
||||
fMagField(0),
|
||||
fCheckOverlaps(true)
|
||||
fCheckOverlaps(true),
|
||||
fNofLayers(-1)
|
||||
{
|
||||
// Define /B4/det commands using generic messenger class
|
||||
fMessenger
|
||||
= new G4GenericMessenger(this, "/B4/det/", "Detector construction control");
|
||||
|
||||
// Define /B4/det/setMagField command
|
||||
G4GenericMessenger::Command& setMagFieldCmd
|
||||
= fMessenger->DeclareMethod("setMagField",
|
||||
&B4cDetectorConstruction::SetMagField,
|
||||
"Define magnetic field value (in X direction");
|
||||
setMagFieldCmd.SetUnitCategory("Magnetic flux density");
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4cDetectorConstruction::~B4cDetectorConstruction()
|
||||
{
|
||||
delete fMagField;
|
||||
delete fMessenger;
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -90,7 +77,6 @@ G4VPhysicalVolume* B4cDetectorConstruction::Construct()
|
||||
|
||||
// Define volumes
|
||||
return DefineVolumes();
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -99,8 +85,7 @@ void B4cDetectorConstruction::DefineMaterials()
|
||||
{
|
||||
// Lead material defined using NIST Manager
|
||||
G4NistManager* nistManager = G4NistManager::Instance();
|
||||
G4bool fromIsotopes = false;
|
||||
nistManager->FindOrBuildMaterial("G4_Pb", fromIsotopes);
|
||||
nistManager->FindOrBuildMaterial("G4_Pb");
|
||||
|
||||
// Liquid argon material
|
||||
G4double a; // mass of a mole;
|
||||
@@ -122,13 +107,13 @@ void B4cDetectorConstruction::DefineMaterials()
|
||||
G4VPhysicalVolume* B4cDetectorConstruction::DefineVolumes()
|
||||
{
|
||||
// Geometry parameters
|
||||
G4int nofLayers = 10;
|
||||
fNofLayers = 10;
|
||||
G4double absoThickness = 10.*mm;
|
||||
G4double gapThickness = 5.*mm;
|
||||
G4double calorSizeXY = 10.*cm;
|
||||
|
||||
G4double layerThickness = absoThickness + gapThickness;
|
||||
G4double calorThickness = nofLayers * layerThickness;
|
||||
G4double calorThickness = fNofLayers * layerThickness;
|
||||
G4double worldSizeXY = 1.2 * calorSizeXY;
|
||||
G4double worldSizeZ = 1.2 * calorThickness;
|
||||
|
||||
@@ -138,9 +123,10 @@ G4VPhysicalVolume* B4cDetectorConstruction::DefineVolumes()
|
||||
G4Material* gapMaterial = G4Material::GetMaterial("liquidArgon");
|
||||
|
||||
if ( ! defaultMaterial || ! absorberMaterial || ! gapMaterial ) {
|
||||
G4cerr << "Cannot retrieve materials already defined. " << G4endl;
|
||||
G4cerr << "Exiting application " << G4endl;
|
||||
exit(1);
|
||||
G4ExceptionDescription msg;
|
||||
msg << "Cannot retrieve materials already defined.";
|
||||
G4Exception("B4DetectorConstruction::DefineVolumes()",
|
||||
"MyCode0001", FatalException, msg);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -208,7 +194,7 @@ G4VPhysicalVolume* B4cDetectorConstruction::DefineVolumes()
|
||||
layerLV, // its logical volume
|
||||
calorLV, // its mother
|
||||
kZAxis, // axis of replication
|
||||
nofLayers, // number of replica
|
||||
fNofLayers, // number of replica
|
||||
layerThickness); // witdth of replica
|
||||
|
||||
//
|
||||
@@ -222,7 +208,7 @@ G4VPhysicalVolume* B4cDetectorConstruction::DefineVolumes()
|
||||
= new G4LogicalVolume(
|
||||
absorberS, // its solid
|
||||
absorberMaterial, // its material
|
||||
"Abso"); // its name
|
||||
"AbsoLV"); // its name
|
||||
|
||||
new G4PVPlacement(
|
||||
0, // no rotation
|
||||
@@ -245,7 +231,7 @@ G4VPhysicalVolume* B4cDetectorConstruction::DefineVolumes()
|
||||
= new G4LogicalVolume(
|
||||
gapS, // its solid
|
||||
gapMaterial, // its material
|
||||
"Gap"); // its name
|
||||
"GapLV"); // its name
|
||||
|
||||
new G4PVPlacement(
|
||||
0, // no rotation
|
||||
@@ -261,26 +247,12 @@ G4VPhysicalVolume* B4cDetectorConstruction::DefineVolumes()
|
||||
// print parameters
|
||||
//
|
||||
G4cout << "\n------------------------------------------------------------"
|
||||
<< "\n---> The calorimeter is " << nofLayers << " layers of: [ "
|
||||
<< "\n---> The calorimeter is " << fNofLayers << " layers of: [ "
|
||||
<< absoThickness/mm << "mm of " << absorberMaterial->GetName()
|
||||
<< " + "
|
||||
<< gapThickness/mm << "mm of " << gapMaterial->GetName() << " ] "
|
||||
<< "\n------------------------------------------------------------\n";
|
||||
|
||||
|
||||
//
|
||||
// Sensitive detectors
|
||||
//
|
||||
B4cCalorimeterSD* absoSD
|
||||
= new B4cCalorimeterSD("AbsorberSD", "AbsorberHitsCollection", nofLayers);
|
||||
G4SDManager::GetSDMpointer()->AddNewDetector(absoSD );
|
||||
absorberLV->SetSensitiveDetector(absoSD);
|
||||
|
||||
B4cCalorimeterSD* gapSD
|
||||
= new B4cCalorimeterSD("GapSD", "GapHitsCollection", nofLayers);
|
||||
G4SDManager::GetSDMpointer()->AddNewDetector(gapSD );
|
||||
gapLV->SetSensitiveDetector(gapSD);
|
||||
|
||||
//
|
||||
// Visualization attributes
|
||||
//
|
||||
@@ -298,25 +270,33 @@ G4VPhysicalVolume* B4cDetectorConstruction::DefineVolumes()
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4cDetectorConstruction::SetMagField(G4double fieldValue)
|
||||
void B4cDetectorConstruction::ConstructSDandField()
|
||||
{
|
||||
// Apply a global uniform magnetic field along X axis
|
||||
G4FieldManager* fieldManager
|
||||
= G4TransportationManager::GetTransportationManager()->GetFieldManager();
|
||||
// G4SDManager::GetSDMpointer()->SetVerboseLevel(1);
|
||||
|
||||
// Delete the existing magnetic field
|
||||
if ( fMagField ) delete fMagField;
|
||||
//
|
||||
// Sensitive detectors
|
||||
//
|
||||
B4cCalorimeterSD* absoSD
|
||||
= new B4cCalorimeterSD("AbsorberSD", "AbsorberHitsCollection", fNofLayers);
|
||||
SetSensitiveDetector("AbsoLV",absoSD);
|
||||
|
||||
if ( fieldValue != 0. ) {
|
||||
// create a new one if not null
|
||||
fMagField
|
||||
= new G4UniformMagField(G4ThreeVector(fieldValue, 0., 0.));
|
||||
|
||||
fieldManager->SetDetectorField(fMagField);
|
||||
fieldManager->CreateChordFinder(fMagField);
|
||||
}
|
||||
else {
|
||||
fMagField = 0;
|
||||
fieldManager->SetDetectorField(fMagField);
|
||||
}
|
||||
B4cCalorimeterSD* gapSD
|
||||
= new B4cCalorimeterSD("GapSD", "GapHitsCollection", fNofLayers);
|
||||
SetSensitiveDetector("GapLV",gapSD);
|
||||
|
||||
//
|
||||
// Magnetic field
|
||||
//
|
||||
// Create global magnetic field messenger.
|
||||
// Uniform magnetic field is then created automatically if
|
||||
// the field value is not zero.
|
||||
G4ThreeVector fieldValue = G4ThreeVector();
|
||||
fMagFieldMessenger = new G4GlobalMagFieldMessenger(fieldValue);
|
||||
fMagFieldMessenger->SetVerboseLevel(1);
|
||||
|
||||
// Register the field messenger for deleting
|
||||
G4AutoDelete::Register(fMagFieldMessenger);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4cEventAction.cc 75604 2013-11-04 13:17:26Z gcosmo $
|
||||
//
|
||||
/// \file B4cEventAction.cc
|
||||
/// \brief Implementation of the B4cEventAction class
|
||||
@@ -37,7 +37,6 @@
|
||||
#include "G4Event.hh"
|
||||
#include "G4SDManager.hh"
|
||||
#include "G4HCofThisEvent.hh"
|
||||
#include "G4GenericMessenger.hh"
|
||||
#include "G4UnitsTable.hh"
|
||||
|
||||
#include "Randomize.hh"
|
||||
@@ -47,42 +46,30 @@
|
||||
|
||||
B4cEventAction::B4cEventAction()
|
||||
: G4UserEventAction(),
|
||||
fMessenger(0),
|
||||
fPrintModulo(1)
|
||||
{
|
||||
// Define /B4/event commands using generic messenger class
|
||||
fMessenger = new G4GenericMessenger(this, "/B4/event/", "Event control");
|
||||
|
||||
// Define /B4/event/setPrintModulo command
|
||||
G4GenericMessenger::Command& setPrintModulo
|
||||
= fMessenger->DeclareProperty("setPrintModulo",
|
||||
fPrintModulo,
|
||||
"Print events modulo n");
|
||||
setPrintModulo.SetRange("value>0");
|
||||
}
|
||||
fAbsHCID(-1),
|
||||
fGapHCID(-1)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4cEventAction::~B4cEventAction()
|
||||
{
|
||||
delete fMessenger;
|
||||
}
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4cCalorHitsCollection*
|
||||
B4cEventAction::GetHitsCollection(const G4String& hcName,
|
||||
B4cEventAction::GetHitsCollection(G4int hcID,
|
||||
const G4Event* event) const
|
||||
{
|
||||
G4int hcID
|
||||
= G4SDManager::GetSDMpointer()->GetCollectionID(hcName);
|
||||
B4cCalorHitsCollection* hitsCollection
|
||||
= static_cast<B4cCalorHitsCollection*>(
|
||||
event->GetHCofThisEvent()->GetHC(hcID));
|
||||
|
||||
if ( ! hitsCollection ) {
|
||||
G4cerr << "Cannot access hitsCollection " << hcName << G4endl;
|
||||
exit(1);
|
||||
G4ExceptionDescription msg;
|
||||
msg << "Cannot access hitsCollection ID " << hcID;
|
||||
G4Exception("B4cEventAction::GetHitsCollection()",
|
||||
"MyCode0003", FatalException, msg);
|
||||
}
|
||||
|
||||
return hitsCollection;
|
||||
@@ -110,25 +97,24 @@ void B4cEventAction::PrintEventStatistics(
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4cEventAction::BeginOfEventAction(const G4Event* event)
|
||||
{
|
||||
|
||||
G4int eventID = event->GetEventID();
|
||||
if ( eventID % fPrintModulo == 0 ) {
|
||||
G4cout << "\n---> Begin of event: " << eventID << G4endl;
|
||||
//CLHEP::HepRandom::showEngineStatus();
|
||||
}
|
||||
}
|
||||
void B4cEventAction::BeginOfEventAction(const G4Event* /*event*/)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4cEventAction::EndOfEventAction(const G4Event* event)
|
||||
{
|
||||
// Get hits collections IDs (only once)
|
||||
if ( fAbsHCID == -1 ) {
|
||||
fAbsHCID
|
||||
= G4SDManager::GetSDMpointer()->GetCollectionID("AbsorberHitsCollection");
|
||||
fGapHCID
|
||||
= G4SDManager::GetSDMpointer()->GetCollectionID("GapHitsCollection");
|
||||
}
|
||||
|
||||
// Get hits collections
|
||||
B4cCalorHitsCollection* absoHC
|
||||
= GetHitsCollection("AbsorberHitsCollection", event);
|
||||
B4cCalorHitsCollection* gapHC
|
||||
= GetHitsCollection("GapHitsCollection", event);
|
||||
B4cCalorHitsCollection* absoHC = GetHitsCollection(fAbsHCID, event);
|
||||
B4cCalorHitsCollection* gapHC = GetHitsCollection(fGapHCID, event);
|
||||
|
||||
// Get hit with total values
|
||||
B4cCalorHit* absoHit = (*absoHC)[absoHC->entries()-1];
|
||||
@@ -137,7 +123,8 @@ void B4cEventAction::EndOfEventAction(const G4Event* event)
|
||||
// Print per event (modulo n)
|
||||
//
|
||||
G4int eventID = event->GetEventID();
|
||||
if ( eventID % fPrintModulo == 0) {
|
||||
G4int printModulo = G4RunManager::GetRunManager()->GetPrintProgress();
|
||||
if ( ( printModulo > 0 ) && ( eventID % printModulo == 0 ) ) {
|
||||
G4cout << "---> End of event: " << eventID << G4endl;
|
||||
|
||||
PrintEventStatistics(
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# $Id: CMakeLists.txt 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup the project
|
||||
#
|
||||
|
||||
@@ -23,18 +23,22 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: exampleB4d.cc 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file exampleB4d.cc
|
||||
/// \brief Main program of the B4d example
|
||||
|
||||
#include "B4dDetectorConstruction.hh"
|
||||
#include "B4PrimaryGeneratorAction.hh"
|
||||
#include "B4RunAction.hh"
|
||||
#include "B4dEventAction.hh"
|
||||
#include "B4dActionInitialization.hh"
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
#include "G4MTRunManager.hh"
|
||||
#else
|
||||
#include "G4RunManager.hh"
|
||||
#endif
|
||||
|
||||
#include "G4UImanager.hh"
|
||||
#include "G4UIcommand.hh"
|
||||
#include "FTFP_BERT.hh"
|
||||
|
||||
#include "Randomize.hh"
|
||||
@@ -52,7 +56,9 @@
|
||||
namespace {
|
||||
void PrintUsage() {
|
||||
G4cerr << " Usage: " << G4endl;
|
||||
G4cerr << " exampleB4d [-m macro ] [-u UIsession]" << G4endl;
|
||||
G4cerr << " exampleB4d [-m macro ] [-u UIsession] [-t nThreads]" << G4endl;
|
||||
G4cerr << " note: -t option is available only for multi-threaded mode."
|
||||
<< G4endl;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,16 +68,24 @@ int main(int argc,char** argv)
|
||||
{
|
||||
// Evaluate arguments
|
||||
//
|
||||
if ( argc > 5 ) {
|
||||
if ( argc > 7 ) {
|
||||
PrintUsage();
|
||||
return 1;
|
||||
}
|
||||
|
||||
G4String macro;
|
||||
G4String session;
|
||||
#ifdef G4MULTITHREADED
|
||||
G4int nThreads = 0;
|
||||
#endif
|
||||
for ( G4int i=1; i<argc; i=i+2 ) {
|
||||
if ( G4String(argv[i]) == "-m" ) macro = argv[i+1];
|
||||
else if ( G4String(argv[i]) == "-u" ) session = argv[i+1];
|
||||
#ifdef G4MULTITHREADED
|
||||
else if ( G4String(argv[i]) == "-t" ) {
|
||||
nThreads = G4UIcommand::ConvertToInt(argv[i+1]);
|
||||
}
|
||||
#endif
|
||||
else {
|
||||
PrintUsage();
|
||||
return 1;
|
||||
@@ -80,11 +94,18 @@ int main(int argc,char** argv)
|
||||
|
||||
// Choose the Random engine
|
||||
//
|
||||
CLHEP::HepRandom::setTheEngine(new CLHEP::RanecuEngine);
|
||||
G4Random::setTheEngine(new CLHEP::RanecuEngine);
|
||||
|
||||
// Construct the default run manager
|
||||
// Construct the MT run manager
|
||||
//
|
||||
#ifdef G4MULTITHREADED
|
||||
G4MTRunManager * runManager = new G4MTRunManager;
|
||||
if ( nThreads > 0 ) {
|
||||
runManager->SetNumberOfThreads(nThreads);
|
||||
}
|
||||
#else
|
||||
G4RunManager * runManager = new G4RunManager;
|
||||
#endif
|
||||
|
||||
// Set mandatory initialization classes
|
||||
//
|
||||
@@ -93,16 +114,11 @@ int main(int argc,char** argv)
|
||||
|
||||
G4VModularPhysicsList* physicsList = new FTFP_BERT;
|
||||
runManager->SetUserInitialization(physicsList);
|
||||
|
||||
B4dActionInitialization* actionInitialization
|
||||
= new B4dActionInitialization();
|
||||
runManager->SetUserInitialization(actionInitialization);
|
||||
|
||||
// Set user action classes
|
||||
//
|
||||
runManager
|
||||
->SetUserAction(new B4PrimaryGeneratorAction());
|
||||
//
|
||||
runManager->SetUserAction(new B4RunAction());
|
||||
//
|
||||
runManager->SetUserAction(new B4dEventAction());
|
||||
|
||||
// Initialize G4 kernel
|
||||
//
|
||||
runManager->Initialize();
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
############################################
|
||||
|
||||
*************************************************************
|
||||
Geant4 version Name: geant4-09-06-ref-00 (30-November-2012)
|
||||
Geant4 version Name: geant4-10-00-ref-00 (6-December-2013)
|
||||
Copyright : Geant4 Collaboration
|
||||
Reference : NIM A 506 (2003), 250-303
|
||||
WWW : http://cern.ch/geant4
|
||||
@@ -12,10 +12,13 @@
|
||||
|
||||
<<< Geant4 Physics List simulation engine: FTFP_BERT 2.0
|
||||
|
||||
Using Root
|
||||
|
||||
***** Table : Nb of materials = 3 *****
|
||||
|
||||
Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.261 cm Imean: 823.000 eV
|
||||
Material: G4_Pb density: 11.350 g/cm3 RadL: 5.613 mm Nucl.Int.Length: 18.247 cm
|
||||
Imean: 823.000 eV
|
||||
|
||||
---> Element: Pb (Pb) Z = 82.0 N = 207.2 A = 207.22 g/mole
|
||||
---> Isotope: Pb204 Z = 82 N = 204 A = 203.97 g/mole abundance: 1.40 %
|
||||
---> Isotope: Pb206 Z = 82 N = 206 A = 205.97 g/mole abundance: 24.10 %
|
||||
@@ -24,7 +27,9 @@
|
||||
ElmMassFraction: 100.00 % ElmAbundance 100.00 %
|
||||
|
||||
|
||||
Material: liquidArgon density: 1.390 g/cm3 RadL: 14.065 cm Nucl.Int.Length: 86.006 cm Imean: 188.000 eV
|
||||
Material: liquidArgon density: 1.390 g/cm3 RadL: 14.065 cm Nucl.Int.Length: 86.078 cm
|
||||
Imean: 188.000 eV
|
||||
|
||||
---> Element: liquidArgon ( ) Z = 18.0 N = 40.0 A = 39.95 g/mole
|
||||
---> Isotope: 36 Z = 18 N = 36 A = 35.97 g/mole abundance: 0.34 %
|
||||
---> Isotope: 38 Z = 18 N = 38 A = 37.96 g/mole abundance: 0.06 %
|
||||
@@ -32,7 +37,9 @@
|
||||
ElmMassFraction: 100.00 % ElmAbundance 100.00 %
|
||||
|
||||
|
||||
Material: Galactic density: 0.000 kg/m3 RadL: 204727512.315 pc Nucl.Int.Length: 114561548.020 pc Imean: 19.200 eV temperature: 2.73 K pressure: 0.00 atm
|
||||
Material: Galactic density: 0.000 kg/m3 RadL: 204727512.315 pc Nucl.Int.Length: 113804112.837 pc
|
||||
Imean: 19.200 eV temperature: 2.73 K pressure: 0.00 atm
|
||||
|
||||
---> Element: Galactic ( ) Z = 1.0 N = 1.0 A = 1.01 g/mole
|
||||
---> Isotope: 1 Z = 1 N = 1 A = 1.01 g/mole abundance: 99.99 %
|
||||
---> Isotope: 2 Z = 1 N = 2 A = 2.01 g/mole abundance: 0.01 %
|
||||
@@ -47,6 +54,12 @@ Checking overlaps for volume Gap ... OK!
|
||||
------------------------------------------------------------
|
||||
---> The calorimeter is 10 layers of: [ 10mm of G4_Pb + 5mm of liquidArgon ]
|
||||
------------------------------------------------------------
|
||||
G4SDManager::AddNewCollection : the collection <Absorber/Edep> is registered at 1
|
||||
G4SDManager::AddNewCollection : the collection <Absorber/TrackLength> is registered at 2
|
||||
New sensitive detector <Absorber> is registored at /
|
||||
G4SDManager::AddNewCollection : the collection <Gap/Edep> is registered at 3
|
||||
G4SDManager::AddNewCollection : the collection <Gap/TrackLength> is registered at 4
|
||||
New sensitive detector <Gap> is registored at /
|
||||
### Adding tracking cuts for neutron TimeCut(ns)= 10000 KinEnergyCut(MeV)= 0
|
||||
Visualization Manager instantiating with verbosity "warnings (3)"...
|
||||
Visualization Manager initialising...
|
||||
@@ -58,12 +71,10 @@ Current available graphics systems are:
|
||||
DAWNFILE (DAWNFILE)
|
||||
G4HepRep (HepRepXML)
|
||||
G4HepRepFile (HepRepFile)
|
||||
OpenGLImmediateQt (OGLI, OGLIQt)
|
||||
OpenGLImmediateX (OGLIX)
|
||||
OpenGLImmediateXm (OGLIXm, OGLI_FALLBACK, OGLIQt_FALLBACK)
|
||||
OpenGLStoredQt (OGL, OGLS, OGLSQt)
|
||||
OpenGLImmediateXm (OGLI, OGLIXm)
|
||||
OpenGLStoredX (OGLSX)
|
||||
OpenGLStoredXm (OGLSXm, OGL_FALLBACK, OGLS_FALLBACK, OGLSQt_FALLBACK)
|
||||
OpenGLStoredXm (OGL, OGLS, OGLSXm)
|
||||
RayTracer (RayTracer)
|
||||
RayTracerX (RayTracerX)
|
||||
VRML1FILE (VRML1FILE)
|
||||
@@ -116,7 +127,7 @@ conv: for gamma SubType= 14
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e- SubType= 2
|
||||
@@ -143,7 +154,7 @@ CoulombScat: for e- SubType= 1
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e+ SubType= 2
|
||||
@@ -193,13 +204,14 @@ hBrems: for proton SubType= 3
|
||||
hPairProd: for proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for GenericIon SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -213,7 +225,7 @@ ionIoni: for GenericIon SubType= 2
|
||||
msc: for alpha SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for alpha SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -245,6 +257,7 @@ hBrems: for anti_proton SubType= 3
|
||||
hPairProd: for anti_proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -270,6 +283,7 @@ hBrems: for kaon+ SubType= 3
|
||||
hPairProd: for kaon+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -295,6 +309,7 @@ hBrems: for kaon- SubType= 3
|
||||
hPairProd: for kaon- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -321,6 +336,7 @@ muBrems: for mu+ SubType= 3
|
||||
muPairProd: for mu+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -353,6 +369,7 @@ muBrems: for mu- SubType= 3
|
||||
muPairProd: for mu- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -384,6 +401,7 @@ hBrems: for pi+ SubType= 3
|
||||
hPairProd: for pi+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -409,215 +427,221 @@ hBrems: for pi- SubType= 3
|
||||
hPairProd: for pi- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
============================================================================================
|
||||
HADRONIC PROCESSES SUMMARY (verbose level 1)
|
||||
|
||||
Hadronic Processes for <GenericIon>
|
||||
-----------------------------------
|
||||
ionInelastic Models: Binary Light Ion Cascade: Emin(GeV)= 0 Emax(GeV)= 4
|
||||
FTFP: Emin(GeV)= 2 Emax(GeV)= 100000
|
||||
====================================================================
|
||||
HADRONIC PROCESSES SUMMARY (verbose level 1)
|
||||
|
||||
ionInelastic Crs sctns: Glauber-Gribov nucleus nucleus: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for GenericIon
|
||||
|
||||
Process: ionInelastic
|
||||
Model: Binary Light Ion Cascade: 0 eV ---> 4 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov nucleus nucleus: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <anti_neutron>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for anti_neutron
|
||||
|
||||
hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
AntiNeutronInelastic Models: FTFP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: anti_neutronInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
AntiNeutronInelastic Crs sctns: AntiAGlauber: Emin(GeV)= 0 Emax(GeV)= 1.79769e+305
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for anti_proton
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <anti_proton>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 0.1
|
||||
AntiAElastic: Emin(GeV)= 0.1 Emax(GeV)= 100000
|
||||
Process: anti_protonInelastic
|
||||
Model: FTFP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 eV ---> 2.88022e+295 J
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
hadElastic Crs sctns: AntiAGlauber: Emin(GeV)= 0 Emax(GeV)= 1.79769e+305
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
AntiProtonInelastic Models: FTFP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for e+
|
||||
|
||||
AntiProtonInelastic Crs sctns: AntiAGlauber: Emin(GeV)= 0 Emax(GeV)= 1.79769e+305
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: positronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
hFritiofCaptureAtRest
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for e-
|
||||
|
||||
Hadronic Processes for <e+>
|
||||
-----------------------------------
|
||||
PositronNuclear Models: G4ElectroVDNuclearModel: Emin(GeV)= 0 Emax(GeV)= 1e+06
|
||||
Process: electronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 eV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
PositronNuclear Crs sctns: ElectroNuclearXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for gamma
|
||||
|
||||
Process: photonNuclear
|
||||
Model: BertiniCascade: 0 eV ---> 3.5 GeV
|
||||
Model: TheoFSGenerator: 3 GeV ---> 100 TeV
|
||||
Cr_sctns: PhotoNuclearXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <e->
|
||||
-----------------------------------
|
||||
ElectroNuclear Models: G4ElectroVDNuclearModel: Emin(GeV)= 0 Emax(GeV)= 1e+06
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for kaon+
|
||||
|
||||
ElectroNuclear Crs sctns: ElectroNuclearXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: kaon+Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: ChipsKaonPlusInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <gamma>
|
||||
-----------------------------------
|
||||
PhotonInelastic Models: BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 3.5
|
||||
TheoFSGenerator: Emin(GeV)= 3 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for kaon-
|
||||
|
||||
PhotonInelastic Crs sctns: PhotoNuclearXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
Process: kaon-Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: ChipsKaonMinusInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <kaon+>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hBertiniCaptureAtRest
|
||||
|
||||
hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for lambda
|
||||
|
||||
KaonPlusInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
KaonPlusInelastic Crs sctns: ChipsKaonPlusInelasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: lambdaInelastic
|
||||
Model: BertiniCascade: 0 eV ---> 6 GeV
|
||||
Model: FTFP: 2 GeV ---> 100 TeV
|
||||
Cr_sctns: ChipsHyperonInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for mu-
|
||||
|
||||
Hadronic Processes for <kaon->
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: muMinusCaptureAtRest
|
||||
|
||||
hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for neutron
|
||||
|
||||
KaonMinusInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: ChipsNeutronElasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
KaonMinusInelastic Crs sctns: ChipsKaonMinusInelasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: neutronInelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: G4NeutronInelasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
hBertiniCaptureAtRest
|
||||
Process: nCapture
|
||||
Model: nRadCapture: 0 eV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronCaptureXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaCaptureXS: 0 eV ---> 100 TeV
|
||||
|
||||
Hadronic Processes for <lambda>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for pi+
|
||||
|
||||
hadElastic Crs sctns: GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 1.0001 GeV
|
||||
Model: hElasticGlauber: 1 GeV ---> 100 TeV
|
||||
Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
LambdaInelastic Models: BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 6
|
||||
FTFP: Emin(GeV)= 2 Emax(GeV)= 100000
|
||||
|
||||
LambdaInelastic Crs sctns: ChipsHyperonInelasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
|
||||
Hadronic Processes for <mu->
|
||||
muMinusCaptureAtRest
|
||||
|
||||
Hadronic Processes for <neutron>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticCHIPS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
hadElastic Crs sctns: ChipsNeutronElasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
NeutronInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
|
||||
NeutronInelastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
nCapture Models: G4LCapture: Emin(GeV)= 0 Emax(GeV)= 20000
|
||||
|
||||
nCapture Crs sctns: GheishaCaptureXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
nFission Models: G4LFission: Emin(GeV)= 0 Emax(GeV)= 20000
|
||||
|
||||
nFission Crs sctns: GheishaFissionXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
|
||||
Hadronic Processes for <pi+>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 1
|
||||
hElasticGlauber: Emin(GeV)= 1 Emax(GeV)= 100000
|
||||
|
||||
hadElastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
PionPlusInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
|
||||
PionPlusInelastic Crs sctns: G4CrossSectionPairGG: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: pi+Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: G4CrossSectionPairGG: 0 eV ---> 100 TeV
|
||||
G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections
|
||||
below 91 GeV, Glauber-Gribov above
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for pi-
|
||||
|
||||
Hadronic Processes for <pi->
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticLHEP: Emin(GeV)= 0 Emax(GeV)= 1
|
||||
hElasticGlauber: Emin(GeV)= 1 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 eV ---> 1.0001 GeV
|
||||
Model: hElasticGlauber: 1 GeV ---> 100 TeV
|
||||
Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
hadElastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
PionMinusInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
|
||||
PionMinusInelastic Crs sctns: G4CrossSectionPairGG: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: pi-Inelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: G4CrossSectionPairGG: 0 eV ---> 100 TeV
|
||||
G4CrossSectionPairGG: G4PiNuclearCrossSection cross sections
|
||||
below 91 GeV, Glauber-Gribov above
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
hBertiniCaptureAtRest
|
||||
Process: hBertiniCaptureAtRest
|
||||
|
||||
Hadronic Processes for <proton>
|
||||
-----------------------------------
|
||||
hadElastic Models: hElasticCHIPS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for proton
|
||||
|
||||
hadElastic Crs sctns: ChipsProtonElasticXS: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaElastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: ChipsProtonElasticXS: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaElastic: 0 eV ---> 100 TeV
|
||||
|
||||
ProtonInelastic Models: FTFP: Emin(GeV)= 4 Emax(GeV)= 100000
|
||||
BertiniCascade: Emin(GeV)= 0 Emax(GeV)= 5
|
||||
Process: protonInelastic
|
||||
Model: FTFP: 4 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 eV ---> 5 GeV
|
||||
Cr_sctns: Barashenkov-Glauber: 0 eV ---> 100 TeV
|
||||
Cr_sctns: GheishaInelastic: 0 eV ---> 100 TeV
|
||||
|
||||
ProtonInelastic Crs sctns: Barashenkov-Glauber: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
GheishaInelastic: Emin(GeV)= 0 Emax(GeV)= 100000
|
||||
|
||||
============================================================================================
|
||||
### Run 0 start.
|
||||
Using Root analysis manager
|
||||
|
||||
---> Begin of event: 0
|
||||
================================================================
|
||||
### Run 0 starts.
|
||||
... open Root analysis file : B4.root - done
|
||||
--> Event 0 starts.
|
||||
---> End of event: 0
|
||||
Absorber: total energy: 288.831 MeV total track length: 20.4665 cm
|
||||
Gap: total energy: 8.19232 MeV total track length: 3.81315 cm
|
||||
Absorber: total energy: 283.263 MeV total track length: 19.743 cm
|
||||
Gap: total energy: 10.6009 MeV total track length: 5.29096 cm
|
||||
|
||||
----> print histograms statistic
|
||||
----> print histograms statistic for the entire run
|
||||
|
||||
EAbs : mean = 288.831 MeV rms = 0 eV
|
||||
EGap : mean = 8.19232 MeV rms = 0 eV
|
||||
LAbs : mean = 20.4665 cm rms = 0 fm
|
||||
LGap : mean = 3.81315 cm rms = 0 fm
|
||||
EAbs : mean = 283.263 MeV rms = 0 eV
|
||||
EGap : mean = 10.6009 MeV rms = 0 eV
|
||||
LAbs : mean = 19.743 cm rms = 0 fm
|
||||
LGap : mean = 5.29096 cm rms = 0 fm
|
||||
... write Root file : B4.root - done
|
||||
Transportation, msc, hIoni, ionIoni
|
||||
hBrems, hPairProd, eIoni, eBrem
|
||||
annihil, CoulombScat, phot, compt
|
||||
conv, muIoni, muBrems, muPairProd
|
||||
PhotonInelastic, ElectroNuclear, PositronNuclear, Decay
|
||||
hadElastic, NeutronInelastic, nCapture, nFission
|
||||
ProtonInelastic, PionPlusInelastic, PionMinusInelastic, KaonPlusInelastic
|
||||
KaonMinusInelastic, KaonZeroLInelastic, KaonZeroSInelastic, LambdaInelastic
|
||||
AntiLambdaInelastic,SigmaMinusInelastic,AntiSigmaMinusInelastic, SigmaPlusInelastic
|
||||
AntiSigmaPlusInelastic, XiMinusInelastic,AntiXiMinusInelastic, XiZeroInelastic
|
||||
AntiXiZeroInelastic,OmegaMinusInelastic,AntiOmegaMinusInelastic,AntiProtonInelastic
|
||||
AntiNeutronInelastic,AntiDeuteronInelastic,AntiTritonInelasticProcess,AntiHe3InelasticProcess
|
||||
AntiAlphaInelasticProcess,hFritiofCaptureAtRest,hBertiniCaptureAtRest,muMinusCaptureAtRest
|
||||
dInelastic, tInelastic, He3Inelastic, alphaInelastic
|
||||
ionInelastic, nKiller
|
||||
photonNuclear, electronNuclear, positronNuclear, Decay
|
||||
hadElastic, neutronInelastic, nCapture, protonInelastic
|
||||
pi+Inelastic, pi-Inelastic, kaon+Inelastic, kaon-Inelastic
|
||||
kaon0LInelastic, kaon0SInelastic, lambdaInelastic,anti-lambdaInelastic
|
||||
sigma-Inelastic,anti_sigma-Inelastic, sigma+Inelastic,anti_sigma+Inelastic
|
||||
xi-Inelastic, anti_xi-Inelastic, xi0Inelastic, anti_xi0Inelastic
|
||||
omega-Inelastic,anti_omega-Inelastic,anti_protonInelastic,anti_neutronInelastic
|
||||
anti_deuteronInelastic,anti_tritonInelastic, anti_He3Inelastic,anti_alphaInelastic
|
||||
hFritiofCaptureAtRest,hBertiniCaptureAtRest,muMinusCaptureAtRest, dInelastic
|
||||
tInelastic, He3Inelastic, alphaInelastic, ionInelastic
|
||||
nKiller
|
||||
|
||||
phot: for gamma SubType= 12
|
||||
LambdaPrime table from 200 keV to 10 TeV in 54 bins
|
||||
@@ -639,7 +663,7 @@ conv: for gamma SubType= 14
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e- SubType= 2
|
||||
@@ -666,7 +690,7 @@ CoulombScat: for e- SubType= 1
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e+ SubType= 2
|
||||
@@ -716,13 +740,14 @@ hBrems: for proton SubType= 3
|
||||
hPairProd: for proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for GenericIon SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -736,7 +761,7 @@ ionIoni: for GenericIon SubType= 2
|
||||
msc: for alpha SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for alpha SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -768,6 +793,7 @@ hBrems: for anti_proton SubType= 3
|
||||
hPairProd: for anti_proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -793,6 +819,7 @@ hBrems: for kaon+ SubType= 3
|
||||
hPairProd: for kaon+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -818,6 +845,7 @@ hBrems: for kaon- SubType= 3
|
||||
hPairProd: for kaon- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -844,6 +872,7 @@ muBrems: for mu+ SubType= 3
|
||||
muPairProd: for mu+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -876,6 +905,7 @@ muBrems: for mu- SubType= 3
|
||||
muPairProd: for mu- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -907,6 +937,7 @@ hBrems: for pi+ SubType= 3
|
||||
hPairProd: for pi+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -932,22 +963,23 @@ hBrems: for pi- SubType= 3
|
||||
hPairProd: for pi- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
### Run 1 start.
|
||||
Using Root analysis manager
|
||||
|
||||
---> Begin of event: 0
|
||||
### Run 1 starts.
|
||||
... open Root analysis file : B4.root - done
|
||||
--> Event 0 starts.
|
||||
---> End of event: 0
|
||||
Absorber: total energy: 282.08 MeV total track length: 20.1981 cm
|
||||
Gap: total energy: 16.6294 MeV total track length: 8.51564 cm
|
||||
Absorber: total energy: 282.146 MeV total track length: 20.3465 cm
|
||||
Gap: total energy: 18.8759 MeV total track length: 9.43449 cm
|
||||
|
||||
----> print histograms statistic
|
||||
----> print histograms statistic for the entire run
|
||||
|
||||
EAbs : mean = 282.08 MeV rms = 0 eV
|
||||
EGap : mean = 16.6294 MeV rms = 0 eV
|
||||
LAbs : mean = 20.1981 cm rms = 0 fm
|
||||
LGap : mean = 8.51564 cm rms = 0 fm
|
||||
EAbs : mean = 282.146 MeV rms = 0 eV
|
||||
EGap : mean = 18.8759 MeV rms = 0 eV
|
||||
LAbs : mean = 20.3465 cm rms = 0 fm
|
||||
LGap : mean = 9.43449 cm rms = 0 fm
|
||||
... write Root file : B4.root - done
|
||||
|
||||
phot: for gamma SubType= 12
|
||||
LambdaPrime table from 200 keV to 10 TeV in 54 bins
|
||||
@@ -969,7 +1001,7 @@ conv: for gamma SubType= 14
|
||||
msc: for e- SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e- SubType= 2
|
||||
@@ -996,7 +1028,7 @@ CoulombScat: for e- SubType= 1
|
||||
msc: for e+ SubType= 10
|
||||
RangeFactor= 0.04, stepLimitType: 1, latDisplacement: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 100 MeV Table with 42 bins Emin= 100 eV Emax= 100 MeV
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 10 TeV Table with 35 bins Emin= 100 MeV Emax= 10 TeV
|
||||
|
||||
eIoni: for e+ SubType= 2
|
||||
@@ -1046,13 +1078,14 @@ hBrems: for proton SubType= 3
|
||||
hPairProd: for proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for GenericIon SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -1066,7 +1099,7 @@ ionIoni: for GenericIon SubType= 2
|
||||
msc: for alpha SubType= 10
|
||||
RangeFactor= 0.2, stepLimitType: 0, latDisplacement: 0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc95 : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
UrbanMsc : Emin= 0 eV Emax= 10 TeV Table with 77 bins Emin= 100 eV Emax= 10 TeV
|
||||
|
||||
ionIoni: for alpha SubType= 2
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
@@ -1098,6 +1131,7 @@ hBrems: for anti_proton SubType= 3
|
||||
hPairProd: for anti_proton SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 13x1001 from 7.50618 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1123,6 +1157,7 @@ hBrems: for kaon+ SubType= 3
|
||||
hPairProd: for kaon+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1148,6 +1183,7 @@ hBrems: for kaon- SubType= 3
|
||||
hPairProd: for kaon- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 14x1001 from 3.94942 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1174,6 +1210,7 @@ muBrems: for mu+ SubType= 3
|
||||
muPairProd: for mu+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1206,6 +1243,7 @@ muBrems: for mu- SubType= 3
|
||||
muPairProd: for mu- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 17x1001 from 1 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1237,6 +1275,7 @@ hBrems: for pi+ SubType= 3
|
||||
hPairProd: for pi+ SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
|
||||
@@ -1262,21 +1301,22 @@ hBrems: for pi- SubType= 3
|
||||
hPairProd: for pi- SubType= 4
|
||||
dE/dx and range tables from 100 eV to 10 TeV in 77 bins
|
||||
Lambda tables from threshold to 10 TeV in 77 bins, spline: 1
|
||||
Sampling table 16x1001 from 1.11656 GeV to 10 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 eV Emax= 10 TeV
|
||||
### Run 2 start.
|
||||
Using Root analysis manager
|
||||
|
||||
---> Begin of event: 0
|
||||
### Run 2 starts.
|
||||
... open Root analysis file : B4.root - done
|
||||
--> Event 0 starts.
|
||||
---> End of event: 0
|
||||
Absorber: total energy: 462.772 MeV total track length: 33.1144 cm
|
||||
Gap: total energy: 21.7635 MeV total track length: 11.0673 cm
|
||||
Absorber: total energy: 468.273 MeV total track length: 33.5299 cm
|
||||
Gap: total energy: 16.8004 MeV total track length: 8.15542 cm
|
||||
|
||||
----> print histograms statistic
|
||||
----> print histograms statistic for the entire run
|
||||
|
||||
EAbs : mean = 462.772 MeV rms = 0 eV
|
||||
EGap : mean = 21.7635 MeV rms = 0 eV
|
||||
LAbs : mean = 33.1144 cm rms = 0 fm
|
||||
LGap : mean = 11.0673 cm rms = 0 fm
|
||||
EAbs : mean = 468.273 MeV rms = 0 eV
|
||||
EGap : mean = 16.8004 MeV rms = 0 eV
|
||||
LAbs : mean = 33.5299 cm rms = 0 fm
|
||||
LGap : mean = 8.15542 cm rms = 0 fm
|
||||
... write Root file : B4.root - done
|
||||
Graphics systems deleted.
|
||||
Visualization Manager deleting...
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
/gui/addMenu run Run
|
||||
/gui/addButton run "beamOn 1" "/run/beamOn 1"
|
||||
/gui/addButton run run1 "/control/execute run1.mac"
|
||||
/gui/addButton run run2 "/control/execute run2.mac"
|
||||
#
|
||||
# Gun menu :
|
||||
/gui/addMenu gun Gun
|
||||
@@ -38,14 +37,14 @@
|
||||
# Viewer menu :
|
||||
/gui/addMenu viewer Viewer
|
||||
/gui/addButton viewer "Set style surface" "/vis/viewer/set/style surface"
|
||||
/gui/addButton viewer "Set style wireframe" "/vis/viewer/set/style wire"
|
||||
/gui/addButton viewer "Set style wireframe" "/vis/viewer/set/style wireframe"
|
||||
/gui/addButton viewer "Refresh viewer" "/vis/viewer/refresh"
|
||||
/gui/addButton viewer "Update viewer (interaction or end-of-file)" "/vis/viewer/update"
|
||||
/gui/addButton viewer "Flush viewer (= refresh + update)" "/vis/viewer/flush"
|
||||
/gui/addButton viewer "Update scene" "/vis/scene/notifyHandlers"
|
||||
#
|
||||
# To limit the output flow in the "dump" widget :
|
||||
/B4/event/setPrintModulo 100
|
||||
/run/printProgress 100
|
||||
#
|
||||
# User defined icon :
|
||||
/gui/addIcon "Run beam on" user_icon "/run/beamOn 1" run.png
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4Analysis.hh 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4Analysis.hh
|
||||
/// \brief Selection of the analysis technology
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
// $Id: B4PrimaryGeneratorAction.hh 69223 2013-04-23 12:36:10Z gcosmo $
|
||||
//
|
||||
/// \file B4PrimaryGeneratorAction.hh
|
||||
/// \brief Definition of the B4PrimaryGeneratorAction class
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4RunAction.hh 74265 2013-10-02 14:41:20Z gcosmo $
|
||||
//
|
||||
/// \file B4RunAction.hh
|
||||
/// \brief Definition of the B4RunAction class
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: B4dActionInitialization.hh 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4dActionInitialization.hh
|
||||
/// \brief Definition of the B4dActionInitialization class
|
||||
|
||||
#ifndef B4dActionInitialization_h
|
||||
#define B4dActionInitialization_h 1
|
||||
|
||||
#include "G4VUserActionInitialization.hh"
|
||||
|
||||
/// Action initialization class.
|
||||
///
|
||||
|
||||
class B4dActionInitialization : public G4VUserActionInitialization
|
||||
{
|
||||
public:
|
||||
B4dActionInitialization();
|
||||
virtual ~B4dActionInitialization();
|
||||
|
||||
virtual void BuildForMaster() const;
|
||||
virtual void Build() const;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4dDetectorConstruction.hh 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file B4dDetectorConstruction.hh
|
||||
/// \brief Definition of the B4dDetectorConstruction class
|
||||
@@ -34,10 +34,8 @@
|
||||
#include "G4VUserDetectorConstruction.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4Box;
|
||||
class G4VPhysicalVolume;
|
||||
class G4UniformMagField;
|
||||
class G4GenericMessenger;
|
||||
class G4GlobalMagFieldMessenger;
|
||||
|
||||
/// Detector construction class to define materials and geometry.
|
||||
/// The calorimeter is a box made of a given number of layers. A layer consists
|
||||
@@ -50,15 +48,10 @@ class G4GenericMessenger;
|
||||
/// - the number of layers,
|
||||
/// - the transverse size of the calorimeter (the input face is a square).
|
||||
///
|
||||
/// In DefineVolumes(), sensitive detectors of G4MultiFunctionalDetector type
|
||||
/// with primitive scorers are created and associated with the Absorber
|
||||
/// and Gap volumes.
|
||||
///
|
||||
/// In addition a transverse uniform magnetic field is defined in
|
||||
/// SetMagField() method which can be activated
|
||||
/// via a command defined using G4GenericMessenger class:
|
||||
/// - /B4/det/setMagField value unit
|
||||
|
||||
/// In ConstructSDandField() sensitive detectors of G4MultiFunctionalDetector
|
||||
/// type with primitive scorers are created and associated with the Absorber
|
||||
/// and Gap volumes. In addition a transverse uniform magnetic field is defined
|
||||
/// via G4GlobalMagFieldMessenger class.
|
||||
|
||||
class B4dDetectorConstruction : public G4VUserDetectorConstruction
|
||||
{
|
||||
@@ -68,10 +61,7 @@ class B4dDetectorConstruction : public G4VUserDetectorConstruction
|
||||
|
||||
public:
|
||||
virtual G4VPhysicalVolume* Construct();
|
||||
|
||||
// set methods
|
||||
//
|
||||
void SetMagField(G4double fieldValue);
|
||||
virtual void ConstructSDandField();
|
||||
|
||||
private:
|
||||
// methods
|
||||
@@ -81,8 +71,8 @@ class B4dDetectorConstruction : public G4VUserDetectorConstruction
|
||||
|
||||
// data members
|
||||
//
|
||||
G4GenericMessenger* fMessenger; // messenger
|
||||
G4UniformMagField* fMagField; // magnetic field
|
||||
static G4ThreadLocal G4GlobalMagFieldMessenger* fMagFieldMessenger;
|
||||
// magnetic field messenger
|
||||
|
||||
G4bool fCheckOverlaps; // option to activate checking of volumes overlaps
|
||||
};
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4dEventAction.hh 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file B4dEventAction.hh
|
||||
/// \brief Definition of the B4dEventAction class
|
||||
@@ -36,18 +36,11 @@
|
||||
#include "G4THitsMap.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
class G4GenericMessenger;
|
||||
|
||||
/// Event action class
|
||||
///
|
||||
/// In EndOfEventAction(), it prints the accumulated quantities of the energy
|
||||
/// deposit and track lengths of charged particles in Absober and Gap layers
|
||||
/// stored in the hits collections.
|
||||
///
|
||||
/// The data member fPrintModulo defines the frequency of printing
|
||||
/// the accumulated quantities. Its value can be changed via a command
|
||||
/// defined using G4GenericMessenger class:
|
||||
/// - /B4/event/setPrintModulo value
|
||||
|
||||
class B4dEventAction : public G4UserEventAction
|
||||
{
|
||||
@@ -57,28 +50,21 @@ public:
|
||||
|
||||
virtual void BeginOfEventAction(const G4Event* event);
|
||||
virtual void EndOfEventAction(const G4Event* event);
|
||||
|
||||
// set methods
|
||||
void SetPrintModulo(G4int value);
|
||||
|
||||
private:
|
||||
// methods
|
||||
G4THitsMap<G4double>* GetHitsCollection(const G4String& hcName,
|
||||
G4THitsMap<G4double>* GetHitsCollection(G4int hcID,
|
||||
const G4Event* event) const;
|
||||
G4double GetSum(G4THitsMap<G4double>* hitsMap) const;
|
||||
void PrintEventStatistics(G4double absoEdep, G4double absoTrackLength,
|
||||
G4double gapEdep, G4double gapTrackLength) const;
|
||||
|
||||
// data members
|
||||
G4GenericMessenger* fMessenger;
|
||||
G4int fPrintModulo;
|
||||
G4int fAbsoEdepHCID;
|
||||
G4int fGapEdepHCID;
|
||||
G4int fAbsoTrackLengthHCID;
|
||||
G4int fGapTrackLengthHCID;
|
||||
};
|
||||
|
||||
// inline functions
|
||||
|
||||
inline void B4dEventAction::SetPrintModulo(G4int value) {
|
||||
fPrintModulo = value;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Macro file for the initialization phase of "exampleN03.cc"
|
||||
# Macro file for the initialization phase of example B4
|
||||
# when running in interactive mode without visualization
|
||||
#
|
||||
# Set some default verbose
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Macro file for the initialization phase of "exampleN03.cc"
|
||||
# Macro file for the initialization phase of example B4
|
||||
# when running in interactive mode with visualization
|
||||
#
|
||||
# Sets some default verbose
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
# 20 events
|
||||
#
|
||||
/tracking/verbose 0
|
||||
/B4/event/setPrintModulo 5
|
||||
/run/printProgress 5
|
||||
/run/beamOn 20
|
||||
#
|
||||
# Magnetic field
|
||||
#
|
||||
/B4/det/setMagField 0.2 tesla
|
||||
/globalField/setValue 0.2 0 0 tesla
|
||||
/run/beamOn 3
|
||||
#
|
||||
# Activate/inactivate physics processes
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
# electron 50 MeV in direction (0.,0.,1.)
|
||||
# 1000 events
|
||||
#
|
||||
/B4/event/setPrintModulo 100
|
||||
/run/printProgress 100
|
||||
/run/beamOn 1000
|
||||
|
||||
|
||||
@@ -23,10 +23,10 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
/// \file B4dPrimaryGeneratorAction.cc
|
||||
/// \brief Implementation of the B4dPrimaryGeneratorAction class
|
||||
// $Id: B4PrimaryGeneratorAction.cc 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file B4PrimaryGeneratorAction.cc
|
||||
/// \brief Implementation of the B4PrimaryGeneratorAction class
|
||||
|
||||
#include "B4PrimaryGeneratorAction.hh"
|
||||
|
||||
@@ -85,9 +85,12 @@ void B4PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
|
||||
worldZHalfLength = worldBox->GetZHalfLength();
|
||||
}
|
||||
else {
|
||||
G4cerr << "World volume of box not found." << G4endl;
|
||||
G4cerr << "Perhaps you have changed geometry." << G4endl;
|
||||
G4cerr << "The gun will be place in the center." << G4endl;
|
||||
G4ExceptionDescription msg;
|
||||
msg << "World volume of box not found." << G4endl;
|
||||
msg << "Perhaps you have changed geometry." << G4endl;
|
||||
msg << "The gun will be place in the center.";
|
||||
G4Exception("B4PrimaryGeneratorAction::GeneratePrimaries()",
|
||||
"MyCode0002", JustWarning, msg);
|
||||
}
|
||||
|
||||
// Set gun position
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4RunAction.cc 75215 2013-10-29 16:07:06Z gcosmo $
|
||||
//
|
||||
/// \file B4RunAction.cc
|
||||
/// \brief Implementation of the B4RunAction class
|
||||
@@ -41,50 +41,30 @@
|
||||
B4RunAction::B4RunAction()
|
||||
: G4UserRunAction()
|
||||
{
|
||||
}
|
||||
// set printing event number per each event
|
||||
G4RunManager::GetRunManager()->SetPrintProgress(1);
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4RunAction::~B4RunAction()
|
||||
{
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4RunAction::BeginOfRunAction(const G4Run* run)
|
||||
{
|
||||
G4cout << "### Run " << run->GetRunID() << " start." << G4endl;
|
||||
|
||||
//inform the runManager to save random number seed
|
||||
//G4RunManager::GetRunManager()->SetRandomNumberStore(true);
|
||||
|
||||
// Book histograms, ntuple
|
||||
//
|
||||
|
||||
// Create analysis manager
|
||||
// The choice of analysis technology is done via selectin of a namespace
|
||||
// in B4Analysis.hh
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
G4cout << "Using " << analysisManager->GetType()
|
||||
<< " analysis manager" << G4endl;
|
||||
G4cout << "Using " << analysisManager->GetType() << G4endl;
|
||||
|
||||
// Create directories
|
||||
//analysisManager->SetHistoDirectoryName("histograms");
|
||||
//analysisManager->SetNtupleDirectoryName("ntuple");
|
||||
|
||||
// Open an output file
|
||||
//
|
||||
G4String fileName = "B4";
|
||||
analysisManager->OpenFile(fileName);
|
||||
analysisManager->SetVerboseLevel(1);
|
||||
analysisManager->SetFirstHistoId(1);
|
||||
|
||||
// Creating histograms
|
||||
// Book histograms, ntuple
|
||||
//
|
||||
|
||||
// Creating histograms
|
||||
analysisManager->CreateH1("1","Edep in absorber", 100, 0., 800*MeV);
|
||||
analysisManager->CreateH1("2","Edep in gap", 100, 0., 100*MeV);
|
||||
analysisManager->CreateH1("3","trackL in absorber", 100, 0., 1*m);
|
||||
analysisManager->CreateH1("4","trackL in gap", 100, 0., 50*cm);
|
||||
|
||||
|
||||
// Creating ntuple
|
||||
//
|
||||
analysisManager->CreateNtuple("B4", "Edep and TrackL");
|
||||
@@ -97,43 +77,69 @@ void B4RunAction::BeginOfRunAction(const G4Run* run)
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4RunAction::EndOfRunAction(const G4Run* aRun)
|
||||
B4RunAction::~B4RunAction()
|
||||
{
|
||||
G4int nofEvents = aRun->GetNumberOfEvent();
|
||||
if ( nofEvents == 0 ) return;
|
||||
|
||||
// print histogram statistics
|
||||
//
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
if ( analysisManager->GetH1(1) ) {
|
||||
G4cout << "\n ----> print histograms statistic \n" << G4endl;
|
||||
|
||||
G4cout
|
||||
<< " EAbs : mean = " << G4BestUnit(analysisManager->GetH1(1)->mean(), "Energy")
|
||||
<< " rms = " << G4BestUnit(analysisManager->GetH1(1)->rms(), "Energy")
|
||||
<< G4endl;
|
||||
G4cout
|
||||
<< " EGap : mean = " << G4BestUnit(analysisManager->GetH1(2)->mean(), "Energy")
|
||||
<< " rms = " << G4BestUnit(analysisManager->GetH1(2)->rms(), "Energy")
|
||||
<< G4endl;
|
||||
G4cout
|
||||
<< " LAbs : mean = " << G4BestUnit(analysisManager->GetH1(3)->mean(), "Length")
|
||||
<< " rms = " << G4BestUnit(analysisManager->GetH1(3)->rms(), "Length")
|
||||
<< G4endl;
|
||||
G4cout
|
||||
<< " LGap : mean = " << G4BestUnit(analysisManager->GetH1(4)->mean(), "Length")
|
||||
<< " rms = " << G4BestUnit(analysisManager->GetH1(4)->rms(), "Length")
|
||||
<< G4endl;
|
||||
}
|
||||
|
||||
// save histograms
|
||||
//
|
||||
analysisManager->Write();
|
||||
analysisManager->CloseFile();
|
||||
|
||||
// complete cleanup
|
||||
//
|
||||
delete G4AnalysisManager::Instance();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4RunAction::BeginOfRunAction(const G4Run* /*run*/)
|
||||
{
|
||||
//inform the runManager to save random number seed
|
||||
//G4RunManager::GetRunManager()->SetRandomNumberStore(true);
|
||||
|
||||
// Get analysis manager
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
|
||||
// Open an output file
|
||||
//
|
||||
G4String fileName = "B4";
|
||||
analysisManager->OpenFile(fileName);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4RunAction::EndOfRunAction(const G4Run* /*run*/)
|
||||
{
|
||||
// print histogram statistics
|
||||
//
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
if ( analysisManager->GetH1(1) ) {
|
||||
G4cout << "\n ----> print histograms statistic ";
|
||||
if(isMaster) {
|
||||
G4cout << "for the entire run \n" << G4endl;
|
||||
}
|
||||
else {
|
||||
G4cout << "for the local thread \n" << G4endl;
|
||||
}
|
||||
|
||||
G4cout << " EAbs : mean = "
|
||||
<< G4BestUnit(analysisManager->GetH1(1)->mean(), "Energy")
|
||||
<< " rms = "
|
||||
<< G4BestUnit(analysisManager->GetH1(1)->rms(), "Energy") << G4endl;
|
||||
|
||||
G4cout << " EGap : mean = "
|
||||
<< G4BestUnit(analysisManager->GetH1(2)->mean(), "Energy")
|
||||
<< " rms = "
|
||||
<< G4BestUnit(analysisManager->GetH1(2)->rms(), "Energy") << G4endl;
|
||||
|
||||
G4cout << " LAbs : mean = "
|
||||
<< G4BestUnit(analysisManager->GetH1(3)->mean(), "Length")
|
||||
<< " rms = "
|
||||
<< G4BestUnit(analysisManager->GetH1(3)->rms(), "Length") << G4endl;
|
||||
|
||||
G4cout << " LGap : mean = "
|
||||
<< G4BestUnit(analysisManager->GetH1(4)->mean(), "Length")
|
||||
<< " rms = "
|
||||
<< G4BestUnit(analysisManager->GetH1(4)->rms(), "Length") << G4endl;
|
||||
}
|
||||
|
||||
// save histograms & ntuple
|
||||
//
|
||||
analysisManager->Write();
|
||||
analysisManager->CloseFile();
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
// * The Geant4 software is copyright of the Copyright Holders of *
|
||||
// * the Geant4 Collaboration. It is provided under the terms and *
|
||||
// * conditions of the Geant4 Software License, included in the file *
|
||||
// * LICENSE and available at http://cern.ch/geant4/license . These *
|
||||
// * include a list of copyright holders. *
|
||||
// * *
|
||||
// * 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. Please see the license in the file LICENSE and URL above *
|
||||
// * for the full disclaimer and the limitation of liability. *
|
||||
// * *
|
||||
// * This code implementation is the result of the scientific and *
|
||||
// * technical work of the GEANT4 collaboration. *
|
||||
// * By using, copying, modifying or distributing the software (or *
|
||||
// * any work based on the software) you agree to acknowledge its *
|
||||
// * use in resulting scientific publications, and indicate your *
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: B4dActionInitialization.cc 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
//
|
||||
/// \file B4dActionInitialization.cc
|
||||
/// \brief Implementation of the B4dActionInitialization class
|
||||
|
||||
#include "B4dActionInitialization.hh"
|
||||
#include "B4PrimaryGeneratorAction.hh"
|
||||
#include "B4RunAction.hh"
|
||||
#include "B4dEventAction.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4dActionInitialization::B4dActionInitialization()
|
||||
: G4VUserActionInitialization()
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4dActionInitialization::~B4dActionInitialization()
|
||||
{;}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4dActionInitialization::BuildForMaster() const
|
||||
{
|
||||
SetUserAction(new B4RunAction);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4dActionInitialization::Build() const
|
||||
{
|
||||
SetUserAction(new B4PrimaryGeneratorAction);
|
||||
SetUserAction(new B4RunAction);
|
||||
SetUserAction(new B4dEventAction);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4dDetectorConstruction.cc 77601 2013-11-26 17:08:44Z gcosmo $
|
||||
//
|
||||
/// \file B4dDetectorConstruction.cc
|
||||
/// \brief Implementation of the B4dDetectorConstruction class
|
||||
@@ -37,7 +37,8 @@
|
||||
#include "G4LogicalVolume.hh"
|
||||
#include "G4PVPlacement.hh"
|
||||
#include "G4PVReplica.hh"
|
||||
#include "G4UniformMagField.hh"
|
||||
#include "G4GlobalMagFieldMessenger.hh"
|
||||
#include "G4AutoDelete.hh"
|
||||
|
||||
#include "G4SDManager.hh"
|
||||
#include "G4SDChargedFilter.hh"
|
||||
@@ -49,41 +50,26 @@
|
||||
#include "G4VisAttributes.hh"
|
||||
#include "G4Colour.hh"
|
||||
|
||||
#include "G4FieldManager.hh"
|
||||
#include "G4TransportationManager.hh"
|
||||
#include "G4GenericMessenger.hh"
|
||||
|
||||
#include "G4PhysicalConstants.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
#include <stdio.h>
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4ThreadLocal
|
||||
G4GlobalMagFieldMessenger* B4dDetectorConstruction::fMagFieldMessenger = 0;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4dDetectorConstruction::B4dDetectorConstruction()
|
||||
: G4VUserDetectorConstruction(),
|
||||
fMessenger(0),
|
||||
fMagField(0),
|
||||
fCheckOverlaps(true)
|
||||
{
|
||||
// Define /B4/det commands using generic messenger class
|
||||
fMessenger
|
||||
= new G4GenericMessenger(this, "/B4/det/", "Detector construction control");
|
||||
|
||||
// Define /B4/det/setMagField command
|
||||
G4GenericMessenger::Command& setMagFieldCmd
|
||||
= fMessenger->DeclareMethod("setMagField",
|
||||
&B4dDetectorConstruction::SetMagField,
|
||||
"Define magnetic field value (in X direction");
|
||||
setMagFieldCmd.SetUnitCategory("Magnetic flux density");
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4dDetectorConstruction::~B4dDetectorConstruction()
|
||||
{
|
||||
delete fMagField;
|
||||
delete fMessenger;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -95,7 +81,6 @@ G4VPhysicalVolume* B4dDetectorConstruction::Construct()
|
||||
|
||||
// Define volumes
|
||||
return DefineVolumes();
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -104,8 +89,7 @@ void B4dDetectorConstruction::DefineMaterials()
|
||||
{
|
||||
// Lead material defined using NIST Manager
|
||||
G4NistManager* nistManager = G4NistManager::Instance();
|
||||
G4bool fromIsotopes = false;
|
||||
nistManager->FindOrBuildMaterial("G4_Pb", fromIsotopes);
|
||||
nistManager->FindOrBuildMaterial("G4_Pb");
|
||||
|
||||
// Liquid argon material
|
||||
G4double a; // mass of a mole;
|
||||
@@ -143,9 +127,10 @@ G4VPhysicalVolume* B4dDetectorConstruction::DefineVolumes()
|
||||
G4Material* gapMaterial = G4Material::GetMaterial("liquidArgon");
|
||||
|
||||
if ( ! defaultMaterial || ! absorberMaterial || ! gapMaterial ) {
|
||||
G4cerr << "Cannot retrieve materials already defined. " << G4endl;
|
||||
G4cerr << "Exiting application " << G4endl;
|
||||
exit(1);
|
||||
G4ExceptionDescription msg;
|
||||
msg << "Cannot retrieve materials already defined.";
|
||||
G4Exception("B4DetectorConstruction::DefineVolumes()",
|
||||
"MyCode0001", FatalException, msg);
|
||||
}
|
||||
|
||||
//
|
||||
@@ -227,7 +212,7 @@ G4VPhysicalVolume* B4dDetectorConstruction::DefineVolumes()
|
||||
= new G4LogicalVolume(
|
||||
absorberS, // its solid
|
||||
absorberMaterial, // its material
|
||||
"Abso"); // its name
|
||||
"AbsoLV"); // its name
|
||||
|
||||
new G4PVPlacement(
|
||||
0, // no rotation
|
||||
@@ -250,7 +235,7 @@ G4VPhysicalVolume* B4dDetectorConstruction::DefineVolumes()
|
||||
= new G4LogicalVolume(
|
||||
gapS, // its solid
|
||||
gapMaterial, // its material
|
||||
"Gap"); // its name
|
||||
"GapLV"); // its name
|
||||
|
||||
new G4PVPlacement(
|
||||
0, // no rotation
|
||||
@@ -272,43 +257,6 @@ G4VPhysicalVolume* B4dDetectorConstruction::DefineVolumes()
|
||||
<< gapThickness/mm << "mm of " << gapMaterial->GetName() << " ] "
|
||||
<< "\n------------------------------------------------------------\n";
|
||||
|
||||
|
||||
//
|
||||
// Scorers
|
||||
//
|
||||
|
||||
// declare Absorber as a MultiFunctionalDetector scorer
|
||||
//
|
||||
G4MultiFunctionalDetector* absDetector
|
||||
= new G4MultiFunctionalDetector("Absorber");
|
||||
|
||||
G4VPrimitiveScorer* primitive;
|
||||
G4SDChargedFilter* charged = new G4SDChargedFilter("chargedFilter");
|
||||
primitive = new G4PSEnergyDeposit("Edep");
|
||||
absDetector->RegisterPrimitive(primitive);
|
||||
|
||||
primitive = new G4PSTrackLength("TrackLength");
|
||||
primitive ->SetFilter(charged);
|
||||
absDetector->RegisterPrimitive(primitive);
|
||||
|
||||
G4SDManager::GetSDMpointer()->AddNewDetector(absDetector);
|
||||
absorberLV->SetSensitiveDetector(absDetector);
|
||||
|
||||
// declare Gap as a MultiFunctionalDetector scorer
|
||||
//
|
||||
G4MultiFunctionalDetector* gapDetector
|
||||
= new G4MultiFunctionalDetector("Gap");
|
||||
|
||||
primitive = new G4PSEnergyDeposit("Edep");
|
||||
gapDetector->RegisterPrimitive(primitive);
|
||||
|
||||
primitive = new G4PSTrackLength("TrackLength");
|
||||
primitive ->SetFilter(charged);
|
||||
gapDetector->RegisterPrimitive(primitive);
|
||||
|
||||
G4SDManager::GetSDMpointer()->AddNewDetector(gapDetector);
|
||||
gapLV->SetSensitiveDetector(gapDetector);
|
||||
|
||||
//
|
||||
// Visualization attributes
|
||||
//
|
||||
@@ -326,25 +274,55 @@ G4VPhysicalVolume* B4dDetectorConstruction::DefineVolumes()
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4dDetectorConstruction::SetMagField(G4double fieldValue)
|
||||
void B4dDetectorConstruction::ConstructSDandField()
|
||||
{
|
||||
// Apply a global uniform magnetic field along X axis
|
||||
G4FieldManager* fieldManager
|
||||
= G4TransportationManager::GetTransportationManager()->GetFieldManager();
|
||||
G4SDManager::GetSDMpointer()->SetVerboseLevel(1);
|
||||
//
|
||||
// Scorers
|
||||
//
|
||||
|
||||
// Delete the existing magnetic field
|
||||
if ( fMagField ) delete fMagField;
|
||||
// declare Absorber as a MultiFunctionalDetector scorer
|
||||
//
|
||||
G4MultiFunctionalDetector* absDetector
|
||||
= new G4MultiFunctionalDetector("Absorber");
|
||||
|
||||
if ( fieldValue != 0. ) {
|
||||
// create a new one if not null
|
||||
fMagField
|
||||
= new G4UniformMagField(G4ThreeVector(fieldValue, 0., 0.));
|
||||
|
||||
fieldManager->SetDetectorField(fMagField);
|
||||
fieldManager->CreateChordFinder(fMagField);
|
||||
}
|
||||
else {
|
||||
fMagField = 0;
|
||||
fieldManager->SetDetectorField(fMagField);
|
||||
}
|
||||
G4VPrimitiveScorer* primitive;
|
||||
primitive = new G4PSEnergyDeposit("Edep");
|
||||
absDetector->RegisterPrimitive(primitive);
|
||||
|
||||
primitive = new G4PSTrackLength("TrackLength");
|
||||
G4SDChargedFilter* charged = new G4SDChargedFilter("chargedFilter");
|
||||
primitive ->SetFilter(charged);
|
||||
absDetector->RegisterPrimitive(primitive);
|
||||
|
||||
SetSensitiveDetector("AbsoLV",absDetector);
|
||||
|
||||
// declare Gap as a MultiFunctionalDetector scorer
|
||||
//
|
||||
G4MultiFunctionalDetector* gapDetector
|
||||
= new G4MultiFunctionalDetector("Gap");
|
||||
|
||||
primitive = new G4PSEnergyDeposit("Edep");
|
||||
gapDetector->RegisterPrimitive(primitive);
|
||||
|
||||
primitive = new G4PSTrackLength("TrackLength");
|
||||
primitive ->SetFilter(charged);
|
||||
gapDetector->RegisterPrimitive(primitive);
|
||||
|
||||
SetSensitiveDetector("GapLV",gapDetector);
|
||||
|
||||
//
|
||||
// Magnetic field
|
||||
//
|
||||
// Create global magnetic field messenger.
|
||||
// Uniform magnetic field is then created automatically if
|
||||
// the field value is not zero.
|
||||
G4ThreeVector fieldValue = G4ThreeVector();
|
||||
fMagFieldMessenger = new G4GlobalMagFieldMessenger(fieldValue);
|
||||
fMagFieldMessenger->SetVerboseLevel(1);
|
||||
|
||||
// Register the field messenger for deleting
|
||||
G4AutoDelete::Register(fMagFieldMessenger);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id$
|
||||
// $Id: B4dEventAction.cc 75604 2013-11-04 13:17:26Z gcosmo $
|
||||
//
|
||||
/// \file B4dEventAction.cc
|
||||
/// \brief Implementation of the B4dEventAction class
|
||||
@@ -35,7 +35,6 @@
|
||||
#include "G4Event.hh"
|
||||
#include "G4SDManager.hh"
|
||||
#include "G4HCofThisEvent.hh"
|
||||
#include "G4GenericMessenger.hh"
|
||||
#include "G4UnitsTable.hh"
|
||||
|
||||
#include "Randomize.hh"
|
||||
@@ -45,47 +44,39 @@
|
||||
|
||||
B4dEventAction::B4dEventAction()
|
||||
: G4UserEventAction(),
|
||||
fMessenger(0),
|
||||
fPrintModulo(1)
|
||||
{
|
||||
// Define /B4/event commands using generic messenger class
|
||||
fMessenger = new G4GenericMessenger(this, "/B4/event/", "Event control");
|
||||
|
||||
// Define /B4/event/setPrintModulo command
|
||||
G4GenericMessenger::Command& setPrintModulo
|
||||
= fMessenger->DeclareProperty("setPrintModulo",
|
||||
fPrintModulo,
|
||||
"Print events modulo n");
|
||||
setPrintModulo.SetRange("value>0");
|
||||
}
|
||||
fAbsoEdepHCID(-1),
|
||||
fGapEdepHCID(-1),
|
||||
fAbsoTrackLengthHCID(-1),
|
||||
fGapTrackLengthHCID(-1)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
B4dEventAction::~B4dEventAction()
|
||||
{
|
||||
delete fMessenger;
|
||||
}
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4THitsMap<G4double>*
|
||||
B4dEventAction::GetHitsCollection(const G4String& hcName,
|
||||
B4dEventAction::GetHitsCollection(G4int hcID,
|
||||
const G4Event* event) const
|
||||
{
|
||||
G4int hcID
|
||||
= G4SDManager::GetSDMpointer()->GetCollectionID(hcName);
|
||||
G4THitsMap<G4double>* hitsCollection
|
||||
= static_cast<G4THitsMap<G4double>*>(
|
||||
event->GetHCofThisEvent()->GetHC(hcID));
|
||||
|
||||
if ( ! hitsCollection ) {
|
||||
G4cerr << "Cannot access hitsCollection " << hcName << G4endl;
|
||||
exit(1);
|
||||
G4ExceptionDescription msg;
|
||||
msg << "Cannot access hitsCollection ID " << hcID;
|
||||
G4Exception("B4dEventAction::GetHitsCollection()",
|
||||
"MyCode0003", FatalException, msg);
|
||||
}
|
||||
|
||||
return hitsCollection;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4double B4dEventAction::GetSum(G4THitsMap<G4double>* hitsMap) const
|
||||
{
|
||||
G4double sumValue = 0;
|
||||
@@ -119,33 +110,34 @@ void B4dEventAction::PrintEventStatistics(
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4dEventAction::BeginOfEventAction(const G4Event* event)
|
||||
{
|
||||
|
||||
G4int eventID = event->GetEventID();
|
||||
if ( eventID % fPrintModulo == 0 ) {
|
||||
G4cout << "\n---> Begin of event: " << eventID << G4endl;
|
||||
//CLHEP::HepRandom::showEngineStatus();
|
||||
}
|
||||
}
|
||||
void B4dEventAction::BeginOfEventAction(const G4Event* /*event*/)
|
||||
{}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void B4dEventAction::EndOfEventAction(const G4Event* event)
|
||||
{
|
||||
// Get sum value from hits collections
|
||||
// Get hist collections IDs
|
||||
if ( fAbsoEdepHCID == -1 ) {
|
||||
fAbsoEdepHCID
|
||||
= G4SDManager::GetSDMpointer()->GetCollectionID("Absorber/Edep");
|
||||
fGapEdepHCID
|
||||
= G4SDManager::GetSDMpointer()->GetCollectionID("Gap/Edep");
|
||||
fAbsoTrackLengthHCID
|
||||
= G4SDManager::GetSDMpointer()->GetCollectionID("Absorber/TrackLength");
|
||||
fGapTrackLengthHCID
|
||||
= G4SDManager::GetSDMpointer()->GetCollectionID("Gap/TrackLength");
|
||||
}
|
||||
|
||||
// Get sum values from hits collections
|
||||
//
|
||||
G4double absoEdep
|
||||
= GetSum(GetHitsCollection("Absorber/Edep", event));
|
||||
|
||||
G4double gapEdep
|
||||
= GetSum(GetHitsCollection("Gap/Edep", event));
|
||||
G4double absoEdep = GetSum(GetHitsCollection(fAbsoEdepHCID, event));
|
||||
G4double gapEdep = GetSum(GetHitsCollection(fGapEdepHCID, event));
|
||||
|
||||
G4double absoTrackLength
|
||||
= GetSum(GetHitsCollection("Absorber/TrackLength", event));
|
||||
|
||||
= GetSum(GetHitsCollection(fAbsoTrackLengthHCID, event));
|
||||
G4double gapTrackLength
|
||||
= GetSum(GetHitsCollection("Gap/TrackLength", event));
|
||||
= GetSum(GetHitsCollection(fGapTrackLengthHCID, event));
|
||||
|
||||
// get analysis manager
|
||||
G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
|
||||
@@ -168,9 +160,9 @@ void B4dEventAction::EndOfEventAction(const G4Event* event)
|
||||
//print per event (modulo n)
|
||||
//
|
||||
G4int eventID = event->GetEventID();
|
||||
if ( eventID % fPrintModulo == 0) {
|
||||
G4int printModulo = G4RunManager::GetRunManager()->GetPrintProgress();
|
||||
if ( ( printModulo > 0 ) && ( eventID % printModulo == 0 ) ) {
|
||||
G4cout << "---> End of event: " << eventID << G4endl;
|
||||
|
||||
PrintEventStatistics(absoEdep, absoTrackLength, gapEdep, gapTrackLength);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# $Id: CMakeLists.txt 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
|
||||
#---Adding example N3 subdirectories explicitly
|
||||
# and a custom target to for building all example N3 options ----------
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: GNUmakefile,v 1.97 2010-09-30 09:05:24 gcosmo Exp $
|
||||
# $Id: GNUmakefile 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
# -----------------------------------------------------------------
|
||||
|
||||
SUBDIR = B4a B4b B4c B4d
|
||||
|
||||
@@ -15,6 +15,90 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
02 December 2013 Ivana Hrivnacova
|
||||
- Fixed gui.mac:
|
||||
corrected wireframe parameter, removed run2.mac from gui
|
||||
|
||||
28/11/13 I. Hrivnacova (exampleB4-V09-06-18)
|
||||
- Clean-up macros (fixed obsolete comments)
|
||||
|
||||
26/11/13 I. Hrivnacova (exampleB4-V09-06-17)
|
||||
- Fixed deleting fMagFieldMessenger with use of G4AutoDelete utility
|
||||
|
||||
30/10/13 I. Hrivnacova (exampleB4-V09-06-16)
|
||||
- Added a protection when /run/printProgress value is set to zero
|
||||
|
||||
30/10/13 I. Hrivnacova (exampleB4-V09-06-15)
|
||||
- Updated README
|
||||
|
||||
29/10/13 I. Hrivnacova (exampleB4-V09-06-14)
|
||||
- Fixed macro (using /run/printProgress)
|
||||
|
||||
29/10/13 I. Hrivnacova (exampleB4-V09-06-13)
|
||||
- Using G4GlobalMagFieldMessenger
|
||||
- Using G4Exception for warnings and error messages
|
||||
- Using G4RunManager::SetPrintProgress()
|
||||
- Using Gent4 default number of threads when not set via command line
|
||||
- Updated README
|
||||
|
||||
01/10/13 I. Hrivnacova (exampleB4-V09-06-12)
|
||||
- Updated for changes in analysis:
|
||||
removal of G4AnalysisManager::Create(isMaster)
|
||||
|
||||
19/08/13 I. Hrivnacova (exampleB4-V09-06-11)
|
||||
- Fixed B4[b]RunAction::EndOfRunAction() again: to get the printed
|
||||
histogram statistics correct
|
||||
|
||||
24/07/13 P. Gumplinger (exampleB4-V09-06-10)
|
||||
- remove unused B4RunAction* fRunAction in B4aEventAction.hh
|
||||
|
||||
11/06/13 I. Hrivnacova (exampleB4-V09-06-09)
|
||||
- Fixed B4[b]RunAction::EndOfRunAction(): to get the analysis file
|
||||
closed also when no events are processed
|
||||
- Fixed names for newly added data members (in B4dEventAction)
|
||||
|
||||
10/06/13 I. Hrivnacova (exampleB4-V09-06-08)
|
||||
- Fixed names for newly added data members (in B4cEventAction)
|
||||
|
||||
03/06/13 I. Hrivnacova (exampleB4-V09-06-07)
|
||||
- Updated README files for changes for MT
|
||||
|
||||
03/06/13 I. Hrivnacova (exampleB4-V09-06-06)
|
||||
- Moved creating analysis manager and booking histograms & ntuples
|
||||
in run action constructor; this makes available /analysis commands
|
||||
|
||||
29/05/13 I. Hrivnacova (exampleB4-V09-06-05)
|
||||
- Fixed detector construction classes:
|
||||
Moving creating setMagField command from the constructor in
|
||||
ConstructSDandField(), as the command has to be created per thread,
|
||||
and declaring fMagField and fMessenger data members as static
|
||||
G4ThreadLocal
|
||||
|
||||
24/04/13 M. Asai (exampleB4-V09-06-04)
|
||||
- Recover GNUmakefiles.
|
||||
|
||||
23/04/13 I. Hrivnacova (exampleB4-V09-06-03)
|
||||
- Use G4Random::setTheEngine instead of CLHEP::HepRandom in main
|
||||
(needed for MT)
|
||||
- In B4b: merged B4bRunAction and B4RunAction in one class
|
||||
- Removed unnecessary includes in run action files
|
||||
- Minor fixes of coding guidelines
|
||||
|
||||
18/04/13 M. Asai (exampleB4-V09-06-02)
|
||||
- Migrated to the new G4VUserActionInitialization class.
|
||||
|
||||
08/04/13 M. Asai (exampleB4-V09-06-01)
|
||||
- Fixed the use of thread-local G4Allocator for B4c.
|
||||
|
||||
06/04/13 M. Asai (exampleB4-V09-06-00)
|
||||
- Migrated to multi-threading.
|
||||
|
||||
28/02/13 I. Hrivnacova
|
||||
- When building materials with NistManager
|
||||
do not set fromIsotopes argument (which was set to false),
|
||||
as since 9.6 all materials have to be built from isotopes.
|
||||
Thanks to V. Ivantchenko for pointing at this.
|
||||
|
||||
01/11/12 I. Hrivnacova (exampleB4-V09-05-02)
|
||||
- Implemented new way of handling program arguments in main()
|
||||
|
||||
|
||||
+71
-49
@@ -1,4 +1,4 @@
|
||||
$Id$
|
||||
$Id: README 78001 2013-12-02 08:24:53Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -15,6 +15,7 @@ $Id$
|
||||
|
||||
1- GEOMETRY DEFINITION
|
||||
|
||||
The geometry is constructed in B4[c,d]DetectorConstruction class.
|
||||
The calorimeter is a box made of a given number of layers. A layer
|
||||
consists of an absorber plate and of a detection gap. The layer is
|
||||
replicated.
|
||||
@@ -25,11 +26,13 @@ $Id$
|
||||
- the number of layers, and
|
||||
- the transverse size of the calorimeter (the entrance face is a square).
|
||||
|
||||
In addition a transverse uniform magnetic field can be applied and set
|
||||
via the interactive command defined using the G4GenericMessenger class.
|
||||
In addition, a global, uniform, and transverse magnetic field can be
|
||||
applied using G4GlobalMagFieldMessenger, instantiated in
|
||||
B4[c,d]DetectorConstruction::ConstructSDandField
|
||||
with a non zero field value, or via interactive commands.
|
||||
For example:
|
||||
|
||||
/B4/det/setMagField 0.2 tesla
|
||||
/globalField/setValue 0.2 0 0 tesla
|
||||
|
||||
|
||||
|<----layer 0---------->|<----layer 1---------->|<----layer 2---------->|
|
||||
@@ -63,7 +66,23 @@ $Id$
|
||||
/process/(in)activate processName
|
||||
allows to activate/inactivate the processes one by one.
|
||||
|
||||
3- PRIMARY GENERATOR
|
||||
3- ACTION INITALIZATION
|
||||
|
||||
A newly introduced class, B4[a,b,c,d]ActionInitialization,
|
||||
instantiates and registers to Geant4 kernel all user action classes.
|
||||
|
||||
While in sequential mode the action classes are instatiated just once,
|
||||
via invoking the method:
|
||||
B4[a,b,c,d]ActionInitialization::Build()
|
||||
in multi-threading mode the same method is invoked for each thread worker
|
||||
and so all user action classes are defined thread-local.
|
||||
|
||||
A run action class is instantiated both thread-local
|
||||
and global that's why its instance is created also in the method
|
||||
B4[a,b,c,d]ActionInitialization::BuildForMaster()
|
||||
which is invoked only in multi-threading mode.
|
||||
|
||||
4- PRIMARY GENERATOR
|
||||
|
||||
The primary beam consists of a single particle which hits the
|
||||
calorimeter perpendicular to the input face. The type of the particle
|
||||
@@ -71,17 +90,15 @@ $Id$
|
||||
be changed via the G4 built-in commands of the G4ParticleGun class (see
|
||||
the macros provided with this example).
|
||||
|
||||
4- RUNS and EVENTS
|
||||
5- RUNS and EVENTS
|
||||
|
||||
A run is a set of events.
|
||||
|
||||
The user can choose the frequency of printing from B4aEventAction (or event
|
||||
action classes in other options) via the interactive command defined
|
||||
using the G4GenericMessenger class, for example:
|
||||
The user can choose the frequency of printing via the Geant4 interactive
|
||||
command, for example:
|
||||
|
||||
/B4/event/setPrintModulo 100
|
||||
/run/printProgress 100
|
||||
|
||||
5- DETECTOR RESPONSE
|
||||
6- DETECTOR RESPONSE
|
||||
|
||||
The energy deposit and track lengths of the charged particles are recorded on
|
||||
an event by event basis in the Absober and Gap layers.
|
||||
@@ -103,8 +120,8 @@ $Id$
|
||||
Variant b: User data object
|
||||
|
||||
In order to avoid dependencies between action classes, a user object
|
||||
B4bRunData is defined with data members needed to the accounted
|
||||
information.
|
||||
B4bRunData, derived from G4Run, is defined with data members needed
|
||||
for the accounted information.
|
||||
In order to reduce the number of data members a 2-dimensions array
|
||||
is introduced for each quantity.
|
||||
Then the quantities are collected step by step in user action classes:
|
||||
@@ -117,7 +134,7 @@ $Id$
|
||||
and sensitive detectors framework defined in the Geant4 kernel.
|
||||
The physics quantities are stored in B4cCalorHit via two B4cCalorimeterSD
|
||||
objects, one associated with the Absorber volume and another one with Gap
|
||||
in B4cDetectorConstruction.
|
||||
in B4cDetectorConstruction::ConstructSDandField().
|
||||
|
||||
In contrary to the B2 example (Tracker) where a new hit is created
|
||||
with each track passing the sensitive volume (in the calorimeter), only one
|
||||
@@ -134,12 +151,12 @@ $Id$
|
||||
detector classes but rather uses the classes already defined
|
||||
in Geant4. In this example, the G4MultiFunctionalDetector with
|
||||
G4PSEnergyDeposit and G4PSTrackLength primitive scores are used (see
|
||||
B4dDetectorConstruction class).
|
||||
B4dDetectorConstruction::ConstructSDandField()).
|
||||
|
||||
Also with this approach, the quantities per each layer are available
|
||||
in addition to the total quantities.
|
||||
|
||||
6- HISTOGRAMS
|
||||
7- HISTOGRAMS
|
||||
|
||||
The analysis tools are used to accumulate statistics and compute the dispersion
|
||||
of the energy deposit and track lengths of the charged particles.
|
||||
@@ -156,8 +173,11 @@ $Id$
|
||||
|
||||
The accumulated statistic and computed dispersion is printed at the end of
|
||||
run, in B4RunAction::EndOfRunAction().
|
||||
|
||||
7- VISUALIZATION TUTORIAL
|
||||
When running in multi-threading mode, the histograms accumulated on threads are
|
||||
automatically merged in a single output file, while the ntuple is written
|
||||
in files per thread.
|
||||
|
||||
8- VISUALIZATION TUTORIAL
|
||||
|
||||
Additional visualization tutorial macros are available in the visTutor
|
||||
subdirectory. They can be tried as:
|
||||
@@ -168,6 +188,38 @@ $Id$
|
||||
For details, see comment lines described in the macro files.
|
||||
These macros are designed to help your understanding of the User's Guide.
|
||||
|
||||
9- HOW TO RUN
|
||||
|
||||
This example handles the program arguments in a new way.
|
||||
It can be run with the following optional arguments:
|
||||
% exampleB4a [-m macro ] [-u UIsession] [-t nThreads]
|
||||
|
||||
The -t option is available only in multi-threading mode
|
||||
and it allows the user to override the Geant4 default number of
|
||||
threads. The number of threads can be also set via G4FORCENUMBEROFTHREADS
|
||||
environment variable which has the top priority.
|
||||
|
||||
- Execute exampleB4a in the 'interactive mode' with visualization
|
||||
% exampleB4a
|
||||
and type in the commands from run1.mac line by line:
|
||||
Idle> /tracking/verbose 1
|
||||
Idle> /run/beamOn 1
|
||||
Idle> ...
|
||||
Idle> exit
|
||||
or
|
||||
Idle> /control/execute run1.mac
|
||||
....
|
||||
Idle> exit
|
||||
|
||||
- Execute exampleB4a in the 'batch' mode from macro files
|
||||
(without visualization)
|
||||
% exampleB4a -m run2.mac
|
||||
% exampleB4a -m exampleB4.in > exampleB4.out
|
||||
|
||||
- Execute exampleB4a in the 'interactive mode' with a selected UI session,
|
||||
e.g. tcsh
|
||||
% exampleB4a -u tcsh
|
||||
|
||||
The following paragraphs are common to all basic examples
|
||||
|
||||
A- VISUALIZATION
|
||||
@@ -214,33 +266,3 @@ $Id$
|
||||
The selection of the user command interface is then done automatically
|
||||
according to the Geant4 configuration or it can be done explicitly via
|
||||
the third argument of the G4UIExecutive constructor (see exampleB4a.cc).
|
||||
|
||||
C- HOW TO RUN
|
||||
|
||||
This example handles the program arguments in a new way.
|
||||
It can be run with the following optional arguments:
|
||||
% exampleB4a [-m macro ] [-u UIsession]
|
||||
|
||||
- Execute exampleB4a in the 'interactive mode' with visualization
|
||||
% exampleB4a
|
||||
and type in the commands from run1.mac line by line:
|
||||
Idle> /tracking/verbose 1
|
||||
Idle> /run/beamOn 1
|
||||
Idle> ...
|
||||
Idle> exit
|
||||
or
|
||||
Idle> /control/execute run1.mac
|
||||
....
|
||||
Idle> exit
|
||||
|
||||
- Execute exampleB4a in the 'batch' mode from macro files
|
||||
(without visualization)
|
||||
% exampleB4a -m run2.mac
|
||||
% exampleB4a -m exampleB4.in > exampleB4.out
|
||||
|
||||
- Execute exampleB4a in the 'interactive mode' with a selected UI session,
|
||||
e.g. tcsh
|
||||
% exampleB4a -u tcsh
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
/gui/addMenu run Run
|
||||
/gui/addButton run "beamOn 1" "/run/beamOn 1"
|
||||
/gui/addButton run run1 "/control/execute run1.mac"
|
||||
/gui/addButton run run2 "/control/execute run2.mac"
|
||||
#
|
||||
# Gun menu :
|
||||
/gui/addMenu gun Gun
|
||||
@@ -38,14 +37,14 @@
|
||||
# Viewer menu :
|
||||
/gui/addMenu viewer Viewer
|
||||
/gui/addButton viewer "Set style surface" "/vis/viewer/set/style surface"
|
||||
/gui/addButton viewer "Set style wireframe" "/vis/viewer/set/style wire"
|
||||
/gui/addButton viewer "Set style wireframe" "/vis/viewer/set/style wireframe"
|
||||
/gui/addButton viewer "Refresh viewer" "/vis/viewer/refresh"
|
||||
/gui/addButton viewer "Update viewer (interaction or end-of-file)" "/vis/viewer/update"
|
||||
/gui/addButton viewer "Flush viewer (= refresh + update)" "/vis/viewer/flush"
|
||||
/gui/addButton viewer "Update scene" "/vis/scene/notifyHandlers"
|
||||
#
|
||||
# To limit the output flow in the "dump" widget :
|
||||
/B4/event/setPrintModulo 100
|
||||
/run/printProgress 100
|
||||
#
|
||||
# User defined icon :
|
||||
/gui/addIcon "Run beam on" user_icon "/run/beamOn 1" run.png
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
# 20 events
|
||||
#
|
||||
/tracking/verbose 0
|
||||
/B4/event/setPrintModulo 5
|
||||
/run/printProgress 5
|
||||
/run/beamOn 20
|
||||
#
|
||||
# Magnetic field
|
||||
#
|
||||
/B4/det/setMagField 0.2 tesla
|
||||
/globalField/setValue 0.2 0 0 tesla
|
||||
/run/beamOn 3
|
||||
#
|
||||
# Activate/inactivate physics processes
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
# electron 50 MeV in direction (0.,0.,1.)
|
||||
# 1000 events
|
||||
#
|
||||
/B4/event/setPrintModulo 100
|
||||
/run/printProgress 100
|
||||
/run/beamOn 1000
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
/vis/modeling/trajectories/TimeSliceByCharge/default/setAuxPtsSize 5
|
||||
/vis/modeling/trajectories/TimeSliceByCharge/default/setTimeSliceInterval 0.001 ns
|
||||
/vis/modeling/trajectories/list
|
||||
#/B4/det/setMagField 5 T
|
||||
#//globalField/setValue 5 0 0 tesla
|
||||
#/vis/scene/add/trajectories rich smooth
|
||||
|
||||
# Re-establish auto refreshing and verbosity:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# $Id: heprep.mac,v 1.2 2003-12-01 21:09:28 perl Exp $
|
||||
# $Id: heprep.mac 68058 2013-03-13 14:47:43Z gcosmo $
|
||||
#
|
||||
# Macro file for "exampleN03.cc"
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user