40class RMGGeneratorFromFile :
public RMGVGenerator {
44 RMGGeneratorFromFile();
45 ~RMGGeneratorFromFile() =
default;
47 RMGGeneratorFromFile(RMGGeneratorFromFile
const&) =
delete;
48 RMGGeneratorFromFile& operator=(RMGGeneratorFromFile
const&) =
delete;
49 RMGGeneratorFromFile(RMGGeneratorFromFile&&) =
delete;
50 RMGGeneratorFromFile& operator=(RMGGeneratorFromFile&&) =
delete;
80 [[nodiscard]]
bool IsValid(
bool include_pos)
const {
81 bool kin_valid = fG4Pid != -1 && !std::isnan(fEkin) && !std::isnan(fPx) &&
82 !std::isnan(fPy) && !std::isnan(fPz) && !std::isnan(fTime) &&
84 bool pos_valid = !include_pos ||
85 (!std::isnan(fXpos) && !std::isnan(fYpos) && !std::isnan(fZpos));
86 return kin_valid && pos_valid;
90 static RMGAnalysisReader* fReader;
91 inline static RowData fRowData{};
93 bool fIncludePosition =
false;
95 std::unique_ptr<G4GenericMessenger> fMessenger =
nullptr;
96 void DefineCommands();
98 std::string fNtupleDirectoryName =
"vtx";
100 std::unique_ptr<G4ParticleGun> fGun =
nullptr;
102 G4ThreeVector fParticlePosition;
void BeginOfRunAction(const G4Run *) override
Open the input file and bind the row reader to the configured ntuple columns.
Definition RMGGeneratorFromFile.cc:76