| Summary: | Gamma velocity == optical photon velocity == c/n_min | ||
|---|---|---|---|
| Product: | Geant4 | Reporter: | gas |
| Component: | track | Assignee: | kurasige |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | P2 | ||
| Version: | other | ||
| Hardware: | PC | ||
| OS: | Linux | ||
Fixed G4Track::GetVelocity and tagged as "track-V03-00-02"
Now
Velocity of Gamma is always c_light
and
Velocity of optical photon is c_light / r_index, where
r_index = mat->GetMaterialPropertiesTable()->GetProperty("RINDEX")->
GetProperty(fpDynamicParticle->GetTotalMomentum())
|
In comparing Geant4 and Geant3 simulations of KamLAND, we note that gammas in the Geant4 simulation travel at 70% of the speed of light when in the scintillator. This is due to G4Track::GetVelocity(). In inspecting the source, we have also discovered that the velocity dispersion of optical photons is cancelled: all gammas and all opticalphotons travel at c_light / r_min, where r_min= mat->GetMaterialPropertiesTable()->GetProperty("RINDEX")->GetMinProperty() It is not possible to work around this by defining a unity RINDEX at some high energy because optical photons would then travel at the speed of light, due to the GetMinProperty() call. Also, G4Cerenkov would get confused. I would suggest that optical photons should propagate at the speed appropriate to their energy, and gammas should propagate at the speed of light, independent of "RINDEX". The fix to G4Track::GetVelocity() is trivial.