Saving particles to root file

Dear All, I want to save in a root file all particles crossing from one physical volume to another. In UserSteppingAction I do somthing like that:

auto pstepp=step->GetPostStepPoint();
auto volumeNext = pstepp->GetTouchableHandle()->GetVolume();
if ( volumeNext == fDetConstruction->GetShellPV()) {
auto fPpos = step->GetPosition();
auto fPmom = step->GetMomentum();
auto fPEkin = step->GetKineticEnergy();
G4string pname=step->GetTrack()->GetParticleDefinition()->GetParticleName();
fEventAction->AddParticle(pname,fPpos,fPmom);
}
Several years ago in order to save particles in root file I had to create a class which stores particle information and save objects as leafs. Has anything changed? Is there a simple way, build-into Genat4 code, or I still have to go through creating my own class?
Best regards, Mariusz