# File: prune_tracks.mac
# Brief: Macro showing the various prunings that can be applied to tracks.
#
# Date: 2014-07-24
# Contact: P G Jones, <p.g.jones@qmul.ac.uk>
# Revisions:
#
# This macro demostrates how to prune various aspects of the tracking
# information. The full tracking information is saved to full.root and the
# pruned tracking information in pruned.root.

# Store all the tracks via
/rat/tracking/store full

/run/initialize

# BEGIN EVENT LOOP
# Output before the pruning
/rat/proc outroot
/rat/procset file "full.root"

# Prune all electron tracks
/rat/proc pruneTrack
/rat/procset particle "e-"

# Prune all cerenkov process steps
/rat/proc pruneTrack
/rat/procset process "cerenkov"

# Prune all inner_av volume steps
/rat/proc pruneTrack
/rat/procset volume "inner_av"

# The above three are logically inverted in these three

# Prune all non-electron tracks
#/rat/proc pruneTrack
#/rat/procset notparticle "e-"

# Prune all non-cerenkov process steps
#/rat/proc pruneTrack
#/rat/procset notprocess "cerenkov"

# Prune all non-inner_av volume steps
#/rat/proc pruneTrack
#/rat/procset notvolume "inner_av"

# Output after track pruning
#/rat/proc outroot
#/rat/procset file "pruned.root"

# Extra rather severe pruning
/rat/proc prune
/rat/procset prune "mc.tracks, mc.tracks.steps" # All tracks and all steps
# END EVENT LOOP

# Generate something to track, 1MeV electrons
/generator/add combo gun:point
/generator/vtx/set e- 0 0 0 1.0
/generator/pos/set 0 0 0
/generator/rate/set 1

/rat/run/start 10

exit