Get trajectory points of a particle

Hi, I would like to perform some computation in SteppingAction::UserSteppingAction(const G4Step* step) which involves the points of the trajectory of a particle.
Question 1: how can I get these points? My guess is:

G4RunManager::GetRunManager()->GetCurrentEvent()->GetTrajectoryContainer() ...

but then I don’t know how to choose the trajectory of a particle of a current step among all the trajectories in the container.

Question 2: how can I get the materials at these points? I know the method via the step point and a touchable, but don’t know how to use it on a trajectory point:

step->GetPreStepPoint()->GetTouchableHandle()->GetVolume()->GetLogicalVolume()->GetMaterial()

Thanks in advance!