Import Geant4 11.0.0 source tree
This commit is contained in:
committed by
Ben Morgan
parent
6399a014b6
commit
80e2389dd8
@@ -1,103 +0,0 @@
|
||||
|
||||
///\file "optical/wls/.README.txt"
|
||||
///\brief Example wls README page
|
||||
|
||||
/*! \page Examplewls Example wls
|
||||
|
||||
This application simulates the propagation of photons inside a Wave Length
|
||||
Shifting (WLS) fiber.
|
||||
|
||||
|
||||
\section Examplewls_s1 Geometry Definition
|
||||
|
||||
The default geometry is as follow:
|
||||
|
||||
- A perfect, bare, PMMA fiber: 0.5mm radius, 2m length at center(0,0,0)
|
||||
of the World.
|
||||
- A circular MPPC with 0.5mm radius at the +z end of the fiber
|
||||
- World and coupling materials are G4_AIR
|
||||
- Photons will always refracted out to coupling material before
|
||||
reaching MPPC
|
||||
- There are many flexible parameters that the user could specify.
|
||||
They are under the /WLS directory of help.
|
||||
|
||||
|
||||
\section Examplewls_s2 Material Choices
|
||||
|
||||
There are several materials that the user can use for the fiber core,
|
||||
world and coupling.
|
||||
|
||||
They are:
|
||||
|
||||
- Vacuum (G4_Galactic)
|
||||
- Air (G4_AIR)
|
||||
- PMMA, n = 1.60
|
||||
- Pethylene, n = 1.49
|
||||
- FPethylene, n = 1.42
|
||||
- Polystyrene, n = 1.60
|
||||
- Silicone, n = 1.46
|
||||
|
||||
|
||||
\section Examplewls_s3 Photon Source
|
||||
|
||||
This program uses the General Particle Source (G4GeneralParticleSource)
|
||||
provided by GEANT4 for
|
||||
generating photons. The energy of the photon must be within 2.00 eV
|
||||
to 3.47 eV. For detail instruction on how to use the General Particle
|
||||
Source, please visit their home page at:
|
||||
http://reat.space.qinetiq.com/gps/
|
||||
|
||||
|
||||
\section Examplewls_s4 Hit
|
||||
|
||||
A hit is registered when the photon is absorbed on the MPPC surface.
|
||||
Information stored in hit includes the local coordinate of the location
|
||||
the photon is absorbed on the MPPC, the global coordinate where the
|
||||
photon left the fiber and the transit time of the photon.
|
||||
|
||||
|
||||
\section Examplewls_s5 Stepping Action
|
||||
|
||||
The stepping action keeps track of the number of bounces a photon has
|
||||
gone through. In order to prevent infinite loop and extremely skewed
|
||||
rays taking up computing time, there is a limit of the number of
|
||||
bounces that a photon can go through before it is artificially killed.
|
||||
The default limit is 100,000. The user can set his/her own limit using
|
||||
the /stepping/setBounceLimit command. A value of 0 will turn off the
|
||||
limit. All photons artificially killed will have murderee flag turned
|
||||
on in their UserTrackInformation.
|
||||
|
||||
|
||||
\section Examplewls_s6 Visualization
|
||||
|
||||
To visualize a photon's trajectory, simply use vis.mac macro in
|
||||
interactive mode or in your own macro.
|
||||
|
||||
|
||||
\section Examplewls_s7 main ()
|
||||
|
||||
- Execute wls in 'batch' mode from macro files; \n
|
||||
you can enter an optional integer seed for batch mode
|
||||
\verbatim
|
||||
% wls wls.in (optional: enter an integer seed here)
|
||||
\endverbatim
|
||||
|
||||
- wls in 'interactive mode' with visualization
|
||||
\verbatim
|
||||
% wls
|
||||
....
|
||||
Idle> /control/execute vis.mac
|
||||
Idle> /run/beamOn 1
|
||||
....
|
||||
Idle> exit
|
||||
\endverbatim
|
||||
|
||||
\section Examplewls_s8 Macros provided
|
||||
|
||||
- wls.in: sets up the default geometry and provides the commands to change it.
|
||||
Primary particle is an optical photon with energy 2.1 eV.
|
||||
- Sr90.mac: Default geometry is used. Primary particle is a strontium ion.
|
||||
- vis.mac: macro for visualization; called automatically when no macro is
|
||||
given on command line.
|
||||
|
||||
*/
|
||||
@@ -1,6 +1,6 @@
|
||||
#----------------------------------------------------------------------------
|
||||
# Setup the project
|
||||
cmake_minimum_required(VERSION 3.12...3.20)
|
||||
cmake_minimum_required(VERSION 3.16...3.21)
|
||||
project(wls)
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
@@ -40,11 +40,9 @@ target_link_libraries(wls ${Geant4_LIBRARIES} )
|
||||
# relies on these scripts being in the current working directory.
|
||||
#
|
||||
set(wls_SCRIPTS
|
||||
wls.out
|
||||
wls.in
|
||||
gui.mac
|
||||
Sr90.mac
|
||||
vis.mac
|
||||
electron.mac
|
||||
)
|
||||
|
||||
foreach(_script ${wls_SCRIPTS})
|
||||
|
||||
@@ -15,6 +15,24 @@ track of all tags.
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
Oct 25, 2021 B. Morgan (WLS-V10-07-04)
|
||||
- Use G4StrUtil functions replacing deprecated G4String member functions
|
||||
|
||||
Oct 6, 2021 I. Hrivnacova (WLS-V10-07-03)
|
||||
- Migration to new G4AnalysisManager.hh header;
|
||||
define the default output file type (root),
|
||||
removed WLSAnalysis.hh
|
||||
|
||||
Sept 7, 2021 D. Sawkey (WLS-V10-07-02)
|
||||
- add visualisation attributes
|
||||
- fix bug preventing cladding being built
|
||||
- fix counting detector hits
|
||||
- add histograms
|
||||
- use G4OpBoundaryProcess::invokeSD rather than ProcessHits_boundary call
|
||||
in SteppingAction
|
||||
- remove StringToRotation
|
||||
- remove Sr90.mac; add electron.mac
|
||||
|
||||
May 21, 2021 D. Sawkey (WLS-V10-07-01)
|
||||
- WLSMaterials: use correct material property names
|
||||
|
||||
|
||||
@@ -1,99 +0,0 @@
|
||||
=========================================================
|
||||
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
|
||||
=========================================================
|
||||
|
||||
WLS
|
||||
----------
|
||||
|
||||
This application simulates the propagation of photons inside a Wave Length
|
||||
Shifting (WLS) fiber.
|
||||
|
||||
|
||||
1- Geometry Definition
|
||||
|
||||
The default geometry is as follow:
|
||||
|
||||
- A perfect, bare, PMMA fiber: 0.5mm radius, 2m length at center(0,0,0)
|
||||
of the World.
|
||||
- A circular MPPC with 0.5mm radius at the +z end of the fiber
|
||||
- World and coupling materials are G4_AIR
|
||||
- Photons will always refracted out to coupling material before
|
||||
reaching MPPC
|
||||
- There are many flexible parameters that the user could specify.
|
||||
They are under the /WLS directory of help.
|
||||
|
||||
|
||||
2- Material Choices
|
||||
|
||||
There are several materials that the user can use for the fiber core,
|
||||
world and coupling.
|
||||
|
||||
They are:
|
||||
|
||||
- Vacuum (G4_Galactic)
|
||||
- Air (G4_AIR)
|
||||
- PMMA, n = 1.60
|
||||
- Pethylene, n = 1.49
|
||||
- FPethylene, n = 1.42
|
||||
- Polystyrene, n = 1.60
|
||||
- Silicone, n = 1.46
|
||||
|
||||
|
||||
3- Photon Source
|
||||
|
||||
This program uses the General Particle Source (G4GeneralParticleSource)
|
||||
provided by GEANT4 for
|
||||
generating photons. The energy of the photon must be within 2.00 eV
|
||||
to 3.47 eV. For detail instruction on how to use the General Particle
|
||||
Source, please visit their home page at:
|
||||
|
||||
http://reat.space.qinetiq.com/gps/
|
||||
|
||||
|
||||
4- Hit
|
||||
|
||||
A hit is registered when the photon is absorbed on the MPPC surface.
|
||||
Information stored in hit includes the local coordinate of the location
|
||||
the photon is absorbed on the MPPC, the global coordinate where the
|
||||
photon left the fiber and the transit time of the photon.
|
||||
|
||||
|
||||
5- Stepping Action
|
||||
|
||||
The stepping action keeps track of the number of bounces a photon has
|
||||
gone through. In order to prevent infinite loop and extremely skewed
|
||||
rays taking up computing time, there is a limit of the number of
|
||||
bounces that a photon can go through before it is artificially killed.
|
||||
The default limit is 100,000. The user can set his/her own limit using
|
||||
the /stepping/setBounceLimit command. A value of 0 will turn off the
|
||||
limit. All photons artificially killed will have murderee flag turned
|
||||
on in their UserTrackInformation.
|
||||
|
||||
|
||||
6- Visualization
|
||||
|
||||
To visualize a photon's trajectory, simply use vis.mac macro in
|
||||
interactive mode or in your own macro.
|
||||
|
||||
|
||||
7- main()
|
||||
|
||||
- execute wls in 'batch' mode from macro files
|
||||
- you can enter an optional integer seed for batch mode
|
||||
% wls wls.in (optional: enter an integer seed here)
|
||||
|
||||
- wls in 'interactive mode' with visualization
|
||||
% wls
|
||||
....
|
||||
Idle> /control/execute
|
||||
Idle> /run/beamOn 1
|
||||
....
|
||||
Idle> exit
|
||||
|
||||
8- Macros provided
|
||||
|
||||
- wls.in: sets up the default geometry and provides the commands to change it.
|
||||
Primary particle is an optical photon with energy 2.1 eV.
|
||||
- Sr90.mac: Default geometry is used. Primary particle is a strontium ion.
|
||||
- vis.mac: macro for visualization; called automatically when no macro is
|
||||
given on command line.
|
||||
@@ -1,27 +0,0 @@
|
||||
/control/verbose 1
|
||||
/run/verbose 1
|
||||
/event/verbose 1
|
||||
/tracking/verbose 0
|
||||
/process/optical/verbose 1
|
||||
|
||||
/run/initialize
|
||||
|
||||
|
||||
/gps/particle ion
|
||||
/gps/ion 38 90 0 0
|
||||
|
||||
/gps/energy 0 keV
|
||||
|
||||
/gps/pos/type Plane
|
||||
/gps/pos/shape Circle
|
||||
/gps/pos/radius 0.5 mm
|
||||
|
||||
/gps/pos/centre 1.0 0.0 0.0 cm
|
||||
/gps/pos/rot1 0 1 0
|
||||
/gps/pos/rot2 0 0 1
|
||||
|
||||
/gps/ang/type iso
|
||||
/gps/ang/mintheta 0.0 deg
|
||||
/gps/ang/maxtheta 90.0 deg
|
||||
|
||||
/run/beamOn 10
|
||||
@@ -0,0 +1,50 @@
|
||||
|
||||
/control/verbose 1
|
||||
/run/verbose 1
|
||||
/tracking/verbose 0
|
||||
/event/verbose 0
|
||||
|
||||
|
||||
/WLS/setPhotonDetGeometry Circle
|
||||
/WLS/setNumOfLayers 2
|
||||
/WLS/setSurfaceRoughness 0.999
|
||||
/WLS/setXYRatio 0.8
|
||||
/WLS/setWLSLength 1. m
|
||||
/WLS/setWLSRadius 0.5 mm
|
||||
/WLS/setClad1Radius 0.3 mm
|
||||
/WLS/setClad2Radius 0.1 mm
|
||||
#
|
||||
/WLS/setPhotonDetHalfLength 0.6 mm
|
||||
/WLS/setGap 0.15 mm
|
||||
/WLS/setAlignment 0.1 deg
|
||||
/WLS/setMirror true
|
||||
|
||||
/WLS/setBarLength 1.1 m
|
||||
/WLS/setBarBase 9.5 mm
|
||||
/WLS/setHoleRadius 0.9 mm
|
||||
/WLS/setCoatingThickness 0.3 mm
|
||||
/WLS/setCoatingRadius 1.775 mm
|
||||
|
||||
|
||||
/run/initialize
|
||||
|
||||
/hits/verbose 2
|
||||
/process/optical/verbose 1
|
||||
|
||||
/gps/particle e-
|
||||
/gps/energy 10 MeV
|
||||
|
||||
/gps/pos/type Plane
|
||||
/gps/pos/shape Circle
|
||||
/gps/pos/radius 0.5 mm
|
||||
|
||||
/gps/pos/centre 0.0 0.0 0.0 cm
|
||||
/gps/pos/rot1 0 1 0
|
||||
/gps/pos/rot2 0 0 1
|
||||
|
||||
/gps/ang/type iso
|
||||
/gps/ang/mintheta 0.0 deg
|
||||
/gps/ang/maxtheta 90.0 deg
|
||||
|
||||
/run/printProgress 1
|
||||
/run/beamOn 10
|
||||
@@ -19,21 +19,17 @@
|
||||
#
|
||||
# Gun menu :
|
||||
/gui/addMenu gun Gun
|
||||
/gui/addButton gun "50 MeV" "/gun/energy 50 MeV"
|
||||
/gui/addButton gun "1 GeV" "/gun/energy 1 GeV"
|
||||
/gui/addButton gun "10 GeV" "/gun/energy 10 GeV"
|
||||
/gui/addButton gun "e-" "/gun/particle e-"
|
||||
/gui/addButton gun "pi0" "/gun/particle pi0"
|
||||
/gui/addButton gun "pi+" "/gun/particle pi+"
|
||||
/gui/addButton gun "neutron" "/gun/particle neutron"
|
||||
/gui/addButton gun "proton" "/gun/particle proton"
|
||||
#
|
||||
# Field menu :
|
||||
#/gui/addMenu field Field
|
||||
#/gui/addButton field "off" "/B2/det/setField 0.2 tesla"
|
||||
#/gui/addButton field "0.2 tesla" "/B2/det/setField 0.2 tesla"
|
||||
#/gui/addButton field "2.0 tesla" "/B2/det/setField 2.0 tesla"
|
||||
/gui/addButton gun "500 keV" "/gps/energy 500 keV"
|
||||
/gui/addButton gun "1 MeV" "/gps/energy 1 MeV"
|
||||
/gui/addButton gun "10 MeV" "/gps/energy 10 MeV"
|
||||
/gui/addButton gun "100 MeV" "/gps/energy 100 MeV"
|
||||
/gui/addButton gun "e-" "/gps/particle e-"
|
||||
/gui/addButton gun "pi0" "/gps/particle pi0"
|
||||
/gui/addButton gun "pi+" "/gps/particle pi+"
|
||||
/gui/addButton gun "neutron" "/gps/particle neutron"
|
||||
/gui/addButton gun "proton" "/gps/particle proton"
|
||||
#
|
||||
|
||||
# Viewer menu :
|
||||
/gui/addMenu viewer Viewer
|
||||
/gui/addButton viewer "Set style surface" "/vis/viewer/set/style surface"
|
||||
|
||||
@@ -48,6 +48,7 @@ class G4EllipticalTube;
|
||||
class G4LogicalVolume;
|
||||
class G4Material;
|
||||
class G4Tubs;
|
||||
class G4VisAttributes;
|
||||
class G4VPhysicalVolume;
|
||||
|
||||
class WLSDetectorConstruction : public G4VUserDetectorConstruction
|
||||
@@ -112,20 +113,11 @@ class WLSDetectorConstruction : public G4VUserDetectorConstruction
|
||||
G4double GetCoatingThickness();
|
||||
G4double GetCoatingRadius();
|
||||
|
||||
// StringToRotationMatrix() converts a string "X90,Y45" into a
|
||||
// G4RotationMatrix.
|
||||
// This is an active rotation, in that the object is first rotated
|
||||
// around the parent's X axis by 90 degrees, then the object is
|
||||
// further rotated around the parent's Y axis by 45 degrees.
|
||||
// The return value points to a G4RotationMatrix on the heap, so
|
||||
// it is persistent. Angles are in degrees, can have decimals,
|
||||
// and can be negative. Axes are X, Y, Z.
|
||||
|
||||
static G4RotationMatrix StringToRotationMatrix(G4String rotation);
|
||||
|
||||
G4Material* FindMaterial(G4String);
|
||||
|
||||
private:
|
||||
std::vector<G4VisAttributes*> fVisAttributes;
|
||||
|
||||
WLSMaterials* fMaterials;
|
||||
|
||||
G4LogicalVolume* fLogicHole;
|
||||
@@ -191,8 +183,6 @@ class WLSDetectorConstruction : public G4VUserDetectorConstruction
|
||||
G4double fCoatingThickness;
|
||||
G4double fCoatingRadius;
|
||||
|
||||
void ConstructFiber();
|
||||
|
||||
void UpdateGeometryParameters();
|
||||
|
||||
WLSDetectorMessenger* fDetectorMessenger;
|
||||
|
||||
@@ -60,7 +60,6 @@ class WLSEventAction : public G4UserEventAction
|
||||
void AddClad1Bounce() { fClad1Bounce += 1; };
|
||||
void AddClad2Bounce() { fClad2Bounce += 1; };
|
||||
void AddReflected() { fReflected += 1; };
|
||||
void AddDetected() { fDetected += 1; };
|
||||
void AddEscaped() { fEscaped += 1; };
|
||||
void AddMirror() { fMirror += 1; };
|
||||
|
||||
@@ -80,7 +79,6 @@ class WLSEventAction : public G4UserEventAction
|
||||
G4int fClad1Bounce;
|
||||
G4int fClad2Bounce;
|
||||
G4int fReflected;
|
||||
G4int fDetected;
|
||||
G4int fEscaped;
|
||||
G4int fMirror;
|
||||
};
|
||||
|
||||
@@ -45,7 +45,7 @@ class WLSPhotonDetHit : public G4VHit
|
||||
{
|
||||
public:
|
||||
WLSPhotonDetHit();
|
||||
WLSPhotonDetHit(G4ThreeVector pExit, G4ThreeVector pArrive, G4double pTime);
|
||||
WLSPhotonDetHit(G4ThreeVector pExit, G4ThreeVector pArrive, G4double pTime, G4double pEnergy);
|
||||
~WLSPhotonDetHit();
|
||||
|
||||
WLSPhotonDetHit(const WLSPhotonDetHit& right);
|
||||
@@ -65,6 +65,11 @@ class WLSPhotonDetHit : public G4VHit
|
||||
inline void SetArrivalTime(G4double t) { fArrivalTime = t; }
|
||||
inline G4double GetArrivalTime() { return fArrivalTime; }
|
||||
|
||||
inline void SetEnergy(G4double en) { fEnergy = en; }
|
||||
inline G4double GetEnergy() { return fEnergy; }
|
||||
|
||||
void Print();
|
||||
|
||||
private:
|
||||
// the arrival time of the photon
|
||||
G4double fArrivalTime;
|
||||
@@ -72,6 +77,8 @@ class WLSPhotonDetHit : public G4VHit
|
||||
G4ThreeVector fPosArrive;
|
||||
// where the photon exited the fiber (world's coordinate)
|
||||
G4ThreeVector fPosExit;
|
||||
// energy of photon
|
||||
G4double fEnergy;
|
||||
};
|
||||
|
||||
//--------------------------------------------------
|
||||
|
||||
@@ -50,8 +50,8 @@ class WLSPhotonDetSD : public G4VSensitiveDetector
|
||||
void Initialize(G4HCofThisEvent*) override;
|
||||
|
||||
G4bool ProcessHits(G4Step*, G4TouchableHistory*) override;
|
||||
// A version of processHits, not called automatically by sensitive detector
|
||||
G4bool ProcessHits_boundary(const G4Step*, G4TouchableHistory*);
|
||||
|
||||
void EndOfEvent(G4HCofThisEvent*) override;
|
||||
|
||||
private:
|
||||
WLSPhotonDetHitsCollection* fPhotonDetHitCollection;
|
||||
|
||||
@@ -96,12 +96,6 @@ class WLSRun : public G4Run
|
||||
fReflected += nd;
|
||||
fReflected2 += nd * nd;
|
||||
};
|
||||
void AddDetected(G4int n)
|
||||
{
|
||||
G4double nd(n);
|
||||
fDetected += nd;
|
||||
fDetected2 += nd * nd;
|
||||
};
|
||||
void AddEscaped(G4int n)
|
||||
{
|
||||
G4double nd(n);
|
||||
@@ -143,8 +137,6 @@ class WLSRun : public G4Run
|
||||
G4double fClad2Bounce2;
|
||||
G4double fReflected;
|
||||
G4double fReflected2;
|
||||
G4double fDetected;
|
||||
G4double fDetected2;
|
||||
G4double fEscaped;
|
||||
G4double fEscaped2;
|
||||
G4double fMirror;
|
||||
|
||||
@@ -57,10 +57,14 @@
|
||||
#include "G4Tubs.hh"
|
||||
#include "G4UserLimits.hh"
|
||||
|
||||
#include "G4VisAttributes.hh"
|
||||
#include "G4Colour.hh"
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
WLSDetectorConstruction::WLSDetectorConstruction()
|
||||
: fMaterials(nullptr)
|
||||
: fVisAttributes()
|
||||
, fMaterials(nullptr)
|
||||
, fLogicHole(nullptr)
|
||||
, fLogicWorld(nullptr)
|
||||
, fPhysiWorld(nullptr)
|
||||
@@ -113,6 +117,10 @@ WLSDetectorConstruction::~WLSDetectorConstruction()
|
||||
delete fDetectorMessenger;
|
||||
if(fMaterials)
|
||||
delete fMaterials;
|
||||
for (auto visAttributes: fVisAttributes)
|
||||
{
|
||||
delete visAttributes;
|
||||
}
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -139,6 +147,11 @@ G4VPhysicalVolume* WLSDetectorConstruction::Construct()
|
||||
|
||||
G4VPhysicalVolume* WLSDetectorConstruction::ConstructDetector()
|
||||
{
|
||||
|
||||
auto air = FindMaterial("G4_AIR");
|
||||
//G4cout << "\nMaterial Properties Table for G4_AIR:" << G4endl;
|
||||
//air->GetMaterialPropertiesTable()->DumpTable();
|
||||
|
||||
//--------------------------------------------------
|
||||
// World
|
||||
//--------------------------------------------------
|
||||
@@ -147,7 +160,7 @@ G4VPhysicalVolume* WLSDetectorConstruction::ConstructDetector()
|
||||
new G4Box("World", fWorldSizeX, fWorldSizeY, fWorldSizeZ);
|
||||
|
||||
fLogicWorld =
|
||||
new G4LogicalVolume(solidWorld, FindMaterial("G4_AIR"), "World");
|
||||
new G4LogicalVolume(solidWorld, air, "World");
|
||||
|
||||
fPhysiWorld =
|
||||
new G4PVPlacement(0, G4ThreeVector(), fLogicWorld, "World", 0, false, 0);
|
||||
@@ -156,11 +169,13 @@ G4VPhysicalVolume* WLSDetectorConstruction::ConstructDetector()
|
||||
// Extrusion
|
||||
//--------------------------------------------------
|
||||
|
||||
auto coating = FindMaterial("Coating");
|
||||
|
||||
G4VSolid* solidExtrusion = new G4Box("Extrusion", GetBarBase() / 2.,
|
||||
GetBarBase() / 2., GetBarLength() / 2.);
|
||||
|
||||
G4LogicalVolume* logicExtrusion =
|
||||
new G4LogicalVolume(solidExtrusion, FindMaterial("Coating"), "Extrusion");
|
||||
new G4LogicalVolume(solidExtrusion, coating, "Extrusion");
|
||||
|
||||
G4OpticalSurface* TiO2Surface = new G4OpticalSurface(
|
||||
"TiO2Surface", glisur, ground, dielectric_metal, fExtrusionPolish);
|
||||
@@ -188,6 +203,10 @@ G4VPhysicalVolume* WLSDetectorConstruction::ConstructDetector()
|
||||
// Scintillator
|
||||
//--------------------------------------------------
|
||||
|
||||
auto polystyrene = FindMaterial("Polystyrene");
|
||||
//G4cout << "\nMaterial Properties Table for Polystyrene:" << G4endl;
|
||||
//polystyrene->GetMaterialPropertiesTable()->DumpTable();
|
||||
|
||||
G4VSolid* solidScintillator =
|
||||
new G4Box("Scintillator",
|
||||
GetBarBase() / 2. - GetCoatingThickness() - GetCoatingRadius(),
|
||||
@@ -195,11 +214,13 @@ G4VPhysicalVolume* WLSDetectorConstruction::ConstructDetector()
|
||||
GetBarLength() / 2.);
|
||||
|
||||
G4LogicalVolume* logicScintillator = new G4LogicalVolume(
|
||||
solidScintillator, FindMaterial("Polystyrene"), "Scintillator");
|
||||
solidScintillator, polystyrene, "Scintillator");
|
||||
|
||||
new G4PVPlacement(0, G4ThreeVector(), logicScintillator, "Scintillator",
|
||||
logicExtrusion, false, 0);
|
||||
|
||||
|
||||
G4LogicalVolume* logicScintSide = nullptr;
|
||||
G4LogicalVolume* logicScintCrnr = nullptr;
|
||||
if(GetCoatingRadius() > 0.)
|
||||
{
|
||||
G4VSolid* solidScintside =
|
||||
@@ -211,11 +232,11 @@ G4VPhysicalVolume* WLSDetectorConstruction::ConstructDetector()
|
||||
new G4Tubs("CrnrOfBar", 0.0 * cm, GetCoatingRadius(), GetBarLength() / 2.,
|
||||
0. * deg, 90. * deg);
|
||||
|
||||
G4LogicalVolume* logicScintSide = new G4LogicalVolume(
|
||||
solidScintside, FindMaterial("Polystyrene"), "SideOfBar");
|
||||
logicScintSide = new G4LogicalVolume(
|
||||
solidScintside, polystyrene, "SideOfBar");
|
||||
|
||||
G4LogicalVolume* logicScintCrnr = new G4LogicalVolume(
|
||||
solidScintcrnr, FindMaterial("Polystyrene"), "CrnrOfBar");
|
||||
logicScintCrnr = new G4LogicalVolume(
|
||||
solidScintcrnr, polystyrene, "CrnrOfBar");
|
||||
|
||||
G4double pos =
|
||||
GetBarBase() / 2. - GetCoatingThickness() - GetCoatingRadius() / 2.;
|
||||
@@ -227,12 +248,7 @@ G4VPhysicalVolume* WLSDetectorConstruction::ConstructDetector()
|
||||
"SideOfBar", logicExtrusion, false, 1);
|
||||
|
||||
G4RotationMatrix* rot1 = new G4RotationMatrix();
|
||||
*rot1 = StringToRotationMatrix("Z90");
|
||||
*rot1 = rot1->inverse();
|
||||
if(*rot1 == G4RotationMatrix())
|
||||
{
|
||||
rot1 = nullptr;
|
||||
}
|
||||
rot1->rotateZ(-90.*deg);
|
||||
|
||||
new G4PVPlacement(rot1, G4ThreeVector(pos, 0., 0.), logicScintSide,
|
||||
"SideOfBar", logicExtrusion, false, 2);
|
||||
@@ -249,23 +265,13 @@ G4VPhysicalVolume* WLSDetectorConstruction::ConstructDetector()
|
||||
"CrnrOfBar", logicExtrusion, false, 1);
|
||||
|
||||
G4RotationMatrix* rot2 = new G4RotationMatrix();
|
||||
*rot2 = StringToRotationMatrix("Z180");
|
||||
*rot2 = rot2->inverse();
|
||||
if(*rot2 == G4RotationMatrix())
|
||||
{
|
||||
rot2 = nullptr;
|
||||
}
|
||||
rot2->rotateZ(-180.*deg);
|
||||
|
||||
new G4PVPlacement(rot2, G4ThreeVector(-pos, -pos, 0.), logicScintCrnr,
|
||||
"CrnrOfBar", logicExtrusion, false, 2);
|
||||
|
||||
G4RotationMatrix* rot3 = new G4RotationMatrix();
|
||||
*rot3 = StringToRotationMatrix("Z270");
|
||||
*rot3 = rot3->inverse();
|
||||
if(*rot3 == G4RotationMatrix())
|
||||
{
|
||||
rot3 = nullptr;
|
||||
}
|
||||
rot3->rotateZ(-270.*deg);
|
||||
|
||||
new G4PVPlacement(rot3, G4ThreeVector(pos, -pos, 0.), logicScintCrnr,
|
||||
"CrnrOfBar", logicExtrusion, false, 3);
|
||||
@@ -276,7 +282,7 @@ G4VPhysicalVolume* WLSDetectorConstruction::ConstructDetector()
|
||||
G4VSolid* solidHole = new G4Tubs(
|
||||
"Hole", 0., GetHoleRadius(), GetHoleLength() / 2., 0. * deg, 360. * deg);
|
||||
|
||||
fLogicHole = new G4LogicalVolume(solidHole, FindMaterial("G4_AIR"), "Hole");
|
||||
fLogicHole = new G4LogicalVolume(solidHole, air, "Hole");
|
||||
|
||||
fPhysiHole = new G4PVPlacement(0, G4ThreeVector(), fLogicHole, "Hole",
|
||||
logicScintillator, false, 0);
|
||||
@@ -286,21 +292,11 @@ G4VPhysicalVolume* WLSDetectorConstruction::ConstructDetector()
|
||||
// Fiber
|
||||
//--------------------------------------------------
|
||||
|
||||
ConstructFiber();
|
||||
|
||||
return fPhysiWorld;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSDetectorConstruction::ConstructFiber()
|
||||
{
|
||||
if(!(fLogicHole) || !(fPhysiHole))
|
||||
{
|
||||
G4ExceptionDescription ed;
|
||||
ed << "The Fiber Hole has not been constructed";
|
||||
G4Exception("WLSDetectorConstruction::ConstructFiber", "", FatalException,
|
||||
ed);
|
||||
G4Exception("WLSDetectorConstruction", "wls001", FatalException, ed);
|
||||
}
|
||||
|
||||
// Pointers to the most recently constructed volume
|
||||
@@ -317,11 +313,16 @@ void WLSDetectorConstruction::ConstructFiber()
|
||||
if(fSurfaceRoughness < 1.)
|
||||
opSurface = new G4OpticalSurface("RoughSurface", glisur, ground,
|
||||
dielectric_dielectric, fSurfaceRoughness);
|
||||
|
||||
G4LogicalVolume* logicWLSfiber = nullptr;
|
||||
G4LogicalVolume* logicClad1 = nullptr;
|
||||
G4LogicalVolume* logicClad2 = nullptr;
|
||||
G4VPhysicalVolume* physiClad1 = nullptr;
|
||||
G4VPhysicalVolume* physiClad2 = nullptr;
|
||||
|
||||
G4LogicalVolume* logicClad1 = nullptr;
|
||||
G4LogicalVolume* logicClad2 = nullptr;
|
||||
G4VPhysicalVolume* physiClad1 = nullptr;
|
||||
G4VPhysicalVolume* physiClad2 = nullptr;
|
||||
auto fpethylene = FindMaterial("FPethylene");
|
||||
auto pethylene = FindMaterial("Pethylene");
|
||||
auto pmma = FindMaterial("PMMA");
|
||||
|
||||
// Determine the number of cladding layers to be built
|
||||
switch(fNumOfCladLayers)
|
||||
@@ -332,6 +333,9 @@ void WLSDetectorConstruction::ConstructFiber()
|
||||
// Cladding 2
|
||||
//--------------------------------------------------
|
||||
|
||||
//G4cout << "\nMaterial Properties Table for fPethylene:" << G4endl;
|
||||
//fpethylene->GetMaterialPropertiesTable()->DumpTable();
|
||||
|
||||
G4VSolid* solidClad2;
|
||||
|
||||
if(fXYRatio == 1.)
|
||||
@@ -340,7 +344,7 @@ void WLSDetectorConstruction::ConstructFiber()
|
||||
solidClad2 = new G4EllipticalTube("Clad2", fClad2RX, fClad2RY, fClad2Z);
|
||||
|
||||
logicClad2 =
|
||||
new G4LogicalVolume(solidClad2, FindMaterial("FPethylene"), "Clad2");
|
||||
new G4LogicalVolume(solidClad2, fpethylene, "Clad2");
|
||||
|
||||
physiClad2 =
|
||||
new G4PVPlacement(0, G4ThreeVector(0.0, 0.0, fWLSfiberOrigin),
|
||||
@@ -357,7 +361,7 @@ void WLSDetectorConstruction::ConstructFiber()
|
||||
|
||||
logicPlacement = logicClad2;
|
||||
physiPlacement = physiClad2;
|
||||
break;
|
||||
[[fallthrough]];
|
||||
|
||||
case 1:
|
||||
|
||||
@@ -365,6 +369,9 @@ void WLSDetectorConstruction::ConstructFiber()
|
||||
// Cladding 1
|
||||
//--------------------------------------------------
|
||||
|
||||
//G4cout << "\nMaterial Properties Table for Pethylene:" << G4endl;
|
||||
//pethylene->GetMaterialPropertiesTable()->DumpTable();
|
||||
|
||||
G4VSolid* solidClad1;
|
||||
|
||||
if(fXYRatio == 1.)
|
||||
@@ -373,7 +380,7 @@ void WLSDetectorConstruction::ConstructFiber()
|
||||
solidClad1 = new G4EllipticalTube("Clad1", fClad1RX, fClad1RY, fClad1Z);
|
||||
|
||||
logicClad1 =
|
||||
new G4LogicalVolume(solidClad1, FindMaterial("Pethylene"), "Clad1");
|
||||
new G4LogicalVolume(solidClad1, pethylene, "Clad1");
|
||||
|
||||
physiClad1 =
|
||||
new G4PVPlacement(0, G4ThreeVector(0., 0., fWLSfiberOrigin), logicClad1,
|
||||
@@ -391,7 +398,7 @@ void WLSDetectorConstruction::ConstructFiber()
|
||||
|
||||
logicPlacement = logicClad1;
|
||||
physiPlacement = physiClad1;
|
||||
break;
|
||||
[[fallthrough]];
|
||||
|
||||
default:
|
||||
|
||||
@@ -399,6 +406,9 @@ void WLSDetectorConstruction::ConstructFiber()
|
||||
// WLS Fiber
|
||||
//--------------------------------------------------
|
||||
|
||||
//G4cout << "\nMaterial Properties Table for PMMA:" << G4endl;
|
||||
//pmma->GetMaterialPropertiesTable()->DumpTable();
|
||||
|
||||
G4VSolid* solidWLSfiber;
|
||||
|
||||
if(fXYRatio == 1.)
|
||||
@@ -412,8 +422,8 @@ void WLSDetectorConstruction::ConstructFiber()
|
||||
fWLSfiberRY, fWLSfiberZ);
|
||||
}
|
||||
|
||||
G4LogicalVolume* logicWLSfiber =
|
||||
new G4LogicalVolume(solidWLSfiber, FindMaterial("PMMA"), "WLSFiber");
|
||||
logicWLSfiber =
|
||||
new G4LogicalVolume(solidWLSfiber, pmma, "WLSFiber");
|
||||
|
||||
logicWLSfiber->SetUserLimits(
|
||||
new G4UserLimits(DBL_MAX, DBL_MAX, 10. * ms));
|
||||
@@ -438,13 +448,17 @@ void WLSDetectorConstruction::ConstructFiber()
|
||||
//--------------------------------------------------
|
||||
|
||||
// Place the mirror only if the user wants the mirror
|
||||
G4LogicalVolume* logicMirror = nullptr;
|
||||
|
||||
auto aluminum = FindMaterial("G4_Al");
|
||||
|
||||
if(fMirrorToggle)
|
||||
{
|
||||
G4VSolid* solidMirror =
|
||||
new G4Box("Mirror", fMirrorRmax, fMirrorRmax, fMirrorZ);
|
||||
|
||||
G4LogicalVolume* logicMirror =
|
||||
new G4LogicalVolume(solidMirror, FindMaterial("G4_Al"), "Mirror");
|
||||
logicMirror =
|
||||
new G4LogicalVolume(solidMirror, aluminum, "Mirror");
|
||||
|
||||
G4OpticalSurface* mirrorSurface = new G4OpticalSurface(
|
||||
"MirrorSurface", glisur, ground, dielectric_metal, fMirrorPolish);
|
||||
@@ -476,7 +490,7 @@ void WLSDetectorConstruction::ConstructFiber()
|
||||
G4VSolid* solidCouple = new G4Box("Couple", fCoupleRX, fCoupleRY, fCoupleZ);
|
||||
|
||||
G4LogicalVolume* logicCouple =
|
||||
new G4LogicalVolume(solidCouple, FindMaterial("G4_AIR"), "Couple");
|
||||
new G4LogicalVolume(solidCouple, air, "Couple");
|
||||
|
||||
new G4PVPlacement(0, G4ThreeVector(0., 0., fCoupleOrigin), logicCouple,
|
||||
"Couple", fLogicWorld, false, 0);
|
||||
@@ -493,7 +507,9 @@ void WLSDetectorConstruction::ConstructFiber()
|
||||
fMPPCTheta = 0.;
|
||||
fMPPCOriginX = std::sin(fMPPCTheta) * (fMPPCDist + fClrfiberZ);
|
||||
fMPPCOriginZ = -fCoupleZ + std::cos(fMPPCTheta) * (fMPPCDist + fClrfiberZ);
|
||||
G4cerr << "Invalid alignment. Alignment Reset to 0" << G4endl;
|
||||
G4ExceptionDescription ed;
|
||||
ed << "Invalid alignment. Alignment reset to 0.";
|
||||
G4Exception("WLSDetectorConstruction", "wls002", JustWarning, ed);
|
||||
}
|
||||
|
||||
// Clear Fiber (Coupling Layer)
|
||||
@@ -511,7 +527,7 @@ void WLSDetectorConstruction::ConstructFiber()
|
||||
}
|
||||
|
||||
G4LogicalVolume* logicClrfiber =
|
||||
new G4LogicalVolume(solidClrfiber, FindMaterial("G4_AIR"), "ClearFiber");
|
||||
new G4LogicalVolume(solidClrfiber, air, "ClearFiber");
|
||||
|
||||
new G4PVPlacement(new G4RotationMatrix(CLHEP::HepRotationY(-fMPPCTheta)),
|
||||
G4ThreeVector(fMPPCOriginX, 0.0, fMPPCOriginZ),
|
||||
@@ -530,7 +546,7 @@ void WLSDetectorConstruction::ConstructFiber()
|
||||
solidPhotonDet = new G4Tubs("PhotonDet", 0., fMPPCHalfL, fMPPCZ, 0., twopi);
|
||||
|
||||
G4LogicalVolume* logicPhotonDet =
|
||||
new G4LogicalVolume(solidPhotonDet, FindMaterial("G4_Al"), "PhotonDet_LV");
|
||||
new G4LogicalVolume(solidPhotonDet, aluminum, "PhotonDet_LV");
|
||||
|
||||
new G4PVPlacement(0, G4ThreeVector(0., 0., 0.), logicPhotonDet, "PhotonDet",
|
||||
logicClrfiber, false, 0);
|
||||
@@ -553,8 +569,88 @@ void WLSDetectorConstruction::ConstructFiber()
|
||||
|
||||
new G4LogicalSkinSurface("PhotonDetSurface", logicPhotonDet,
|
||||
photonDetSurface);
|
||||
|
||||
// visualization attributes -------------------------------------------------
|
||||
|
||||
auto visAttributes = new G4VisAttributes(G4Colour(1.0,1.0,1.0));
|
||||
visAttributes->SetVisibility(false);
|
||||
fLogicWorld->SetVisAttributes(visAttributes);
|
||||
fVisAttributes.push_back(visAttributes);
|
||||
|
||||
visAttributes = new G4VisAttributes(G4Colour(0.2,0.2,0.2,0.5));
|
||||
visAttributes->SetVisibility(true);
|
||||
logicExtrusion->SetVisAttributes(visAttributes);
|
||||
fVisAttributes.push_back(visAttributes);
|
||||
|
||||
visAttributes = new G4VisAttributes(G4Colour(0.0,0.0,1.0,0.9));
|
||||
visAttributes->SetVisibility(true);
|
||||
logicScintillator->SetVisAttributes(visAttributes);
|
||||
fVisAttributes.push_back(visAttributes);
|
||||
|
||||
visAttributes = new G4VisAttributes(G4Colour(0.0,0.8,0.2,0.2));
|
||||
visAttributes->SetVisibility(true);
|
||||
logicScintSide->SetVisAttributes(visAttributes);
|
||||
fVisAttributes.push_back(visAttributes);
|
||||
|
||||
visAttributes = new G4VisAttributes(G4Colour(0.0,0.8,0.2,0.2));
|
||||
visAttributes->SetVisibility(true);
|
||||
logicScintCrnr->SetVisAttributes(visAttributes);
|
||||
fVisAttributes.push_back(visAttributes);
|
||||
|
||||
visAttributes = new G4VisAttributes(G4Colour(0.4,0.0,0.0,0.5));
|
||||
visAttributes->SetVisibility(true);
|
||||
fLogicHole->SetVisAttributes(visAttributes);
|
||||
fVisAttributes.push_back(visAttributes);
|
||||
|
||||
if(logicClad1 != nullptr)
|
||||
{
|
||||
visAttributes = new G4VisAttributes(G4Colour(0.0,0.8,0.5,0.5));
|
||||
visAttributes->SetVisibility(true);
|
||||
logicClad1->SetVisAttributes(visAttributes);
|
||||
fVisAttributes.push_back(visAttributes);
|
||||
}
|
||||
|
||||
if(logicClad2 != nullptr)
|
||||
{
|
||||
visAttributes = new G4VisAttributes(G4Colour(0.0,0.5,0.8,0.5));
|
||||
visAttributes->SetVisibility(true);
|
||||
logicClad2->SetVisAttributes(visAttributes);
|
||||
fVisAttributes.push_back(visAttributes);
|
||||
}
|
||||
|
||||
visAttributes = new G4VisAttributes(G4Colour(0.8,0.8,1.0));
|
||||
visAttributes->SetVisibility(true);
|
||||
logicWLSfiber->SetVisAttributes(visAttributes);
|
||||
fVisAttributes.push_back(visAttributes);
|
||||
|
||||
if(fMirrorToggle == true)
|
||||
{
|
||||
visAttributes = new G4VisAttributes(G4Colour(0.3,0.3,1.0,0.3));
|
||||
visAttributes->SetVisibility(true);
|
||||
logicMirror->SetVisAttributes(visAttributes);
|
||||
fVisAttributes.push_back(visAttributes);
|
||||
}
|
||||
|
||||
visAttributes = new G4VisAttributes(G4Colour(0.0,0.0,0.5,0.5));
|
||||
visAttributes->SetVisibility(true);
|
||||
logicCouple->SetVisAttributes(visAttributes);
|
||||
fVisAttributes.push_back(visAttributes);
|
||||
|
||||
visAttributes = new G4VisAttributes(G4Colour(0.3,0.3,0.3,0.5));
|
||||
visAttributes->SetVisibility(true);
|
||||
logicClrfiber->SetVisAttributes(visAttributes);
|
||||
fVisAttributes.push_back(visAttributes);
|
||||
|
||||
visAttributes = new G4VisAttributes(G4Colour(1.0,1.0,1.0,0.8));
|
||||
visAttributes->SetVisibility(true);
|
||||
logicPhotonDet->SetVisAttributes(visAttributes);
|
||||
fVisAttributes.push_back(visAttributes);
|
||||
|
||||
return fPhysiWorld;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSDetectorConstruction::ConstructSDandField()
|
||||
@@ -603,72 +699,13 @@ void WLSDetectorConstruction::UpdateGeometryParameters()
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4RotationMatrix WLSDetectorConstruction::StringToRotationMatrix(
|
||||
G4String rotation)
|
||||
{
|
||||
// We apply successive rotations OF THE OBJECT around the FIXED
|
||||
// axes of the parent's local coordinates; rotations are applied
|
||||
// left-to-right (rotation="r1,r2,r3" => r1 then r2 then r3).
|
||||
|
||||
G4RotationMatrix rot;
|
||||
|
||||
unsigned int place = 0;
|
||||
|
||||
while(place < rotation.size())
|
||||
{
|
||||
G4double angle;
|
||||
char* p;
|
||||
|
||||
const G4String tmpstring = rotation.substr(place + 1);
|
||||
angle = strtod(tmpstring.c_str(), &p) * deg;
|
||||
|
||||
if(!p || (*p != (char) ',' && *p != (char) '\0'))
|
||||
{
|
||||
G4cerr << "Invalid rotation specification: " << rotation.c_str()
|
||||
<< G4endl;
|
||||
return rot;
|
||||
}
|
||||
|
||||
G4RotationMatrix thisRotation;
|
||||
|
||||
switch(rotation.substr(place, 1).c_str()[0])
|
||||
{
|
||||
case 'X':
|
||||
case 'x':
|
||||
thisRotation = G4RotationMatrix(CLHEP::HepRotationX(angle));
|
||||
break;
|
||||
case 'Y':
|
||||
case 'y':
|
||||
thisRotation = G4RotationMatrix(CLHEP::HepRotationY(angle));
|
||||
break;
|
||||
case 'Z':
|
||||
case 'z':
|
||||
thisRotation = G4RotationMatrix(CLHEP::HepRotationZ(angle));
|
||||
break;
|
||||
default:
|
||||
G4cerr << " Invalid rotation specification: " << rotation << G4endl;
|
||||
return rot;
|
||||
}
|
||||
|
||||
rot = thisRotation * rot;
|
||||
place = rotation.find(',', place);
|
||||
if(place > rotation.size())
|
||||
break;
|
||||
++place;
|
||||
}
|
||||
|
||||
return rot;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSDetectorConstruction::SetPhotonDetGeometry(G4String shape)
|
||||
// Set the Geometry of the PhotonDet detector
|
||||
// Pre: shape must be either "Circle" and "Square"
|
||||
{
|
||||
if(shape == "Circle" || shape == "Square")
|
||||
fMPPCShape = shape;
|
||||
G4RunManager::GetRunManager()->ReinitializeGeometry();
|
||||
G4RunManager::GetRunManager()->GeometryHasBeenModified();
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
#include "WLSPhotonDetHit.hh"
|
||||
#include "WLSRun.hh"
|
||||
#include "WLSRunAction.hh"
|
||||
#include "WLSTrajectory.hh"
|
||||
|
||||
#include "G4AnalysisManager.hh"
|
||||
#include "G4Event.hh"
|
||||
#include "G4EventManager.hh"
|
||||
#include "G4RunManager.hh"
|
||||
@@ -75,7 +75,6 @@ void WLSEventAction::BeginOfEventAction(const G4Event*)
|
||||
fClad1Bounce = 0;
|
||||
fClad2Bounce = 0;
|
||||
fReflected = 0;
|
||||
fDetected = 0;
|
||||
fEscaped = 0;
|
||||
fMirror = 0;
|
||||
}
|
||||
@@ -108,6 +107,14 @@ void WLSEventAction::EndOfEventAction(const G4Event* evt)
|
||||
n_hit = mppcHC->entries();
|
||||
}
|
||||
|
||||
auto analysisManager = G4AnalysisManager::Instance();
|
||||
analysisManager->FillH1(2, mppcHC->entries());
|
||||
for (size_t i = 0; i < mppcHC->entries(); ++i) {
|
||||
auto pdHit = (*mppcHC)[i];
|
||||
analysisManager->FillH1(0, pdHit->GetEnergy());
|
||||
analysisManager->FillH1(1, pdHit->GetArrivalTime());
|
||||
}
|
||||
|
||||
if(fVerboseLevel > 1)
|
||||
{
|
||||
G4cout << "-------------------------------------" << G4endl
|
||||
@@ -121,7 +128,6 @@ void WLSEventAction::EndOfEventAction(const G4Event* evt)
|
||||
<< " Clad1 Bounce: " << fClad1Bounce << G4endl
|
||||
<< " Clad2 Bounce: " << fClad2Bounce << G4endl
|
||||
<< " Reflected: " << fReflected << G4endl
|
||||
<< " Detected: " << fDetected << G4endl
|
||||
<< " Escaped: " << fEscaped << G4endl
|
||||
<< " Mirror: " << fMirror << G4endl
|
||||
<< " Detector hit: " << n_hit << G4endl;
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
//
|
||||
#include "WLSPhotonDetHit.hh"
|
||||
|
||||
#include "G4UnitsTable.hh"
|
||||
|
||||
G4ThreadLocal G4Allocator<WLSPhotonDetHit>* WLSPhotonDetHitAllocator = nullptr;
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -37,6 +39,7 @@ G4ThreadLocal G4Allocator<WLSPhotonDetHit>* WLSPhotonDetHitAllocator = nullptr;
|
||||
WLSPhotonDetHit::WLSPhotonDetHit()
|
||||
{
|
||||
fArrivalTime = 0.;
|
||||
fEnergy = 0.;
|
||||
fPosArrive = G4ThreeVector(0., 0., 0.);
|
||||
fPosExit = G4ThreeVector(0., 0., 0.);
|
||||
}
|
||||
@@ -44,11 +47,12 @@ WLSPhotonDetHit::WLSPhotonDetHit()
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
WLSPhotonDetHit::WLSPhotonDetHit(G4ThreeVector pExit, G4ThreeVector pArrive,
|
||||
G4double pTime)
|
||||
G4double pTime, G4double pEnergy)
|
||||
{
|
||||
fPosExit = pExit;
|
||||
fPosArrive = pArrive;
|
||||
fArrivalTime = pTime;
|
||||
fEnergy = pEnergy;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
@@ -70,6 +74,7 @@ const WLSPhotonDetHit& WLSPhotonDetHit::operator=(const WLSPhotonDetHit& right)
|
||||
fPosExit = right.fPosExit;
|
||||
fPosArrive = right.fPosArrive;
|
||||
fArrivalTime = right.fArrivalTime;
|
||||
fEnergy = right.fEnergy;
|
||||
|
||||
return *this;
|
||||
}
|
||||
@@ -79,5 +84,21 @@ const WLSPhotonDetHit& WLSPhotonDetHit::operator=(const WLSPhotonDetHit& right)
|
||||
G4bool WLSPhotonDetHit::operator==(const WLSPhotonDetHit& right) const
|
||||
{
|
||||
return fPosExit == right.fPosExit && fPosArrive == right.fPosArrive &&
|
||||
fArrivalTime == right.fArrivalTime;
|
||||
fArrivalTime == right.fArrivalTime && fEnergy == right.fEnergy;
|
||||
}
|
||||
|
||||
void WLSPhotonDetHit::Print()
|
||||
{
|
||||
G4cout
|
||||
<< "Arrival time: "
|
||||
<< std::setw(7) << G4BestUnit(fArrivalTime, "Time")
|
||||
<< "Arrival position: ("
|
||||
<< std::setw(7) << G4BestUnit(fPosArrive.x(), "Length") << ", "
|
||||
<< std::setw(7) << G4BestUnit(fPosArrive.y(), "Length") << "); "
|
||||
<< "Exit position: ("
|
||||
<< std::setw(7) << G4BestUnit(fPosExit.x(), "Length") << ", "
|
||||
<< std::setw(7) << G4BestUnit(fPosExit.y(), "Length") << "); "
|
||||
<< "Energy: "
|
||||
<< std::setw(7) << G4BestUnit(fEnergy, "Energy")
|
||||
<< G4endl;
|
||||
}
|
||||
|
||||
@@ -72,17 +72,7 @@ void WLSPhotonDetSD::Initialize(G4HCofThisEvent* HCE)
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4bool WLSPhotonDetSD::ProcessHits(G4Step*, G4TouchableHistory*)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
G4bool WLSPhotonDetSD::ProcessHits_boundary(const G4Step* aStep,
|
||||
G4TouchableHistory*)
|
||||
// Generates a hit and uses the postStepPoint; PostStepPoint because the hit
|
||||
// is generated manually when the photon hits the detector
|
||||
G4bool WLSPhotonDetSD::ProcessHits(G4Step* aStep, G4TouchableHistory*)
|
||||
{
|
||||
if(!aStep)
|
||||
return false;
|
||||
@@ -106,6 +96,7 @@ G4bool WLSPhotonDetSD::ProcessHits_boundary(const G4Step* aStep,
|
||||
G4ThreeVector photonExit = trackInformation->GetExitPosition();
|
||||
G4ThreeVector photonArrive = thePostPoint->GetPosition();
|
||||
G4double arrivalTime = theTrack->GetGlobalTime();
|
||||
G4double energy = theTrack->GetTotalEnergy();
|
||||
|
||||
// Convert the global coordinate for arriving photons into
|
||||
// the local coordinate of the detector
|
||||
@@ -114,7 +105,19 @@ G4bool WLSPhotonDetSD::ProcessHits_boundary(const G4Step* aStep,
|
||||
|
||||
// Creating the hit and add it to the collection
|
||||
fPhotonDetHitCollection->insert(
|
||||
new WLSPhotonDetHit(photonExit, photonArrive, arrivalTime));
|
||||
new WLSPhotonDetHit(photonExit, photonArrive, arrivalTime, energy));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void WLSPhotonDetSD::EndOfEvent(G4HCofThisEvent*)
|
||||
{
|
||||
if ( verboseLevel>1 ) {
|
||||
G4int nofHits = fPhotonDetHitCollection->entries();
|
||||
G4cout << G4endl
|
||||
<< "-------->Hits Collection: in this event there are " << nofHits
|
||||
<< " hits in the photon detector: " << G4endl;
|
||||
for ( G4int i=0; i<nofHits; i++ ) (*fPhotonDetHitCollection)[i]->Print();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -181,7 +181,7 @@ void WLSPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
|
||||
}
|
||||
|
||||
// this does not work.
|
||||
G4String cmd = "/gun/energy " + G4String(sampledEnergy / eV) + " eV";
|
||||
G4String cmd = "/gun/energy " + G4UIcommand::ConvertToString(sampledEnergy / eV) + " eV";
|
||||
G4UImanager::GetUIpointer()->ApplyCommand(cmd);
|
||||
}
|
||||
|
||||
|
||||
@@ -54,8 +54,6 @@ WLSRun::WLSRun()
|
||||
fClad2Bounce2 = 0.;
|
||||
fReflected = 0.;
|
||||
fReflected2 = 0.;
|
||||
fDetected = 0.;
|
||||
fDetected2 = 0.;
|
||||
fEscaped = 0.;
|
||||
fEscaped2 = 0.;
|
||||
fMirror = 0.;
|
||||
@@ -92,8 +90,6 @@ void WLSRun::Merge(const G4Run* run)
|
||||
fClad2Bounce2 += localRun->fClad2Bounce2;
|
||||
fReflected += localRun->fReflected;
|
||||
fReflected2 += localRun->fReflected2;
|
||||
fDetected += localRun->fDetected;
|
||||
fDetected2 += localRun->fDetected2;
|
||||
fEscaped += localRun->fEscaped;
|
||||
fEscaped2 += localRun->fEscaped2;
|
||||
fMirror += localRun->fMirror;
|
||||
@@ -184,14 +180,6 @@ void WLSRun::EndOfRun()
|
||||
else
|
||||
rmsReflected = 0.;
|
||||
|
||||
fDetected = fDetected / TotNbofEvents;
|
||||
fDetected2 = fDetected2 / TotNbofEvents;
|
||||
G4double rmsDetected = fDetected2 - fDetected * fDetected;
|
||||
if(rmsDetected > 0.)
|
||||
rmsDetected = std::sqrt(rmsDetected);
|
||||
else
|
||||
rmsDetected = 0.;
|
||||
|
||||
fEscaped = fEscaped / TotNbofEvents;
|
||||
fEscaped2 = fEscaped2 / TotNbofEvents;
|
||||
G4double rmsEscaped = fEscaped2 - fEscaped * fEscaped;
|
||||
@@ -229,7 +217,6 @@ void WLSRun::EndOfRun()
|
||||
<< " +- " << rmsClad1Bounce << G4endl
|
||||
<< " Clad2 Bounce: " << fClad2Bounce << " +- " << rmsClad2Bounce
|
||||
<< G4endl << " Reflected: " << fReflected << " +- " << rmsReflected
|
||||
<< G4endl << " Detected: " << fDetected << " +- " << rmsDetected
|
||||
<< G4endl << " Escaped: " << fEscaped << " +- " << rmsEscaped
|
||||
<< G4endl << " Mirror: " << fMirror << " +- " << rmsMirror
|
||||
<< G4endl << " Detector hit: " << fDetectorHits << " +- "
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
#include "WLSRun.hh"
|
||||
#include "WLSSteppingAction.hh"
|
||||
|
||||
#include "G4AnalysisManager.hh"
|
||||
#include "G4Run.hh"
|
||||
#include "G4RunManager.hh"
|
||||
#include "Randomize.hh"
|
||||
@@ -43,7 +44,20 @@
|
||||
|
||||
WLSRunAction::WLSRunAction()
|
||||
: fRun(nullptr)
|
||||
{}
|
||||
{
|
||||
auto analysisManager = G4AnalysisManager::Instance();
|
||||
|
||||
analysisManager->SetDefaultFileType("root");
|
||||
analysisManager->SetVerboseLevel(1);
|
||||
G4cout << "Using " << analysisManager->GetType() << G4endl;
|
||||
|
||||
analysisManager->CreateH1("Energy", "Energy of optical photon", 100,
|
||||
2.*CLHEP::eV, 3.2*CLHEP::eV);
|
||||
analysisManager->CreateH1("Time", "Arrival time", 100, 0., 100.*CLHEP::ns);
|
||||
analysisManager->CreateH1("Number of photons", "Number of photons", 100, 0., 100.);
|
||||
|
||||
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
@@ -57,12 +71,37 @@ G4Run* WLSRunAction::GenerateRun()
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSRunAction::BeginOfRunAction(const G4Run*) {}
|
||||
void WLSRunAction::BeginOfRunAction(const G4Run*)
|
||||
{
|
||||
G4AnalysisManager::Instance()->OpenFile("wls");
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
|
||||
|
||||
void WLSRunAction::EndOfRunAction(const G4Run*)
|
||||
{
|
||||
auto analysisManager = G4AnalysisManager::Instance();
|
||||
if (analysisManager->GetH1(0)) {
|
||||
G4cout << G4endl << " ----> print histograms statistics ";
|
||||
if(isMaster)
|
||||
{
|
||||
G4cout << "for the entire run " << G4endl << G4endl;
|
||||
}
|
||||
else {
|
||||
G4cout << "for the local thread " << G4endl << G4endl;
|
||||
}
|
||||
|
||||
G4cout << " Mean number of photons detected/event: "
|
||||
<< analysisManager->GetH1(2)->mean()
|
||||
<< " rms = "
|
||||
<< analysisManager->GetH1(2)->rms() << G4endl;
|
||||
|
||||
}
|
||||
|
||||
analysisManager->Write();
|
||||
analysisManager->CloseFile();
|
||||
|
||||
|
||||
if(isMaster)
|
||||
fRun->EndOfRun();
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ void WLSSteppingAction::UserSteppingAction(const G4Step* theStep)
|
||||
// Record Photons that missed the photon detector but escaped from readout
|
||||
if(!thePostPV && trackInformation->IsStatus(EscapedFromReadOut))
|
||||
{
|
||||
G4cout << "SteppingAction: status = EscapedFromReadOut" << G4endl;
|
||||
//G4cout << "SteppingAction: status = EscapedFromReadOut" << G4endl;
|
||||
fEventAction->AddEscaped();
|
||||
// UpdateHistogramSuccess(thePostPoint,theTrack);
|
||||
ResetCounters();
|
||||
@@ -308,7 +308,7 @@ void WLSSteppingAction::UserSteppingAction(const G4Step* theStep)
|
||||
}
|
||||
return;
|
||||
|
||||
// Reflection of the mirror
|
||||
// Reflection off the mirror
|
||||
case LambertianReflection:
|
||||
case LobeReflection:
|
||||
case SpikeReflection:
|
||||
@@ -324,30 +324,12 @@ void WLSSteppingAction::UserSteppingAction(const G4Step* theStep)
|
||||
|
||||
// Detected by a detector
|
||||
case Detection:
|
||||
// Detected automatically with G4OpBoundaryProcess->InvokeSD set true
|
||||
|
||||
// Check if the photon hits the detector and process the hit if it does
|
||||
if(thePostPVname == "PhotonDet")
|
||||
{
|
||||
// G4cout << "Detection" << G4endl;
|
||||
fEventAction->AddDetected();
|
||||
G4SDManager* SDman = G4SDManager::GetSDMpointer();
|
||||
G4String SDname = "WLS/PhotonDet";
|
||||
WLSPhotonDetSD* mppcSD =
|
||||
(WLSPhotonDetSD*) SDman->FindSensitiveDetector(SDname);
|
||||
|
||||
if(mppcSD)
|
||||
mppcSD->ProcessHits_boundary(theStep, nullptr);
|
||||
|
||||
// Record Photons that escaped at the end
|
||||
// if (trackInformation->IsStatus(EscapedFromReadOut))
|
||||
// UpdateHistogramSuccess(thePostPoint,theTrack);
|
||||
|
||||
// Stop Tracking when it hits the detector's surface
|
||||
ResetCounters();
|
||||
theTrack->SetTrackStatus(fStopAndKill);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
// Stop Tracking when it hits the detector's surface
|
||||
ResetCounters();
|
||||
theTrack->SetTrackStatus(fStopAndKill);
|
||||
return;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "G4Step.hh"
|
||||
#include "G4StepStatus.hh"
|
||||
#include "G4Track.hh"
|
||||
#include "G4UIcommand.hh"
|
||||
#include "G4UnitsTable.hh"
|
||||
#include "G4VProcess.hh"
|
||||
|
||||
@@ -136,7 +137,7 @@ std::vector<G4AttValue>* WLSTrajectoryPoint::CreateAttValues() const
|
||||
values->push_back(G4AttValue("Time", G4BestUnit(fTime, "Time"), ""));
|
||||
values->push_back(
|
||||
G4AttValue("Momentum", G4BestUnit(fMomentum, "Momentum"), ""));
|
||||
values->push_back(G4AttValue("StepStatus", fStepStatus, ""));
|
||||
values->push_back(G4AttValue("StepStatus", G4UIcommand::ConvertToString(fStepStatus), ""));
|
||||
values->push_back(G4AttValue("VolumeName", fVolumeName, ""));
|
||||
|
||||
return values;
|
||||
|
||||
@@ -5,6 +5,28 @@
|
||||
#
|
||||
/control/verbose 2
|
||||
/run/verbose 2
|
||||
|
||||
/WLS/setPhotonDetGeometry Circle
|
||||
/WLS/setNumOfLayers 2
|
||||
/WLS/setSurfaceRoughness 0.999
|
||||
/WLS/setXYRatio 0.8
|
||||
/WLS/setWLSLength 1. m
|
||||
/WLS/setWLSRadius 0.5 mm
|
||||
/WLS/setClad1Radius 0.3 mm
|
||||
/WLS/setClad2Radius 0.1 mm
|
||||
#
|
||||
/WLS/setPhotonDetHalfLength 0.6 mm
|
||||
/WLS/setGap 0.15 mm
|
||||
/WLS/setAlignment 0.1 deg
|
||||
/WLS/setMirror true
|
||||
|
||||
/WLS/setBarLength 1.1 m
|
||||
/WLS/setBarBase 9.5 mm
|
||||
/WLS/setHoleRadius 0.9 mm
|
||||
/WLS/setCoatingThickness 0.3 mm
|
||||
/WLS/setCoatingRadius 1.775 mm
|
||||
|
||||
|
||||
/run/initialize
|
||||
#
|
||||
# Use this open statement to create an OpenGL view:
|
||||
@@ -34,10 +56,10 @@
|
||||
#/vis/viewer/set/viewpointThetaPhi 90. 0.
|
||||
#
|
||||
# Specify zoom value:
|
||||
/vis/viewer/zoom 1.4
|
||||
/vis/viewer/zoom 20
|
||||
#
|
||||
# Specify style (surface or wireframe):
|
||||
#/vis/viewer/set/style wireframe
|
||||
/vis/viewer/set/style surface
|
||||
#
|
||||
# Draw coordinate axes:
|
||||
#/vis/scene/add/axes 0 0 0 1 m
|
||||
@@ -75,3 +97,19 @@
|
||||
#
|
||||
# For file-based drivers, use this to create an empty detector view:
|
||||
#/vis/viewer/flush
|
||||
|
||||
/gps/particle e-
|
||||
|
||||
/gps/energy 10 MeV
|
||||
|
||||
/gps/pos/type Plane
|
||||
/gps/pos/shape Circle
|
||||
/gps/pos/radius 0.5 mm
|
||||
|
||||
/gps/pos/centre 0.0 0.0 0.0 cm
|
||||
/gps/pos/rot1 0 1 0
|
||||
/gps/pos/rot2 0 0 1
|
||||
|
||||
/gps/ang/type iso
|
||||
/gps/ang/mintheta 0.0 deg
|
||||
/gps/ang/maxtheta 90.0 deg
|
||||
|
||||
@@ -69,6 +69,10 @@ int main(int argc, char** argv)
|
||||
G4VModularPhysicsList* physicsList = new FTFP_BERT;
|
||||
physicsList->ReplacePhysics(new G4EmStandardPhysics_option4());
|
||||
G4OpticalPhysics* opticalPhysics = new G4OpticalPhysics();
|
||||
|
||||
auto opticalParams = G4OpticalParameters::Instance();
|
||||
opticalParams->SetBoundaryInvokeSD(true);
|
||||
|
||||
physicsList->RegisterPhysics(opticalPhysics);
|
||||
runManager->SetUserInitialization(physicsList);
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ Environment variable "G4FORCE_RUN_MANAGER_TYPE" enabled with value == Serial. Fo
|
||||
|
||||
|
||||
**************************************************************
|
||||
Geant4 version Name: geant4-10-07-ref-06 (25-June-2021)
|
||||
Geant4 version Name: geant4-10-07-ref-07 (31-August-2021)
|
||||
Copyright : Geant4 Collaboration
|
||||
References : NIM A 506 (2003), 250-303
|
||||
: IEEE-TNS 53 (2006), 270-278
|
||||
@@ -33,7 +33,6 @@ Registered graphics systems are:
|
||||
G4HepRep (HepRepXML)
|
||||
G4HepRepFile (HepRepFile)
|
||||
RayTracer (RayTracer)
|
||||
VRML1FILE (VRML1FILE)
|
||||
VRML2FILE (VRML2FILE)
|
||||
gMocrenFile (gMocrenFile)
|
||||
OpenGLImmediateQt (OGLIQt, OGLI)
|
||||
@@ -202,29 +201,29 @@ has been modified since last Run.
|
||||
phot: for gamma SubType=12 BuildTable=0
|
||||
LambdaPrime table from 200 keV to 100 TeV in 174 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermorePhElectric : Emin= 0 meV Emax= 100 TeV SauterGavrila Fluo
|
||||
LivermorePhElectric : Emin= 0 Emax= 100 TeV SauterGavrila Fluo
|
||||
|
||||
compt: for gamma SubType=13 BuildTable=1
|
||||
Lambda table from 100 eV to 1 MeV, 20 bins/decade, spline: 1
|
||||
LambdaPrime table from 1 MeV to 100 TeV in 160 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LowEPComptonModel : Emin= 0 meV Emax= 20 MeV Fluo
|
||||
LowEPComptonModel : Emin= 0 Emax= 20 MeV Fluo
|
||||
KleinNishina : Emin= 20 MeV Emax= 100 TeV Fluo
|
||||
|
||||
conv: for gamma SubType=14 BuildTable=1
|
||||
Lambda table from 1.022 MeV to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BetheHeitler5D : Emin= 0 meV Emax= 100 TeV ModifiedTsai
|
||||
BetheHeitler5D : Emin= 0 Emax= 100 TeV ModifiedTsai
|
||||
|
||||
Rayl: for gamma SubType=11 BuildTable=1
|
||||
Lambda table from 100 eV to 100 keV, 20 bins/decade, spline: 0
|
||||
LambdaPrime table from 100 keV to 100 TeV in 180 bins
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LivermoreRayleigh : Emin= 0 meV Emax= 100 TeV CullenGenerator
|
||||
LivermoreRayleigh : Emin= 0 Emax= 100 TeV CullenGenerator
|
||||
|
||||
msc: for e- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
GoudsmitSaunderson : Emin= 0 meV Emax= 100 MeV Nbins=120 100 eV - 100 MeV
|
||||
GoudsmitSaunderson : Emin= 0 Emax= 100 MeV Nbins=120 100 eV - 100 MeV
|
||||
StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV
|
||||
StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
@@ -234,7 +233,7 @@ eIoni: for e- XStype:1 SubType=2
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
LowEnergyIoni : Emin= 0 meV Emax= 100 keV deltaVI
|
||||
LowEnergyIoni : Emin= 0 Emax= 100 keV deltaVI
|
||||
MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI
|
||||
|
||||
eBrem: for e- XStype:4 SubType=3
|
||||
@@ -242,7 +241,7 @@ eBrem: for e- XStype:4 SubType=3
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 meV Emax= 1 GeV AngularGen2BS
|
||||
eBremSB : Emin= 0 Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS
|
||||
|
||||
ePairProd: for e- XStype:1 SubType=4
|
||||
@@ -250,7 +249,7 @@ ePairProd: for e- XStype:1 SubType=4
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 25x1001 from 0.1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ePairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
ePairProd : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for e- XStype:3 SubType=1 BuildTable=1
|
||||
Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 1
|
||||
@@ -260,7 +259,7 @@ CoulombScat: for e- XStype:3 SubType=1 BuildTable=1
|
||||
|
||||
msc: for e+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
GoudsmitSaunderson : Emin= 0 meV Emax= 100 MeV Nbins=120 100 eV - 100 MeV
|
||||
GoudsmitSaunderson : Emin= 0 Emax= 100 MeV Nbins=120 100 eV - 100 MeV
|
||||
StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
WentzelVIUni : Emin= 100 MeV Emax= 100 TeV Nbins=120 100 MeV - 100 TeV
|
||||
StepLim=SafetyPlus Rfact=0.08 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
@@ -270,7 +269,7 @@ eIoni: for e+ XStype:1 SubType=2
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.2, 0.01 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
PenIoni : Emin= 0 meV Emax= 100 keV
|
||||
PenIoni : Emin= 0 Emax= 100 keV
|
||||
MollerBhabha : Emin= 100 keV Emax= 100 TeV deltaVI
|
||||
|
||||
eBrem: for e+ XStype:4 SubType=3
|
||||
@@ -278,7 +277,7 @@ eBrem: for e+ XStype:4 SubType=3
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
LPM flag: 1 for E > 1 GeV, VertexHighEnergyTh(GeV)= 100000
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eBremSB : Emin= 0 meV Emax= 1 GeV AngularGen2BS
|
||||
eBremSB : Emin= 0 Emax= 1 GeV AngularGen2BS
|
||||
eBremLPM : Emin= 1 GeV Emax= 100 TeV AngularGen2BS
|
||||
|
||||
ePairProd: for e+ XStype:1 SubType=4
|
||||
@@ -286,11 +285,11 @@ ePairProd: for e+ XStype:1 SubType=4
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 25x1001 from 0.1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ePairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
ePairProd : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
annihil: for e+ XStype:2 SubType=5 BuildTable=0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eplus2gg : Emin= 0 meV Emax= 100 TeV
|
||||
eplus2gg : Emin= 0 Emax= 100 TeV
|
||||
|
||||
CoulombScat: for e+ XStype:3 SubType=1 BuildTable=1
|
||||
Lambda table from 100 MeV to 100 TeV, 20 bins/decade, spline: 1
|
||||
@@ -300,7 +299,7 @@ CoulombScat: for e+ XStype:3 SubType=1 BuildTable=1
|
||||
|
||||
msc: for proton SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 meV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
hIoni: for proton XStype:1 SubType=2
|
||||
@@ -308,35 +307,35 @@ hIoni: for proton XStype:1 SubType=2
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 meV Emax= 2 MeV deltaVI
|
||||
Bragg : Emin= 0 Emax= 2 MeV deltaVI
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for proton XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
hBrem : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for proton XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
hPairProd : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for proton XStype:3 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 meV Emax= 100 TeV
|
||||
eCoulombScattering : Emin= 0 Emax= 100 TeV
|
||||
|
||||
nuclearStopping: for proton SubType=8 BuildTable=0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 meV Emax= 1 MeV
|
||||
ICRU49NucStopping : Emin= 0 Emax= 1 MeV
|
||||
|
||||
msc: for GenericIon SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 meV Emax= 100 TeV
|
||||
UrbanMsc : Emin= 0 Emax= 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
ionIoni: for GenericIon XStype:1 SubType=2
|
||||
@@ -344,15 +343,15 @@ ionIoni: for GenericIon XStype:1 SubType=2
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ParamICRU73 : Emin= 0 meV Emax= 100 TeV deltaVI
|
||||
ParamICRU73 : Emin= 0 Emax= 100 TeV deltaVI
|
||||
|
||||
nuclearStopping: for GenericIon SubType=8 BuildTable=0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 meV Emax= 1 MeV
|
||||
ICRU49NucStopping : Emin= 0 Emax= 1 MeV
|
||||
|
||||
msc: for alpha SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
UrbanMsc : Emin= 0 meV Emax= 100 TeV
|
||||
UrbanMsc : Emin= 0 Emax= 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
ionIoni: for alpha XStype:1 SubType=2
|
||||
@@ -360,16 +359,16 @@ ionIoni: for alpha XStype:1 SubType=2
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.02 mm), integ: 1, fluct: 1, linLossLim= 0.02
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
BraggIon : Emin= 0 meV Emax=7.9452 MeV deltaVI
|
||||
BraggIon : Emin= 0 Emax=7.9452 MeV deltaVI
|
||||
BetheBloch : Emin=7.9452 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
nuclearStopping: for alpha SubType=8 BuildTable=0
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU49NucStopping : Emin= 0 meV Emax= 1 MeV
|
||||
ICRU49NucStopping : Emin= 0 Emax= 1 MeV
|
||||
|
||||
msc: for anti_proton SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 meV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
hIoni: for anti_proton XStype:1 SubType=2
|
||||
@@ -377,31 +376,31 @@ hIoni: for anti_proton XStype:1 SubType=2
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 meV Emax= 2 MeV deltaVI
|
||||
ICRU73QO : Emin= 0 Emax= 2 MeV deltaVI
|
||||
BetheBloch : Emin= 2 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for anti_proton XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
hBrem : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for anti_proton XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 17x1001 from 7.50618 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
hPairProd : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for anti_proton XStype:3 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 meV Emax= 100 TeV
|
||||
eCoulombScattering : Emin= 0 Emax= 100 TeV
|
||||
|
||||
msc: for kaon+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 meV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
hIoni: for kaon+ XStype:1 SubType=2
|
||||
@@ -409,31 +408,31 @@ hIoni: for kaon+ XStype:1 SubType=2
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 meV Emax=1.05231 MeV deltaVI
|
||||
Bragg : Emin= 0 Emax=1.05231 MeV deltaVI
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for kaon+ XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
hBrem : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for kaon+ XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
hPairProd : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for kaon+ XStype:3 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 meV Emax= 100 TeV
|
||||
eCoulombScattering : Emin= 0 Emax= 100 TeV
|
||||
|
||||
msc: for kaon- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 meV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
hIoni: for kaon- XStype:1 SubType=2
|
||||
@@ -441,31 +440,31 @@ hIoni: for kaon- XStype:1 SubType=2
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 meV Emax=1.05231 MeV deltaVI
|
||||
ICRU73QO : Emin= 0 Emax=1.05231 MeV deltaVI
|
||||
BetheBloch : Emin=1.05231 MeV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for kaon- XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
hBrem : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for kaon- XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 18x1001 from 3.94942 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
hPairProd : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for kaon- XStype:3 SubType=1 BuildTable=1
|
||||
Used Lambda table of kaon+
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 meV Emax= 100 TeV
|
||||
eCoulombScattering : Emin= 0 Emax= 100 TeV
|
||||
|
||||
msc: for mu+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 meV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
muIoni: for mu+ XStype:1 SubType=2
|
||||
@@ -473,7 +472,7 @@ muIoni: for mu+ XStype:1 SubType=2
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 meV Emax= 200 keV deltaVI
|
||||
Bragg : Emin= 0 Emax= 200 keV deltaVI
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
|
||||
|
||||
@@ -481,24 +480,24 @@ muBrems: for mu+ XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
MuBrem : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
muPairProd: for mu+ XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 21x1001 from 1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
muPairProd : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for mu+ XStype:3 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 meV Emax= 100 TeV
|
||||
eCoulombScattering : Emin= 0 Emax= 100 TeV
|
||||
|
||||
msc: for mu- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 meV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
muIoni: for mu- XStype:1 SubType=2
|
||||
@@ -506,7 +505,7 @@ muIoni: for mu- XStype:1 SubType=2
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 meV Emax= 200 keV deltaVI
|
||||
ICRU73QO : Emin= 0 Emax= 200 keV deltaVI
|
||||
BetheBloch : Emin= 200 keV Emax= 1 GeV deltaVI
|
||||
MuBetheBloch : Emin= 1 GeV Emax= 100 TeV
|
||||
|
||||
@@ -514,24 +513,24 @@ muBrems: for mu- XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
MuBrem : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
MuBrem : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
muPairProd: for mu- XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 21x1001 from 1 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
muPairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
muPairProd : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for mu- XStype:3 SubType=1 BuildTable=1
|
||||
Used Lambda table of mu+
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 meV Emax= 100 TeV
|
||||
eCoulombScattering : Emin= 0 Emax= 100 TeV
|
||||
|
||||
msc: for pi+ SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 meV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
hIoni: for pi+ XStype:1 SubType=2
|
||||
@@ -539,31 +538,31 @@ hIoni: for pi+ XStype:1 SubType=2
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
Bragg : Emin= 0 meV Emax=297.505 keV deltaVI
|
||||
Bragg : Emin= 0 Emax=297.505 keV deltaVI
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for pi+ XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
hBrem : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for pi+ XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
hPairProd : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for pi+ XStype:3 SubType=1 BuildTable=1
|
||||
Lambda table from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 meV Emax= 100 TeV
|
||||
eCoulombScattering : Emin= 0 Emax= 100 TeV
|
||||
|
||||
msc: for pi- SubType= 10
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
WentzelVIUni : Emin= 0 meV Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
WentzelVIUni : Emin= 0 Emax= 100 TeV Nbins=240 100 eV - 100 TeV
|
||||
StepLim=Minimal Rfact=0.2 Gfact=2.5 Sfact=0.6 DispFlag:1 Skin=3 Llim=1 mm
|
||||
|
||||
hIoni: for pi- XStype:1 SubType=2
|
||||
@@ -571,27 +570,27 @@ hIoni: for pi- XStype:1 SubType=2
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
StepFunction=(0.1, 0.05 mm), integ: 1, fluct: 1, linLossLim= 0.01
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
ICRU73QO : Emin= 0 meV Emax=297.505 keV deltaVI
|
||||
ICRU73QO : Emin= 0 Emax=297.505 keV deltaVI
|
||||
BetheBloch : Emin=297.505 keV Emax= 100 TeV deltaVI
|
||||
|
||||
hBrems: for pi- XStype:1 SubType=3
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hBrem : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
hBrem : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
hPairProd: for pi- XStype:1 SubType=4
|
||||
dE/dx and range tables from 100 eV to 100 TeV in 240 bins
|
||||
Lambda tables from threshold to 100 TeV, 20 bins/decade, spline: 1
|
||||
Sampling table 20x1001 from 1.11656 GeV to 100 TeV
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
hPairProd : Emin= 0 meV Emax= 100 TeV ModifiedMephi
|
||||
hPairProd : Emin= 0 Emax= 100 TeV ModifiedMephi
|
||||
|
||||
CoulombScat: for pi- XStype:3 SubType=1 BuildTable=1
|
||||
Used Lambda table of pi+
|
||||
ThetaMin(p) < Theta(degree) < 180 pLimit(GeV^1)= 0.139531
|
||||
===== EM models for the G4Region DefaultRegionForTheWorld ======
|
||||
eCoulombScattering : Emin= 0 meV Emax= 100 TeV
|
||||
eCoulombScattering : Emin= 0 Emax= 100 TeV
|
||||
|
||||
====================================================================
|
||||
HADRONIC PROCESSES SUMMARY (verbose level 1)
|
||||
@@ -600,17 +599,17 @@ CoulombScat: for pi- XStype:3 SubType=1 BuildTable=1
|
||||
Hadronic Processes for neutron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 meV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronElasticXS: 0 meV ---> 100 TeV
|
||||
Model: hElasticCHIPS: 0 ---> 100 TeV
|
||||
Cr_sctns: G4NeutronElasticXS: 0 ---> 100 TeV
|
||||
|
||||
Process: neutronInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 meV ---> 6 GeV
|
||||
Cr_sctns: G4NeutronInelasticXS: 0 meV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 ---> 6 GeV
|
||||
Cr_sctns: G4NeutronInelasticXS: 0 ---> 100 TeV
|
||||
|
||||
Process: nCapture
|
||||
Model: nRadCapture: 0 meV ---> 100 TeV
|
||||
Cr_sctns: G4NeutronCaptureXS: 0 meV ---> 100 TeV
|
||||
Model: nRadCapture: 0 ---> 100 TeV
|
||||
Cr_sctns: G4NeutronCaptureXS: 0 ---> 100 TeV
|
||||
|
||||
Process: nKiller
|
||||
|
||||
@@ -618,67 +617,67 @@ CoulombScat: for pi- XStype:3 SubType=1 BuildTable=1
|
||||
Hadronic Processes for B-
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 meV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 ---> 100 TeV
|
||||
|
||||
Process: B-Inelastic
|
||||
Model: FTFP: 0 meV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 meV ---> 100 TeV
|
||||
Model: FTFP: 0 ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for D-
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 meV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 ---> 100 TeV
|
||||
|
||||
Process: D-Inelastic
|
||||
Model: FTFP: 0 meV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 meV ---> 100 TeV
|
||||
Model: FTFP: 0 ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for GenericIon
|
||||
|
||||
Process: ionInelastic
|
||||
Model: Binary Light Ion Cascade: 0 meV/n ---> 6 GeV/n
|
||||
Model: Binary Light Ion Cascade: 0 /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 meV ---> 25.6 PeV
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 ---> 25.6 PeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for He3
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 meV ---> 25.6 PeV
|
||||
Model: hElasticLHEP: 0 /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 ---> 25.6 PeV
|
||||
|
||||
Process: He3Inelastic
|
||||
Model: Binary Light Ion Cascade: 0 meV/n ---> 6 GeV/n
|
||||
Model: Binary Light Ion Cascade: 0 /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 meV ---> 25.6 PeV
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 ---> 25.6 PeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for alpha
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 meV ---> 25.6 PeV
|
||||
Model: hElasticLHEP: 0 /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 ---> 25.6 PeV
|
||||
|
||||
Process: alphaInelastic
|
||||
Model: Binary Light Ion Cascade: 0 meV/n ---> 6 GeV/n
|
||||
Model: Binary Light Ion Cascade: 0 /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 meV ---> 25.6 PeV
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 ---> 25.6 PeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for anti_He3
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV/n ---> 100.1 MeV/n
|
||||
Model: hElasticLHEP: 0 /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 meV ---> 25.6 PeV
|
||||
Cr_sctns: AntiAGlauber: 0 ---> 25.6 PeV
|
||||
|
||||
Process: anti_He3Inelastic
|
||||
Model: FTFP: 0 meV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 meV ---> 25.6 PeV
|
||||
Model: FTFP: 0 /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 ---> 25.6 PeV
|
||||
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
@@ -686,13 +685,13 @@ CoulombScat: for pi- XStype:3 SubType=1 BuildTable=1
|
||||
Hadronic Processes for anti_alpha
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV/n ---> 100.1 MeV/n
|
||||
Model: hElasticLHEP: 0 /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 meV ---> 25.6 PeV
|
||||
Cr_sctns: AntiAGlauber: 0 ---> 25.6 PeV
|
||||
|
||||
Process: anti_alphaInelastic
|
||||
Model: FTFP: 0 meV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 meV ---> 25.6 PeV
|
||||
Model: FTFP: 0 /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 ---> 25.6 PeV
|
||||
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
@@ -700,13 +699,13 @@ CoulombScat: for pi- XStype:3 SubType=1 BuildTable=1
|
||||
Hadronic Processes for anti_deuteron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV/n ---> 100.1 MeV/n
|
||||
Model: hElasticLHEP: 0 /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 meV ---> 25.6 PeV
|
||||
Cr_sctns: AntiAGlauber: 0 ---> 25.6 PeV
|
||||
|
||||
Process: anti_deuteronInelastic
|
||||
Model: FTFP: 0 meV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 meV ---> 25.6 PeV
|
||||
Model: FTFP: 0 /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 ---> 25.6 PeV
|
||||
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
@@ -714,12 +713,12 @@ CoulombScat: for pi- XStype:3 SubType=1 BuildTable=1
|
||||
Hadronic Processes for anti_lambda
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 meV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 ---> 100 TeV
|
||||
|
||||
Process: anti_lambdaInelastic
|
||||
Model: FTFP: 0 meV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 meV ---> 100 TeV
|
||||
Model: FTFP: 0 ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 ---> 100 TeV
|
||||
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
@@ -727,13 +726,13 @@ CoulombScat: for pi- XStype:3 SubType=1 BuildTable=1
|
||||
Hadronic Processes for anti_neutron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV ---> 100.1 MeV
|
||||
Model: hElasticLHEP: 0 ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 meV ---> 25.6 PeV
|
||||
Cr_sctns: AntiAGlauber: 0 ---> 25.6 PeV
|
||||
|
||||
Process: anti_neutronInelastic
|
||||
Model: FTFP: 0 meV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 meV ---> 25.6 PeV
|
||||
Model: FTFP: 0 ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 ---> 25.6 PeV
|
||||
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
@@ -741,13 +740,13 @@ CoulombScat: for pi- XStype:3 SubType=1 BuildTable=1
|
||||
Hadronic Processes for anti_proton
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV ---> 100.1 MeV
|
||||
Model: hElasticLHEP: 0 ---> 100.1 MeV
|
||||
Model: AntiAElastic: 100 MeV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 meV ---> 25.6 PeV
|
||||
Cr_sctns: AntiAGlauber: 0 ---> 25.6 PeV
|
||||
|
||||
Process: anti_protonInelastic
|
||||
Model: FTFP: 0 meV ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 meV ---> 25.6 PeV
|
||||
Model: FTFP: 0 ---> 100 TeV
|
||||
Cr_sctns: AntiAGlauber: 0 ---> 25.6 PeV
|
||||
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
@@ -755,13 +754,13 @@ CoulombScat: for pi- XStype:3 SubType=1 BuildTable=1
|
||||
Hadronic Processes for anti_triton
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV/n ---> 100.1 MeV/n
|
||||
Model: hElasticLHEP: 0 /n ---> 100.1 MeV/n
|
||||
Model: AntiAElastic: 100 MeV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 meV ---> 25.6 PeV
|
||||
Cr_sctns: AntiAGlauber: 0 ---> 25.6 PeV
|
||||
|
||||
Process: anti_tritonInelastic
|
||||
Model: FTFP: 0 meV/n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 meV ---> 25.6 PeV
|
||||
Model: FTFP: 0 /n ---> 100 TeV/n
|
||||
Cr_sctns: AntiAGlauber: 0 ---> 25.6 PeV
|
||||
|
||||
Process: hFritiofCaptureAtRest
|
||||
|
||||
@@ -769,60 +768,60 @@ CoulombScat: for pi- XStype:3 SubType=1 BuildTable=1
|
||||
Hadronic Processes for deuteron
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 meV ---> 25.6 PeV
|
||||
Model: hElasticLHEP: 0 /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 ---> 25.6 PeV
|
||||
|
||||
Process: dInelastic
|
||||
Model: Binary Light Ion Cascade: 0 meV/n ---> 6 GeV/n
|
||||
Model: Binary Light Ion Cascade: 0 /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 meV ---> 25.6 PeV
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 ---> 25.6 PeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for e+
|
||||
|
||||
Process: electronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 meV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 meV ---> 100 TeV
|
||||
Process: positronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for e-
|
||||
|
||||
Process: electronNuclear
|
||||
Model: G4ElectroVDNuclearModel: 0 meV ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 meV ---> 100 TeV
|
||||
Model: G4ElectroVDNuclearModel: 0 ---> 1 PeV
|
||||
Cr_sctns: ElectroNuclearXS: 0 ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for gamma
|
||||
|
||||
Process: photonNuclear
|
||||
Model: GammaNPreco: 0 meV ---> 200 MeV
|
||||
Model: GammaNPreco: 0 ---> 200 MeV
|
||||
Model: BertiniCascade: 199 MeV ---> 6 GeV
|
||||
Model: TheoFSGenerator: 3 GeV ---> 100 TeV
|
||||
Cr_sctns: PhotoNuclearXS: 0 meV ---> 100 TeV
|
||||
Cr_sctns: GammaNuclearXS: 0 ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for kaon+
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 meV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 ---> 100 TeV
|
||||
|
||||
Process: kaon+Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 meV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 meV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for kaon-
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 meV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 ---> 100 TeV
|
||||
|
||||
Process: kaon-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 meV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 meV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 ---> 100 TeV
|
||||
|
||||
Process: hBertiniCaptureAtRest
|
||||
|
||||
@@ -830,27 +829,27 @@ CoulombScat: for pi- XStype:3 SubType=1 BuildTable=1
|
||||
Hadronic Processes for lambda
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 meV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 ---> 100 TeV
|
||||
|
||||
Process: lambdaInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 meV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 meV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for mu+
|
||||
|
||||
Process: muonNuclear
|
||||
Model: G4MuonVDNuclearModel: 0 meV ---> 1 PeV
|
||||
Cr_sctns: KokoulinMuonNuclearXS: 0 meV ---> 100 TeV
|
||||
Model: G4MuonVDNuclearModel: 0 ---> 1 PeV
|
||||
Cr_sctns: KokoulinMuonNuclearXS: 0 ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for mu-
|
||||
|
||||
Process: muonNuclear
|
||||
Model: G4MuonVDNuclearModel: 0 meV ---> 1 PeV
|
||||
Cr_sctns: KokoulinMuonNuclearXS: 0 meV ---> 100 TeV
|
||||
Model: G4MuonVDNuclearModel: 0 ---> 1 PeV
|
||||
Cr_sctns: KokoulinMuonNuclearXS: 0 ---> 100 TeV
|
||||
|
||||
Process: muMinusCaptureAtRest
|
||||
|
||||
@@ -858,25 +857,25 @@ CoulombScat: for pi- XStype:3 SubType=1 BuildTable=1
|
||||
Hadronic Processes for pi+
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticGlauber: 0 meV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 meV ---> 100 TeV
|
||||
Model: hElasticGlauber: 0 ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 ---> 100 TeV
|
||||
|
||||
Process: pi+Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 meV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 meV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for pi-
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticGlauber: 0 meV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 meV ---> 100 TeV
|
||||
Model: hElasticGlauber: 0 ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 ---> 100 TeV
|
||||
|
||||
Process: pi-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 meV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 meV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 ---> 100 TeV
|
||||
|
||||
Process: hBertiniCaptureAtRest
|
||||
|
||||
@@ -884,25 +883,25 @@ CoulombScat: for pi- XStype:3 SubType=1 BuildTable=1
|
||||
Hadronic Processes for proton
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticCHIPS: 0 meV ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 meV ---> 100 TeV
|
||||
Model: hElasticCHIPS: 0 ---> 100 TeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 ---> 100 TeV
|
||||
|
||||
Process: protonInelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 meV ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 meV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 ---> 6 GeV
|
||||
Cr_sctns: BarashenkovGlauberGribov: 0 ---> 100 TeV
|
||||
|
||||
---------------------------------------------------
|
||||
Hadronic Processes for sigma-
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 meV ---> 100 TeV
|
||||
Model: hElasticLHEP: 0 ---> 100 TeV
|
||||
Cr_sctns: Glauber-Gribov: 0 ---> 100 TeV
|
||||
|
||||
Process: sigma-Inelastic
|
||||
Model: FTFP: 3 GeV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 meV ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 meV ---> 100 TeV
|
||||
Model: BertiniCascade: 0 ---> 6 GeV
|
||||
Cr_sctns: Glauber-Gribov: 0 ---> 100 TeV
|
||||
|
||||
Process: hBertiniCaptureAtRest
|
||||
|
||||
@@ -910,13 +909,13 @@ CoulombScat: for pi- XStype:3 SubType=1 BuildTable=1
|
||||
Hadronic Processes for triton
|
||||
|
||||
Process: hadElastic
|
||||
Model: hElasticLHEP: 0 meV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 meV ---> 25.6 PeV
|
||||
Model: hElasticLHEP: 0 /n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 ---> 25.6 PeV
|
||||
|
||||
Process: tInelastic
|
||||
Model: Binary Light Ion Cascade: 0 meV/n ---> 6 GeV/n
|
||||
Model: Binary Light Ion Cascade: 0 /n ---> 6 GeV/n
|
||||
Model: FTFP: 3 GeV/n ---> 100 TeV/n
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 meV ---> 25.6 PeV
|
||||
Cr_sctns: Glauber-Gribov Nucl-nucl: 0 ---> 25.6 PeV
|
||||
|
||||
================================================================
|
||||
=======================================================================
|
||||
@@ -939,7 +938,6 @@ Time limit for long lived isomeres (ns) 1
|
||||
Isomer production flag 1
|
||||
Internal e- conversion flag 1
|
||||
Store e- internal conversion data 0
|
||||
Electron internal conversion ID 3
|
||||
Correlated gamma emission flag 0
|
||||
Max 2J for sampling of angular correlations 10
|
||||
=======================================================================
|
||||
@@ -1149,7 +1147,7 @@ See commands in /vis/modeling/trajectories/ for other options.
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 10
|
||||
User=0.020000s Real=0.013587s Sys=0.000000s
|
||||
User=0.020000s Real=0.013951s Sys=0.000000s
|
||||
|
||||
======================== run summary =====================
|
||||
Average number per event:
|
||||
@@ -1231,7 +1229,7 @@ SteppingAction: status = EscapedFromReadOut
|
||||
Run terminated.
|
||||
Run Summary
|
||||
Number of events processed : 10000
|
||||
User=16.500000s Real=17.202119s Sys=0.030000s
|
||||
User=17.800000s Real=18.160260s Sys=0.050000s
|
||||
|
||||
======================== run summary =====================
|
||||
Average number per event:
|
||||
|
||||
Reference in New Issue
Block a user