| Message: Compton Scattering? Fail to understand the result. | Not Logged In (login) |
|
Hi all,
I have made a segmented Ge detector. In this detector, I have recorded segment no of the hit, hit position, the energy deposited by a gamma ray in each step and the physical process of the interactions. The energy deposited by the gamma ray is calculated from the difference in kinetic energy of the gamma ray before and after the scattering. Every things seems working fine. But when I try to calculate the scattering angle and the energy deposition in a compton scattering process, I am getting wrong result in some cases. One of such case is given below where a gamma ray of energy 500 keV incidents on the detector. In the 1st scattering, the gamma ray looses 177 keV energy. This corresponds to a scattering angle of ~ 64 deg. But if I try to calculate the angle between the tracks, it comes out to be ~ 57 deg. Which is quite different (leads to energy difference of ~ 23 keV). Compton scattering formula and its implementation in Geant4 must be well tested by many users and beyond any question but I am failing to identify the problem. It will be great help if any body can point out my mistake or give some suggestion/idea. Regards, Pradip
********************************************************************************************************* * G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0 *********************************************************************************************************
Step# Copy# X Y Z KineE dEStep Process
0 0 0 fm 0 fm -25 cm 500 keV 0 eV initStep
12 -3.04 cm 2.1 cm 9.51 mm 177 compt
13 -1.62 cm 1.09 cm 2.13 cm 130 compt
13 -1.5 cm 1.13 cm 2 cm 13.7 compt
13 -1.3 cm 1.42 cm 1.85 cm 50.8 compt
13 -1.29 cm 1.43 cm 1.91 cm 128 phot
------------------------------------------------------------------------------ I am also attaching the part of SteepingVerbose.cc file which generates this printout ------------------------------------------------------------------------------
G4int copyNo=fStep->GetPreStepPoint()->GetTouchableHandle()->GetCopyNumber() ;
// Gives Segment No.
E_dep_array[fTrack->GetCurrentStepNumber()]=(fTrack->GetKineticEnergy())/keV ;
// Record Energy dep in each step
if(((E_dep_array[fTrack->GetCurrentStepNumber()-1] - E_dep_array[fTrack->GetCurrentStepNumber()])!=0) &&
(fStep->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessName() =="compt" ||
fStep->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessName() =="phot"))
{
G4cout << std::setw(6) << " "
<< std::setw(4) << copyNo << " "
<< std::setw(6) << G4BestUnit(fTrack->GetPosition().x(),"Length")
<< std::setw(6) << G4BestUnit(fTrack->GetPosition().y(),"Length")
<< std::setw(6) << G4BestUnit(fTrack->GetPosition().z(),"Length")
<< std::setw(7) << " "
<< std::setw(1) << " "
<< std::setw(5) << " " << (E_dep_array[fTrack->GetCurrentStepNumber()-1] -
E_dep_array[fTrack->GetCurrentStepNumber()])
<< std::setw(10) << fStep->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessName()
<< " ";
G4cout << G4endl; ------------------------------------------------------------------------------
|
| Inline Depth: | Outline Depth: | Add message: |
|
to: |