32#include "G4ParticleDefinition.hh"
38#include <G4SystemOfUnits.hh>
54 G4cout <<
"RBEAccumulable::Merge()" << G4endl;
67 G4cout <<
"RBEAccumulable::Reset()" << G4endl;
86 G4double energyDeposit = hit->
GetDeltaE();
96 Accumulate(kineticEnergy / A, energyDeposit, DX, Z, i, j, k);
105 G4Exception(
"RBEAccumulable::Accumulate",
"NotInitialized", FatalException,
106 "Accumulable not initialized. Must be a programming error.");
109 G4cout <<
"RBEAccumulable::Accumulate() in " << i <<
", " << j <<
", " << k << G4endl;
111 if (energyDeposit <= 0) {
119 if ((Z >= 1) && (dX > 0) && (E > 0)) {
124 fBetaNumerator[n] += std::sqrt(std::get<1>(alpha_beta)) * energyDeposit;
141 G4cout <<
"RBEAccumulable::Initialize(): " << G4endl;
152 G4cout <<
fVoxels <<
" voxels." << G4endl;
Definition of the RadioBio::Hit class.
Definition of the RadioBio::Manager class.
Definition of the RadioBio::RBEAccumulable class.
Definition of the RadioBio::RBE class.
Definition of the RadioBio::VoxelizedSensitiveDetector class.
const G4ParticleDefinition * GetPartType() const
G4double GetTrackLength() const
VRadiobiologicalQuantity * GetQuantity(G4String)
static Manager * GetInstance()
Accumulable of RBE-related data (that must be thread-local).
std::valarray< G4double > array_type
void Merge(const G4VAccumulable &rhs) override
G4int GetVerboseLevel() const
array_type fAlphaNumerator
void Accumulate(G4double E, G4double energyDeposit, G4double dX, G4int Z, G4int i, G4int j, G4int k)
array_type fBetaNumerator
std::tuple< G4double, G4double > GetHitAlphaAndBeta(G4double E, G4int Z)
G4int GetVerboseLevel() const
static VoxelizedSensitiveDetector * GetInstance()
Static method to retrieve a pointer to the only object existing in the simulation.
G4int GetThisVoxelNumber(G4int x, G4int j, G4int k) const
Method to get the absolute voxel index given its indexes in the three dimensions.