36 auto track{step->GetTrack()};
39 if (
auto pdgID{track->GetParticleDefinition()->GetPDGEncoding()};
45 int parentID{step->GetTrack()->GetParentID()};
51 auto phys_vol = track->GetVolume();
52 auto volume{phys_vol ? phys_vol->GetLogicalVolume() :
nullptr};
56 if (electronCheck->isRecoilElectron() ==
true) {
59 track->SetTrackStatus(fKillTrackAndSecondaries);
60 G4RunManager::GetRunManager()->AbortEvent();
61 ldmx_log(debug) <<
" Recoil track momentum is too high, expected to be "
62 "fiducial, exiting\n";
67 auto volume_name{volume ? volume->GetName() :
"undefined"};
69 simcore::g4user::volumechecks::isInEcal(volume, volume_name);
71 track->SetTrackStatus(fKillTrackAndSecondaries);
72 G4RunManager::GetRunManager()->AbortEvent();
73 ldmx_log(debug) <<
">> This event is fiducial, exiting";
85 static auto recoil_volume =
86 simcore::g4user::ptrretrieval::getLogicalVolume(
"recoil");
88 ldmx_log(warn) <<
"Volume 'recoil' not found in Geant4 volume store";
90 if (volume == recoil_volume) {
95 trackInfo->tagRecoilElectron();
96 ldmx_log(debug) <<
" >> This track is the recoil electron, tagging it";