# Demonstrates use of a DICOM file.
# You must unzip synthetic_lung.tar.bz2 before you run this example.
# Reads in and displays a simple test DICOM that represents
# three different time phases of a simplified lung phantom.
# This phantom consists of a tumor in a cylinder of water in a tube of air.

includeFile = HUtoMaterialSchneider.txt

# Geometry
s:Ge/World/Material  = "Vacuum"
d:Ge/World/HLX       = 2.0 m
d:Ge/World/HLY       = 2.0 m
d:Ge/World/HLZ       = 2.0 m
b:Ge/World/Invisible = "TRUE"

s:Ge/Patient/Parent               = "World"
s:Ge/Patient/Material             = "G4_WATER"
d:Ge/Patient/TransX               = 0. cm # -8. cm
d:Ge/Patient/TransY               = 0. cm # -8. cm
d:Ge/Patient/TransZ               = 0. m
d:Ge/Patient/RotX                 = 90. deg
d:Ge/Patient/RotY                 = 0. deg
d:Ge/Patient/RotZ                 = 0. deg
s:Ge/Patient/Type                 = "TsDicomPatient"
s:Ge/Patient/DicomDirectory       = Tf/ImageName/Value
#b:Ge/Patient/PreLoadAllMaterials  = "True"

# Specify which slices to show.
# Comment this out or set to zero to show all slices.
# Set to -1 to show only center slice.
# Set to -2 to show first, center and last slice.
#iv:Ge/Patient/ShowSpecificSlicesX = 1 -2
iv:Ge/Patient/ShowSpecificSlicesY = 1 -1
#iv:Ge/Patient/ShowSpecificSlicesZ = 1 -2

# Time feature, load different CTs at different times
s:Tf/ImageName/Function = "Step"
dv:Tf/ImageName/Times   = 3 10 20 30 ms
sv:Tf/ImageName/Values  = 3 "synthetic_lung/lung-1" "synthetic_lung/lung-2" "synthetic_lung/lung-3"

d:Tf/TimelineEnd = 120.0 ms
i:Tf/NumberOfSequentialTimes = 12
i:Tf/Verbosity = 1

s:Tf/Zoom/Function           = "Step"
dv:Tf/Zoom/Times             = 3 30 60 180 ms
uv:Tf/Zoom/Values            = 3 1.4 3. 9.
d:Tf/Zoom/RepetitionInterval = 360. ms

s:Tf/Pan/Function            = "Step"
dv:Tf/Pan/Times              = 3 30 60 180 ms
uv:Tf/Pan/Values             = 3 0. .1 .1
d:Tf/Pan/RepetitionInterval  = 360. ms

s:Tf/PanY/Function           = "Step"
dv:Tf/PanY/Times             = 3 30 60 180 ms
uv:Tf/PanY/Values            = 3 0. -.05 -.05
d:Tf/PanY/RepetitionInterval = 360. ms

# Uncomment to enable scoring
s:Sc/DoseAtPhantom/Quantity                  = "DoseToMedium"
s:Sc/DoseAtPhantom/Component                 = "Patient"
b:Sc/DoseAtPhantom/OutputToConsole           = "False"
s:Sc/DoseAtPhantom/IfOutputFileAlreadyExists = "Overwrite"
s:Sc/DoseAtPhantom/OutputType                = "DICOM"
b:Sc/DoseAtPhantom/DICOMOutput32BitsPerPixel = "False"

# Uncomment to split scoring by ImageName
#s:Sc/DoseAtPhantom/SplitByTimeFeature = "ImageName"

s:So/Example/Type                     = "Beam"
s:So/Example/Component                = "BeamPosition"
s:So/Example/BeamParticle             = "proton"
d:So/Example/BeamEnergy               = 120. MeV
u:So/Example/BeamEnergySpread         = 0.757504
s:So/Example/BeamPositionDistribution = "Flat"
s:So/Example/BeamPositionCutoffShape  = "Ellipse"
d:So/Example/BeamPositionCutoffX      = 0.5 cm
d:So/Example/BeamPositionCutoffY      = 0.5 cm
s:So/Example/BeamAngularDistribution  = "None"
i:So/Example/NumberOfHistoriesInRun   = 100

sv:Ph/Default/Modules = 1 "g4em-standard_opt0"

# Graphics
b:Gr/ViewA/HiddenLineRemovalForTrajectories = "True"
s:Gr/ViewA/Type        = "OpenGL"
i:Gr/ViewA/WindowSizeX = 900
i:Gr/ViewA/WindowSizeY = 900
d:Gr/ViewA/Theta       = 45 deg
d:Gr/ViewA/Phi         = 45 deg
u:Gr/ViewA/Zoom        = Tf/Zoom/Value
u:Gr/ViewA/TransX      = Tf/Pan/Value
u:Gr/ViewA/TransY      = Tf/PanY/Value

# Extra graphics options to handle complex voxel geometries
i:Gr/ShowOnlyOutlineIfVoxelCountExceeds = 2100000

i:Ts/ShowHistoryCountAtInterval = 5000

b:Ts/PauseBeforeQuit = "False"
