Slice should be an element that tracks a portion of a field expansion. Something like this should work
Slice:
def __init__(self,hamiltonian,s_start, length):
....
def track(...):
s_span = (s_start, s_start+length)
self.hamiltonian.track(..., s_span=s_span)