89 if (aStep -> GetPreStepPoint() -> GetPhysicalVolume() ->
GetName() !=
"RODetectorZDivisionPhys")
return false;
93 G4Track * theTrack = aStep -> GetTrack();
97 G4String particleName = particleDef -> GetParticleName();
103 G4int trackID = theTrack -> GetTrackID();
105 G4double energyDeposit = aStep -> GetTotalEnergyDeposit();
107 G4double DX = aStep -> GetStepLength();
108 G4int Z = particleDef-> GetAtomicNumber();
109 G4int A = particleDef-> GetAtomicMass();
129 G4int* hitTrack = matrix -> GetHitTrack(i,j,k);
135 if ( !(Z==0 && A==1) )
137 if( energyDeposit>0. && DX >0. )
139 if (pdg !=22 && pdg !=11)
143 G4double eKinPre = aStep -> GetPreStepPoint() -> GetKineticEnergy();
145 G4double eKinPost = aStep -> GetPostStepPoint() -> GetKineticEnergy();
147 G4double eKinMean = (eKinPre + eKinPost) * 0.5;
150 G4Material * materialStep = aStep -> GetPreStepPoint() -> GetMaterial();
153 G4Step fstep = *theTrack -> GetStep();
157 size_t SecondarySize = (*secondary).size();
163 for (
size_t numsec = 0; numsec< SecondarySize ; numsec ++)
166 G4int PDGSecondary=(*secondary)[numsec]->GetDefinition()->GetPDGEncoding();
168 if(PDGSecondary == 11)
171 EnergySecondary += (*secondary)[numsec]->GetKineticEnergy();
178 let -> FillEnergySpectrum(trackID, particleDef, eKinMean, materialStep,
179 energyDeposit,EnergySecondary,DX, i, j, k);
192 if ( *hitTrack != trackID )
199 if ( Z >= 1) matrix ->
Fill(trackID, particleDef, i, j, k, 0,
true);
203 if(energyDeposit != 0)
213 matrix ->
Fill(trackID, particleDef, i, j, k, energyDeposit);
218 detectorHit -> SetEdepAndPosition(i, j, k, energyDeposit);
229 static G4int HCID = -1;