| Summary: | Wrong MaxBetaChange value in the Cerenkov process in Geant4 11.0 | ||
|---|---|---|---|
| Product: | Geant4 | Reporter: | Ivana Hrivnacova <ivana> |
| Component: | processes/electromagnetic/xrays | Assignee: | Daren Sawkey <daren.sawkey> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | Vladimir.Ivantchenko |
| Priority: | P4 | ||
| Version: | other | ||
| Hardware: | All | ||
| OS: | All | ||
Hi Daren, I have switched this bug to you. It is fixed in master but we need a backport to patch. Please, make backport only to the xray library and do not to EM utils. Technically, backports to several categories block possibilities for other backports. I personally prepare patches in each sub-library separately, better if one persons is responsible for one sub-library. Vladimir The backport patch MR to xrays is now submitted. |
We get very small steps (1e-15) from the Cerenkov process in the VMC tests and so we found out that there is a problem with setting the MaxBetaChange parameter, where a unit perCent is added in G4Cerenkov::SetMaxBetaChangePerStep() and the updated value is passed back to G4OpticalParameters. This method is however call at the initialization phase for all particles via call to Initialise() called by G4Cerenkov::PreparePhysicsTable(): SetMaxBetaChangePerStep(params->GetCerenkovMaxBetaChange()); With each call, the perCent is applied again, and the final value is of order 1e-106. The control printing added in G4Cerenkov::PreparePhysicsTable(): Initialise(); + // control printing + G4cout << "Initialise for " << particle.GetParticleName() << G4endl; + G4cout << "fMaxBetaChange: " << fMaxBetaChange << G4endl; gives: Initialise for B+ fMaxBetaChange: 0.01 Initialise for B- fMaxBetaChange: 0.0001 ... Initialise for xi_c+ fMaxBetaChange: 1e-106 To fix this, the unit should be applied in the cerenkov/setMaxBetaChange command and removed from the setter in Cerenkov process.