90 if (aStep -> GetPreStepPoint() -> GetPhysicalVolume() ->
GetName() !=
"RODetectorZDivisionPhys")
return false;
94 G4Track * theTrack = aStep -> GetTrack();
99 G4String particleName = particleDef -> GetParticleName();
106 G4double energyDeposit = aStep -> GetTotalEnergyDeposit();
108 G4double DX = aStep -> GetStepLength();
109 G4int Z = particleDef-> GetAtomicNumber();
110 G4int A = particleDef-> GetAtomicMass();
128 G4int* hitTrack = matrix -> GetHitTrack(i,j,k);
134 if ( !(Z==0 && A==1) )
136 if( energyDeposit>0. && DX >0. )
140 let -> FillEnergySpectrum(trackID, particleDef,energyDeposit, DX, i, j, k);
142 else if (kineticEnergy > 50.*
keV)
144 let -> FillEnergySpectrum(trackID, particleDef,energyDeposit, DX, i , j, k);
158 if ( *hitTrack != trackID )
165 if ( Z >= 1) matrix ->
Fill(trackID, particleDef, i, j, k, 0,
true);
169 if(energyDeposit != 0)
179 matrix ->
Fill(trackID, particleDef, i, j, k, energyDeposit);
184 detectorHit -> SetEdepAndPosition(i, j, k, energyDeposit);
195 static G4int HCID = -1;
virtual G4int GetCollectionID(G4int i)
ntupleExperimental Fill(depthExp, EdepExp)
~HadrontherapyDetectorSD()
void EndOfEvent(G4HCofThisEvent *HCE)
const G4VTouchable * GetTouchable() const
HadrontherapyDetectorHitsCollection * HitsCollection
G4StepPoint * GetPreStepPoint() const
G4THitsCollection< HadrontherapyDetectorHit > HadrontherapyDetectorHitsCollection
static constexpr double keV
static HadrontherapyMatrix * GetInstance()
virtual G4VPhysicalVolume * GetVolume(G4int depth=0) const
static HadrontherapyLet * GetInstance()
const G4TouchableHandle & GetTouchableHandle() const
G4String sensitiveDetectorName
void Initialize(G4HCofThisEvent *)
void insert(G4String str)
HadrontherapyDetectorSD(G4String name)
double A(double temperature)
G4bool ProcessHits(G4Step *aStep, G4TouchableHistory *ROhist)
G4CollectionNameVector collectionName
virtual G4int GetReplicaNumber(G4int depth=0) const
G4int GetPDGEncoding() const
const G4String & GetName() const