#=============================================================================
#       Allpix: simulation of the LUCID experiment (with visualisation)
#=============================================================================

# The laboratory
# SSTL, Surrey, United Kingdom
/allpix/lab/setLatitude  51.241850 deg
/allpix/lab/setLongitude -0.617168 deg
/allpix/lab/setAltitude 69.2 m
/allpix/lab/setRollAngle  0.0 deg
/allpix/lab/setPitchAngle 0.0 deg
/allpix/lab/setYawAngle   0.0 deg

# The LUCID TPX0 detector 
/allpix/det/setId        10000
/allpix/det/setPosition   0.0   18.3  18.3 mm
/allpix/det/setRotation   0.0    0.0   0.0 deg
/allpix/det/setFoilThickness 0.0174 mm

# The LUCID TPX1 detector
/allpix/det/setId        10001
/allpix/det/setPosition  18.3   18.3   0.0 mm
/allpix/det/setRotation   0.0  -90.0   0.0 deg
/allpix/det/setFoilThickness 0.0174 mm

# The LUCID TPX2 detector.
/allpix/det/setId        10002
/allpix/det/setPosition -18.3   18.3   0.0 mm
/allpix/det/setRotation   0.0   90.0   0.0 deg
/allpix/det/setFoilThickness 0.0174 mm

# The LUCID TPX3 detector 
/allpix/det/setId        10003
/allpix/det/setPosition   0.0   18.3 -18.3 mm
/allpix/det/setRotation   0.0  180.0   0.0 deg
/allpix/det/setFoilThickness 0.0174 mm

# The LUCID TPX4 detector 
/allpix/det/setId        10004
/allpix/det/setPosition   -3.01   -7.600   0.0 mm
/allpix/det/setRotation   90.0     0.0    90.0   deg
/allpix/det/setFoilThickness 0.0174 mm

# The test structure - the LUCID experiment.
/allpix/extras/setTestStructure LUCID
/allpix/extras/setTestStructurePosition 0.0 0.0 0.0 mm
/allpix/extras/setTestStructureRotation 0.0 0.0 0.0 deg
/allpix/extras/setTestStructureShieldingThickness 0.68 mm

# We're in space, of course.
/allpix/extras/setWorldMaterial Vacuum

# The maximum step length (applies only to the sensor).
/allpix/det/setMaxStepLengthSensor 10 um

# Initialize the simulation.
/run/initialize

# Build the detectors.
/allpix/det/update

##############################################################################
#                         Visualisation configuration
##############################################################################
/vis/scene/create
#/vis/scene/add/axes 0. 0. 0. 10. cm
/vis/scene/add/volume World -1 2
/vis/viewer/set/style s

/run/verbose 0
/control/verbose 0
/control/saveHistory
/tracking/verbose 0
/allpix/phys/verbose 0

/vis/open OIX 1024x768-100+100
#/vis/open OGLIXm 1024x768-100+100
#/vis/open RayTracer
#/vis/open OGLIQt
#/vis/open OGLSQt
#/vis/open OIX
#/vis/open OGLIX 1024x768-100+100
#/vis/open OGLSXm
#/vis/open DAWNFILE
#/vis/open OGLSX
#/vis/open OGL 600x600-0+0

#/vis/viewer/set/background 0.4 0.5 0.6
/vis/viewer/set/background 1.0 1.0 1.0
/vis/viewer/set/viewpointThetaPhi 20 50
#/vis/viewer/set/background 0 0 0
/vis/viewer/zoom 2.0
/vis/viewer/flush

# Draw trajectories at end of event, showing trajectory points as
# markers of size 2 pixels.
/vis/scene/add/trajectories
/vis/modeling/trajectories/create/drawByCharge
/vis/modeling/trajectories/drawByCharge-0/default/setDrawStepPts true
/vis/modeling/trajectories/drawByCharge-0/default/setStepPtsSize 2
/vis/scene/endOfEventAction accumulate


##############################################################################

/tracking/verbose 0

################################
# General Particle Source (GPS)
################################

# For testing the individual detectors.
#/gps/particle proton
#/gps/ene/type Mono
#/gps/energy 40 MeV
#/gps/pos/type Point
#
# Test TPX0
/gps/particle e-
/gps/ene/type Mono
/gps/energy 1 MeV
/gps/pos/type Point
/gps/pos/centre -7.0 15.3 21.3 mm
/gps/direction 2 2 -1
#
/gps/source/add 1.0
/gps/particle e-
/gps/ene/type Mono
/gps/energy 2 MeV
/gps/pos/type Point
/gps/pos/centre 7.0 25.3 21.3 mm
/gps/direction -3 -2 -1

# Test TPX1
/gps/source/add 1.0
/gps/particle proton
/gps/ene/type Mono
/gps/energy 10 MeV
/gps/pos/type Point
/gps/pos/centre 21.3 15.3 -6.0 mm
/gps/angtype iso

# Test TPX2
/gps/source/add 1.0
/gps/particle e-
/gps/ene/type Mono
/gps/energy 1 MeV
/gps/pos/type Point
/gps/pos/centre -21.3 23.3 -6.0 mm
/gps/angtype iso
#
/gps/source/add 1.0
/gps/particle proton
/gps/ene/type Mono
/gps/energy 5 MeV
/gps/pos/type Point
/gps/pos/centre -21.3 18.3 0.0 mm
/gps/angtype iso

# Test TPX3
/gps/source/add 1.0
/gps/particle proton
/gps/ene/type Mono
/gps/energy 10 MeV
/gps/pos/type Point
/gps/pos/centre 4.0 24.3 -21.3 mm
/gps/direction 0 -2 1

# Test TPX4
/gps/source/add 1.0
/gps/particle proton
/gps/ene/type Mono
/gps/energy 5 MeV
/gps/pos/type Point
/gps/pos/centre 0.5 -3.9 5.2 mm
/gps/angtype iso
#
/gps/source/add 1.0
/gps/particle e-
/gps/ene/type Mono
/gps/energy 1.5 MeV
/gps/pos/type Point
/gps/pos/centre  -6.01 -3.9 -1.3 mm
/gps/direction 3 -1 -1


#
# Spherical source for outer space
#----------------------------------
#/gps/ene/type Mono
#/gps/energy 40 MeV
#/gps/particle proton
#/gps/pos/type Surface
#/gps/pos/shape Sphere
#/gps/pos/centre 0. 0. 0. mm
#/gps/pos/radius 49.9 mm
#/gps/pos/confine PseudoDetector_phys
#/gps/ang/type cos

/gps/source/list

/allpix/lab/setSourceId LUCID test card

##############################################################################

# Run the simulation with the number of events specified.
/run/beamOn 1000

##############################################################################