# A dipole magnet has field strength changing over time
# such that magnet is sweeping back and forth.
# At the same time, the nozzle that contains this magnet is rotating.

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"

# Nozzle (a group of components)
s:Ge/Nozzle/Type   = "Group"
s:Ge/Nozzle/Parent = "World"
d:Ge/Nozzle/TransX = 0. m
d:Ge/Nozzle/TransY = 0. m
d:Ge/Nozzle/TransZ = 0. m
d:Ge/Nozzle/RotX   = 0. deg
d:Ge/Nozzle/RotY   = 0. deg
d:Ge/Nozzle/RotZ   = Tf/MagnetRotation/Value deg

s:Tf/MagnetRotation/Function           = "Linear deg"
d:Tf/MagnetRotation/Rate               = 2. deg/ms
d:Tf/MagnetRotation/StartValue         = -0. deg
d:Tf/MagnetRotation/RepetitionInterval = 80.0 ms

##########################################
# Dipole for stiring beam direction!
##########################################

s:Ge/VBox2/Dipole/Type          = "TsBox"
s:Ge/VBox2/Dipole/Parent        = "Nozzle"
s:Ge/VBox2/Dipole/Material      = "G4_AIR"
d:Ge/VBox2/Dipole/HLX           = 10 cm
d:Ge/VBox2/Dipole/HLY           = 10 cm
d:Ge/VBox2/Dipole/HLZ           = 20 cm
d:Ge/VBox2/Dipole/TransX        = 0.0 cm
d:Ge/VBox2/Dipole/TransY        = 0.0 cm
d:Ge/VBox2/Dipole/TransZ        = 90.0 cm + Ge/VBox2/Dipole/HLZ
d:Ge/VBox2/Dipole/RotX          = 0.0 deg
d:Ge/VBox2/Dipole/RotY          = 0.0 deg
d:Ge/VBox2/Dipole/RotZ          = 0.0 deg
s:Ge/VBox2/Dipole/Field = "DipoleMagnet"
u:Ge/VBox2/Dipole/MagneticFieldDirectionX    = 1.0
u:Ge/VBox2/Dipole/MagneticFieldDirectionY    = 0.0
u:Ge/VBox2/Dipole/MagneticFieldDirectionZ    = 0.0
d:Ge/VBox2/Dipole/MagneticFieldStrength      = Tf/BField1st/Value tesla

##########################################
# Vacuum window for phase space!
##########################################
# Vacuum Window: Target !
s:Ge/VacFilm/Type     = "TsCylinder"
s:Ge/VacFilm/Parent   = "World"
s:Ge/VacFilm/Material = "G4_WATER"
d:Ge/VacFilm/RMin     = 0.0 cm
d:Ge/VacFilm/RMax     = 100.0 cm
d:Ge/VacFilm/HL       = 1.0 cm
d:Ge/VacFilm/SPhi     = 0. deg
d:Ge/VacFilm/DPhi     = 360. deg
d:Ge/VacFilm/TransX   = 0. cm
d:Ge/VacFilm/TransY   = 0. cm
d:Ge/VacFilm/TransZ   = 0. cm
d:Ge/VacFilm/RotX     = 0. deg
d:Ge/VacFilm/RotY     = 0.0 deg
d:Ge/VacFilm/RotZ     = 0. deg
s:Ge/VacFilm/Color    = "skyblue"

#s:Sc/Plane1/Quantity         = "PhaseSpace"
#s:Sc/Plane1/Surface          = "VacFilm/ZMinusSurface"
#s:Sc/Plane1/OutputType       = "ASCII"
#i:Sc/Plane1/OutputBufferSize = 1000

##########################################
# Ps source
##########################################
d:Ge/BeamPosition/TransZ = Ge/World/HLZ cm
d:Ge/BeamPosition/RotX   = 180. deg

s:Ge/World/Material = "Vacuum"

s:So/Example/Type                     = "Beam"
s:So/Example/Component                = "BeamPosition"
s:So/Example/BeamParticle             = "e+"
d:So/Example/BeamEnergy               = 40.0 MeV
u:So/Example/BeamEnergySpread         = 5.
s:So/Example/BeamPositionDistribution = "Gaussian"
s:So/Example/BeamPositionCutoffShape  = "Ellipse"
d:So/Example/BeamPositionCutoffX      = 5.0 cm
d:So/Example/BeamPositionCutoffY      = 5.0 cm
d:So/Example/BeamPositionSpreadX      = 0.65 cm
d:So/Example/BeamPositionSpreadY      = 0.65 cm
s:So/Example/BeamAngularDistribution  = "Gaussian"
d:So/Example/BeamAngularCutoffX       = 90. deg
d:So/Example/BeamAngularCutoffY       = 90. deg
d:So/Example/BeamAngularSpreadX       = 0.005 rad
d:So/Example/BeamAngularSpreadY       = 0.005 rad
i:So/Example/NumberOfHistoriesInRun   = 500

s:Tf/BField1st/Function = "Step"
dv:Tf/BField1st/Times   = 2 10.0 20.0 ms
dv:Tf/BField1st/Values  = 2 Tf/BField1stLeft/Value Tf/BField1stRight/Value tesla

s:Tf/BField1stLeft/Function            = "Linear tesla"
d:Tf/BField1stLeft/Rate                = 0.064 tesla/ms
d:Tf/BField1stLeft/StartValue          = -0.32 tesla
d:Tf/BField1stLeft/RepetitionInterval  = 10.0 ms

s:Tf/BField1stRight/Function           = "Linear tesla"
d:Tf/BField1stRight/Rate               = -0.064 tesla/ms
d:Tf/BField1stRight/StartValue         = 0.32 tesla
d:Tf/BField1stRight/RepetitionInterval = 10.0 ms

s:Tf/SmallBox/Function           = "Linear tesla"
d:Tf/SmallBox/Rate               = 0.1 tesla/ms
d:Tf/SmallBox/StartValue         = 0.0 tesla
d:Tf/SmallBox/RepetitionInterval = 70. ms

d:Tf/TimelineEnd                    = 40.0 ms
i:Tf/NumberOfSequentialTimes        = 10

s:Gr/ViewA/Type             = "OpenGL"
i:Gr/ViewA/WindowSizeX      = 1024
i:Gr/ViewA/WindowSizeY      = 768
d:Gr/ViewA/Theta            = 55 deg
d:Gr/ViewA/Phi              = 20 deg
s:Gr/ViewA/Projection       = "Perspective"
d:Gr/ViewA/PerspectiveAngle = 30 deg
u:Gr/ViewA/Zoom             = 1.4
u:Gr/ViewA/TransX           = -.2
b:Gr/ViewA/HiddenLineRemovalForTrajectories = "True"
