Basic/B4a Example
This example simulates a simple Sampling Calorimeter setup. To demonstrate several possible ways of data scoring, the example is provided in four variants: %B4a, %B4b, %B4c, %B4d. See README file for the example.
You can also download this example as a Jupyter notebook and a plain Julia source file.
Table of contents
- Loading the necessary Julia modules
- Define Detector Parameters struct
- Defining the geometry constructor
- Primary Particle Generator
- Defining the simulation data
- User Actions
- Begin Run Action
- Making the Application
- Run the Example
- Plotting the histograms
Loading the necessary Julia modules
Load the Geant4 and Geant4.SystemOfUnits modules.
using Geant4
using Geant4.SystemOfUnits: cm, cm3, mm, pGy, eplus, keV, g, eV, MeV, mole
using FHist, Plots
# to force loading G4Vis extension we need to load the following module
using CairoMakieDefine Detector Parameters struct
The B4Detector structure is defined with the default detector parameters.
mutable struct B4aDetector <: G4JLDetector
# main input parameters
const nofLayers::Int
const checkOverlaps::Bool
const absoThickness::Float64
const gapThickness::Float64
const calorSizeXY::Float64
# constructor with defaults values for parameters
function B4aDetector(; nofLayers::Int=10,
checkOverlaps::Bool=true,
absoThickness::Float64=10mm,
gapThickness::Float64=5mm,
calorSizeXY::Float64=10cm)
self = new(nofLayers, checkOverlaps, absoThickness, gapThickness, calorSizeXY)
return self
end
end
_layerThickness(d::B4aDetector) = d.absoThickness + d.gapThickness
_calorThickness(d::B4aDetector) = d.nofLayers * _layerThickness(d)
_worldSizeZ(d::B4aDetector) = 1.2 * _calorThickness(d)
_worldSizeXY(d::B4aDetector) = 1.2 * d.calorSizeXY_worldSizeXY (generic function with 1 method)Defining the geometry constructor
function B4aConstruct(det::B4aDetector)::CxxPtr{G4VPhysicalVolume}
(; nofLayers, checkOverlaps, absoThickness, gapThickness, calorSizeXY) = det
nist = G4NistManager!Instance()
layerThickness = _layerThickness(det)
calorThickness = _calorThickness(det)
worldSizeXY = _worldSizeXY(det)
worldSizeZ = _worldSizeZ(det)
G4Material("liquidArgon", z = 18., a = 30.95g/mole, density = 1.390g/cm3)
defaultMaterial = FindOrBuildMaterial(nist, "G4_Galactic")
absorberMaterial = FindOrBuildMaterial(nist, "G4_Pb")
gapMaterial = FindOrBuildMaterial(nist, "liquidArgon")
worldS = G4Box("World", 0.5 * worldSizeXY, 0.5 * worldSizeXY, 0.5 * worldSizeZ)
worldLV = G4LogicalVolume(worldS, defaultMaterial, "WorldLV")
worldPV = G4PVPlacement(nothing, # no rotation
G4ThreeVector(), # at (0,0,0)
worldLV, # its logical volume
"World", # its name
nothing, # its mother volume
false, # no boolean operation
0, # copy number
checkOverlaps) # overlaps checking
##---------------------------------------
calorimeterS = G4Box("Calorimeter", 0.5 * calorSizeXY, 0.5 * calorSizeXY, 0.5 * calorThickness)
calorLV = G4LogicalVolume(calorimeterS, defaultMaterial, "CalorLV")
println(calorLV)
G4PVPlacement(nothing,
G4ThreeVector(),
calorLV,
"CalorPV",
worldLV,
false,
0,
checkOverlaps)
##----------------------------------------------
layerS = G4Box("Layer",
0.5*calorSizeXY, 0.5*calorSizeXY, 0.5*layerThickness)
layerLV = G4LogicalVolume(layerS,
defaultMaterial,
"Layer")
G4PVReplica("Layer",
layerLV,
calorLV,
kZAxis,
nofLayers,
layerThickness)
##---------------------------------------------------
absorberS = G4Box("Abso",
0.5*calorSizeXY, 0.5*calorSizeXY, 0.5*absoThickness)
absorberLV = G4LogicalVolume(absorberS, absorberMaterial, "AbsoLV")
G4PVPlacement(nothing,
G4ThreeVector(0., 0., -0.5*gapThickness),
absorberLV,
"AbsPV",
layerLV,
false,
0,
checkOverlaps)
##--------------------------------------
gapS = G4Box("Gap", 0.5*calorSizeXY, 0.5*calorSizeXY, 0.5*gapThickness)
gapLV = G4LogicalVolume(gapS, gapMaterial, "Gap")
G4PVPlacement(nothing,
G4ThreeVector(0., 0., 0.5*absoThickness),
gapLV,
"GapPV",
layerLV,
false,
0,
checkOverlaps)
##------------------------------------------
##Visualization attributes
SetVisAttributes(worldLV, G4VisAttributes!GetInvisible())
SetVisAttributes(calorLV, G4VisAttributes!GetInvisible())
return worldPV # return a pointer to the G4PhysicalVolume
endB4aConstruct (generic function with 1 method)Instantiate the detector
detector = B4aDetector()Main.var"##277".B4aDetector(10, true, 10.0, 5.0, 100.0)Primary Particle Generator
worldZHalfLength = _worldSizeZ(detector)/2
particlegun = G4JLGunGenerator(particle = "e-",
energy = 300MeV,
direction = G4ThreeVector(0., 0., 1.),
position = G4ThreeVector(0,0,-worldZHalfLength))Geant4.G4JLGunGenerator("ParticleGun", Geant4.G4JLParticleGunData(nothing, "e-", G4ThreeVector(0.0,0.0,1.0), G4ThreeVector(0.0,0.0,-90.0), 300.0), Geant4.var"#init#19"(), Geant4.var"#gen#20"(), Geant4.G4JLGeneratorAction[])Defining the simulation data
const Hist1D64 = Hist1D{Float64}
mutable struct B4aSimData <: G4JLSimulationData
fEnergyDeposit_Abs::Float64
fEnergyDeposit_Gap::Float64
fStepLength_Abs::Float64
fStepLength_Gap::Float64
fEdepHist_Abs::Hist1D64
fStepLenHist_Abs::Hist1D64
fEdepHist_Gap::Hist1D64
fStepLenHist_Gap::Hist1D64
B4aSimData() = new()
endUser Actions
Begin Run Action
function beginrun(run::G4Run, app::G4JLApplication)::Nothing
data = getSIMdata(app)
data.fEdepHist_Abs = Hist1D(;binedges=100.:1.:300.)
data.fStepLenHist_Abs = Hist1D(;binedges=0.:2.:500.)
data.fEdepHist_Gap = Hist1D(;binedges=0.:1.:200.)
data.fStepLenHist_Gap = Hist1D(;binedges=0.:2.:500.)
nothing
endbeginrun (generic function with 1 method)End Run Action
function endrun(run::G4Run, app::G4JLApplication)::Nothing
nothing
endendrun (generic function with 1 method)Begin Event Action
function beginevent(evt::G4Event, app::G4JLApplication)
G4JL_println("===============started event $(evt |> GetEventID)")
data = getSIMdata(app)
data.fEnergyDeposit_Abs = 0.0
data.fStepLength_Abs = 0.0
data.fEnergyDeposit_Gap = 0.0
data.fStepLength_Gap = 0.0
return
endbeginevent (generic function with 1 method)###End event action
function endevent(evt::G4Event, app::G4JLApplication)
data = getSIMdata(app)
# G4JL_println("AbsEdep: $(data.fEnergyDeposit_Abs)")
# println("AbsStepLength: ", data.fStepLength_Abs)
push!(data.fEdepHist_Abs, data.fEnergyDeposit_Abs)
push!(data.fStepLenHist_Abs, data.fStepLength_Abs)
push!(data.fEdepHist_Gap, data.fEnergyDeposit_Gap)
push!(data.fStepLenHist_Gap, data.fStepLength_Gap)
println("Total Energy deposited in Absorber: ",data.fEnergyDeposit_Abs)
println("Total Energy deposited in Gaps: ", data.fEnergyDeposit_Gap)
G4JL_println("================event ended $(evt |> GetEventID) \n")
return
endendevent (generic function with 1 method)Stepping Action
function stepaction(step::G4Step, app::G4JLApplication)
data = getSIMdata(app)
volume = step |> GetPreStepPoint |> GetPhysicalVolume |> GetName
edep = step |> GetTotalEnergyDeposit
stepLength = 0
if step |> GetTrack |> GetDefinition |> GetPDGCharge != 0.
stepLength = step |> GetStepLength
end
if volume[] == "AbsPV"
data.fEnergyDeposit_Abs += edep
data.fStepLength_Abs += stepLength
end
if volume[] == "GapPV"
data.fEnergyDeposit_Gap += edep
data.fStepLength_Gap += stepLength
end
return
endstepaction (generic function with 1 method)Making the Application
evtdisplay = G4JLEventDisplay(joinpath(@__DIR__, "B4aVisSettings.jl"))
Geant4.getConstructor(::B4aDetector)::Function = B4aConstruct
app = G4JLApplication(detector = detector, # detector with parameters
simdata = B4aSimData(), # simulation data
generator = particlegun, # primary particle generator
nthreads = 0, # # of threads (0 = no MT)
physics_type = FTFP_BERT, # what physics list to instantiate
evtdisplay = evtdisplay, # event display
stepaction_method = stepaction,
beginrunaction_method = beginrun, # begin-run action (initialize counters and histograms)
endrunaction_method = endrun,
begineventaction_method=beginevent,
endeventaction_method = endevent
)
configure(app)
initialize(app)Makie.LScene with 3 plots:
┣━ Makie.Axis3D{Tuple{Tuple{Tuple{Float64, Float64}, Tuple{Float64, Float64}, Tuple{Float64, Float64}}}}
┣━ Makie.Mesh{Tuple{GeometryBasics.Mesh{3, Float64, GeometryBasics.NgonFace{3, GeometryBasics.OffsetInteger{-1, UInt32}}, (:position, :normal), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}}, Vector{GeometryBasics.NgonFace{3, GeometryBasics.OffsetInteger{-1, UInt32}}}}}}
┗━ Makie.Mesh{Tuple{GeometryBasics.Mesh{3, Float64, GeometryBasics.NgonFace{3, GeometryBasics.OffsetInteger{-1, UInt32}}, (:position, :normal), Tuple{Vector{GeometryBasics.Point{3, Float64}}, Vector{GeometryBasics.Vec{3, Float32}}}, Vector{GeometryBasics.NgonFace{3, GeometryBasics.OffsetInteger{-1, UInt32}}}}}}
Run the Example
Run a single event and display it
# ui`/tracking/verbose 1`
beamOn(app,1)
Run for 100 events
beamOn(app, 100)===============started event 0
Total Energy deposited in Absorber: 278.9625677014522
Total Energy deposited in Gaps: 16.692751208895988
================event ended 0
===============started event 1
Total Energy deposited in Absorber: 276.60163321826985
Total Energy deposited in Gaps: 9.547458840365959
================event ended 1
===============started event 2
Total Energy deposited in Absorber: 276.80287409853975
Total Energy deposited in Gaps: 15.558226447130346
================event ended 2
===============started event 3
Total Energy deposited in Absorber: 277.24100902404643
Total Energy deposited in Gaps: 10.22248751913835
================event ended 3
===============started event 4
Total Energy deposited in Absorber: 272.33476851940105
Total Energy deposited in Gaps: 17.017652106496858
================event ended 4
===============started event 5
Total Energy deposited in Absorber: 278.70523951504714
Total Energy deposited in Gaps: 10.359085213094437
================event ended 5
===============started event 6
Total Energy deposited in Absorber: 273.03971986266
Total Energy deposited in Gaps: 9.99712460393254
================event ended 6
===============started event 7
Total Energy deposited in Absorber: 284.3963930191833
Total Energy deposited in Gaps: 13.83256388920901
================event ended 7
===============started event 8
Total Energy deposited in Absorber: 281.96522242332503
Total Energy deposited in Gaps: 7.005216714010383
================event ended 8
===============started event 9
Total Energy deposited in Absorber: 263.7500820133994
Total Energy deposited in Gaps: 21.328957066368506
================event ended 9
===============started event 10
Total Energy deposited in Absorber: 264.62700850701276
Total Energy deposited in Gaps: 16.899523082724823
================event ended 10
===============started event 11
Total Energy deposited in Absorber: 263.95978799467713
Total Energy deposited in Gaps: 13.029336640702162
================event ended 11
===============started event 12
Total Energy deposited in Absorber: 272.5897410428116
Total Energy deposited in Gaps: 15.525860174068418
================event ended 12
===============started event 13
Total Energy deposited in Absorber: 283.6368903908994
Total Energy deposited in Gaps: 10.755558119916907
================event ended 13
===============started event 14
Total Energy deposited in Absorber: 284.0324335398999
Total Energy deposited in Gaps: 12.758585524137908
================event ended 14
===============started event 15
Total Energy deposited in Absorber: 279.76857328012136
Total Energy deposited in Gaps: 0.9637819930347047
================event ended 15
===============started event 16
Total Energy deposited in Absorber: 271.8439532263863
Total Energy deposited in Gaps: 7.421045140192891
================event ended 16
===============started event 17
Total Energy deposited in Absorber: 278.7898270366619
Total Energy deposited in Gaps: 10.096320976478813
================event ended 17
===============started event 18
Total Energy deposited in Absorber: 267.80239357424205
Total Energy deposited in Gaps: 12.829774708962956
================event ended 18
===============started event 19
Total Energy deposited in Absorber: 249.1728374761768
Total Energy deposited in Gaps: 26.46647240468353
================event ended 19
===============started event 20
Total Energy deposited in Absorber: 267.9131456107054
Total Energy deposited in Gaps: 26.959128988852733
================event ended 20
===============started event 21
Total Energy deposited in Absorber: 258.6675079318919
Total Energy deposited in Gaps: 23.761939621250978
================event ended 21
===============started event 22
Total Energy deposited in Absorber: 248.19361625558702
Total Energy deposited in Gaps: 28.563712446321777
================event ended 22
===============started event 23
Total Energy deposited in Absorber: 278.74493434646206
Total Energy deposited in Gaps: 15.270162024626305
================event ended 23
===============started event 24
Total Energy deposited in Absorber: 255.11446643368052
Total Energy deposited in Gaps: 24.487454250350137
================event ended 24
===============started event 25
Total Energy deposited in Absorber: 276.39733211174814
Total Energy deposited in Gaps: 7.5026859254006055
================event ended 25
===============started event 26
Total Energy deposited in Absorber: 277.6068182282141
Total Energy deposited in Gaps: 10.786713324209957
================event ended 26
===============started event 27
Total Energy deposited in Absorber: 271.32995995311387
Total Energy deposited in Gaps: 15.51668049910808
================event ended 27
===============started event 28
Total Energy deposited in Absorber: 282.06653176372885
Total Energy deposited in Gaps: 11.710708324418384
================event ended 28
===============started event 29
Total Energy deposited in Absorber: 263.5315788616418
Total Energy deposited in Gaps: 19.872772466111165
================event ended 29
===============started event 30
Total Energy deposited in Absorber: 285.28983928426453
Total Energy deposited in Gaps: 6.720732452289041
================event ended 30
===============started event 31
Total Energy deposited in Absorber: 286.40979872485724
Total Energy deposited in Gaps: 6.459006974136625
================event ended 31
===============started event 32
Total Energy deposited in Absorber: 271.8875160021712
Total Energy deposited in Gaps: 20.72278071414535
================event ended 32
===============started event 33
Total Energy deposited in Absorber: 261.4855331766012
Total Energy deposited in Gaps: 22.36779958460038
================event ended 33
===============started event 34
Total Energy deposited in Absorber: 278.243927313398
Total Energy deposited in Gaps: 15.295684031662978
================event ended 34
===============started event 35
Total Energy deposited in Absorber: 274.39195997369603
Total Energy deposited in Gaps: 19.73359365185989
================event ended 35
===============started event 36
Total Energy deposited in Absorber: 273.03995561884204
Total Energy deposited in Gaps: 13.342635629003397
================event ended 36
===============started event 37
Total Energy deposited in Absorber: 273.7583996938025
Total Energy deposited in Gaps: 16.073555570276447
================event ended 37
===============started event 38
Total Energy deposited in Absorber: 273.44589833306503
Total Energy deposited in Gaps: 12.587210901211062
================event ended 38
===============started event 39
Total Energy deposited in Absorber: 273.6255819347572
Total Energy deposited in Gaps: 13.602657998703409
================event ended 39
===============started event 40
Total Energy deposited in Absorber: 267.7168887614282
Total Energy deposited in Gaps: 13.831228863086459
================event ended 40
===============started event 41
Total Energy deposited in Absorber: 265.99743169866645
Total Energy deposited in Gaps: 19.31715582745737
================event ended 41
===============started event 42
Total Energy deposited in Absorber: 279.58775975624235
Total Energy deposited in Gaps: 11.842671512707211
================event ended 42
===============started event 43
Total Energy deposited in Absorber: 268.5161763398178
Total Energy deposited in Gaps: 10.85345005401602
================event ended 43
===============started event 44
Total Energy deposited in Absorber: 281.26290989269677
Total Energy deposited in Gaps: 8.264013448372733
================event ended 44
===============started event 45
Total Energy deposited in Absorber: 282.6763623404956
Total Energy deposited in Gaps: 9.823770643748231
================event ended 45
===============started event 46
Total Energy deposited in Absorber: 281.0652637866788
Total Energy deposited in Gaps: 17.437539579977884
================event ended 46
===============started event 47
Total Energy deposited in Absorber: 274.1227673330197
Total Energy deposited in Gaps: 13.815135170627824
================event ended 47
===============started event 48
Total Energy deposited in Absorber: 270.4483252454017
Total Energy deposited in Gaps: 11.726631645661817
================event ended 48
===============started event 49
Total Energy deposited in Absorber: 278.31522200231586
Total Energy deposited in Gaps: 17.095832571882053
================event ended 49
===============started event 50
Total Energy deposited in Absorber: 286.59100864105096
Total Energy deposited in Gaps: 12.363169738912099
================event ended 50
===============started event 51
Total Energy deposited in Absorber: 281.40206911460774
Total Energy deposited in Gaps: 13.932875855059219
================event ended 51
===============started event 52
Total Energy deposited in Absorber: 287.73535819744836
Total Energy deposited in Gaps: 5.680033176892883
================event ended 52
===============started event 53
Total Energy deposited in Absorber: 277.33202287964593
Total Energy deposited in Gaps: 14.924613262190546
================event ended 53
===============started event 54
Total Energy deposited in Absorber: 283.4388891954278
Total Energy deposited in Gaps: 14.3771504536443
================event ended 54
===============started event 55
Total Energy deposited in Absorber: 268.1591714754678
Total Energy deposited in Gaps: 15.432634380571502
================event ended 55
===============started event 56
Total Energy deposited in Absorber: 286.27417479189546
Total Energy deposited in Gaps: 9.570109695602774
================event ended 56
===============started event 57
Total Energy deposited in Absorber: 275.54323889802396
Total Energy deposited in Gaps: 17.352284880710844
================event ended 57
===============started event 58
Total Energy deposited in Absorber: 280.9072852548116
Total Energy deposited in Gaps: 12.372671116493967
================event ended 58
===============started event 59
Total Energy deposited in Absorber: 283.94924541919204
Total Energy deposited in Gaps: 12.300448098552716
================event ended 59
===============started event 60
Total Energy deposited in Absorber: 278.7150204026316
Total Energy deposited in Gaps: 16.859806850633245
================event ended 60
===============started event 61
Total Energy deposited in Absorber: 257.44534167161004
Total Energy deposited in Gaps: 20.26210860499519
================event ended 61
===============started event 62
Total Energy deposited in Absorber: 260.6343891981114
Total Energy deposited in Gaps: 24.752044557601796
================event ended 62
===============started event 63
Total Energy deposited in Absorber: 273.5460482538502
Total Energy deposited in Gaps: 12.716467951070252
================event ended 63
===============started event 64
Total Energy deposited in Absorber: 269.4935107108541
Total Energy deposited in Gaps: 14.509292499030787
================event ended 64
===============started event 65
Total Energy deposited in Absorber: 276.0751437572483
Total Energy deposited in Gaps: 11.838922438615285
================event ended 65
===============started event 66
Total Energy deposited in Absorber: 273.04039160649126
Total Energy deposited in Gaps: 20.69914928883206
================event ended 66
===============started event 67
Total Energy deposited in Absorber: 266.8346768922103
Total Energy deposited in Gaps: 15.987135353634981
================event ended 67
===============started event 68
Total Energy deposited in Absorber: 268.6185896359574
Total Energy deposited in Gaps: 22.00774193965221
================event ended 68
===============started event 69
Total Energy deposited in Absorber: 282.5806457398464
Total Energy deposited in Gaps: 9.139608267046306
================event ended 69
===============started event 70
Total Energy deposited in Absorber: 260.2627812184814
Total Energy deposited in Gaps: 26.717137175528052
================event ended 70
===============started event 71
Total Energy deposited in Absorber: 277.47449782299793
Total Energy deposited in Gaps: 12.523491301144876
================event ended 71
===============started event 72
Total Energy deposited in Absorber: 288.2916227181573
Total Energy deposited in Gaps: 7.538106588107431
================event ended 72
===============started event 73
Total Energy deposited in Absorber: 261.3360679629536
Total Energy deposited in Gaps: 11.34182582997181
================event ended 73
===============started event 74
Total Energy deposited in Absorber: 262.69544784895055
Total Energy deposited in Gaps: 15.918509890052237
================event ended 74
===============started event 75
Total Energy deposited in Absorber: 256.7525794873349
Total Energy deposited in Gaps: 16.973156451321568
================event ended 75
===============started event 76
Total Energy deposited in Absorber: 245.82841375603817
Total Energy deposited in Gaps: 34.75458442445859
================event ended 76
===============started event 77
Total Energy deposited in Absorber: 274.78091975138784
Total Energy deposited in Gaps: 11.605734373959114
================event ended 77
===============started event 78
Total Energy deposited in Absorber: 247.9526848453783
Total Energy deposited in Gaps: 36.14087591297828
================event ended 78
===============started event 79
Total Energy deposited in Absorber: 278.0289278929883
Total Energy deposited in Gaps: 13.38271013727827
================event ended 79
===============started event 80
Total Energy deposited in Absorber: 275.53576766661683
Total Energy deposited in Gaps: 20.492617902305728
================event ended 80
===============started event 81
Total Energy deposited in Absorber: 278.59489013608385
Total Energy deposited in Gaps: 8.049098763904732
================event ended 81
===============started event 82
Total Energy deposited in Absorber: 277.97333076604355
Total Energy deposited in Gaps: 8.073041530333464
================event ended 82
===============started event 83
Total Energy deposited in Absorber: 269.54909344237916
Total Energy deposited in Gaps: 11.797134844562912
================event ended 83
===============started event 84
Total Energy deposited in Absorber: 287.92044745671836
Total Energy deposited in Gaps: 6.707315483901382
================event ended 84
===============started event 85
Total Energy deposited in Absorber: 273.52267543021475
Total Energy deposited in Gaps: 16.553991608229538
================event ended 85
===============started event 86
Total Energy deposited in Absorber: 277.92873342491026
Total Energy deposited in Gaps: 12.500590661249705
================event ended 86
===============started event 87
Total Energy deposited in Absorber: 282.235035413069
Total Energy deposited in Gaps: 11.951406691740464
================event ended 87
===============started event 88
Total Energy deposited in Absorber: 278.14332019886825
Total Energy deposited in Gaps: 12.452095940709977
================event ended 88
===============started event 89
Total Energy deposited in Absorber: 267.3398721970215
Total Energy deposited in Gaps: 18.901332876382494
================event ended 89
===============started event 90
Total Energy deposited in Absorber: 267.12348084707776
Total Energy deposited in Gaps: 21.578602677140584
================event ended 90
===============started event 91
Total Energy deposited in Absorber: 275.1635170575331
Total Energy deposited in Gaps: 6.188677680372331
================event ended 91
===============started event 92
Total Energy deposited in Absorber: 246.27330526986415
Total Energy deposited in Gaps: 25.42986524527871
================event ended 92
===============started event 93
Total Energy deposited in Absorber: 279.380564868771
Total Energy deposited in Gaps: 15.036995468960198
================event ended 93
===============started event 94
Total Energy deposited in Absorber: 278.2847558822711
Total Energy deposited in Gaps: 11.351994094854135
================event ended 94
===============started event 95
Total Energy deposited in Absorber: 278.7025050669749
Total Energy deposited in Gaps: 15.08962343969336
================event ended 95
===============started event 96
Total Energy deposited in Absorber: 267.6742338519374
Total Energy deposited in Gaps: 6.312413251204118
================event ended 96
===============started event 97
Total Energy deposited in Absorber: 265.1476549738309
Total Energy deposited in Gaps: 19.09483436891269
================event ended 97
===============started event 98
Total Energy deposited in Absorber: 259.96678704319515
Total Energy deposited in Gaps: 19.884334718770617
================event ended 98
===============started event 99
Total Energy deposited in Absorber: 259.1537944053579
Total Energy deposited in Gaps: 12.708281178814
================event ended 99
Plotting the histograms
data = getSIMdata(app)
lay = @layout [°; °; °; °]
img = Plots.plot(layout=lay, show=true, size=(800,1000))
Plots.plot!(subplot=1, data.fEdepHist_Abs, title="Total EDep in Absorber", xlabel="Edep (MeV)", label="Abs Edep", show=true)
Plots.plot!(subplot=2, data.fEdepHist_Gap, title="Total EDep in Gaps", xlabel="Edep (MeV)", label="Gap_Edep", show=true)
Plots.plot!(subplot=3, data.fStepLenHist_Abs, title="Total StepLeng in Absorbers", xlabel="Step Length (mm)", label="Abs_StepLen", show=true)
Plots.plot!(subplot=4, data.fStepLenHist_Gap, title="Total StepLeng in Gaps", xlabel="Step Length (mm)", label="Gap_StepLen", show=true)
This page was generated using Literate.jl.