Warning, file /eic-opticks/u4/U4Genstep.h was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 #pragma once
0002
0003 #include <array>
0004 #include <cstddef>
0005
0006 #include "G4StepStatus.hh"
0007 #include "G4Types.hh"
0008
0009 #include "U4_API_EXPORT.hh"
0010
0011 class G4MaterialPropertiesTable;
0012 class G4ProcessVector;
0013 class G4Scintillation;
0014 class G4SteppingManager;
0015 class G4Track;
0016
0017
0018
0019
0020 struct U4_API U4Genstep
0021 {
0022 struct ProcessRange
0023 {
0024 G4ProcessVector* processes{nullptr};
0025 std::size_t count{0};
0026 };
0027
0028 struct ScintillationPlan
0029 {
0030 G4int num_components{0};
0031 G4double yield_sum{0.};
0032 std::array<G4int, 3> counts{};
0033 std::array<G4double, 3> times{};
0034
0035 G4int photonCount() const
0036 {
0037 return counts[0] + counts[1] + counts[2];
0038 }
0039 };
0040
0041 static ProcessRange Processes(G4SteppingManager* stepping_manager);
0042 static ProcessRange Processes(
0043 G4StepStatus status,
0044 G4ProcessVector* at_rest,
0045 G4ProcessVector* post_step);
0046
0047 static ScintillationPlan Scintillation(
0048 const G4Track* track,
0049 const G4Scintillation* scintillation,
0050 const G4MaterialPropertiesTable* properties,
0051 G4int total_photons);
0052
0053 static bool ValidateScintillation(
0054 const G4Scintillation* scintillation,
0055 const char* origin);
0056 };