35 auto track{step->GetTrack()};
38 if (
auto pdg_id{track->GetParticleDefinition()->GetPDGEncoding()};
44 int parent_id{step->GetTrack()->GetParentID()};
50 auto phys_vol = track->GetVolume();
51 auto volume{phys_vol ? phys_vol->GetLogicalVolume() :
nullptr};
55 if (electron_check->isRecoilElectron() ==
true) {
58 track->SetTrackStatus(fKillTrackAndSecondaries);
59 G4RunManager::GetRunManager()->AbortEvent();
60 ldmx_log(debug) <<
" Recoil track momentum is too high, expected to be "
61 "fiducial, exiting\n";
66 auto volume_name{volume ? volume->GetName() :
"undefined"};
68 simcore::g4user::volumechecks::isInEcal(volume, volume_name);
70 track->SetTrackStatus(fKillTrackAndSecondaries);
71 G4RunManager::GetRunManager()->AbortEvent();
72 ldmx_log(debug) <<
">> This event is fiducial, exiting";
84 static auto recoil_volume =
85 simcore::g4user::ptrretrieval::getLogicalVolume(
"recoil");
87 ldmx_log(warn) <<
"Volume 'recoil' not found in Geant4 volume store";
89 if (volume == recoil_volume) {
94 track_info->tagRecoilElectron();
95 ldmx_log(debug) <<
" >> This track is the recoil electron, tagging it";